project64/Source/Project64/UserInterface/SettingsConfig.h

46 lines
1.5 KiB
C
Raw Normal View History

#pragma once
#include <commctrl.h>
class CConfigSettingSection;
class CSettingsPage;
class CSettingConfig :
2015-12-23 19:12:57 +00:00
public CDialogImpl < CSettingConfig >
{
public:
2015-12-23 19:12:57 +00:00
BEGIN_MSG_MAP_EX(CSettingConfig)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_CODE_HANDLER(BN_CLICKED, OnClicked)
NOTIFY_HANDLER_EX(IDC_PAGELIST, TVN_SELCHANGED, OnPageListItemChanged)
MESSAGE_HANDLER_EX(PSM_CHANGED, OnSettingPageChanged)
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
2015-12-23 19:12:57 +00:00
enum { IDD = IDD_Settings_Config };
2015-12-23 19:12:57 +00:00
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnClicked(WORD wNotifyCode, WORD wID, HWND /*hWndCtl*/, BOOL& bHandled);
LRESULT OnPageListItemChanged(NMHDR* phdr);
LRESULT OnSettingPageChanged(UINT /*uMsg*/, WPARAM wPage, LPARAM /*lParam*/);
public:
2015-12-23 19:12:57 +00:00
CSettingConfig(bool bJustGameSetting = false);
~CSettingConfig(void);
2015-12-23 19:12:57 +00:00
void Display(void * ParentWindow);
void UpdateAdvanced(bool AdvancedMode);
private:
2015-12-23 19:12:57 +00:00
bool UpdateAdvanced(bool AdvancedMode, HTREEITEM hItem);
void ApplySettings(bool UpdateScreen);
void BoldChangedPages(HTREEITEM hItem);
2015-12-23 19:12:57 +00:00
typedef std::list<CConfigSettingSection *> SETTING_SECTIONS;
2015-12-23 19:12:57 +00:00
CTreeViewCtrl m_PagesTreeList;
SETTING_SECTIONS m_Sections;
CSettingsPage * m_CurrentPage, *m_GeneralOptionsPage, *m_AdvancedPage;
bool m_GameConfig;
2015-01-31 19:27:27 +00:00
};