/* Copyright (C) 2020-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: WxdkdrawDlgDotFilled.wxc */ /** @file WxdkdrawDlgDotFilled.cpp The WxdkdrawDlgDotFilled module. */ #line 181 "WxdkdrawDlgDotFilled.wxc" #ifndef WXDKDRAWDLGDOTFILLED_H_INCLUDED #include "WxdkdrawDlgDotFilled.h" #endif #line 188 "WxdkdrawDlgDotFilled.wxc" /** Events to process in this dialog. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(WxdkdrawDlgDotFilled,wxDialog) #else BEGIN_EVENT_TABLE(WxdkdrawDlgDotFilled,wxDialog) #endif EVT_BUTTON(\ wxID_OK,\ WxdkdrawDlgDotFilled::OnOK\ ) EVT_BUTTON(\ wxID_CANCEL,\ WxdkdrawDlgDotFilled::OnCancel\ ) EVT_SPINCTRL(\ WxdkdrawDlgDotFilled::WXD_ID_DIAMETER,\ WxdkdrawDlgDotFilled::OnDiameter\ ) EVT_SPINCTRL(\ WxdkdrawDlgDotFilled::WXD_ID_LINEWIDTH,\ WxdkdrawDlgDotFilled::OnLinewidth\ ) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif #line 221 "WxdkdrawDlgDotFilled.wxc" WxdkdrawDlgDotFilled::WxdkdrawDlgDotFilled( WxdkdrawFrame *pParent, wxControl *pControl, Wxd_drawing_t *pDrw, Wxd_object_t *pObject, wxChar const * const *pTexts ) : wxDialog( pParent, wxID_ANY, pTexts[494], wxDefaultPosition, wxDefaultSize, ( (wxDEFAULT_DIALOG_STYLE) & (~(wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) { m_pParent = pParent; m_pControl = pControl; m_pDrw = pDrw; m_pObject = pObject; m_sTexts = pTexts; m_uOriginalDiameter = (pObject->det).d.d; m_uOriginalLinewidth = pObject->lw; dkctGUILayoutOK = false; sizerHorizontal = NULL; sizerVertical = NULL; sizerContents = NULL; sizerButtons = NULL; lDiameter = NULL; spDiameter = NULL; lLinewidth = NULL; spLinewidth = NULL; 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); sizerContents = new wxGridBagSizer( 5, 5 ); if(!(sizerContents)) { goto dkctGUILayoutFinished; } lDiameter = new wxStaticText( this, wxID_ANY, pTexts[495] ); if(!(lDiameter)) { goto dkctGUILayoutFinished; } sizerContents->Add( lDiameter, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL ); spDiameter = new wxSpinCtrl( this, WXD_ID_DIAMETER, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 1, 65535, 8 ); if(!(spDiameter)) { goto dkctGUILayoutFinished; } spDiameter->SetToolTip(pTexts[496]); sizerContents->Add( spDiameter, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); lLinewidth = new wxStaticText( this, wxID_ANY, pTexts[497] ); if(!(lLinewidth)) { goto dkctGUILayoutFinished; } sizerContents->Add( lLinewidth, wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL ); spLinewidth = new wxSpinCtrl( this, WXD_ID_LINEWIDTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 1, 65535, 2 ); if(!(spLinewidth)) { goto dkctGUILayoutFinished; } spLinewidth->SetToolTip(pTexts[498]); sizerContents->Add( spLinewidth, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); sizerVertical->Add( sizerContents, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW ); sizerVertical->Add(10, 10, 0); sizerButtons = new wxStdDialogButtonSizer( ); if(!(sizerButtons)) { goto dkctGUILayoutFinished; } buttonOK = new wxButton( this, wxID_OK, pTexts[476] ); if(!(buttonOK)) { goto dkctGUILayoutFinished; } buttonOK->SetToolTip(pTexts[478]); sizerButtons->AddButton( buttonOK ); buttonCancel = new wxButton( this, wxID_CANCEL, pTexts[477] ); if(!(buttonCancel)) { goto dkctGUILayoutFinished; } buttonCancel->SetToolTip(pTexts[479]); sizerButtons->AddButton( buttonCancel ); sizerButtons->Realize(); sizerVertical->Add( sizerButtons, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW ); sizerVertical->Add(10, 10, 0); sizerHorizontal->Add( sizerVertical ); sizerHorizontal->Add(10, 10, 0); SetSizer(sizerHorizontal); dkctGUILayoutOK = true; dkctGUILayoutFinished: if(dkctGUILayoutOK) { sizerHorizontal->Fit(this); sizerHorizontal->SetSizeHints(this); } #line 249 "WxdkdrawDlgDotFilled.wxc" if (dkctGUILayoutOK) { /* Fix dialog size */ wxSize minsize = GetMinSize(); SetMaxSize(minsize); /* Retrieve object attributes */ spDiameter->SetValue( (int)((pObject->det).d.d) ); if (WXD_OT_DOT_WHITE == m_pObject->ot) { if ((uint16_t)1U < (pObject->det).d.d) { spLinewidth->SetRange(1, ((int)((pObject->det).d.d) - 1)); } else { spLinewidth->SetRange(1, (int)((pObject->det).d.d) ); } spLinewidth->SetValue(pObject->lw); } else { spLinewidth->Enable(false); } } } #line 276 "WxdkdrawDlgDotFilled.wxc" void WxdkdrawDlgDotFilled::OnOK(wxCommandEvent & WXUNUSED(event)) { (m_pObject->det).d.d = (uint16_t)(spDiameter->GetValue()); if (WXD_OT_DOT_WHITE == m_pObject->ot) { m_pObject->lw = (uint16_t)(spLinewidth->GetValue()); } if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } } void WxdkdrawDlgDotFilled::OnCancel(wxCommandEvent & WXUNUSED(event)) { (m_pObject->det).d.d = m_uOriginalDiameter; if (WXD_OT_DOT_WHITE == m_pObject->ot) { m_pObject->lw = m_uOriginalLinewidth; } if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } } void WxdkdrawDlgDotFilled::OnDiameter(wxSpinEvent & WXUNUSED(event)) { int diameter; int lw; int maxlw; bool bUpdateDrawing = false; bool bUpdateDialog = false; diameter = spDiameter->GetValue(); if ((uint16_t)diameter != (m_pObject->det).d.d) { (m_pObject->det).d.d = diameter; bUpdateDrawing = true; } if (WXD_OT_DOT_WHITE == m_pObject->ot) { maxlw = ((1 < diameter) ? (diameter - 1) : (diameter)); spLinewidth->SetRange(1, maxlw); bUpdateDialog = true; lw = spLinewidth->GetValue(); if (lw > maxlw) { spLinewidth->SetValue(maxlw); m_pObject->lw = (uint16_t)maxlw; } } if (bUpdateDrawing) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); m_pControl->Refresh(); m_pParent->Update(); } if (bUpdateDialog) { spLinewidth->Refresh(); Update(); } } void WxdkdrawDlgDotFilled::OnLinewidth(wxSpinEvent & WXUNUSED(event)) { if (WXD_OT_DOT_WHITE == m_pObject->ot) { m_pObject->lw = spLinewidth->GetValue(); wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); m_pControl->Refresh(); m_pParent->Update(); } } /* vim: set ai sw=4 ts=4 : */