/**************************************************************************** * * * Project 64 - 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 #include class COptionPluginPage : public CSettingsPageImpl, public CSettingsPage { BEGIN_MSG_MAP_EX(COptionPluginPage) COMMAND_HANDLER_EX(GFX_LIST,LBN_SELCHANGE,GfxPluginChanged) COMMAND_HANDLER_EX(AUDIO_LIST,LBN_SELCHANGE,AudioPluginChanged) COMMAND_HANDLER_EX(CONT_LIST,LBN_SELCHANGE,ControllerPluginChanged) COMMAND_HANDLER_EX(RSP_LIST,LBN_SELCHANGE,RspPluginChanged) COMMAND_ID_HANDLER_EX(GFX_ABOUT,GfxPluginAbout) COMMAND_ID_HANDLER_EX(AUDIO_ABOUT,AudioPluginAbout) COMMAND_ID_HANDLER_EX(CONT_ABOUT,ControllerPluginAbout) COMMAND_ID_HANDLER_EX(RSP_ABOUT,RspPluginAbout) COMMAND_ID_HANDLER_EX(IDC_HLE_GFX,HleGfxChanged) COMMAND_ID_HANDLER_EX(IDC_HLE_AUDIO,HleAudioChanged) END_MSG_MAP() enum { IDD = IDD_Settings_PlugSel }; public: COptionPluginPage(HWND hParent, const RECT & rcDispay ); LanguageStringID PageTitle ( void ) { return TAB_PLUGIN; } void HidePage ( void ); void ShowPage ( void ); void ApplySettings ( bool UpdateScreen ); bool EnableReset ( void ); void ResetPage ( void ); private: void GfxPluginAbout ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { ShowAboutButton(GFX_LIST); } void AudioPluginAbout ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { ShowAboutButton(AUDIO_LIST); } void ControllerPluginAbout ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { ShowAboutButton(CONT_LIST); } void RspPluginAbout ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { ShowAboutButton(RSP_LIST); } void GfxPluginChanged ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { PluginItemChanged(GFX_LIST,GFX_ABOUT); } void AudioPluginChanged ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { PluginItemChanged(AUDIO_LIST,AUDIO_ABOUT); } void ControllerPluginChanged ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { PluginItemChanged(CONT_LIST,CONT_ABOUT); } void RspPluginChanged ( UINT /*Code*/, int /*id*/, HWND /*ctl*/ ) { PluginItemChanged(RSP_LIST,RSP_ABOUT); } void HleGfxChanged ( UINT Code, int id, HWND ctl ); void HleAudioChanged ( UINT Code, int id, HWND ctl ); void ShowAboutButton ( int id ); void PluginItemChanged ( int id, int AboutID, bool bSetChanged = true ); void AddPlugins (int ListId,SettingID Type, PLUGIN_TYPE PluginType ); void UpdatePageSettings ( void ); void ApplyComboBoxes ( void ); bool ResetComboBox ( CModifiedComboBox & ComboBox, SettingID Type ); CPartialGroupBox m_GfxGroup, m_AudioGroup, m_ControlGroup, m_RspGroup; CPluginList m_PluginList; };