diff options
Diffstat (limited to 'simulator/app/LogPrefsDialog.cpp')
| -rw-r--r-- | simulator/app/LogPrefsDialog.cpp | 404 |
1 files changed, 0 insertions, 404 deletions
diff --git a/simulator/app/LogPrefsDialog.cpp b/simulator/app/LogPrefsDialog.cpp deleted file mode 100644 index dc3e07c5f..000000000 --- a/simulator/app/LogPrefsDialog.cpp +++ /dev/null @@ -1,404 +0,0 @@ -// -// Copyright 2005 The Android Open Source Project -// -// Log 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 "LogPrefsDialog.h" -#include "Preferences.h" -#include "Resource.h" -#include "utils.h" - -BEGIN_EVENT_TABLE(LogPrefsDialog, wxDialog) - EVT_CHECKBOX(IDC_LOG_PREFS_WRITE_FILE, LogPrefsDialog::OnWriteFile) -END_EVENT_TABLE() - -static const wxString gSpacerChoices[] = { - wxT("0"), wxT("1"), wxT("2") -}; -static const wxString gPointSizes[] = { - wxT("4"), wxT("6"), wxT("8"), wxT("10"), wxT("12"), wxT("14"), wxT("16") -}; - - -/* - * Constructor. - */ -LogPrefsDialog::LogPrefsDialog(wxWindow* parent) - : wxDialog(parent, IDD_LOG_PREFS, wxT("Log Preferences"), wxDefaultPosition, - wxDefaultSize, wxDEFAULT_DIALOG_STYLE), - mHeaderFormat(kHFFull), mSingleLine(false), mExtraSpacing(0), - mUseColor(false), mFontMonospace(false), mDisplayMax(0), mPoolSizeKB(0) -{ - CreateControls(); -} - - -/* - * Destructor. Not much to do. - */ -LogPrefsDialog::~LogPrefsDialog(void) -{ -} - -/* - * Create all of the pages and add them to the notebook. - */ -void LogPrefsDialog::CreateControls(void) -{ - wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); - wxBoxSizer* okCancelSizer = new wxBoxSizer(wxHORIZONTAL); - mNotebook.Create(this, wxID_ANY); - wxPanel* page; - - page = CreateFormatPage(&mNotebook); - mNotebook.AddPage(page, wxT("Format"), true); - page = CreateLimitsPage(&mNotebook); - mNotebook.AddPage(page, wxT("Limits"), false); - page = CreateFilesPage(&mNotebook); - mNotebook.AddPage(page, wxT("Files"), false); - - // note to self: could use CreateButtonSizer here? - wxButton* cancel = new wxButton(this, wxID_CANCEL, wxT("&Cancel"), - wxDefaultPosition, wxDefaultSize, 0); - okCancelSizer->Add(cancel, 0, wxALL, kInterSpacing); - - wxButton* ok = new wxButton(this, wxID_OK, wxT("&OK"), - wxDefaultPosition, wxDefaultSize, 0); - okCancelSizer->Add(ok, 0, wxALL, kInterSpacing); - - mainSizer->Add(&mNotebook); - mainSizer->Add(okCancelSizer, 0, wxALIGN_RIGHT); - - SetSizer(mainSizer); - - mainSizer->Fit(this); // shrink-to-fit - mainSizer->SetSizeHints(this); // define minimum size -} - -/* - * Transfer data from our members to the window controls. - */ -bool LogPrefsDialog::TransferDataToWindow(void) -{ - /* - * Do standard dialog setup. - */ - wxRadioButton* fmtFull = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_FULL); - wxRadioButton* fmtBrief = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_BRIEF); - wxRadioButton* fmtMinimal = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_MINIMAL); - wxCheckBox* singleLine = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_SINGLE_LINE); - wxComboBox* extraSpacing = (wxComboBox*) FindWindow(IDC_LOG_PREFS_EXTRA_SPACING); - wxComboBox* pointSize = (wxComboBox*) FindWindow(IDC_LOG_PREFS_POINT_SIZE); - wxCheckBox* useColor = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_USE_COLOR); - wxCheckBox* fontMono = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_FONT_MONO); - // - - wxTextCtrl* displayMax = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_DISPLAY_MAX); - wxTextCtrl* poolSize = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_POOL_SIZE); - // - - wxCheckBox* writeFile = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_WRITE_FILE); - wxTextCtrl* fileName = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_FILENAME); - wxCheckBox* truncateOld = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_TRUNCATE_OLD); - // - - - fmtFull->SetValue(mHeaderFormat == kHFFull); - fmtBrief->SetValue(mHeaderFormat == kHFBrief); - fmtMinimal->SetValue(mHeaderFormat == kHFMinimal); - singleLine->SetValue(mSingleLine); - if (mExtraSpacing < 0 || mExtraSpacing > NELEM(gSpacerChoices)) - mExtraSpacing = 0; - extraSpacing->SetSelection(mExtraSpacing); - - pointSize->SetSelection(0); - for (int i = 0; i < NELEM(gPointSizes); i++) { - if (atoi(gPointSizes[i].ToAscii()) == mPointSize) { - pointSize->SetSelection(i); - break; - } - } - useColor->SetValue(mUseColor); - fontMono->SetValue(mFontMonospace); - - wxString tmpStr; - tmpStr.Printf(wxT("%d"), mDisplayMax); - displayMax->SetValue(tmpStr); - tmpStr.Printf(wxT("%d"), mPoolSizeKB); - poolSize->SetValue(tmpStr); - - writeFile->SetValue(mWriteFile); - fileName->SetValue(mFileName); - truncateOld->SetValue(mTruncateOld); - - EnableFileControls(mWriteFile); - - return true; -} - -/* - * Convert a string to a number. The number is expected to be unsigned. - * Returns < 0 on failure. - */ -static long ConvertUnsigned(const wxString& str) -{ - long val; - if (!str.ToLong(&val)) - return -1; - return val; -} - -/* - * Transfer and validate data from the window controls. - * - * This doesn't get called if the user cancels out of the dialog. - */ -bool LogPrefsDialog::TransferDataFromWindow(void) -{ - /* - * Do standard dialog export. - */ - //wxRadioButton* fmtFull = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_FULL); - wxRadioButton* fmtBrief = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_BRIEF); - wxRadioButton* fmtMinimal = (wxRadioButton*) FindWindow(IDC_LOG_PREFS_FMT_MINIMAL); - wxCheckBox* singleLine = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_SINGLE_LINE); - wxComboBox* extraSpacing = (wxComboBox*) FindWindow(IDC_LOG_PREFS_EXTRA_SPACING); - wxComboBox* pointSize = (wxComboBox*) FindWindow(IDC_LOG_PREFS_POINT_SIZE); - wxCheckBox* useColor = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_USE_COLOR); - wxCheckBox* fontMono = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_FONT_MONO); - // - - wxTextCtrl* displayMax = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_DISPLAY_MAX); - wxTextCtrl* poolSize = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_POOL_SIZE); - // - - wxCheckBox* writeFile = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_WRITE_FILE); - wxTextCtrl* fileName = (wxTextCtrl*) FindWindow(IDC_LOG_PREFS_FILENAME); - wxCheckBox* truncateOld = (wxCheckBox*) FindWindow(IDC_LOG_PREFS_TRUNCATE_OLD); - // - - - mHeaderFormat = kHFFull; - if (fmtBrief->GetValue()) - mHeaderFormat = kHFBrief; - else if (fmtMinimal->GetValue()) - mHeaderFormat = kHFMinimal; - - wxString tmpStr; - - mSingleLine = (singleLine->GetValue() != 0); - mExtraSpacing = extraSpacing->GetSelection(); - mPointSize = ConvertUnsigned(pointSize->GetValue()); - mUseColor = useColor->GetValue(); - mFontMonospace = fontMono->GetValue(); - - tmpStr = displayMax->GetValue(); - mDisplayMax = ConvertUnsigned(tmpStr); - if (mDisplayMax <= 0 || mDisplayMax > 1000 * 1000) { - wxMessageBox(wxT("Bad value for display max -- must be > 0 and <= 1,000,000"), - wxT("Hoser"), wxOK, this); - return false; - } - - tmpStr = poolSize->GetValue(); - mPoolSizeKB = ConvertUnsigned(tmpStr); - if (mDisplayMax <= 0 || mDisplayMax > 1048576) { - wxMessageBox(wxT("Bad value for pool size -- must be > 0 and <= 1048576"), - wxT("Hoser"), wxOK, this); - return false; - } - - mWriteFile = (writeFile->GetValue() != 0); - mFileName = fileName->GetValue(); - mTruncateOld = (truncateOld->GetValue() != 0); - if (mWriteFile && mFileName.IsEmpty()) { - wxMessageBox(wxT("Log filename may not be blank"), - wxT("Hoser"), wxOK, this); - return false; - } - - return true; -} - - -/* - * Create the log Format page. - */ -wxPanel* LogPrefsDialog::CreateFormatPage(wxBookCtrlBase* parent) -{ - wxPanel* panel = new wxPanel(parent); - - wxStaticBoxSizer* headerOpts = new wxStaticBoxSizer(wxVERTICAL, panel, - wxT("Header")); - headerOpts->Add(new wxRadioButton(panel, IDC_LOG_PREFS_FMT_FULL, - wxT("Full header"), wxDefaultPosition, wxDefaultSize, - wxRB_GROUP)); - headerOpts->Add(new wxRadioButton(panel, IDC_LOG_PREFS_FMT_BRIEF, - wxT("Brief header"))); - headerOpts->Add(new wxRadioButton(panel, IDC_LOG_PREFS_FMT_MINIMAL, - wxT("Minimal, integrated header"))); - - wxCheckBox* singleLine = new wxCheckBox(panel, IDC_LOG_PREFS_SINGLE_LINE, - wxT("Put headers and message on same line")); - - wxStaticText* extraSpacingDescr = new wxStaticText(panel, wxID_STATIC, - wxT("Extra line spacing:")); - wxComboBox* extraSpacing = new wxComboBox(panel, - IDC_LOG_PREFS_EXTRA_SPACING, wxT("blah"), - wxDefaultPosition, wxDefaultSize, NELEM(gSpacerChoices), - gSpacerChoices, wxCB_READONLY); - wxBoxSizer* extraSpacingSizer = new wxBoxSizer(wxHORIZONTAL); - extraSpacingSizer->Add(extraSpacingDescr, 0, wxALIGN_CENTER_VERTICAL); - extraSpacingSizer->AddSpacer(kInterSpacing); - extraSpacingSizer->Add(extraSpacing); - - wxStaticBoxSizer* textOpts = new wxStaticBoxSizer(wxVERTICAL, panel, - wxT("Text")); - textOpts->Add( - new wxStaticText(panel, wxID_STATIC, wxT("Point size:")) ); - textOpts->AddSpacer(kInterSpacing); - textOpts->Add( - new wxComboBox(panel, - IDC_LOG_PREFS_POINT_SIZE, wxT("blah"), - wxDefaultPosition, wxDefaultSize, NELEM(gPointSizes), - gPointSizes, wxCB_READONLY) ); - textOpts->AddSpacer(kInterSpacing); - textOpts->Add( - new wxCheckBox(panel, IDC_LOG_PREFS_USE_COLOR, - wxT("Colorful messages")) ); - textOpts->AddSpacer(kInterSpacing); - textOpts->Add( - new wxCheckBox(panel, IDC_LOG_PREFS_FONT_MONO, - wxT("Use monospace font")) ); - - - wxBoxSizer* sizerPanel = new wxBoxSizer(wxVERTICAL); - sizerPanel->Add(kMinWidth, kEdgeSpacing); // forces minimum width - sizerPanel->Add(headerOpts); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(singleLine); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(extraSpacingSizer); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(textOpts); - sizerPanel->AddSpacer(kInterSpacing); - - wxBoxSizer* horizIndent = new wxBoxSizer(wxHORIZONTAL); - horizIndent->AddSpacer(kEdgeSpacing); - horizIndent->Add(sizerPanel); - horizIndent->AddSpacer(kEdgeSpacing); - panel->SetSizer(horizIndent); - - return panel; -} - -/* - * Create the log Limits page. - */ -wxPanel* LogPrefsDialog::CreateLimitsPage(wxBookCtrlBase* parent) -{ - wxPanel* panel = new wxPanel(parent); - - wxBoxSizer* displayMaxSizer = new wxBoxSizer(wxHORIZONTAL); - displayMaxSizer->Add( - new wxStaticText(panel, wxID_ANY, - wxT("Maximum entries in log window:"), - wxDefaultPosition, wxDefaultSize, - wxALIGN_LEFT), - 0, wxALIGN_CENTER_VERTICAL); - displayMaxSizer->AddSpacer(kInterSpacing); - displayMaxSizer->Add( - new wxTextCtrl(panel, IDC_LOG_PREFS_DISPLAY_MAX)); - - wxBoxSizer* poolSizeSizer = new wxBoxSizer(wxHORIZONTAL); - poolSizeSizer->Add( - new wxStaticText(panel, wxID_ANY, - wxT("Size of the log pool (KB):"), - wxDefaultPosition, wxDefaultSize, - wxALIGN_LEFT), - 0, wxALIGN_CENTER_VERTICAL); - poolSizeSizer->AddSpacer(kInterSpacing); - poolSizeSizer->Add( - new wxTextCtrl(panel, IDC_LOG_PREFS_POOL_SIZE)); - - - wxBoxSizer* sizerPanel = new wxBoxSizer(wxVERTICAL); - sizerPanel->Add(kMinWidth, kEdgeSpacing); // forces minimum width - sizerPanel->Add(displayMaxSizer); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(poolSizeSizer); - sizerPanel->AddSpacer(kInterSpacing); - - wxBoxSizer* horizIndent = new wxBoxSizer(wxHORIZONTAL); - horizIndent->AddSpacer(kEdgeSpacing); - horizIndent->Add(sizerPanel); - horizIndent->AddSpacer(kEdgeSpacing); - panel->SetSizer(horizIndent); - - return panel; -} - -/* - * Create the log Files page. - */ -wxPanel* LogPrefsDialog::CreateFilesPage(wxBookCtrlBase* parent) -{ - wxPanel* panel = new wxPanel(parent); - wxStaticBoxSizer* logOpts = new wxStaticBoxSizer(wxVERTICAL, panel, - wxT("Log File")); - - wxCheckBox* writeCopy = - new wxCheckBox(panel, IDC_LOG_PREFS_WRITE_FILE, - wxT("Write a copy of log output to a file")); - - logOpts->AddSpacer(kInterSpacing); - logOpts->Add( - new wxStaticText(panel, wxID_ANY, - wxT("Filename:"), - wxDefaultPosition, wxDefaultSize, - wxALIGN_LEFT)); - logOpts->AddSpacer(kInterSpacing); - logOpts->Add( - new wxTextCtrl(panel, IDC_LOG_PREFS_FILENAME), 0, wxEXPAND); - logOpts->AddSpacer(kInterSpacing); - logOpts->Add( - new wxCheckBox(panel, IDC_LOG_PREFS_TRUNCATE_OLD, - wxT("Truncate the file if more than 8 hours old ")) ); - - - wxBoxSizer* sizerPanel = new wxBoxSizer(wxVERTICAL); - sizerPanel->Add(kMinWidth, kEdgeSpacing); // forces minimum width - sizerPanel->Add(writeCopy); - sizerPanel->AddSpacer(kInterSpacing); - sizerPanel->Add(logOpts); - sizerPanel->AddSpacer(kInterSpacing); - - wxBoxSizer* horizIndent = new wxBoxSizer(wxHORIZONTAL); - horizIndent->AddSpacer(kEdgeSpacing); - horizIndent->Add(sizerPanel); - horizIndent->AddSpacer(kEdgeSpacing); - panel->SetSizer(horizIndent); - - return panel; -} - - -/* - * Handle clicks on the "write file" checkbox. - */ -void LogPrefsDialog::OnWriteFile(wxCommandEvent& event) -{ - EnableFileControls(event.GetInt()); -} - -/* - * Enable or disable some of the controls on the "file" page. - */ -void LogPrefsDialog::EnableFileControls(bool enable) -{ - FindWindow(IDC_LOG_PREFS_FILENAME)->Enable(enable); - FindWindow(IDC_LOG_PREFS_TRUNCATE_OLD)->Enable(enable); -} - |
