%% options copyright owner = Dirk Krause copyright year = 2013 license = bsd %% wx-gui type = dialog contents = sDialog [wxBoxSizer sDialog] direction = horizontal contents = $stretch(10) contents = vSizer contents = $stretch(10) [wxBoxSizer vSizer] direction = vertical contents = $stretch(10) contents = cSizer centered contents = $stretch(10) contents = bSizer centered contents = $stretch(10) [wxGridBagSizer cSizer] grid = 5 5 contents = cbAlert 0 0 1 2 contents = tHour +1 0 1 1 right contents = scHour . +1 1 1 left contents = tMinute +1 0 1 1 right contents = scMinute . +1 1 1 left [wxCheckBox cbAlert] text = sTexts[8] tip = sTexts[23] id = DkClockOptions_Enable [wxStaticText tHour] text = sTexts[22] [wxSpinCtrl scHour] range = 0 23 value = 0 tip = sTexts[24] [wxStaticText tMinute] text = sTexts[21] [wxSpinCtrl scMinute] range = 0 59 value = 0 tip = sTexts[25] [wxStdDialogButtonSizer bSizer] contents = bOK contents = bCancel [wxButton bOK] id = wxID_OK text = sTexts[17] tip = sTexts[18] [wxButton bCancel] id = wxID_CANCEL text = sTexts[19] tip = sTexts[20] %% header start %% class start class DkClockOptionsDialog : public wxDialog { private: /** Event table. */ DECLARE_EVENT_TABLE() protected: /** Localized texts. */ wxChar const * const *sTexts; /** Data set to configure. */ DkClockData *cld; %% class end public: DkClockOptionsDialog( DkWxFrame *parent, wxChar const *title, wxChar const * const *messageTexts, DkClockData *clockData ); /** Handler for OK button. @param event Event to process. */ void OnOk(wxCommandEvent & WXUNUSED(event)); /** Handler for Cancel button. @param event Event to process. */ void OnCancel(wxCommandEvent & WXUNUSED(event)); void OnCheckbox(wxCommandEvent & event); }; %% header end %% module start #include "wxdkclock.h" $!trace-include BEGIN_EVENT_TABLE(DkClockOptionsDialog, wxDialog) EVT_BUTTON(wxID_OK, DkClockOptionsDialog::OnOk) EVT_BUTTON(wxID_CANCEL, DkClockOptionsDialog::OnCancel) EVT_CHECKBOX(DkClockOptions_Enable, DkClockOptionsDialog::OnCheckbox) END_EVENT_TABLE() %% constructor start DkClockOptionsDialog::DkClockOptionsDialog( DkWxFrame *parent, wxChar const *title, wxChar const * const *messageTexts, DkClockData *clockData ) : wxDialog( parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE ) { int en = 0; int h = 0; int m = 0; $? "+ DkClockOptionsDialog::DkClockOptionsDialog" sTexts = messageTexts; cld = clockData; %% constructor end if(dkctGUILayoutOK) { $? ". GUI layout ok" cld->getAlertData(&en, &h, &m); $? ". en=%d h=%d m=%d", en, h, m scHour->SetValue(h); scMinute->SetValue(m); if(en) { $? ". alert enabled" cbAlert->SetValue(true); scHour->Enable(true); scMinute->Enable(true); } else { $? ". alert not enabled" cbAlert->SetValue(false); scHour->Enable(false); scMinute->Enable(false); } } $? "- DkClockOptionsDialog::DkClockOptionsDialog" } %% module end void DkClockOptionsDialog::OnOk(wxCommandEvent & event) { bool en = false; int h = 0; int m = 0; $? "+ DkClockOptionsDialog::OnOk" if(cbAlert->GetValue()) { en = true; h = scHour->GetValue(); m = scMinute->GetValue(); } cld->setAlert(en, h, m); cld->endAlert(); if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } $? "- DkClockOptionsDialog::OnOk" } void DkClockOptionsDialog::OnCancel(wxCommandEvent & event) { $? "+ DkClockOptionsDialog::OnCancel" if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } $? "- DkClockOptionsDialog::OnCancel" } void DkClockOptionsDialog::OnCheckbox(wxCommandEvent & event) { $? "+ DkClockOptionsDialog::OnCheckbox" if(cbAlert->GetValue()) { $? ". checkbox enabled" scHour->Enable(true); scMinute->Enable(true); } else { $? ". checkbox disabled" scHour->Enable(false); scMinute->Enable(false); } Refresh(); Update(); $? "- DkClockOptionsDialog::OnCheckbox" }