mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 16:19:28 +01:00
changed ConfigMain and ogl config.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1067 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
1473512180
commit
b6b61f0a9f
@ -194,7 +194,7 @@ void CEXIMemoryCard::SetCS(int cs)
|
||||
if (m_uPosition > 2)
|
||||
{
|
||||
memset(memory_card_content, 0xFF, memory_card_size);
|
||||
status &= ~0x80;
|
||||
status &= ~MC_STATUS_BUSY;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -80,7 +80,6 @@ void AboutDolphin::CreateGUIControls()
|
||||
this->SetSizer(sMain);
|
||||
sMain->Layout();
|
||||
|
||||
SetIcon(wxNullIcon);
|
||||
CenterOnParent();
|
||||
Fit();
|
||||
}
|
||||
|
@ -26,9 +26,7 @@
|
||||
BEGIN_EVENT_TABLE(CConfigMain, wxDialog)
|
||||
|
||||
EVT_CLOSE(CConfigMain::OnClose)
|
||||
EVT_BUTTON(ID_OK, CConfigMain::OKClick)
|
||||
EVT_BUTTON(ID_APPLY, CConfigMain::OKClick)
|
||||
EVT_BUTTON(ID_CANCEL, CConfigMain::OKClick)
|
||||
EVT_BUTTON(ID_CLOSE, CConfigMain::CloseClick)
|
||||
EVT_CHECKBOX(ID_ALLWAYS_HLEBIOS, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_USEDYNAREC, CConfigMain::CoreSettingsChanged)
|
||||
EVT_CHECKBOX(ID_USEDUALCORE, CConfigMain::CoreSettingsChanged)
|
||||
@ -63,7 +61,7 @@ CConfigMain::CConfigMain(wxWindow* parent, wxWindowID id, const wxString& title,
|
||||
: wxDialog(parent, id, title, position, size, style)
|
||||
{
|
||||
bRefreshList = false;
|
||||
|
||||
|
||||
// Load Wii SYSCONF
|
||||
pStream = NULL;
|
||||
pStream = fopen("./WII/shared2/sys/SYSCONF", "rb");
|
||||
@ -86,6 +84,10 @@ CConfigMain::~CConfigMain()
|
||||
|
||||
void CConfigMain::CreateGUIControls()
|
||||
{
|
||||
// Why does this not work? some restriction is needed so that huge
|
||||
// ISO paths dont cause the dialog to become gargantuan
|
||||
SetMaxSize(wxSize(350, 350));
|
||||
|
||||
Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize);
|
||||
|
||||
GeneralPage = new wxPanel(Notebook, ID_GENERALPAGE, wxDefaultPosition, wxDefaultSize);
|
||||
@ -99,17 +101,12 @@ void CConfigMain::CreateGUIControls()
|
||||
PluginPage = new wxPanel(Notebook, ID_PLUGINPAGE, wxDefaultPosition, wxDefaultSize);
|
||||
Notebook->AddPage(PluginPage, wxT("Plugins"));
|
||||
|
||||
OK = new wxButton(this, ID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
Cancel = new wxButton(this, ID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
Apply = new wxButton(this, ID_APPLY, wxT("Apply"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
Apply->Disable();
|
||||
m_Close = new wxButton(this, ID_CLOSE, wxT("Close"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
|
||||
wxBoxSizer* sButtons;
|
||||
sButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||
sButtons->Add(0, 0, 1, wxEXPAND, 5);
|
||||
sButtons->Add(OK, 0, wxALL, 5);
|
||||
sButtons->Add(Cancel, 0, wxALL, 5);
|
||||
sButtons->Add(Apply, 0, wxALL, 5);
|
||||
sButtons->Add(m_Close, 0, wxALL, 5);
|
||||
|
||||
wxBoxSizer* sMain;
|
||||
sMain = new wxBoxSizer(wxVERTICAL);
|
||||
@ -125,7 +122,7 @@ void CConfigMain::CreateGUIControls()
|
||||
UseDualCore->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bUseDualCore);
|
||||
SkipIdle = new wxCheckBox(GeneralPage, ID_IDLESKIP, wxT("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
SkipIdle->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bSkipIdle);
|
||||
EnableCheats = new wxCheckBox(GeneralPage, ID_ENABLECHEATS, wxT("Enable cheats"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
EnableCheats = new wxCheckBox(GeneralPage, ID_ENABLECHEATS, wxT("Enable Cheats"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
EnableCheats->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats);
|
||||
|
||||
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
|
||||
@ -300,46 +297,31 @@ void CConfigMain::CreateGUIControls()
|
||||
sPlugins->Add(sbWiimotePlugin, 0, wxEXPAND|wxALL, 5);
|
||||
PluginPage->SetSizer(sPlugins);
|
||||
sPlugins->Layout();
|
||||
|
||||
SetIcon(wxNullIcon);
|
||||
Fit();
|
||||
Center();
|
||||
}
|
||||
|
||||
void CConfigMain::OnClose(wxCloseEvent& WXUNUSED (event))
|
||||
{
|
||||
Destroy();
|
||||
|
||||
// Save Wii SYSCONF
|
||||
pStream = NULL;
|
||||
pStream = fopen("./WII/shared2/sys/SYSCONF", "wb");
|
||||
if (pStream != NULL)
|
||||
{
|
||||
fwrite(m_SYSCONF, 1, 0x4000, pStream);
|
||||
fclose(pStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
PanicAlert("Could not write to Wii SYSCONF");
|
||||
}
|
||||
}
|
||||
|
||||
void CConfigMain::OKClick(wxCommandEvent& event)
|
||||
void CConfigMain::CloseClick(wxCommandEvent& WXUNUSED (event))
|
||||
{
|
||||
switch (event.GetId())
|
||||
{
|
||||
case ID_OK:
|
||||
DoApply();
|
||||
Destroy();
|
||||
|
||||
// Save Wii SYSCONF
|
||||
pStream = NULL;
|
||||
pStream = fopen("./WII/shared2/sys/SYSCONF", "wb");
|
||||
if (pStream != NULL)
|
||||
{
|
||||
fwrite(m_SYSCONF, 1, 0x4000, pStream);
|
||||
fclose(pStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
PanicAlert("Could not write to Wii SYSCONF");
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_APPLY:
|
||||
DoApply();
|
||||
break;
|
||||
|
||||
case ID_CANCEL:
|
||||
Destroy();
|
||||
break;
|
||||
}
|
||||
Close();
|
||||
}
|
||||
|
||||
void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
||||
@ -464,7 +446,10 @@ void CConfigMain::DVDRootChanged(wxFileDirPickerEvent& WXUNUSED (event))
|
||||
|
||||
void CConfigMain::OnSelectionChanged(wxCommandEvent& WXUNUSED (event))
|
||||
{
|
||||
Apply->Enable();
|
||||
GetFilename(GraphicSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strVideoPlugin);
|
||||
GetFilename(DSPSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDSPPlugin);
|
||||
GetFilename(PADSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strPadPlugin);
|
||||
GetFilename(WiimoteSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strWiimotePlugin);
|
||||
}
|
||||
|
||||
void CConfigMain::OnConfig(wxCommandEvent& event)
|
||||
@ -529,18 +514,6 @@ void CConfigMain::CallConfig(wxChoice* _pChoice)
|
||||
}
|
||||
}
|
||||
|
||||
void CConfigMain::DoApply()
|
||||
{
|
||||
Apply->Disable();
|
||||
|
||||
GetFilename(GraphicSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strVideoPlugin);
|
||||
GetFilename(DSPSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDSPPlugin);
|
||||
GetFilename(PADSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strPadPlugin);
|
||||
GetFilename(WiimoteSelection, SConfig::GetInstance().m_LocalCoreStartupParameter.m_strWiimotePlugin);
|
||||
|
||||
SConfig::GetInstance().SaveSettings();
|
||||
}
|
||||
|
||||
bool CConfigMain::GetFilename(wxChoice* _pChoice, std::string& _rFilename)
|
||||
{
|
||||
_rFilename.clear();
|
||||
|
@ -35,7 +35,7 @@ class CConfigMain
|
||||
|
||||
CConfigMain(wxWindow* parent, wxWindowID id = 1, const wxString& title = wxT("Dolphin Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = CONFIG_MAIN_STYLE);
|
||||
virtual ~CConfigMain();
|
||||
void OKClick(wxCommandEvent& event);
|
||||
void CloseClick(wxCommandEvent& event);
|
||||
void OnSelectionChanged(wxCommandEvent& event);
|
||||
void OnConfig(wxCommandEvent& event);
|
||||
|
||||
@ -73,9 +73,7 @@ class CConfigMain
|
||||
wxPanel *PathsPage;
|
||||
wxPanel *PluginPage;
|
||||
|
||||
wxButton* OK;
|
||||
wxButton* Cancel;
|
||||
wxButton* Apply;
|
||||
wxButton* m_Close;
|
||||
|
||||
wxCheckBox* AllwaysHLEBIOS;
|
||||
wxCheckBox* UseDynaRec;
|
||||
@ -190,9 +188,7 @@ class CConfigMain
|
||||
ID_WIIPAGE,
|
||||
ID_PATHSPAGE,
|
||||
ID_PLUGINPAGE,
|
||||
ID_CANCEL,
|
||||
ID_APPLY,
|
||||
ID_OK,
|
||||
ID_CLOSE,
|
||||
ID_ALLWAYS_HLEBIOS,
|
||||
ID_USEDYNAREC,
|
||||
ID_USEDUALCORE,
|
||||
@ -227,16 +223,14 @@ class CConfigMain
|
||||
ID_PAD_ABOUT ,
|
||||
ID_PAD_CONFIG,
|
||||
ID_PAD_CB,
|
||||
ID_DSP_ABOUT ,
|
||||
ID_DSP_ABOUT,
|
||||
ID_DSP_CONFIG,
|
||||
ID_DSP_TEXT,
|
||||
ID_DSP_CB,
|
||||
ID_GRAPHIC_ABOUT ,
|
||||
ID_GRAPHIC_ABOUT,
|
||||
ID_GRAPHIC_CONFIG,
|
||||
ID_GRAPHIC_TEXT,
|
||||
ID_GRAPHIC_CB,
|
||||
|
||||
ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
|
||||
ID_GRAPHIC_CB
|
||||
};
|
||||
|
||||
void CreateGUIControls();
|
||||
@ -252,9 +246,6 @@ class CConfigMain
|
||||
void FillChoiceBox(wxChoice* _pChoice, int _PluginType, const std::string& _SelectFilename);
|
||||
|
||||
void CallConfig(wxChoice* _pChoice);
|
||||
//void CallAbout(wxChoice* _pChoice);
|
||||
|
||||
void DoApply();
|
||||
|
||||
bool GetFilename(wxChoice* _pChoice, std::string& _rFilename);
|
||||
};
|
||||
|
@ -383,18 +383,8 @@ void CFrame::OnHelp(wxCommandEvent& event)
|
||||
{
|
||||
case IDM_HELPABOUT:
|
||||
{
|
||||
#ifdef _WIN32
|
||||
wxWindow win;
|
||||
win.SetHWND(this->GetHWND());
|
||||
AboutDolphin frame(&win);
|
||||
frame.ShowModal();
|
||||
win.SetHWND(0);
|
||||
#else
|
||||
wxWindow win;
|
||||
AboutDolphin frame(&win);
|
||||
frame.ShowModal();
|
||||
|
||||
#endif
|
||||
AboutDolphin frame(this);
|
||||
frame.ShowModal();
|
||||
break;
|
||||
}
|
||||
case IDM_HELPWEBSITE:
|
||||
|
@ -572,7 +572,7 @@ void CGameListCtrl::OnDeleteGCM(wxCommandEvent& WXUNUSED (event))
|
||||
const GameListItem *iso = GetSelectedISO();
|
||||
if (!iso)
|
||||
return;
|
||||
if (wxMessageBox(_T("Are you sure you want to delete this file?"),
|
||||
if (wxMessageBox(_T("Are you sure you want to delete this file?\nIt will be gone forever!"),
|
||||
wxMessageBoxCaptionStr, wxYES_NO|wxICON_EXCLAMATION) == wxYES)
|
||||
{
|
||||
File::Delete(iso->GetFileName().c_str());
|
||||
|
@ -66,6 +66,7 @@ ConfigDialog::ConfigDialog(wxWindow *parent, wxWindowID id, const wxString &titl
|
||||
#endif
|
||||
clickedButton = NULL;
|
||||
CreateGUIControls();
|
||||
Fit();
|
||||
}
|
||||
|
||||
ConfigDialog::~ConfigDialog()
|
||||
@ -233,9 +234,6 @@ void ConfigDialog::CreateGUIControls()
|
||||
m_Controller[i]->SetSizer(sPage[i]);
|
||||
sPage[i]->Layout();
|
||||
}
|
||||
|
||||
SetIcon(wxNullIcon);
|
||||
Fit();
|
||||
}
|
||||
|
||||
void ConfigDialog::OnClose(wxCloseEvent& event)
|
||||
|
@ -70,14 +70,12 @@ void Config::Load()
|
||||
iniFile.Get("Settings", "WireFrame", &bWireFrame, 0);
|
||||
iniFile.Get("Settings", "DisableLighting", &bDisableLighting, 0);
|
||||
iniFile.Get("Settings", "DisableTexturing", &bDisableTexturing, 0);
|
||||
iniFile.Get("Settings", "DisableCulling", &bDisableCulling, 0);
|
||||
|
||||
iniFile.Get("Enhancements", "ForceFiltering", &bForceFiltering, 0);
|
||||
iniFile.Get("Enhancements", "ForceMaxAniso", &bForceMaxAniso, 0);
|
||||
iniFile.Get("Enhancements", "StretchToFit", &bStretchToFit, false);
|
||||
iniFile.Get("Enhancements", "KeepAR", &bKeepAR, false);
|
||||
|
||||
iniFile.Get("Hacks", "InvertDepth", &bInvertDepth, 0);
|
||||
iniFile.Get("Hacks", "EFBToTextureDisable", &bEBFToTextureDisable, 0);
|
||||
}
|
||||
|
||||
@ -104,14 +102,12 @@ void Config::Save()
|
||||
iniFile.Set("Settings", "Wireframe", bWireFrame);
|
||||
iniFile.Set("Settings", "DisableLighting", bDisableLighting);
|
||||
iniFile.Set("Settings", "DisableTexturing", bDisableTexturing);
|
||||
iniFile.Set("Settings", "DisableCulling", bDisableCulling);
|
||||
|
||||
iniFile.Set("Enhancements", "ForceFiltering", bForceFiltering);
|
||||
iniFile.Set("Enhancements", "ForceMaxAniso", bForceMaxAniso);
|
||||
iniFile.Set("Enhancements", "StretchToFit", bStretchToFit);
|
||||
iniFile.Set("Enhancements", "KeepAR", bKeepAR);
|
||||
|
||||
iniFile.Set("Hacks", "InvertDepth", bInvertDepth);
|
||||
iniFile.Set("Hacks", "EFBToTextureDisable", bEBFToTextureDisable);
|
||||
|
||||
iniFile.Save("gfx_opengl.ini");
|
||||
|
@ -54,14 +54,12 @@ struct Config
|
||||
bool bWireFrame;
|
||||
bool bDisableLighting;
|
||||
bool bDisableTexturing;
|
||||
bool bDisableCulling;
|
||||
|
||||
// Utility
|
||||
char texDumpPath[280];
|
||||
bool bDumpTextures;
|
||||
|
||||
// Hacks
|
||||
bool bInvertDepth;
|
||||
bool bEBFToTextureDisable;
|
||||
|
||||
int iLog; // CONF_ bits
|
||||
|
@ -26,29 +26,27 @@ BEGIN_EVENT_TABLE(ConfigDialog,wxDialog)
|
||||
EVT_CLOSE(ConfigDialog::OnClose)
|
||||
EVT_BUTTON(ID_CANCEL,ConfigDialog::OKClick)
|
||||
EVT_BUTTON(ID_OK,ConfigDialog::OKClick)
|
||||
EVT_BUTTON(ID_GRAPHIC_ABOUT,ConfigDialog::DllAbout)
|
||||
EVT_CHECKBOX(ID_FULLSCREEN,ConfigDialog::FullScreenCheck)
|
||||
EVT_CHECKBOX(ID_RENDERTOMAINWINDOW,ConfigDialog::RenderMainCheck)
|
||||
EVT_COMBOBOX(ID_FULLSCREENCB,ConfigDialog::FSCB)
|
||||
EVT_COMBOBOX(ID_WINDOWRESOLUTIONCB,ConfigDialog::WMCB)
|
||||
EVT_COMBOBOX(ID_ALIASMODECB,ConfigDialog::AACB)
|
||||
EVT_CHECKBOX(ID_FORCEFILTERING,ConfigDialog::ForceFilteringCheck)
|
||||
EVT_CHECKBOX(ID_FORCEANISOTROPY,ConfigDialog::ForceAnisotropyCheck)
|
||||
EVT_CHECKBOX(ID_STRETCHTOFIT,ConfigDialog::StretchToFitCheck)
|
||||
EVT_CHECKBOX(ID_KEEPAR,ConfigDialog::KeepARCheck)
|
||||
EVT_CHECKBOX(ID_WIREFRAME,ConfigDialog::WireframeCheck)
|
||||
EVT_CHECKBOX(ID_SHOWFPS,ConfigDialog::ShowFPSCheck)
|
||||
EVT_CHECKBOX(ID_STATISTICS,ConfigDialog::OverlayCheck)
|
||||
EVT_CHECKBOX(ID_SHADERERRORS,ConfigDialog::ShowShaderErrorsCheck)
|
||||
EVT_CHECKBOX(ID_TEXFMTOVERLAY,ConfigDialog::TexFmtOverlayChange)
|
||||
EVT_CHECKBOX(ID_TEXFMTCENTER,ConfigDialog::TexFmtOverlayChange)
|
||||
EVT_CHECKBOX(ID_USEXFB,ConfigDialog::UseXFBChange)
|
||||
EVT_CHECKBOX(ID_DUMPTEXTURES,ConfigDialog::DumpTexturesChange)
|
||||
EVT_CHECKBOX(ID_INVERTDEPTH,ConfigDialog::InvertDepth)
|
||||
EVT_CHECKBOX(ID_DISABLELIGHTING,ConfigDialog::DisableLighting)
|
||||
EVT_CHECKBOX(ID_DISABLETEXTURING,ConfigDialog::DisableTexturing)
|
||||
EVT_CHECKBOX(ID_EFBTOTEXTUREDISABLE,ConfigDialog::EFBToTextureDisable)
|
||||
EVT_CHECKBOX(ID_DISABLECULLING,ConfigDialog::DisableCulling)
|
||||
EVT_BUTTON(ID_ABOUTOGL,ConfigDialog::AboutClick)
|
||||
EVT_CHECKBOX(ID_FULLSCREEN,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_RENDERTOMAINWINDOW,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_COMBOBOX(ID_FULLSCREENCB,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_COMBOBOX(ID_WINDOWRESOLUTIONCB,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_COMBOBOX(ID_ALIASMODECB,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_FORCEFILTERING,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_FORCEANISOTROPY,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_STRETCHTOFIT,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_KEEPAR,ConfigDialog::GeneralSettingsChanged)
|
||||
EVT_CHECKBOX(ID_WIREFRAME,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_SHOWFPS,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_STATISTICS,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_SHADERERRORS,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_TEXFMTOVERLAY,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_TEXFMTCENTER,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_USEXFB,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DUMPTEXTURES,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DISABLELIGHTING,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DISABLETEXTURING,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_CHECKBOX(ID_EFBTOTEXTUREDISABLE,ConfigDialog::AdvancedSettingsChanged)
|
||||
EVT_DIRPICKER_CHANGED(ID_TEXTUREPATH,ConfigDialog::TexturePathChange)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
@ -65,33 +63,19 @@ ConfigDialog::~ConfigDialog()
|
||||
|
||||
void ConfigDialog::CreateGUIControls()
|
||||
{
|
||||
//notebook
|
||||
// Notebook
|
||||
m_Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize);
|
||||
|
||||
m_PageGeneral = new wxPanel(m_Notebook, ID_PAGEGENERAL, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageGeneral, wxT("General"));
|
||||
m_PageAdvanced = new wxPanel(m_Notebook, ID_PAGEADVANCED, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageAdvanced, wxT("Advanced"));
|
||||
|
||||
m_PageEnhancements = new wxPanel(m_Notebook, ID_PAGEENHANCEMENTS, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageEnhancements, wxT("Enhancements"));
|
||||
|
||||
m_PageInformation = new wxPanel(m_Notebook, ID_PAGEINFORMATION, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageInformation, wxT("Info"));
|
||||
|
||||
m_PageRender = new wxPanel(m_Notebook, ID_PAGERENDER, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageRender, wxT("Render"));
|
||||
|
||||
m_PageUtility = new wxPanel(m_Notebook, ID_PAGEUTILITY, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageUtility, wxT("Util"));
|
||||
|
||||
m_PageHacks = new wxPanel(m_Notebook, ID_PAGEHACKS, wxDefaultPosition, wxDefaultSize);
|
||||
m_Notebook->AddPage(m_PageHacks, wxT("Hacks"));
|
||||
|
||||
//buttons
|
||||
m_About = new wxButton(this, ID_GRAPHIC_ABOUT, wxT("About"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
// Buttons
|
||||
m_About = new wxButton(this, ID_ABOUTOGL, wxT("About"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_OK = new wxButton(this, ID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Cancel = new wxButton(this, ID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
|
||||
//put notebook and buttons in sizers
|
||||
// Put notebook and buttons in sizers
|
||||
wxBoxSizer* sButtons;
|
||||
sButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||
sButtons->Add(m_About, 0, wxALL, 5);
|
||||
@ -107,171 +91,136 @@ void ConfigDialog::CreateGUIControls()
|
||||
this->SetSizer(sMain);
|
||||
this->Layout();
|
||||
|
||||
// Page 1 "General"
|
||||
// General
|
||||
sbBasic = new wxStaticBoxSizer(wxVERTICAL, m_PageGeneral, wxT("Basic Settings"));
|
||||
m_Fullscreen = new wxCheckBox(m_PageGeneral, ID_FULLSCREEN, wxT("Fullscreen"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Fullscreen->SetValue(g_Config.bFullscreen);
|
||||
|
||||
m_RenderToMainWindow = new wxCheckBox(m_PageGeneral, ID_RENDERTOMAINWINDOW, wxT("Render to main window"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_RenderToMainWindow->SetValue(g_Config.renderToMainframe);
|
||||
|
||||
m_StretchToFit = new wxCheckBox(m_PageGeneral, ID_STRETCHTOFIT, wxT("Stretch to fit (instead of changing res.)"),
|
||||
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_StretchToFit = new wxCheckBox(m_PageGeneral, ID_STRETCHTOFIT, wxT("Stretch to fit (instead of changing res.)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_StretchToFit->SetValue(g_Config.bStretchToFit);
|
||||
|
||||
m_KeepAR = new wxCheckBox(m_PageGeneral, ID_KEEPAR, wxT("Keep 4:3 aspect ratio"),
|
||||
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_KeepAR = new wxCheckBox(m_PageGeneral, ID_KEEPAR, wxT("Keep 4:3 aspect ratio"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_KeepAR->SetValue(g_Config.bKeepAR);
|
||||
|
||||
wxStaticText *FSText = new wxStaticText(m_PageGeneral, ID_FSTEXT, wxT("Fullscreen video mode:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
wxArrayString arrayStringFor_FullscreenCB;
|
||||
m_FullscreenCB = new wxComboBox(m_PageGeneral, ID_FULLSCREENCB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenCB, 0, wxDefaultValidator);
|
||||
m_FullscreenCB->SetValue(wxString::FromAscii(g_Config.iFSResolution));
|
||||
|
||||
wxStaticText *WMText = new wxStaticText(m_PageGeneral, ID_WMTEXT, wxT("Windowed resolution:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
wxArrayString arrayStringFor_WindowResolutionCB;
|
||||
m_WindowResolutionCB = new wxComboBox(m_PageGeneral, ID_WINDOWRESOLUTIONCB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_WindowResolutionCB, 0, wxDefaultValidator);
|
||||
m_WindowResolutionCB->SetValue(wxString::FromAscii(g_Config.iWindowedRes));
|
||||
|
||||
// Page 2 "Enhancements"
|
||||
m_ForceFiltering = new wxCheckBox(m_PageEnhancements, ID_FORCEFILTERING, wxT("Force bi/trilinear filtering (May cause small glitches)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
// Enhancements
|
||||
sbEnhancements = new wxStaticBoxSizer(wxVERTICAL, m_PageGeneral, wxT("Enhancements"));
|
||||
m_ForceFiltering = new wxCheckBox(m_PageGeneral, ID_FORCEFILTERING, wxT("Force bi/trilinear filtering (May cause small glitches)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_ForceFiltering->SetValue(g_Config.bForceFiltering);
|
||||
|
||||
//TODO: make the following work ^^
|
||||
m_ForceAnisotropy = new wxCheckBox(m_PageEnhancements, ID_FORCEANISOTROPY, wxT("Force maximum anisotropy filtering"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_ForceAnisotropy = new wxCheckBox(m_PageGeneral, ID_FORCEANISOTROPY, wxT("Force maximum anisotropy filtering"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
//m_ForceAnisotropy->SetValue(g_Config.bForceMaxAniso);
|
||||
m_ForceAnisotropy->Enable(false);
|
||||
|
||||
wxStaticText *AAText = new wxStaticText(m_PageEnhancements, ID_AATEXT, wxT("Anti-alias mode:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
wxStaticText *AAText = new wxStaticText(m_PageGeneral, ID_AATEXT, wxT("Anti-alias mode:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
wxArrayString arrayStringFor_AliasModeCB;
|
||||
m_AliasModeCB = new wxComboBox(m_PageEnhancements, ID_ALIASMODECB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_AliasModeCB, 0, wxDefaultValidator);
|
||||
m_AliasModeCB = new wxComboBox(m_PageGeneral, ID_ALIASMODECB, wxEmptyString, wxDefaultPosition, wxDefaultSize, arrayStringFor_AliasModeCB, 0, wxDefaultValidator);
|
||||
wxString tmp;
|
||||
tmp<<g_Config.iMultisampleMode;
|
||||
m_AliasModeCB->SetValue(tmp);
|
||||
|
||||
// Page 3 "Information"
|
||||
m_ShowFPS = new wxCheckBox(m_PageInformation, ID_SHOWFPS, wxT("Overlay FPS"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
sGeneral = new wxBoxSizer(wxVERTICAL);
|
||||
sBasic = new wxGridBagSizer(0, 0);
|
||||
sBasic->Add(m_Fullscreen, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sBasic->Add(m_RenderToMainWindow, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sBasic->Add(m_StretchToFit, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sBasic->Add(m_KeepAR, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sBasic->Add(FSText, wxGBPosition(4, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sBasic->Add(m_FullscreenCB, wxGBPosition(4, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
sBasic->Add(WMText, wxGBPosition(5, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sBasic->Add(m_WindowResolutionCB, wxGBPosition(5, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
sbBasic->Add(sBasic);
|
||||
sGeneral->Add(sbBasic, 0, wxEXPAND|wxALL, 5);
|
||||
|
||||
sEnhancements = new wxGridBagSizer(0, 0);
|
||||
sEnhancements->Add(m_ForceFiltering, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sEnhancements->Add(m_ForceAnisotropy, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sEnhancements->Add(AAText, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sEnhancements->Add(m_AliasModeCB, wxGBPosition(2, 1), wxGBSpan(1, 2), wxALL, 5);
|
||||
sbEnhancements->Add(sEnhancements);
|
||||
sGeneral->Add(sbEnhancements, 0, wxEXPAND|wxALL, 5);
|
||||
m_PageGeneral->SetSizer(sGeneral);
|
||||
sGeneral->Layout();
|
||||
|
||||
// Information
|
||||
sbInfo = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Info"));
|
||||
m_ShowFPS = new wxCheckBox(m_PageAdvanced, ID_SHOWFPS, wxT("Overlay FPS"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_ShowFPS->SetValue(g_Config.bShowFPS);
|
||||
|
||||
m_Statistics = new wxCheckBox(m_PageInformation, ID_STATISTICS, wxT("Overlay some statistics"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Statistics = new wxCheckBox(m_PageAdvanced, ID_STATISTICS, wxT("Overlay some statistics"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Statistics->SetValue(g_Config.bOverlayStats);
|
||||
|
||||
m_ShaderErrors = new wxCheckBox(m_PageInformation, ID_SHADERERRORS, wxT("Show shader compilation issues"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_ShaderErrors = new wxCheckBox(m_PageAdvanced, ID_SHADERERRORS, wxT("Show shader compilation issues"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
//m_ShaderErrors->SetValue(g_Config.bShowShaderErrors);
|
||||
m_ShaderErrors->Enable(false);
|
||||
|
||||
m_TexFmtOverlay = new wxCheckBox(m_PageInformation, ID_TEXFMTOVERLAY, wxT("Overlay texture format"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_TexFmtOverlay = new wxCheckBox(m_PageAdvanced, ID_TEXFMTOVERLAY, wxT("Overlay texture format"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_TexFmtOverlay->SetValue(g_Config.bTexFmtOverlayEnable);
|
||||
m_TexFmtCenter = new wxCheckBox(m_PageInformation, ID_TEXFMTCENTER, wxT("centered"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_TexFmtCenter = new wxCheckBox(m_PageAdvanced, ID_TEXFMTCENTER, wxT("centered"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_TexFmtCenter->SetValue(g_Config.bTexFmtOverlayCenter);
|
||||
m_TexFmtCenter->Enable(m_TexFmtOverlay->IsChecked());
|
||||
|
||||
// Page 4 "Render"
|
||||
m_UseXFB = new wxCheckBox(m_PageRender, ID_USEXFB, wxT("Use External Framebuffer (XFB)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
// Render
|
||||
sbRendering = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Rendering"));
|
||||
m_UseXFB = new wxCheckBox(m_PageAdvanced, ID_USEXFB, wxT("Use External Framebuffer (XFB)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_UseXFB->SetValue(g_Config.bUseXFB);
|
||||
|
||||
m_Wireframe = new wxCheckBox(m_PageRender, ID_WIREFRAME, wxT("Enable Wireframe"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Wireframe = new wxCheckBox(m_PageAdvanced, ID_WIREFRAME, wxT("Enable Wireframe"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_Wireframe->SetValue(g_Config.bWireFrame);
|
||||
m_Wireframe->Enable(true);
|
||||
|
||||
m_DisableLighting = new wxCheckBox(m_PageRender, ID_DISABLELIGHTING, wxT("Disable Material Lighting"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DisableLighting = new wxCheckBox(m_PageAdvanced, ID_DISABLELIGHTING, wxT("Disable Material Lighting"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DisableLighting->SetValue(g_Config.bDisableLighting);
|
||||
m_DisableLighting->Enable(true);
|
||||
|
||||
m_DisableTexturing = new wxCheckBox(m_PageRender, ID_DISABLETEXTURING, wxT("Disable Texturing"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DisableTexturing = new wxCheckBox(m_PageAdvanced, ID_DISABLETEXTURING, wxT("Disable Texturing"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DisableTexturing->SetValue(g_Config.bDisableTexturing);
|
||||
m_DisableTexturing->Enable(true);
|
||||
|
||||
m_DisableCulling = new wxCheckBox(m_PageRender, ID_DISABLECULLING, wxT("Disable Culling"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DisableCulling->SetValue(g_Config.bDisableCulling);
|
||||
m_DisableCulling->Enable(true);
|
||||
|
||||
// Page 5 "Utility"
|
||||
m_DumpTextures = new wxCheckBox(m_PageUtility, ID_DUMPTEXTURES, wxT("Dump textures to:"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
// Utility
|
||||
sbUtilities = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Utilities"));
|
||||
m_DumpTextures = new wxCheckBox(m_PageAdvanced, ID_DUMPTEXTURES, wxT("Dump textures to:"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_DumpTextures->SetValue(g_Config.bDumpTextures);
|
||||
m_TexturePath = new wxDirPickerCtrl(m_PageUtility, ID_TEXTUREPATH, wxEmptyString, wxT("Choose a directory to store texture dumps:"), wxDefaultPosition, wxDefaultSize, wxDIRP_USE_TEXTCTRL);
|
||||
m_TexturePath = new wxDirPickerCtrl(m_PageAdvanced, ID_TEXTUREPATH, wxEmptyString, wxT("Choose a directory to store texture dumps:"), wxDefaultPosition, wxDefaultSize, wxDIRP_USE_TEXTCTRL);
|
||||
m_TexturePath->SetPath(wxString::FromAscii(g_Config.texDumpPath));
|
||||
m_TexturePath->Enable(m_DumpTextures->IsChecked());
|
||||
|
||||
// Page 6 "Hacks"
|
||||
m_InvertDepth = new wxCheckBox(m_PageHacks, ID_INVERTDEPTH, wxT("Invert Depth"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_InvertDepth->Enable(true);
|
||||
m_InvertDepth->SetValue(g_Config.bInvertDepth);
|
||||
|
||||
m_EFBToTextureDisable = new wxCheckBox(m_PageHacks, ID_EFBTOTEXTUREDISABLE, wxT("Disable copy EFB to texture"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
// Hacks
|
||||
sbHacks = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Hacks"));
|
||||
m_EFBToTextureDisable = new wxCheckBox(m_PageAdvanced, ID_EFBTOTEXTUREDISABLE, wxT("Disable copy EFB to texture"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
m_EFBToTextureDisable->Enable(true);
|
||||
m_EFBToTextureDisable->SetValue(g_Config.bEBFToTextureDisable);
|
||||
|
||||
//Put options in sizers within the notebook
|
||||
wxGridBagSizer* sPage1;
|
||||
sPage1 = new wxGridBagSizer(0, 0);
|
||||
sPage1->SetFlexibleDirection(wxBOTH);
|
||||
sPage1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage1->Add(m_Fullscreen, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage1->Add(m_RenderToMainWindow, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage1->Add(m_StretchToFit, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage1->Add(m_KeepAR, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage1->Add(FSText, wxGBPosition(4, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sPage1->Add(m_FullscreenCB, wxGBPosition(4, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
sPage1->Add(WMText, wxGBPosition(5, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sPage1->Add(m_WindowResolutionCB, wxGBPosition(5, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
m_PageGeneral->SetSizer(sPage1);
|
||||
sPage1->Layout();
|
||||
sAdvanced = new wxBoxSizer(wxVERTICAL);
|
||||
sInfo = new wxGridBagSizer(0, 0);
|
||||
sInfo->Add(m_ShowFPS, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sInfo->Add(m_ShaderErrors, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sInfo->Add(m_Statistics, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sInfo->Add(m_TexFmtOverlay, wxGBPosition(3, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sInfo->Add(m_TexFmtCenter, wxGBPosition(3, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
sbInfo->Add(sInfo);
|
||||
sAdvanced->Add(sbInfo, 0, wxEXPAND|wxALL, 5);
|
||||
|
||||
wxGridBagSizer* sPage2;
|
||||
sPage2 = new wxGridBagSizer(0, 0);
|
||||
sPage2->SetFlexibleDirection(wxBOTH);
|
||||
sPage2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage2->Add(m_ForceFiltering, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage2->Add(m_ForceAnisotropy, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage2->Add(AAText, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sPage2->Add(m_AliasModeCB, wxGBPosition(2, 1), wxGBSpan(1, 2), wxALL, 5);
|
||||
m_PageEnhancements->SetSizer(sPage2);
|
||||
sPage2->Layout();
|
||||
sRendering = new wxGridBagSizer(0, 0);
|
||||
sRendering->Add(m_UseXFB, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sRendering->Add(m_Wireframe, wxGBPosition(1, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sRendering->Add(m_DisableLighting, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sRendering->Add(m_DisableTexturing, wxGBPosition(3, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sbRendering->Add(sRendering);
|
||||
sAdvanced->Add(sbRendering, 0, wxEXPAND|wxALL, 5);
|
||||
|
||||
wxGridBagSizer* sPage3;
|
||||
sPage3 = new wxGridBagSizer(0, 0);
|
||||
sPage3->SetFlexibleDirection(wxBOTH);
|
||||
sPage3->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage3->Add(m_ShowFPS, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage3->Add(m_ShaderErrors, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage3->Add(m_Statistics, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage3->Add(m_TexFmtOverlay, wxGBPosition(3, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sPage3->Add(m_TexFmtCenter, wxGBPosition(3, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
m_PageInformation->SetSizer(sPage3);
|
||||
sPage3->Layout();
|
||||
sUtilities = new wxGridBagSizer(0, 0);
|
||||
sUtilities->Add(m_DumpTextures, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sUtilities->Add(m_TexturePath, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
sbUtilities->Add(sUtilities);
|
||||
sAdvanced->Add(sbUtilities, 0, wxEXPAND|wxALL, 5);
|
||||
|
||||
wxGridBagSizer* sPage4;
|
||||
sPage4 = new wxGridBagSizer(0, 0);
|
||||
sPage4->SetFlexibleDirection(wxBOTH);
|
||||
sPage4->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage4->Add(m_UseXFB, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sPage4->Add(m_Wireframe, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage4->Add(m_DisableLighting, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage4->Add(m_DisableTexturing, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage4->Add(m_DisableCulling, wxGBPosition(4, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
m_PageRender->SetSizer(sPage4);
|
||||
sPage4->Layout();
|
||||
sHacks = new wxGridBagSizer(0, 0);
|
||||
sHacks->Add(m_EFBToTextureDisable, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||
sbHacks->Add(sHacks);
|
||||
sAdvanced->Add(sbHacks, 0, wxEXPAND|wxALL, 5);
|
||||
m_PageAdvanced->SetSizer(sAdvanced);
|
||||
sAdvanced->Layout();
|
||||
|
||||
wxGridBagSizer* sPage5;
|
||||
sPage5 = new wxGridBagSizer(0, 0);
|
||||
sPage5->SetFlexibleDirection(wxBOTH);
|
||||
sPage5->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage5->Add(m_DumpTextures, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
sPage5->Add(m_TexturePath, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL, 5);
|
||||
m_PageUtility->SetSizer(sPage5);
|
||||
sPage5->Layout();
|
||||
|
||||
wxGridBagSizer* sPage6;
|
||||
sPage6 = new wxGridBagSizer(0, 0);
|
||||
sPage6->SetFlexibleDirection(wxBOTH);
|
||||
sPage6->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||
sPage6->Add(m_InvertDepth, wxGBPosition(0, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
sPage6->Add(m_EFBToTextureDisable, wxGBPosition(1, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||
m_PageHacks->SetSizer(sPage6);
|
||||
sPage6->Layout();
|
||||
|
||||
SetIcon(wxNullIcon);
|
||||
Fit();
|
||||
Center();
|
||||
}
|
||||
|
||||
void ConfigDialog::OnClose(wxCloseEvent& event)
|
||||
@ -293,43 +242,15 @@ void ConfigDialog::OKClick(wxCommandEvent& event)
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigDialog::FullScreenCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bFullscreen = m_Fullscreen->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::RenderMainCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.renderToMainframe = m_RenderToMainWindow->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::StretchToFitCheck(wxCommandEvent& event) // stretch
|
||||
{
|
||||
g_Config.bStretchToFit = m_StretchToFit->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::KeepARCheck(wxCommandEvent& event) // keep AR
|
||||
{
|
||||
g_Config.bKeepAR = m_KeepAR->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::AddFSReso(char *reso)
|
||||
{
|
||||
m_FullscreenCB->Append(wxString::FromAscii(reso));
|
||||
}
|
||||
|
||||
void ConfigDialog::FSCB(wxCommandEvent& event)
|
||||
{
|
||||
strcpy(g_Config.iFSResolution, m_FullscreenCB->GetValue().mb_str() );
|
||||
}
|
||||
void ConfigDialog::AddWindowReso(char *reso)
|
||||
{
|
||||
m_WindowResolutionCB->Append(wxString::FromAscii(reso));
|
||||
}
|
||||
void ConfigDialog::WMCB(wxCommandEvent& event)
|
||||
{
|
||||
strcpy(g_Config.iWindowedRes, m_WindowResolutionCB->GetValue().mb_str() );
|
||||
}
|
||||
|
||||
void ConfigDialog::AddAAMode(int mode)
|
||||
{
|
||||
@ -338,98 +259,97 @@ void ConfigDialog::AddAAMode(int mode)
|
||||
m_AliasModeCB->Append(tmp);
|
||||
}
|
||||
|
||||
void ConfigDialog::AACB(wxCommandEvent& event)
|
||||
void ConfigDialog::AboutClick(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.iMultisampleMode = atoi(m_AliasModeCB->GetValue().mb_str());
|
||||
wxMessageBox(_T("Dolphin OpenGL Plugin\nBy zerofrog(@gmail.com)\n\n"
|
||||
"A card supporting Vertex/Pixel Shader 2.0 or higher, framebuffer objects, "
|
||||
"and multiple render targets is required in order to use this plugin"),
|
||||
_T("Dolphin OGL"), wxOK, this);
|
||||
}
|
||||
|
||||
void ConfigDialog::ForceFilteringCheck(wxCommandEvent& event)
|
||||
void ConfigDialog::GeneralSettingsChanged(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bForceFiltering = m_ForceFiltering->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::ForceAnisotropyCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bForceMaxAniso = m_ForceAnisotropy->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::WireframeCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bWireFrame = m_Wireframe->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::ShowShaderErrorsCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bShowShaderErrors = m_ShaderErrors->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::ShowFPSCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bShowFPS = m_ShowFPS->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::OverlayCheck(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bOverlayStats = m_Statistics->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::TexFmtOverlayChange(wxCommandEvent& event)
|
||||
{
|
||||
switch(event.GetId())
|
||||
switch (event.GetId())
|
||||
{
|
||||
case ID_FULLSCREEN:
|
||||
g_Config.bFullscreen = m_Fullscreen->IsChecked();
|
||||
break;
|
||||
case ID_RENDERTOMAINWINDOW:
|
||||
g_Config.renderToMainframe = m_RenderToMainWindow->IsChecked();
|
||||
break;
|
||||
case ID_STRETCHTOFIT:
|
||||
g_Config.bStretchToFit = m_StretchToFit->IsChecked();
|
||||
break;
|
||||
case ID_KEEPAR:
|
||||
g_Config.bKeepAR = m_KeepAR->IsChecked();
|
||||
break;
|
||||
case ID_FULLSCREENCB:
|
||||
strcpy(g_Config.iFSResolution, m_FullscreenCB->GetValue().mb_str() );
|
||||
break;
|
||||
case ID_WINDOWRESOLUTIONCB:
|
||||
strcpy(g_Config.iWindowedRes, m_WindowResolutionCB->GetValue().mb_str() );
|
||||
break;
|
||||
case ID_FORCEFILTERING:
|
||||
g_Config.bForceFiltering = m_ForceFiltering->IsChecked();
|
||||
break;
|
||||
case ID_FORCEANISOTROPY:
|
||||
g_Config.bForceMaxAniso = m_ForceAnisotropy->IsChecked();
|
||||
break;
|
||||
case ID_ALIASMODECB:
|
||||
g_Config.iMultisampleMode = atoi(m_AliasModeCB->GetValue().mb_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigDialog::AdvancedSettingsChanged(wxCommandEvent& event)
|
||||
{
|
||||
switch (event.GetId())
|
||||
{
|
||||
case ID_SHOWFPS:
|
||||
g_Config.bShowFPS = m_ShowFPS->IsChecked();
|
||||
break;
|
||||
case ID_SHADERERRORS:
|
||||
g_Config.bShowShaderErrors = m_ShaderErrors->IsChecked();
|
||||
break;
|
||||
case ID_STATISTICS:
|
||||
g_Config.bOverlayStats = m_Statistics->IsChecked();
|
||||
break;
|
||||
case ID_TEXFMTOVERLAY:
|
||||
g_Config.bTexFmtOverlayEnable = m_TexFmtOverlay->IsChecked();
|
||||
m_TexFmtCenter->Enable(m_TexFmtOverlay->IsChecked());
|
||||
TextureMngr::Invalidate();
|
||||
break;
|
||||
case ID_TEXFMTCENTER:
|
||||
g_Config.bTexFmtOverlayCenter = m_TexFmtCenter->IsChecked();
|
||||
TextureMngr::Invalidate();
|
||||
break;
|
||||
case ID_USEXFB:
|
||||
g_Config.bUseXFB = m_UseXFB->IsChecked();
|
||||
break;
|
||||
case ID_WIREFRAME:
|
||||
g_Config.bWireFrame = m_Wireframe->IsChecked();
|
||||
break;
|
||||
case ID_DISABLELIGHTING:
|
||||
g_Config.bDisableLighting = m_DisableLighting->IsChecked();
|
||||
break;
|
||||
case ID_DISABLETEXTURING:
|
||||
g_Config.bDisableTexturing = m_DisableTexturing->IsChecked();
|
||||
break;
|
||||
case ID_DUMPTEXTURES:
|
||||
m_TexturePath->Enable(m_DumpTextures->IsChecked());
|
||||
g_Config.bDumpTextures = m_DumpTextures->IsChecked();
|
||||
break;
|
||||
case ID_TEXTUREPATH:
|
||||
break;
|
||||
case ID_EFBTOTEXTUREDISABLE:
|
||||
g_Config.bEBFToTextureDisable = m_EFBToTextureDisable->IsChecked();
|
||||
break;
|
||||
}
|
||||
TextureMngr::Invalidate();
|
||||
}
|
||||
|
||||
void ConfigDialog::UseXFBChange(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bUseXFB = m_UseXFB->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::DumpTexturesChange(wxCommandEvent& event)
|
||||
{
|
||||
m_TexturePath->Enable(m_DumpTextures->IsChecked());
|
||||
g_Config.bDumpTextures = m_DumpTextures->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::TexturePathChange(wxFileDirPickerEvent& event)
|
||||
{
|
||||
//note: if a user inputs an incorrect path(by typing, not by choosing from
|
||||
// the combobox, this event wil not be fired.
|
||||
// Note: if a user inputs an incorrect path(by typing, not by choosing from
|
||||
// the combobox) this event wil not be fired.
|
||||
strcpy(g_Config.texDumpPath,event.GetPath().mb_str());
|
||||
}
|
||||
void ConfigDialog::DllAbout(wxCommandEvent& event)
|
||||
{
|
||||
wxAboutDialogInfo info;
|
||||
info.AddDeveloper(_T("zerofrog(@gmail.com)"));
|
||||
info.SetDescription(_T("Vertex/Pixel Shader 2.0 or higher, framebuffer objects, multiple render targets"));
|
||||
wxAboutBox(info);
|
||||
}
|
||||
void ConfigDialog::InvertDepth(wxCommandEvent& event)
|
||||
{
|
||||
g_Config.bInvertDepth = m_InvertDepth->IsChecked();
|
||||
}
|
||||
|
||||
void ConfigDialog::DisableLighting(wxCommandEvent &event)
|
||||
{
|
||||
g_Config.bDisableLighting = m_DisableLighting->IsChecked();
|
||||
}
|
||||
void ConfigDialog::DisableTexturing(wxCommandEvent &event)
|
||||
{
|
||||
g_Config.bDisableTexturing = m_DisableTexturing->IsChecked();
|
||||
}
|
||||
void ConfigDialog::EFBToTextureDisable(wxCommandEvent &event)
|
||||
{
|
||||
g_Config.bEBFToTextureDisable = m_EFBToTextureDisable->IsChecked();
|
||||
}
|
||||
void ConfigDialog::DisableCulling(wxCommandEvent &event)
|
||||
{
|
||||
g_Config.bDisableCulling = m_DisableCulling->IsChecked();
|
||||
}
|
||||
|
@ -19,7 +19,6 @@
|
||||
#define __CONFIGDIALOG_h__
|
||||
|
||||
#include <wx/wx.h>
|
||||
#include <wx/aboutdlg.h>
|
||||
#include <wx/dialog.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/button.h>
|
||||
@ -38,140 +37,111 @@
|
||||
|
||||
class ConfigDialog : public wxDialog
|
||||
{
|
||||
private:
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
public:
|
||||
ConfigDialog(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("OpenGL Plugin Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = ConfigDialog_STYLE);
|
||||
virtual ~ConfigDialog();
|
||||
void OKClick(wxCommandEvent& event);
|
||||
|
||||
// General
|
||||
void FullScreenCheck(wxCommandEvent& event);
|
||||
void RenderMainCheck(wxCommandEvent& event);
|
||||
void AddFSReso(char *reso);
|
||||
void AddWindowReso(char *reso);
|
||||
void StretchToFitCheck(wxCommandEvent& event);
|
||||
void KeepARCheck(wxCommandEvent& event);
|
||||
void DllAbout(wxCommandEvent& event);
|
||||
|
||||
// Enhancements
|
||||
void AddAAMode(int mode);
|
||||
void FSCB(wxCommandEvent& event);
|
||||
void WMCB(wxCommandEvent& event);
|
||||
void AACB(wxCommandEvent& event);
|
||||
void ForceFilteringCheck(wxCommandEvent& event);
|
||||
void ForceAnisotropyCheck(wxCommandEvent& event);
|
||||
|
||||
// Information
|
||||
void ShowFPSCheck(wxCommandEvent& event);
|
||||
void OverlayCheck(wxCommandEvent& event);
|
||||
void ShowShaderErrorsCheck(wxCommandEvent& event);
|
||||
void TexFmtOverlayChange(wxCommandEvent& event);
|
||||
|
||||
// Render
|
||||
void WireframeCheck(wxCommandEvent& event);
|
||||
void UseXFBChange(wxCommandEvent& event);
|
||||
void DisableLighting(wxCommandEvent& event);
|
||||
void DisableTexturing(wxCommandEvent& event);
|
||||
void DisableCulling(wxCommandEvent& event);
|
||||
|
||||
// Util
|
||||
void DumpTexturesChange(wxCommandEvent& event);
|
||||
void TexturePathChange(wxFileDirPickerEvent& event);
|
||||
|
||||
// Hacks
|
||||
void InvertDepth(wxCommandEvent& event);
|
||||
void EFBToTextureDisable(wxCommandEvent& event);
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
wxButton* m_About;
|
||||
wxBoxSizer* sGeneral;
|
||||
wxStaticBoxSizer* sbBasic;
|
||||
wxGridBagSizer* sBasic;
|
||||
wxStaticBoxSizer* sbEnhancements;
|
||||
wxGridBagSizer* sEnhancements;
|
||||
wxBoxSizer* sAdvanced;
|
||||
wxStaticBoxSizer* sbInfo;
|
||||
wxGridBagSizer* sInfo;
|
||||
wxStaticBoxSizer* sbRendering;
|
||||
wxGridBagSizer* sRendering;
|
||||
wxStaticBoxSizer* sbUtilities;
|
||||
wxGridBagSizer* sUtilities;
|
||||
wxStaticBoxSizer* sbHacks;
|
||||
wxGridBagSizer* sHacks;
|
||||
|
||||
wxButton *m_About;
|
||||
wxButton *m_Cancel;
|
||||
wxButton *m_OK;
|
||||
wxDirPickerCtrl *m_TexturePath;
|
||||
wxCheckBox *m_DumpTextures;
|
||||
wxCheckBox *m_UseXFB;
|
||||
wxCheckBox *m_TexFmtCenter;
|
||||
wxCheckBox *m_TexFmtOverlay;
|
||||
wxCheckBox *m_Statistics;
|
||||
wxCheckBox *m_ShowFPS;
|
||||
wxCheckBox *m_ShaderErrors;
|
||||
wxCheckBox *m_Wireframe;
|
||||
wxCheckBox *m_ForceAnisotropy;
|
||||
wxNotebook *m_Notebook;
|
||||
wxPanel *m_PageGeneral;
|
||||
wxPanel *m_PageAdvanced;
|
||||
wxCheckBox *m_Fullscreen;
|
||||
wxCheckBox *m_RenderToMainWindow;
|
||||
wxCheckBox *m_StretchToFit;
|
||||
wxCheckBox *m_KeepAR;
|
||||
wxCheckBox *m_ForceFiltering;
|
||||
wxComboBox *m_AliasModeCB;
|
||||
wxComboBox *m_WindowResolutionCB;
|
||||
wxArrayString arrayStringFor_FullscreenCB;
|
||||
wxComboBox *m_FullscreenCB;
|
||||
wxCheckBox *m_RenderToMainWindow;
|
||||
wxCheckBox *m_Fullscreen;
|
||||
wxArrayString arrayStringFor_WindowResolutionCB;
|
||||
wxComboBox *m_WindowResolutionCB;
|
||||
wxCheckBox *m_ForceFiltering;
|
||||
wxCheckBox *m_ForceAnisotropy;
|
||||
wxComboBox *m_AliasModeCB;
|
||||
wxCheckBox *m_ShowFPS;
|
||||
wxCheckBox *m_ShaderErrors;
|
||||
wxCheckBox *m_Statistics;
|
||||
wxCheckBox *m_TexFmtOverlay;
|
||||
wxCheckBox *m_TexFmtCenter;
|
||||
wxCheckBox *m_UseXFB;
|
||||
wxCheckBox *m_Wireframe;
|
||||
wxCheckBox *m_DisableLighting;
|
||||
wxCheckBox *m_DisableTexturing;
|
||||
wxCheckBox *m_InvertDepth;
|
||||
wxCheckBox *m_ProjectionHax1;
|
||||
wxCheckBox *m_ProjectionHax2;
|
||||
wxCheckBox *m_DumpTextures;
|
||||
wxDirPickerCtrl *m_TexturePath;
|
||||
wxCheckBox *m_EFBToTextureDisable;
|
||||
wxCheckBox *m_DisableCulling;
|
||||
wxPanel *m_PageGeneral;
|
||||
wxPanel *m_PageEnhancements;
|
||||
wxPanel *m_PageInformation;
|
||||
wxPanel *m_PageRender;
|
||||
wxPanel *m_PageUtility;
|
||||
wxPanel *m_PageHacks;
|
||||
wxNotebook *m_Notebook;
|
||||
|
||||
private:
|
||||
|
||||
enum
|
||||
{
|
||||
////GUI Enum Control ID Start
|
||||
ID_CANCEL = 1000,
|
||||
ID_OK,
|
||||
ID_TEXTUREPATH,
|
||||
ID_SHADERERRORS,
|
||||
ID_USEXFB,
|
||||
ID_TEXFMTCENTER,
|
||||
ID_TEXFMTOVERLAY,
|
||||
ID_SHOWFPS,
|
||||
ID_STATISTICS,
|
||||
ID_DUMPTEXTURES,
|
||||
ID_WIREFRAME,
|
||||
ID_FORCEANISOTROPY,
|
||||
ID_OK = 1000,
|
||||
ID_CANCEL,
|
||||
ID_ABOUTOGL,
|
||||
|
||||
ID_NOTEBOOK,
|
||||
ID_PAGEGENERAL,
|
||||
ID_PAGEADVANCED,
|
||||
|
||||
ID_FULLSCREEN,
|
||||
ID_RENDERTOMAINWINDOW,
|
||||
ID_STRETCHTOFIT,
|
||||
ID_KEEPAR,
|
||||
ID_FORCEFILTERING,
|
||||
ID_ALIASMODECB,
|
||||
ID_AATEXT,
|
||||
ID_WINDOWRESOLUTIONCB,
|
||||
ID_WMTEXT,
|
||||
ID_FULLSCREENCB,
|
||||
ID_FSTEXT,
|
||||
ID_RENDERTOMAINWINDOW,
|
||||
ID_FULLSCREEN,
|
||||
ID_NOTEBOOK,
|
||||
ID_INVERTDEPTH,
|
||||
ID_PROJECTIONHAX1,
|
||||
ID_PROJECTIONHAX2,
|
||||
ID_FULLSCREENCB,
|
||||
ID_WMTEXT,
|
||||
ID_WINDOWRESOLUTIONCB,
|
||||
|
||||
ID_FORCEFILTERING,
|
||||
ID_FORCEANISOTROPY,
|
||||
ID_AATEXT,
|
||||
ID_ALIASMODECB,
|
||||
|
||||
ID_SHOWFPS,
|
||||
ID_SHADERERRORS,
|
||||
ID_STATISTICS,
|
||||
ID_TEXFMTOVERLAY,
|
||||
ID_TEXFMTCENTER,
|
||||
|
||||
ID_USEXFB,
|
||||
ID_WIREFRAME,
|
||||
ID_DISABLELIGHTING,
|
||||
ID_DISABLETEXTURING,
|
||||
|
||||
ID_DUMPTEXTURES,
|
||||
ID_TEXTUREPATH,
|
||||
|
||||
ID_EFBTOTEXTUREDISABLE,
|
||||
ID_DISABLECULLING,
|
||||
ID_PAGEGENERAL,
|
||||
ID_PAGEENHANCEMENTS,
|
||||
ID_PAGEINFORMATION,
|
||||
ID_PAGERENDER,
|
||||
ID_PAGEUTILITY,
|
||||
ID_PAGEHACKS,
|
||||
ID_GRAPHIC_ABOUT,
|
||||
////GUI Enum Control ID End
|
||||
ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
|
||||
};
|
||||
|
||||
private:
|
||||
void OnClose(wxCloseEvent& event);
|
||||
void CreateGUIControls();
|
||||
|
||||
void AboutClick(wxCommandEvent& event);
|
||||
void GeneralSettingsChanged(wxCommandEvent& event);
|
||||
void AdvancedSettingsChanged(wxCommandEvent& event);
|
||||
void TexturePathChange(wxFileDirPickerEvent& event);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user