project64/Source/Project64/User Interface/Settings/Settings Page - Plugin.h

69 lines
3.4 KiB
C++

/****************************************************************************
* *
* 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 <Plugin.h>
class COptionPluginPage :
public CSettingsPageImpl<COptionPluginPage>,
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;
};