157 lines
3.6 KiB
C++
157 lines
3.6 KiB
C++
/*---------------------------------------------------------------------------*/
|
|
// Author : hiyohiyo
|
|
// Mail : hiyohiyo@crystalmark.info
|
|
// Web : https://crystalmark.info/
|
|
// License : MIT License
|
|
/*---------------------------------------------------------------------------*/
|
|
|
|
#pragma once
|
|
|
|
#include "ImageFx.h"
|
|
|
|
class CDialogFx : public CDialog
|
|
{
|
|
public:
|
|
CDialogFx(UINT dlgResouce, CWnd* pParent = NULL);
|
|
virtual ~CDialogFx();
|
|
|
|
// Dialog
|
|
virtual BOOL Create(UINT nIDTemplate, CWnd* dlgWnd, UINT menuId, CWnd* pParentWnd = NULL);
|
|
|
|
// Font
|
|
int GetFontScale();
|
|
BYTE GetFontRender();
|
|
double GetFontRatio();
|
|
CString GetFontFace();
|
|
|
|
// Theme
|
|
BOOL IsDisableDarkMode();
|
|
|
|
protected:
|
|
// Dialog
|
|
virtual BOOL OnInitDialog();
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
virtual void PostNcDestroy();
|
|
virtual void UpdateDialogSize();
|
|
virtual void SetClientSize(int sizeX, int sizeY, double zoomRatio);
|
|
virtual void UpdateBackground(BOOL resize, BOOL darkMode);
|
|
virtual void SetWindowTitle(CString title);
|
|
virtual void OnOK();
|
|
virtual void OnCancel();
|
|
|
|
// Zoom
|
|
DWORD ChangeZoomType(DWORD zoomType);
|
|
|
|
// Theme
|
|
BOOL IsHighContrast();
|
|
|
|
// Utility
|
|
virtual CString IP(CString imageName);
|
|
CString i18n(CString section, CString key, BOOL inEnglish = FALSE);
|
|
void OpenUrl(CString url);
|
|
void SetLayeredWindow(HWND hWnd, BYTE alpha);
|
|
int GetDpi();
|
|
|
|
// MessageMap
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
afx_msg LRESULT OnDpiChanged(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnDisplayChange(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnSysColorChange(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnSettingChange(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnEnterSizeMove(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnExitSizeMove(WPARAM wParam, LPARAM lParam);
|
|
|
|
protected:
|
|
// Dialog
|
|
BOOL m_bInitializing;
|
|
BOOL m_bDpiChanging;
|
|
BOOL m_bShowWindow;
|
|
BOOL m_bModelessDlg;
|
|
BOOL m_bHighContrast;
|
|
BOOL m_bDarkMode;
|
|
BOOL m_bDisableDarkMode;
|
|
BOOL m_bBkImage;
|
|
UINT m_MenuId;
|
|
CWnd* m_ParentWnd;
|
|
CWnd* m_DlgWnd;
|
|
CString m_Ini;
|
|
HACCEL m_hAccelerator;
|
|
BOOL m_bDrag;
|
|
CString m_FontFace;
|
|
int m_FontScale;
|
|
double m_FontRatio;
|
|
BYTE m_FontRender;
|
|
HPALETTE m_hPal;
|
|
|
|
int m_SizeX;
|
|
int m_MaxSizeX;
|
|
int m_MinSizeX;
|
|
int m_SizeY;
|
|
int m_MaxSizeY;
|
|
int m_MinSizeY;
|
|
|
|
// Zoom
|
|
int m_Dpi;
|
|
DWORD m_ZoomType;
|
|
double m_ZoomRatio;
|
|
|
|
// Color for SubClass
|
|
COLORREF m_LabelText;
|
|
COLORREF m_MeterText;
|
|
COLORREF m_ComboText;
|
|
COLORREF m_ComboTextSelected;
|
|
COLORREF m_ComboBk;
|
|
COLORREF m_ComboBkSelected;
|
|
COLORREF m_ButtonText;
|
|
COLORREF m_EditText;
|
|
COLORREF m_EditBk;
|
|
COLORREF m_ListText1;
|
|
COLORREF m_ListText2;
|
|
COLORREF m_ListTextSelected;
|
|
COLORREF m_ListBk1;
|
|
COLORREF m_ListBk2;
|
|
COLORREF m_ListBkSelected;
|
|
COLORREF m_ListLine1;
|
|
COLORREF m_ListLine2;
|
|
COLORREF m_Glass;
|
|
COLORREF m_Frame;
|
|
COLORREF m_Background;
|
|
|
|
BYTE m_ComboAlpha;
|
|
BYTE m_EditAlpha;
|
|
BYTE m_GlassAlpha;
|
|
|
|
BYTE m_CharacterPosition;
|
|
|
|
// Theme for SubClass
|
|
int m_OffsetX;
|
|
CString m_ThemeDir;
|
|
CString m_CurrentTheme;
|
|
CString m_DefaultTheme;
|
|
CString m_ParentTheme1;
|
|
CString m_ParentTheme2;
|
|
CString m_RandomThemeLabel;
|
|
CString m_RandomThemeName;
|
|
|
|
// Language for SubClass
|
|
CString m_LangDir;
|
|
CString m_CurrentLang;
|
|
CString m_CurrentLangPath;
|
|
CString m_DefaultLangPath;
|
|
CString m_BackgroundName;
|
|
|
|
// Voice for SubClass
|
|
CString m_VoiceDir;
|
|
CString m_CurrentVoice;
|
|
INT m_VoiceVolume;
|
|
|
|
// Class
|
|
CBitmap m_BkBitmap;
|
|
CDC m_BkDC;
|
|
CImage m_BkImage;
|
|
CBrush m_BrushDlg;
|
|
};
|