Interface settings: Added confirm on stop option
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1635 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
8cc09ef74d
commit
ed156f3eeb
|
@ -65,6 +65,8 @@ struct SCoreStartupParameter
|
||||||
int SelectedLanguage;
|
int SelectedLanguage;
|
||||||
|
|
||||||
bool bWii; bool bWiiLeds; bool bWiiSpeakers; // Wii settings
|
bool bWii; bool bWiiLeds; bool bWiiSpeakers; // Wii settings
|
||||||
|
|
||||||
|
bool bConfirmStop; // Interface settings
|
||||||
|
|
||||||
enum EBootBios
|
enum EBootBios
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,6 +38,7 @@ EVT_CHECKBOX(ID_OPTIMIZEQUANTIZERS, CConfigMain::CoreSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_IDLESKIP, CConfigMain::CoreSettingsChanged)
|
EVT_CHECKBOX(ID_IDLESKIP, CConfigMain::CoreSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_ENABLECHEATS, CConfigMain::CoreSettingsChanged)
|
EVT_CHECKBOX(ID_ENABLECHEATS, CConfigMain::CoreSettingsChanged)
|
||||||
EVT_CHOICE(ID_GC_SRAM_LNG, CConfigMain::GCSettingsChanged)
|
EVT_CHOICE(ID_GC_SRAM_LNG, CConfigMain::GCSettingsChanged)
|
||||||
|
EVT_CHECKBOX(ID_INTERFACE_CONFIRMSTOP, CConfigMain::CoreSettingsChanged)
|
||||||
|
|
||||||
EVT_CHOICE(ID_WII_BT_BAR, CConfigMain::WiiSettingsChanged)
|
EVT_CHOICE(ID_WII_BT_BAR, CConfigMain::WiiSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_WII_BT_LEDS, CConfigMain::WiiSettingsChanged)
|
EVT_CHECKBOX(ID_WII_BT_LEDS, CConfigMain::WiiSettingsChanged)
|
||||||
|
@ -126,7 +127,14 @@ void CConfigMain::CreateGUIControls()
|
||||||
this->SetSizer(sMain);
|
this->SetSizer(sMain);
|
||||||
this->Layout();
|
this->Layout();
|
||||||
|
|
||||||
// Core page
|
|
||||||
|
//////////////////////////////////
|
||||||
|
// Core page (sGeneral)
|
||||||
|
// -----------
|
||||||
|
|
||||||
|
sGeneral = new wxBoxSizer(wxVERTICAL);
|
||||||
|
|
||||||
|
// Basic Settings
|
||||||
sbBasic = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Basic Settings"));
|
sbBasic = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Basic Settings"));
|
||||||
UseDualCore = new wxCheckBox(GeneralPage, ID_USEDUALCORE, wxT("Enable Dual Core"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
UseDualCore = new wxCheckBox(GeneralPage, ID_USEDUALCORE, wxT("Enable Dual Core"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
UseDualCore->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bUseDualCore);
|
UseDualCore->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bUseDualCore);
|
||||||
|
@ -135,6 +143,11 @@ void CConfigMain::CreateGUIControls()
|
||||||
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);
|
EnableCheats->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats);
|
||||||
|
|
||||||
|
sbBasic->Add(UseDualCore, 0, wxALL, 5);
|
||||||
|
sbBasic->Add(SkipIdle, 0, wxALL, 5);
|
||||||
|
sbBasic->Add(EnableCheats, 0, wxALL, 5);
|
||||||
|
|
||||||
|
// Advanced Settings
|
||||||
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
|
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
|
||||||
AllwaysHLEBIOS = new wxCheckBox(GeneralPage, ID_ALLWAYS_HLEBIOS, wxT("HLE the BIOS all the time"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
AllwaysHLEBIOS = new wxCheckBox(GeneralPage, ID_ALLWAYS_HLEBIOS, wxT("HLE the BIOS all the time"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
AllwaysHLEBIOS->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bHLEBios);
|
AllwaysHLEBIOS->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bHLEBios);
|
||||||
|
@ -145,22 +158,30 @@ void CConfigMain::CreateGUIControls()
|
||||||
OptimizeQuantizers = new wxCheckBox(GeneralPage, ID_OPTIMIZEQUANTIZERS, wxT("Optimize Quantizers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
OptimizeQuantizers = new wxCheckBox(GeneralPage, ID_OPTIMIZEQUANTIZERS, wxT("Optimize Quantizers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
OptimizeQuantizers->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bOptimizeQuantizers);
|
OptimizeQuantizers->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bOptimizeQuantizers);
|
||||||
|
|
||||||
sGeneral = new wxBoxSizer(wxVERTICAL);
|
|
||||||
sbBasic->Add(UseDualCore, 0, wxALL, 5);
|
|
||||||
sbBasic->Add(SkipIdle, 0, wxALL, 5);
|
|
||||||
sbBasic->Add(EnableCheats, 0, wxALL, 5);
|
|
||||||
sGeneral->Add(sbBasic, 0, wxEXPAND|wxALL, 5);
|
|
||||||
sGeneral->AddStretchSpacer();
|
|
||||||
|
|
||||||
sbAdvanced->Add(AllwaysHLEBIOS, 0, wxALL, 5);
|
sbAdvanced->Add(AllwaysHLEBIOS, 0, wxALL, 5);
|
||||||
sbAdvanced->Add(UseDynaRec, 0, wxALL, 5);
|
sbAdvanced->Add(UseDynaRec, 0, wxALL, 5);
|
||||||
sbAdvanced->Add(LockThreads, 0, wxALL, 5);
|
sbAdvanced->Add(LockThreads, 0, wxALL, 5);
|
||||||
sbAdvanced->Add(OptimizeQuantizers, 0, wxALL, 5);
|
sbAdvanced->Add(OptimizeQuantizers, 0, wxALL, 5);
|
||||||
|
|
||||||
|
// Interface Settings
|
||||||
|
sbInterface = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Interface Settings"));
|
||||||
|
ConfirmStop = new wxCheckBox(GeneralPage, ID_INTERFACE_CONFIRMSTOP, wxT("Show confirmation box before Stopping"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
ConfirmStop->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop);
|
||||||
|
|
||||||
|
sbInterface->Add(ConfirmStop, 0, wxALL, 5);
|
||||||
|
|
||||||
|
// Populate sGeneral
|
||||||
|
sGeneral->Add(sbBasic, 0, wxEXPAND|wxALL, 5);
|
||||||
|
//sGeneral->AddStretchSpacer();
|
||||||
sGeneral->Add(sbAdvanced, 0, wxEXPAND|wxALL, 5);
|
sGeneral->Add(sbAdvanced, 0, wxEXPAND|wxALL, 5);
|
||||||
|
sGeneral->Add(sbInterface, 0, wxEXPAND|wxALL, 5);
|
||||||
GeneralPage->SetSizer(sGeneral);
|
GeneralPage->SetSizer(sGeneral);
|
||||||
sGeneral->Layout();
|
sGeneral->Layout();
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////
|
||||||
// Gamecube page
|
// Gamecube page
|
||||||
|
// --------
|
||||||
sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, GamecubePage, wxT("IPL Settings"));
|
sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, GamecubePage, wxT("IPL Settings"));
|
||||||
arrayStringFor_GCSystemLang.Add(wxT("English"));
|
arrayStringFor_GCSystemLang.Add(wxT("English"));
|
||||||
arrayStringFor_GCSystemLang.Add(wxT("German"));
|
arrayStringFor_GCSystemLang.Add(wxT("German"));
|
||||||
|
@ -348,6 +369,11 @@ void CConfigMain::CloseClick(wxCommandEvent& WXUNUSED (event))
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ====================================================================
|
||||||
|
// Core settings
|
||||||
|
// -------------
|
||||||
void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
switch (event.GetId())
|
switch (event.GetId())
|
||||||
|
@ -373,6 +399,9 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
||||||
case ID_ENABLECHEATS:
|
case ID_ENABLECHEATS:
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats = EnableCheats->IsChecked();
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats = EnableCheats->IsChecked();
|
||||||
break;
|
break;
|
||||||
|
case ID_INTERFACE_CONFIRMSTOP:
|
||||||
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop = ConfirmStop->IsChecked();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,7 +414,13 @@ void CConfigMain::GCSettingsChanged(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ==========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ====================================================================
|
||||||
|
// Wii settings
|
||||||
|
// -------------
|
||||||
void CConfigMain::WiiSettingsChanged(wxCommandEvent& event)
|
void CConfigMain::WiiSettingsChanged(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
switch (event.GetId())
|
switch (event.GetId())
|
||||||
|
@ -417,7 +452,13 @@ void CConfigMain::WiiSettingsChanged(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ==========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ====================================================================
|
||||||
|
// Paths settings
|
||||||
|
// -------------
|
||||||
void CConfigMain::ISOPathsSelectionChanged(wxCommandEvent& WXUNUSED (event))
|
void CConfigMain::ISOPathsSelectionChanged(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
if (!ISOPaths->GetStringSelection().empty())
|
if (!ISOPaths->GetStringSelection().empty())
|
||||||
|
@ -504,7 +545,13 @@ void CConfigMain::OnConfig(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ==========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// =======================================================
|
||||||
|
// Plugins settings
|
||||||
|
// -------------
|
||||||
void CConfigMain::FillChoiceBox(wxChoice* _pChoice, int _PluginType, const std::string& _SelectFilename)
|
void CConfigMain::FillChoiceBox(wxChoice* _pChoice, int _PluginType, const std::string& _SelectFilename)
|
||||||
{
|
{
|
||||||
_pChoice->Clear();
|
_pChoice->Clear();
|
||||||
|
@ -562,4 +609,4 @@ bool CConfigMain::GetFilename(wxChoice* _pChoice, std::string& _rFilename)
|
||||||
|
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
// ==========================
|
||||||
|
|
|
@ -46,13 +46,25 @@ class CConfigMain
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE();
|
DECLARE_EVENT_TABLE();
|
||||||
|
|
||||||
wxBoxSizer* sGeneral;
|
wxBoxSizer* sGeneral; // Core settings
|
||||||
wxStaticBoxSizer* sbBasic;
|
wxStaticBoxSizer* sbBasic, *sbAdvanced, *sbInterface;
|
||||||
wxStaticBoxSizer* sbAdvanced;
|
wxCheckBox* AllwaysHLEBIOS;
|
||||||
wxBoxSizer* sGamecube;
|
wxCheckBox* UseDynaRec;
|
||||||
|
wxCheckBox* UseDualCore;
|
||||||
|
wxCheckBox* LockThreads;
|
||||||
|
wxCheckBox* OptimizeQuantizers;
|
||||||
|
wxCheckBox* SkipIdle;
|
||||||
|
wxCheckBox* EnableCheats;
|
||||||
|
wxCheckBox* ConfirmStop;
|
||||||
|
|
||||||
|
wxBoxSizer* sGamecube; // GC settings
|
||||||
wxStaticBoxSizer* sbGamecubeIPLSettings;
|
wxStaticBoxSizer* sbGamecubeIPLSettings;
|
||||||
wxGridBagSizer* sGamecubeIPLSettings;
|
wxGridBagSizer* sGamecubeIPLSettings;
|
||||||
wxBoxSizer* sWii;
|
wxArrayString arrayStringFor_GCSystemLang;
|
||||||
|
wxStaticText* GCSystemLangText;
|
||||||
|
wxChoice* GCSystemLang;
|
||||||
|
|
||||||
|
wxBoxSizer* sWii; // Wii settings
|
||||||
wxStaticBoxSizer* sbWiimoteSettings;
|
wxStaticBoxSizer* sbWiimoteSettings;
|
||||||
wxGridBagSizer* sWiimoteSettings;
|
wxGridBagSizer* sWiimoteSettings;
|
||||||
wxStaticBoxSizer* sbWiiIPLSettings;
|
wxStaticBoxSizer* sbWiiIPLSettings;
|
||||||
|
@ -76,16 +88,6 @@ class CConfigMain
|
||||||
|
|
||||||
wxButton* m_Close;
|
wxButton* m_Close;
|
||||||
|
|
||||||
wxCheckBox* AllwaysHLEBIOS;
|
|
||||||
wxCheckBox* UseDynaRec;
|
|
||||||
wxCheckBox* UseDualCore;
|
|
||||||
wxCheckBox* LockThreads;
|
|
||||||
wxCheckBox* OptimizeQuantizers;
|
|
||||||
wxCheckBox* SkipIdle;
|
|
||||||
wxCheckBox* EnableCheats;
|
|
||||||
wxArrayString arrayStringFor_GCSystemLang;
|
|
||||||
wxStaticText* GCSystemLangText;
|
|
||||||
wxChoice* GCSystemLang;
|
|
||||||
|
|
||||||
FILE* pStream;
|
FILE* pStream;
|
||||||
u8 m_SYSCONF[0x4000];
|
u8 m_SYSCONF[0x4000];
|
||||||
|
@ -206,6 +208,8 @@ class CConfigMain
|
||||||
ID_GC_SRAM_LNG_TEXT,
|
ID_GC_SRAM_LNG_TEXT,
|
||||||
ID_GC_SRAM_LNG,
|
ID_GC_SRAM_LNG,
|
||||||
|
|
||||||
|
ID_INTERFACE_CONFIRMSTOP, // Interface settings
|
||||||
|
|
||||||
ID_WII_BT_BAR_TEXT,
|
ID_WII_BT_BAR_TEXT,
|
||||||
ID_WII_BT_BAR,
|
ID_WII_BT_BAR,
|
||||||
ID_WII_BT_LEDS, ID_WII_BT_SPEAKERS,
|
ID_WII_BT_LEDS, ID_WII_BT_SPEAKERS,
|
||||||
|
|
|
@ -342,7 +342,7 @@ void CFrame::InitBitmaps()
|
||||||
|
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// Open file
|
// Open file to boot or for changing disc
|
||||||
// -------------
|
// -------------
|
||||||
void CFrame::OnOpen(wxCommandEvent& WXUNUSED (event))
|
void CFrame::OnOpen(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
|
@ -505,8 +505,23 @@ void CFrame::OnPlay(wxCommandEvent& WXUNUSED (event))
|
||||||
|
|
||||||
void CFrame::OnStop(wxCommandEvent& WXUNUSED (event))
|
void CFrame::OnStop(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
Core::Stop();
|
// Ask for confirmation in case the user accidently clicked Stop
|
||||||
UpdateGUI();
|
int answer;
|
||||||
|
if(SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop)
|
||||||
|
{
|
||||||
|
answer = wxMessageBox("Are you sure you want to stop the current emulation?",
|
||||||
|
"Confirm", wxYES_NO);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
answer = wxYES;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (answer == wxYES && Core::GetState() != Core::CORE_UNINITIALIZED)
|
||||||
|
{
|
||||||
|
Core::Stop();
|
||||||
|
UpdateGUI();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue