%% options copyright owner = Dirk Krause copyright year = 2020-xxxx SPDX-License-Identifier: BSD-3-Clause %% wx-gui type = dialog contents = sizerHorizontal [wxBoxSizer sizerHorizontal] direction = horizontal contents = $space(10) contents = sizerVertical contents = $space(10) [wxBoxSizer sizerVertical] direction = vertical contents = $space(10) contents = sizerContents centered-x contents = $space(10) contents = sizerButtons right contents = $space(10) [wxBoxSizer sizerContents] direction = horizontal contents = bitmapIcon centered-y contents = $space(10) contents = lText centered-y [wxStaticBitmap bitmapIcon] bitmap = bm_question [wxStaticText lText] text = tMessage [wxStdDialogButtonSizer sizerButtons] contents = bYes contents = bNo [wxButton bYes] id = wxID_YES text = pAppHelp->GetBasicString(14) [wxButton bNo] id = wxID_NO text = pAppHelp->GetBasicString(15) %% header start /** @file Dk4WxYesNoDialog.h Message box dialog for yes/no decisions. */ #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #ifndef WX_WXPREC_H_INCLUDED #include #define WX_WXPREC_H_INCLUDED 1 #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #ifndef WX_WX_H_INCLUDED #include #define WX_WX_H_INCLUDED 1 #endif #endif #ifndef DK4WXAPPLICATIONHELPER_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxApplicationHelper.h" #else #include #endif #endif %% class start /** Message box dialog for simples yes or no decisions. */ class Dk4WxYesNoDialog : public wxDialog { private: /** Event table. */ #if wxCHECK_VERSION(3,0,0) wxDECLARE_EVENT_TABLE(); #else DECLARE_EVENT_TABLE() #endif protected: /** Bitmap containing the question mark. */ wxBitmap bm_question; public: /** Constructor. @param parent Parent frame. @param pAppHelp Application helper for localized texts. @param tMessage Message to show. @param tTitle Dialog box title. */ Dk4WxYesNoDialog( wxFrame *parent, Dk4WxApplicationHelper *pAppHelp, wxChar const *tMessage, wxChar const *tTitle ); /** Event handler for Yes button. @param event Event to process (ignored). */ void OnYes(wxCommandEvent & event); /** Event handler for No button. @param event Event to process (ignored). */ void OnNo(wxCommandEvent & event); %% class end }; %% header end %% module start #include "dk4conf.h" #include "Dk4WxYesNoDialog.h" #include "gui-img/shared/dlg/question.xpm" $!trace-include /** Event table for wxWidgets. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(Dk4WxYesNoDialog,wxDialog) #else BEGIN_EVENT_TABLE(Dk4WxYesNoDialog,wxDialog) #endif EVT_BUTTON(wxID_YES, Dk4WxYesNoDialog::OnYes) EVT_BUTTON(wxID_NO, Dk4WxYesNoDialog::OnNo) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif %% constructor start Dk4WxYesNoDialog::Dk4WxYesNoDialog( wxFrame *parent, Dk4WxApplicationHelper *pAppHelp, wxChar const *tMessage, wxChar const *tTitle ) : wxDialog( parent, wxID_ANY, tTitle, wxDefaultPosition, wxDefaultSize, ( (wxDEFAULT_DIALOG_STYLE) & (~(wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) , bm_question((const char * const *)xpm_question) { %% constructor end } %% module end void Dk4WxYesNoDialog::OnYes(wxCommandEvent & event) { if(IsModal()) { EndModal(wxID_YES); } else { SetReturnCode(wxID_YES); Show(false); } } void Dk4WxYesNoDialog::OnNo(wxCommandEvent & event) { if(IsModal()) { EndModal(wxID_NO); } else { SetReturnCode(wxID_NO); Show(false); } } /* vim: set ai sw=4 ts=4 : */