diff options
Diffstat (limited to 'support/dktools/DkClockOptionsDialog.wxc')
-rw-r--r-- | support/dktools/DkClockOptionsDialog.wxc | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/support/dktools/DkClockOptionsDialog.wxc b/support/dktools/DkClockOptionsDialog.wxc new file mode 100644 index 0000000000..c27b44feab --- /dev/null +++ b/support/dktools/DkClockOptionsDialog.wxc @@ -0,0 +1,236 @@ +%% options + +copyright owner = Dirk Krause +copyright year = 2013-xxxx +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" +} + + |