/**************************************************************************** * * * Project64 - A Nintendo 64 emulator. * * http://www.pj64-emu.com/ * * Copyright (C) 2012 Project64. All rights reserved. * * * * License: * * GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * * * ****************************************************************************/ #pragma once class COptionsDirectoriesPage : public CDialogImpl, public CSettingsPage { BEGIN_MSG_MAP_EX(COptionsDirectoriesPage) COMMAND_ID_HANDLER_EX(IDC_SELECT_PLUGIN_DIR, SelectPluginDir) COMMAND_ID_HANDLER_EX(IDC_SELECT_AUTO_DIR, SelectAutoDir) COMMAND_ID_HANDLER_EX(IDC_SELECT_INSTANT_DIR, SelectInstantDir) COMMAND_ID_HANDLER_EX(IDC_SELECT_SNAP_DIR, SelectSnapShotDir) COMMAND_ID_HANDLER_EX(IDC_SELECT_TEXTURE_DIR, SelectTextureDir) COMMAND_HANDLER_EX(IDC_PLUGIN_DIR, EN_UPDATE, PluginDirChanged) COMMAND_HANDLER_EX(IDC_AUTO_DIR, EN_UPDATE, AutoSaveDirChanged) COMMAND_HANDLER_EX(IDC_INSTANT_DIR, EN_UPDATE, InstantSaveDirChanged) COMMAND_HANDLER_EX(IDC_SNAP_DIR, EN_UPDATE, SnapShotDirChanged) COMMAND_HANDLER_EX(IDC_TEXTURE_DIR, EN_UPDATE, TextureDirChanged) COMMAND_HANDLER_EX(IDC_PLUGIN_DEFAULT, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_PLUGIN_OTHER, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_AUTO_DEFAULT, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_AUTO_OTHER, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_INSTANT_DEFAULT, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_INSTANT_OTHER, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_SNAP_DEFAULT, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_SNAP_OTHER, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_TEXTURE_DEFAULT, BN_CLICKED, UseSelectedClicked) COMMAND_HANDLER_EX(IDC_TEXTURE_OTHER, BN_CLICKED, UseSelectedClicked) END_MSG_MAP() enum { IDD = IDD_Settings_Directory }; public: COptionsDirectoriesPage(HWND hParent, const RECT & rcDispay); LanguageStringID PageTitle(void) { return TAB_DIRECTORY; } void HidePage(void); void ShowPage(void); void ApplySettings(bool UpdateScreen); bool EnableReset(void); void ResetPage(void); private: void SelectPluginDir(UINT Code, int id, HWND ctl); void SelectAutoDir(UINT Code, int id, HWND ctl); void SelectInstantDir(UINT Code, int id, HWND ctl); void SelectSnapShotDir(UINT Code, int id, HWND ctl); void SelectTextureDir(UINT Code, int id, HWND ctl); void PluginDirChanged(UINT Code, int id, HWND ctl); void AutoSaveDirChanged(UINT Code, int id, HWND ctl); void InstantSaveDirChanged(UINT Code, int id, HWND ctl); void SnapShotDirChanged(UINT Code, int id, HWND ctl); void TextureDirChanged(UINT Code, int id, HWND ctl); void UseSelectedClicked(UINT Code, int id, HWND ctl); void UpdatePageSettings(void); void SelectDirectory(LanguageStringID Title, CModifiedEditBox & EditBox, CModifiedButton & Default, CModifiedButton & selected); void UpdateDirectory(CModifiedEditBox & EditBox, SettingID Type); void UpdateDefaultSelected(CModifiedButton & Button, SettingID Type); void ResetDirectory(CModifiedEditBox & EditBox, SettingID Type); void ResetDefaultSelected(CModifiedButton & ButtonDefault, CModifiedButton & ButtonSelected, SettingID Type); static int CALLBACK SelectDirCallBack(HWND hwnd, DWORD uMsg, DWORD lp, DWORD lpData); CPartialGroupBox m_PluginGroup, m_AutoSaveGroup, m_InstantSaveGroup, m_ScreenShotGroup, m_TextureGroup; CModifiedEditBox m_PluginDir, m_AutoSaveDir, m_InstantSaveDir, m_ScreenShotDir, m_TextureDir; CModifiedButton m_PluginDefault, m_PluginSelected, m_AutoSaveDefault, m_AutoSaveSelected, m_InstantDefault, m_InstantSelected, m_ScreenShotDefault, m_ScreenShotSelected, m_TextureDefault, m_TextureSelected; bool m_InUpdateSettings; };