/* 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: WxdkdrawDlgBoxRadius.wxc */ /** @file WxdkdrawDlgBoxRadius.cpp The WxdkdrawDlgBoxRadius module. */ #line 193 "WxdkdrawDlgBoxRadius.wxc" #ifndef WXDKDRAWDLGDOTFILLED_H_INCLUDED #include "WxdkdrawDlgBoxRadius.h" #endif #line 200 "WxdkdrawDlgBoxRadius.wxc" /** Events to process in this dialog. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(WxdkdrawDlgBoxRadius,wxDialog) #else BEGIN_EVENT_TABLE(WxdkdrawDlgBoxRadius,wxDialog) #endif EVT_BUTTON(\ wxID_OK,\ WxdkdrawDlgBoxRadius::OnOK\ ) EVT_BUTTON(\ wxID_CANCEL,\ WxdkdrawDlgBoxRadius::OnCancel\ ) EVT_SLIDER(\ WxdkdrawDlgBoxRadius::WXD_ID_RADIUS,\ WxdkdrawDlgBoxRadius::OnRadius\ ) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif #line 229 "WxdkdrawDlgBoxRadius.wxc" WxdkdrawDlgBoxRadius::WxdkdrawDlgBoxRadius( WxdkdrawFrame *pParent, wxControl *pControl, Wxd_drawing_t *pDrw, Wxd_object_t *pObject, wxChar const * const *pTexts, wxChar const * const *sNlWx, uint32_t uStepLength, int iRangeMax, size_t szUnitIndex ) : wxDialog( pParent, wxID_ANY, pTexts[574], wxDefaultPosition, wxDefaultSize, ( (wxDEFAULT_DIALOG_STYLE) & (~(wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) { #line 252 "WxdkdrawDlgBoxRadius.wxc" #line 253 "WxdkdrawDlgBoxRadius.wxc" #line 254 "WxdkdrawDlgBoxRadius.wxc" #line 255 "WxdkdrawDlgBoxRadius.wxc" m_pParent = pParent; m_pControl = pControl; m_pDrw = pDrw; m_pObject = pObject; m_sTexts = pTexts; m_sNlWx = sNlWx; m_uStepLength = uStepLength; m_iRangeMax = iRangeMax; m_uOriginalRadius = (pObject->det).b.r; m_dDivisor = ((((size_t)501U) == szUnitIndex) ? (CMWXD) : (RESWXD)); dkctGUILayoutOK = false; sizerHorizontal = NULL; sizerVertical = NULL; sizerContents = NULL; sizerButtons = NULL; lRadius = NULL; tRadius = NULL; tUnit = NULL; slRadius = 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; } lRadius = new wxStaticText( this, wxID_ANY, pTexts[502] ); if(!(lRadius)) { goto dkctGUILayoutFinished; } sizerContents->Add( lRadius, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); tRadius = new wxStaticText( this, wxID_ANY, sNlWx[7] ); if(!(tRadius)) { goto dkctGUILayoutFinished; } sizerContents->Add( tRadius, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); tUnit = new wxStaticText( this, wxID_ANY, pTexts[szUnitIndex] ); if(!(tUnit)) { goto dkctGUILayoutFinished; } sizerContents->Add( tUnit, wxGBPosition(0, 2), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); slRadius = new wxSlider( this, WXD_ID_RADIUS, 0, 0, 10 ); if(!(slRadius)) { goto dkctGUILayoutFinished; } sizerContents->Add( slRadius, wxGBPosition(1, 0), wxGBSpan(1, 3), wxALIGN_CENTER_HORIZONTAL|wxGROW ); sizerContents->AddGrowableCol(1); 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 268 "WxdkdrawDlgBoxRadius.wxc" if (dkctGUILayoutOK) { /* Fix dialog size */ wxSize minsize = GetMinSize(); SetMaxSize(minsize); /* Retrieve object attributes */ slRadius->SetRange(0, iRangeMax); { wxString s; s.Printf(wxT("%g"), ((double)m_uOriginalRadius / m_dDivisor)); tRadius->SetLabel(s); } { int v; v = (int)(m_uOriginalRadius / uStepLength); if ( (m_uOriginalRadius % uStepLength) >= (uStepLength / (uint32_t)2UL) ) { v++; } slRadius->SetValue(v); } } #line 296 "WxdkdrawDlgBoxRadius.wxc" } #line 300 "WxdkdrawDlgBoxRadius.wxc" void WxdkdrawDlgBoxRadius::OnOK(wxCommandEvent & WXUNUSED(event)) { if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } } void WxdkdrawDlgBoxRadius::OnCancel(wxCommandEvent & WXUNUSED(event)) { (m_pObject->det).b.r = m_uOriginalRadius; if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } } void WxdkdrawDlgBoxRadius::OnRadius(wxCommandEvent & WXUNUSED(event)) { dk4_er_t er; uint32_t r; int v; #line 338 "WxdkdrawDlgBoxRadius.wxc" v = slRadius->GetValue(); #line 339 "WxdkdrawDlgBoxRadius.wxc" dk4error_init(&er); r = dk4ma_uint32_t_mul(m_uStepLength, (uint32_t)v, &er); #line 342 "WxdkdrawDlgBoxRadius.wxc" if (DK4_E_NONE == er.ec) { (m_pObject->det).b.r = r; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); m_pControl->Refresh(); m_pParent->Update(); { wxString s; s.Printf(wxT("%g"), ((double)r / m_dDivisor)); tRadius->SetLabel(s); } Refresh(); Update(); } else { /* ERROR: Overflow */ wxMessageBox( m_sTexts[504], m_sTexts[503], (wxOK | wxCENTRE | wxICON_ERROR) ); } #line 362 "WxdkdrawDlgBoxRadius.wxc" } /* vim: set ai sw=4 ts=4 : */