/* Copyright (C) 2019-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: WxdkdrawDlgLayerManager.cpt */ #line 164 "WxdkdrawDlgLayerManager.cpt" /** @file WxdkdrawDlgLayerManager.cpp The WxdkdrawDlgLayerManager module. */ #ifndef WXDKDRAWDLGLAYERMANAGER_H_INCLUDED #include "WxdkdrawDlgLayerManager.h" #endif #line 175 "WxdkdrawDlgLayerManager.cpt" /** 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 WxdkdrawDlgLayerManager::WxdkdrawDlgLayerManager( WxdkdrawFrame *pParent, Wxd_drawing_t *pDrw, wxChar const * const *pTexts, Wxd_layer_cb_t *pLayerCb, size_t sLayerCb ) : wxDialog( pParent, wxID_ANY, pTexts[334], wxDefaultPosition, wxDefaultSize, ( ((wxDEFAULT_DIALOG_STYLE) | (wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) { size_t i; #line 218 "WxdkdrawDlgLayerManager.cpt" m_pParent = pParent; m_pDrw = pDrw; m_pTexts = pTexts; m_pLayerCb = pLayerCb; m_sLayerCb = sLayerCb; #line 223 "WxdkdrawDlgLayerManager.cpt" dkctGUILayoutOK = false; sizerHorizontal = NULL; sizerVertical = NULL; scwContents = NULL; sizerButtons = NULL; sizerScwContents = NULL; panelContents = NULL; sizerContents = NULL; #if 0 b00 = NULL; #endif buttonOK = NULL; buttonCancel = NULL; sizerHorizontal = new wxBoxSizer( wxHORIZONTAL ); if(!(sizerHorizontal)) { goto dkctGUILayoutFinished; } sizerHorizontal->Add(10, 10, 0); sizerVertical = new wxBoxSizer( wxVERTICAL ); if(!(sizerVertical)) { goto dkctGUILayoutFinished; } sizerVertical->Add(10, 10, 0); scwContents = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxSize(150, 200) ); if(!(scwContents)) { goto dkctGUILayoutFinished; } sizerScwContents = new wxBoxSizer( wxVERTICAL ); if(!(sizerScwContents)) { goto dkctGUILayoutFinished; } panelContents = new wxPanel( scwContents, wxID_ANY ); if(!(panelContents)) { goto dkctGUILayoutFinished; } sizerContents = new wxBoxSizer( wxVERTICAL ); if(!(sizerContents)) { goto dkctGUILayoutFinished; } sizerContents->Add(10, 10, 0); #line 280 "WxdkdrawDlgLayerManager.cpt" for (i = 0; i < m_sLayerCb; i++) { #line 282 "WxdkdrawDlgLayerManager.cpt" if ((size_t)0U != i) { sizerContents->Add(10, 10, 0); } if (NULL != m_pLayerCb[i].lay) { #line 287 "WxdkdrawDlgLayerManager.cpt" int idv = WXD_ID_LAYER_START + (int)i; wxString str; str.Printf(wxT("%6d"), (int)((m_pLayerCb[i].lay)->lay)); m_pLayerCb[i].cb = new wxCheckBox(panelContents, idv, str); if (NULL == m_pLayerCb[i].cb) { goto dkctGUILayoutFinished; } sizerContents->Add(m_pLayerCb[i].cb); Connect( idv, wxEVT_CHECKBOX, wxCommandEventHandler(WxdkdrawDlgLayerManager::OnCheckBox) ); } } #if 0 b00 = new wxCheckBox( panelContents, wxID_ANY, wxT("Button 0") ); if(!(b00)) { goto dkctGUILayoutFinished; } b00->SetToolTip(wxT("A button to click")); sizerContents->Add( b00 ); #endif sizerContents->Add(10, 10, 0); panelContents->SetSizer(sizerContents); sizerScwContents->Add( panelContents ); scwContents->SetSizer(sizerScwContents); sizerVertical->Add( scwContents, 1, wxALIGN_CENTER_HORIZONTAL ); sizerVertical->Add(10, 10, 0); sizerButtons = new wxStdDialogButtonSizer( ); if(!(sizerButtons)) { goto dkctGUILayoutFinished; } buttonOK = new wxButton( this, wxID_OK, pTexts[335] ); if(!(buttonOK)) { goto dkctGUILayoutFinished; } buttonOK->SetToolTip(pTexts[337]); sizerButtons->AddButton( buttonOK ); buttonCancel = new wxButton( this, wxID_CANCEL, pTexts[336] ); if(!(buttonCancel)) { goto dkctGUILayoutFinished; } buttonCancel->SetToolTip(pTexts[338]); sizerButtons->AddButton( buttonCancel ); sizerButtons->Realize(); sizerVertical->Add( sizerButtons, 0, wxALIGN_CENTER_HORIZONTAL ); sizerVertical->Add(10, 10, 0); sizerHorizontal->Add( sizerVertical, 1, wxGROW ); sizerHorizontal->Add(10, 10, 0); SetSizer(sizerHorizontal); dkctGUILayoutOK = true; dkctGUILayoutFinished: if (dkctGUILayoutOK) { for (i = 0; i < m_sLayerCb; i++) { if ((NULL != m_pLayerCb[i].lay) && (NULL != m_pLayerCb[i].cb)) { if (0x00 != (m_pLayerCb[i].lay)->active) { (m_pLayerCb[i].cb)->SetValue(true); } else { (m_pLayerCb[i].cb)->SetValue(false); } } } panelContents->Layout(); wxSize panelsize = panelContents->GetSize(); scwContents->SetScrollbars( 10, 10, (panelsize.GetWidth() / 10), (panelsize.GetHeight() / 10) ); sizerHorizontal->Fit(this); sizerHorizontal->SetSizeHints(this); } #line 394 "WxdkdrawDlgLayerManager.cpt" } void WxdkdrawDlgLayerManager::UnconnectCheckBoxEvents(void) { size_t i; /* Traverse all checkboxes */ for (i = 0; i < m_sLayerCb; i++) { Disconnect( (WXD_ID_LAYER_START + (int)i), wxEVT_CHECKBOX, wxCommandEventHandler(WxdkdrawDlgLayerManager::OnCheckBox) ); } } void WxdkdrawDlgLayerManager::OnOK(wxCommandEvent & WXUNUSED(event)) { UnconnectCheckBoxEvents(); if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } } void WxdkdrawDlgLayerManager::OnCancel(wxCommandEvent & WXUNUSED(event)) { UnconnectCheckBoxEvents(); if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } } void WxdkdrawDlgLayerManager::OnCheckBox(wxCommandEvent & event) { int idv; /* Window ID from checkbox, index in array */ bool b; /* Checkbox value */ #line 451 "WxdkdrawDlgLayerManager.cpt" idv = event.GetId(); idv = idv - WXD_ID_LAYER_START; if (0 <= idv) { if ((size_t)idv < m_sLayerCb) { if ((NULL != m_pLayerCb[idv].lay) && (NULL != m_pLayerCb[idv].cb)) { b = (m_pLayerCb[idv].cb)->GetValue(); (m_pLayerCb[idv].lay)->active = ((b) ? (0x01) : (0x00)); m_pParent->RequireRedraw(WXD_REFRESH_DRAWING); } } } #line 463 "WxdkdrawDlgLayerManager.cpt" } /* vim: set ai sw=4 ts=4 : */