%% options copyright owner = Dirk Krause copyright year = 2019-xxxx SPDX-License-Identifier: BSD-3-Clause %% wx-gui type = dialog contents = sizerHorizontal [wxBoxSizer sizerHorizontal] direction = horizontal grow = yes proportion = 1 contents = $space(10) contents = sizerVertical contents = $space(10) [wxBoxSizer sizerVertical] direction = vertical grow = yes proportion = 1 contents = $space(10) contents = scwContents centered-x contents = $space(10) contents = sizerButtons centered-x contents = $space(10) [wxScrolledWindow scwContents] proportion = 1 contents = sizerScwContents size = 150 200 [wxBoxSizer sizerScwContents] direction = vertical contents = panelContents [wxPanel panelContents] contents = sizerContents [wxBoxSizer sizerContents] direction = vertical contents = $space(10) contents = b00 contents = $space(10) [wxCheckBox b00] id = wxID_ANY text = wxT("Button 0") tip = wxT("A button to click") [wxStdDialogButtonSizer sizerButtons] contents = buttonOK contents = buttonCancel [wxButton buttonOK] id = wxID_OK text = pTexts[335] tip = pTexts[337] [wxButton buttonCancel] id = wxID_CANCEL text = pTexts[336] tip = pTexts[338] %% header start #ifndef WXDKDRAW_H_INCLUDED #include "wxdkdraw.h" #endif #ifndef WXDKDRAWFRAME_H_INCLUDED #include "WxdkdrawFrame.h" #endif %% class start /** Dialog to change layer visibility. */ class WxdkdrawDlgLayerManager : public wxDialog { private: /** Events to handle */ #if wxCHECK_VERSION(3,0,0) wxDECLARE_EVENT_TABLE(); #else DECLARE_EVENT_TABLE() #endif protected: /** Applications main frame. */ WxdkdrawFrame *m_pParent; /** Drawing to modify. */ Wxd_drawing_t *m_pDrw; /** Localized text fragments. */ wxChar const * const *m_pTexts; public: /** Window IDs for events. */ enum { /** Start ID for layer checkboxes. */ WXD_ID_LAYER_START = (wxID_HIGHEST + 1) }; /** Constructor. @param pParent Applications main frame. @param pDrw Drawing to modify. @param pTexts Localized text fragments. */ WxdkdrawDlgLayerManager( WxdkdrawFrame *pParent, Wxd_drawing_t *pDrw, wxChar const * const *pTexts ); /** Handler for OK button. @param event Event to process. */ void OnOK(wxCommandEvent & event); /** Handler for Cancel button. @param event Event to process. */ void OnCancel(wxCommandEvent & event); %% class end }; %% header end %% module start #ifndef WXDKDRAWDLGLAYERS_H_INCLUDED #include "WxdkdrawDlgLayers.h" #endif $!trace-include /** Assign methods to event IDs. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(WxdkdrawDlgLayerManager,wxDialog) #else BEGIN_EVENT_TABLE(WxdkdrawDlgLayerManager,wxDialog) #endif EVT_BUTTON(\ wxID_OK,\ WxdkdrawDlgLayerManager::OnOK\ ) EVT_BUTTON(\ wxID_CANCEL,\ WxdkdrawDlgLayerManager::OnCancel\ ) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif %% constructor start WxdkdrawDlgLayerManager::WxdkdrawDlgLayerManager( WxdkdrawFrame *pParent, Wxd_drawing_t *pDrw, wxChar const * const *pTexts ) : wxDialog( pParent, wxID_ANY, pTexts[334], wxDefaultPosition, wxDefaultSize, ( ((wxDEFAULT_DIALOG_STYLE) | (wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) { m_pParent = pParent; m_pDrw = pDrw; m_pTexts = pTexts; %% constructor end if (dkctGUILayoutOK) { panelContents->Layout(); wxSize panelsize = panelContents->GetSize(); scwContents->SetScrollbars( 10, 10, (panelsize.GetWidth() / 10), (panelsize.GetHeight() / 10) ); } } %% module end void WxdkdrawDlgLayerManager::OnOK(wxCommandEvent & WXUNUSED(event)) { if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } } void WxdkdrawDlgLayerManager::OnCancel(wxCommandEvent & WXUNUSED(event)) { if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } } /* vim: set ai sw=4 ts=4 : */