diff options
Diffstat (limited to 'simulator/app/PrefsDialog.cpp')
| -rw-r--r-- | simulator/app/PrefsDialog.cpp | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/simulator/app/PrefsDialog.cpp b/simulator/app/PrefsDialog.cpp deleted file mode 100644 index e146a56b9..000000000 --- a/simulator/app/PrefsDialog.cpp +++ /dev/null @@ -1,292 +0,0 @@ -// -// Copyright 2005 The Android Open Source Project -// -// Preferences modal dialog. -// - -// For compilers that support precompilation, include "wx/wx.h". -#include "wx/wxprec.h" -// Otherwise, include all standard headers -#ifndef WX_PRECOMP -# include "wx/wx.h" -#endif - -#include "PrefsDialog.h" -#include "Preferences.h" -#include "MyApp.h" -#include "Resource.h" - -BEGIN_EVENT_TABLE(PrefsDialog, wxDialog) -END_EVENT_TABLE() - -/* - * Constructor. - */ -PrefsDialog::PrefsDialog(wxWindow* parent) - : wxDialog(parent, IDD_PREFS, wxT("Preferences"), wxDefaultPosition, - wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ), - mAutoPowerOn(false), - mGammaCorrection(1.0), - mEnableSound(true), - mEnableFakeCamera(true), - mLogLevel(0) -{ - LoadPreferences(); - CreateControls(); -} - -/* - * Destructor. Not much to do. - */ -PrefsDialog::~PrefsDialog() -{ -} - -/* - * Create all of the pages and add them to the notebook. - */ -void PrefsDialog::CreateControls(void) -{ - wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); - wxBoxSizer* okCancelSizer = new wxBoxSizer(wxHORIZONTAL); - mNotebook.Create(this, wxID_ANY); - wxPanel* page; - - /* pages added to notebook are owned by notebook */ - page = CreateSimulatorPage(&mNotebook); - mNotebook.AddPage(page, wxT("Simulator"), true); // selected page - page = CreateRuntimePage(&mNotebook); - mNotebook.AddPage(page, wxT("Runtime"), false); - - wxButton* cancel = new wxButton(this, wxID_CANCEL, wxT("&Cancel"), - wxDefaultPosition, wxDefaultSize, 0); - okCancelSizer->Add(cancel, 0, wxALL | wxALIGN_RIGHT, kInterSpacing); - - wxButton* ok = new wxButton(this, wxID_OK, wxT("&OK"), - wxDefaultPosition, wxDefaultSize, 0); - okCancelSizer->Add(ok, 0, wxALL | wxALIGN_RIGHT, kInterSpacing); - - mainSizer->Add(&mNotebook, 1, wxEXPAND); - mainSizer->Add(okCancelSizer, 0, wxALIGN_RIGHT); - - SetSizer(mainSizer); - - mainSizer->Fit(this); // shrink-to-fit - mainSizer->SetSizeHints(this); // define minimum size -} - -/* - * Load preferences from config file - */ -void PrefsDialog::LoadPreferences(void) -{ - Preferences* pPrefs = ((MyApp*)wxTheApp)->GetPrefs(); - assert(pPrefs != NULL); - - /* - * Load preferences. - */ - mConfigFile = ((MyApp*)wxTheApp)->GetConfigFileName(); - - pPrefs->GetDouble("gamma", &mGammaCorrection); - pPrefs->GetString("debugger", /*ref*/ mDebugger); - pPrefs->GetString("valgrinder", /*ref*/ mValgrinder); - pPrefs->GetBool("auto-power-on", &mAutoPowerOn); - pPrefs->GetBool("enable-sound", &mEnableSound); - pPrefs->GetBool("enable-fake-camera", &mEnableFakeCamera); -} - -/* - * Transfer data from our members to the window controls. - * - * First we have to pull the data out of the preferences database. - * Anything that hasn't already been added with a default value will - * be given a default here, which may or may not match the default - * behavior elsewhere. The best solution to this is to define the - * default when the preferences file is created or read, so that we're - * never left guessing here. - */ -bool PrefsDialog::TransferDataToWindow(void) -{ - /* - * Do standard dialog setup. - */ - wxTextCtrl* configFileName = (wxTextCtrl*) FindWindow(IDC_SPREFS_CONFIG_NAME); - wxTextCtrl* debugger = (wxTextCtrl*) FindWindow(IDC_SPREFS_DEBUGGER); - wxTextCtrl* valgrinder = (wxTextCtrl*) FindWindow(IDC_SPREFS_VALGRINDER); - wxCheckBox* autoPowerOn = (wxCheckBox*) FindWindow(IDC_SPREFS_AUTO_POWER_ON); - wxCheckBox* enableSound = (wxCheckBox*) FindWindow(IDC_RPREFS_ENABLE_SOUND); - wxCheckBox* enableFakeCamera = (wxCheckBox*) FindWindow(IDC_RPREFS_ENABLE_FAKE_CAMERA); - - wxTextCtrl* gamma = (wxTextCtrl*) FindWindow(IDC_RPREFS_GAMMA); - - configFileName->SetValue(mConfigFile); - debugger->SetValue(mDebugger); - valgrinder->SetValue(mValgrinder); - autoPowerOn->SetValue(mAutoPowerOn); - enableSound->SetValue(mEnableSound); - enableFakeCamera->SetValue(mEnableFakeCamera); - - wxString tmpStr; - tmpStr.Printf(wxT("%.3f"), mGammaCorrection); - gamma->SetValue(tmpStr); - - return true; -} - -/* - * Transfer and validate data from the window controls. - * - * This doesn't get called if the user cancels out of the dialog. - */ -bool PrefsDialog::TransferDataFromControls(void) -{ - /* - * Do standard dialog export. - * - * We should error-check all of these. - */ - // configName is read-only, don't need it here - wxTextCtrl* debugger = (wxTextCtrl*) FindWindow(IDC_SPREFS_DEBUGGER); - wxTextCtrl* valgrinder = (wxTextCtrl*) FindWindow(IDC_SPREFS_VALGRINDER); - wxCheckBox* autoPowerOn = (wxCheckBox*) FindWindow(IDC_SPREFS_AUTO_POWER_ON); - wxCheckBox* enableSound = (wxCheckBox*) FindWindow(IDC_RPREFS_ENABLE_SOUND); - wxCheckBox* enableFakeCamera = (wxCheckBox*) FindWindow(IDC_RPREFS_ENABLE_FAKE_CAMERA); - - wxTextCtrl* gamma = (wxTextCtrl*) FindWindow(IDC_RPREFS_GAMMA); - - mDebugger = debugger->GetValue(); - mValgrinder = valgrinder->GetValue(); - mAutoPowerOn = autoPowerOn->GetValue(); - mEnableSound = enableSound->GetValue(); - mEnableFakeCamera = enableFakeCamera->GetValue(); - - wxString tmpStr; - tmpStr = gamma->GetValue(); - bool toDouble = tmpStr.ToDouble(&mGammaCorrection); // returns 0.0 on err; use strtof()? - - if (!toDouble || mGammaCorrection <= 0.0 || mGammaCorrection > 2.0) { - wxMessageBox(wxT("Bad value for gamma -- must be > 0.0 and <= 2.0"), - wxT("Hoser"), wxOK, this); - return false; - } - - return true; -} - -/* - * Transfer preferences to config file - */ -bool PrefsDialog::TransferDataFromWindow(void) -{ - Preferences* pPrefs = ((MyApp*)wxTheApp)->GetPrefs(); - assert(pPrefs != NULL); - - /* - * Grab the information from the controls and save in member field - */ - - if (!TransferDataFromControls()) - return false; - - pPrefs->SetString("debugger", mDebugger.ToAscii()); - pPrefs->SetString("valgrinder", mValgrinder.ToAscii()); - pPrefs->SetBool("auto-power-on", mAutoPowerOn); - pPrefs->SetBool("enable-sound", mEnableSound); - pPrefs->SetBool("enable-fake-camera", mEnableFakeCamera); - - pPrefs->SetDouble("gamma", mGammaCorrection); - - return true; -} - - -/* - * Create the Simulator Preferences page. - */ -wxPanel* PrefsDialog::CreateSimulatorPage(wxBookCtrlBase* parent) -{ - wxPanel* panel = new wxPanel(parent); - - wxStaticText* configNameDescr = new wxStaticText(panel, wxID_STATIC, - wxT("Config file:")); - wxTextCtrl* configName = new wxTextCtrl(panel, IDC_SPREFS_CONFIG_NAME, - wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_READONLY); - // make it visibly different; unfortunately this kills scroll, copy&paste - configName->Enable(false); - - wxStaticText* debuggerDescr = new wxStaticText(panel, wxID_STATIC, - wxT("Debugger:")); - wxTextCtrl* debugger = new wxTextCtrl(panel, IDC_SPREFS_DEBUGGER); - - wxStaticText* valgrinderDescr = new wxStaticText(panel, wxID_STATIC, - wxT("Valgrind:")); - wxTextCtrl* valgrinder = new wxTextCtrl(panel, IDC_SPREFS_VALGRINDER); - - wxCheckBox* autoPowerOn = new wxCheckBox(panel, IDC_SPREFS_AUTO_POWER_ON, - wxT("Boot runtime when simulator starts")); - - wxBoxSizer* sizerPanel = new wxBoxSizer(wxVERTICAL); - sizerPanel->Add(kMinWidth, kEdgeSpacing); // forces minimum width - sizerPanel->Add(configNameDescr); - sizerPanel->Add(configName, 0, wxEXPAND); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(debuggerDescr); - sizerPanel->Add(debugger, 0, wxEXPAND); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(valgrinderDescr); - sizerPanel->Add(valgrinder, 0, wxEXPAND); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(autoPowerOn); - sizerPanel->AddSpacer(kInterSpacing); - - wxBoxSizer* horizIndent = new wxBoxSizer(wxHORIZONTAL); - horizIndent->AddSpacer(kEdgeSpacing); - horizIndent->Add(sizerPanel, wxSHAPED); - horizIndent->AddSpacer(kEdgeSpacing); - panel->SetSizer(horizIndent); - - return panel; -} - -/* - * Create the Runtime Preferences page. - */ -wxPanel* PrefsDialog::CreateRuntimePage(wxBookCtrlBase* parent) -{ - wxPanel* panel = new wxPanel(parent); - - wxStaticText* gammaStrDescr = new wxStaticText(panel, wxID_STATIC, - wxT("Gamma correction:")); - wxTextCtrl* gammaStr = new wxTextCtrl(panel, IDC_RPREFS_GAMMA); - - wxBoxSizer* gammaSizer = new wxBoxSizer(wxHORIZONTAL); - gammaSizer->Add(gammaStrDescr, 0, wxALIGN_CENTER_VERTICAL); - gammaSizer->AddSpacer(kInterSpacing); - gammaSizer->Add(gammaStr); - - wxBoxSizer* sizerPanel = new wxBoxSizer(wxVERTICAL); - sizerPanel->Add(kMinWidth, kEdgeSpacing); // forces minimum width - sizerPanel->Add(gammaSizer); - sizerPanel->AddSpacer(kInterSpacing); - - wxCheckBox* enableSound = new wxCheckBox(panel, IDC_RPREFS_ENABLE_SOUND, - wxT("Enable Sound")); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(enableSound); - - wxCheckBox* enableFakeCamera = new wxCheckBox(panel, IDC_RPREFS_ENABLE_FAKE_CAMERA, - wxT("Enable Fake Camera")); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(enableFakeCamera); - - wxBoxSizer* horizIndent = new wxBoxSizer(wxHORIZONTAL); - horizIndent->AddSpacer(kEdgeSpacing); - horizIndent->Add(sizerPanel, wxEXPAND); - horizIndent->AddSpacer(kEdgeSpacing); - panel->SetSizer(horizIndent); - - return panel; -} - |
