2008-09-18 03:15:49 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
class CConfigSettingSection;
|
|
|
|
class CSettingsPage;
|
|
|
|
|
|
|
|
class CSettingConfig :
|
2010-09-22 21:43:42 +00:00
|
|
|
public CDialogImpl<CSettingConfig>
|
2008-09-18 03:15:49 +00:00
|
|
|
{
|
2010-09-22 21:43:42 +00:00
|
|
|
public:
|
2008-09-18 03:15:49 +00:00
|
|
|
BEGIN_MSG_MAP_EX(CSettingConfig)
|
|
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
2008-11-14 20:51:06 +00:00
|
|
|
COMMAND_CODE_HANDLER(BN_CLICKED,OnClicked)
|
2008-09-18 03:15:49 +00:00
|
|
|
NOTIFY_HANDLER_EX(IDC_PAGELIST, TVN_SELCHANGED, OnPageListItemChanged)
|
2008-11-14 20:51:06 +00:00
|
|
|
MESSAGE_HANDLER_EX(PSM_CHANGED,OnSettingPageChanged)
|
2008-09-18 03:15:49 +00:00
|
|
|
REFLECT_NOTIFICATIONS()
|
|
|
|
END_MSG_MAP()
|
|
|
|
|
|
|
|
enum { IDD = IDD_Settings_Config };
|
|
|
|
|
|
|
|
LRESULT OnInitDialog ( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
|
|
|
LRESULT OnClicked(WORD wNotifyCode, WORD wID, HWND /*hWndCtl*/, BOOL& bHandled);
|
|
|
|
LRESULT OnPageListItemChanged(NMHDR* phdr);
|
2008-11-14 20:51:06 +00:00
|
|
|
LRESULT OnSettingPageChanged ( UINT /*uMsg*/, WPARAM wPage, LPARAM /*lParam*/);
|
2008-09-18 03:15:49 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
CSettingConfig ( bool bJustGameSetting = false );
|
|
|
|
~CSettingConfig ( void );
|
|
|
|
|
|
|
|
void Display ( void * ParentWindow );
|
|
|
|
|
|
|
|
private:
|
2008-11-14 20:51:06 +00:00
|
|
|
void ApplySettings ( bool UpdateScreen );
|
|
|
|
void BoldChangedPages ( HTREEITEM hItem );
|
|
|
|
|
2008-09-18 03:15:49 +00:00
|
|
|
typedef std::list<CConfigSettingSection *> SETTING_SECTIONS;
|
|
|
|
|
|
|
|
CTreeViewCtrl m_PagesTreeList;
|
|
|
|
SETTING_SECTIONS m_Sections;
|
|
|
|
CSettingsPage * m_CurrentPage;
|
2008-11-14 20:51:06 +00:00
|
|
|
bool m_GameConfig;
|
2008-09-18 03:15:49 +00:00
|
|
|
};
|