/* 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: WxdkdrawDlgFontName.wxc */ /** @file WxdkdrawDlgFontName.cpp The WxdkdrawDlgFontName module. */ #line 285 "WxdkdrawDlgFontName.wxc" #ifndef WXDKDRAWDLGFONTNAME_H_INCLUDED #include "WxdkdrawDlgFontName.h" #endif #line 294 "WxdkdrawDlgFontName.wxc" /** Assign event handlers to window IDs. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(WxdkdrawDlgFontName,wxDialog) #else BEGIN_EVENT_TABLE(WxdkdrawDlgFontName,wxDialog) #endif EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_00,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_01,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_02,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_03,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_04,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_05,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_06,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_07,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_08,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_09,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_RADIOBUTTON(\ WxdkdrawDlgFontName::WXD_ID_FONT_10,\ WxdkdrawDlgFontName::OnFontFamily\ ) EVT_CHECKBOX(\ WxdkdrawDlgFontName::WXD_ID_FONT_BOLD,\ WxdkdrawDlgFontName::OnBold\ ) EVT_CHECKBOX(\ WxdkdrawDlgFontName::WXD_ID_FONT_ITALIC,\ WxdkdrawDlgFontName::OnItalic\ ) EVT_BUTTON(\ wxID_OK,\ WxdkdrawDlgFontName::OnOK\ ) EVT_BUTTON(\ wxID_CANCEL,\ WxdkdrawDlgFontName::OnCancel\ ) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif #line 371 "WxdkdrawDlgFontName.wxc" WxdkdrawDlgFontName::WxdkdrawDlgFontName( WxdkdrawFrame *pParent, Wxd_object_t *pObject, bool bRealObj, wxChar const * const *pTexts, const char ** const *pImages ) : wxDialog( pParent, wxID_ANY, pTexts[296], wxDefaultPosition, wxDefaultSize, ( (wxDEFAULT_DIALOG_STYLE) & (~(wxRESIZE_BORDER)) & (~(wxCLOSE_BOX)) & (~(wxSYSTEM_MENU)) ) ) { m_pParent = pParent; m_pObject = pObject; m_bRealObj = bRealObj; m_pTexts = pTexts; m_pImages = pImages; m_uOldFontnumber = m_uFontnumber = (pObject->det).t.find; m_uFontbase = m_uFontnumber; if (32U > m_uFontnumber) { m_uFontbase = 4U * (m_uFontbase / 4U); } dkctGUILayoutOK = false; sizerHorizontal = NULL; sizerVertical = NULL; sizerInputs = NULL; sizerResult = NULL; sizerButtons = NULL; b00 = NULL; b01 = NULL; b02 = NULL; b03 = NULL; b04 = NULL; b05 = NULL; b06 = NULL; b07 = NULL; b08 = NULL; b09 = NULL; b10 = NULL; checkboxBold = NULL; checkboxItalic = NULL; labelFontname = NULL; bitmapFontname = 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); sizerInputs = new wxGridBagSizer( 5, 5 ); if(!(sizerInputs)) { goto dkctGUILayoutFinished; } b00 = new wxRadioButton( this, WXD_ID_FONT_00, pTexts[352], wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); if(!(b00)) { goto dkctGUILayoutFinished; } b00->SetToolTip(pTexts[352]); sizerInputs->Add( b00, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b01 = new wxRadioButton( this, WXD_ID_FONT_01, pTexts[353] ); if(!(b01)) { goto dkctGUILayoutFinished; } b01->SetToolTip(pTexts[353]); sizerInputs->Add( b01, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b02 = new wxRadioButton( this, WXD_ID_FONT_02, pTexts[354] ); if(!(b02)) { goto dkctGUILayoutFinished; } b02->SetToolTip(pTexts[354]); sizerInputs->Add( b02, wxGBPosition(0, 2), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b03 = new wxRadioButton( this, WXD_ID_FONT_03, pTexts[355] ); if(!(b03)) { goto dkctGUILayoutFinished; } b03->SetToolTip(pTexts[355]); sizerInputs->Add( b03, wxGBPosition(0, 3), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b04 = new wxRadioButton( this, WXD_ID_FONT_04, pTexts[356] ); if(!(b04)) { goto dkctGUILayoutFinished; } b04->SetToolTip(pTexts[356]); sizerInputs->Add( b04, wxGBPosition(1, 0), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b05 = new wxRadioButton( this, WXD_ID_FONT_05, pTexts[357] ); if(!(b05)) { goto dkctGUILayoutFinished; } b05->SetToolTip(pTexts[357]); sizerInputs->Add( b05, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b06 = new wxRadioButton( this, WXD_ID_FONT_06, pTexts[358] ); if(!(b06)) { goto dkctGUILayoutFinished; } b06->SetToolTip(pTexts[358]); sizerInputs->Add( b06, wxGBPosition(1, 2), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b07 = new wxRadioButton( this, WXD_ID_FONT_07, pTexts[359] ); if(!(b07)) { goto dkctGUILayoutFinished; } b07->SetToolTip(pTexts[359]); sizerInputs->Add( b07, wxGBPosition(1, 3), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b08 = new wxRadioButton( this, WXD_ID_FONT_08, pTexts[360] ); if(!(b08)) { goto dkctGUILayoutFinished; } b08->SetToolTip(pTexts[360]); sizerInputs->Add( b08, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b09 = new wxRadioButton( this, WXD_ID_FONT_09, pTexts[361] ); if(!(b09)) { goto dkctGUILayoutFinished; } b09->SetToolTip(pTexts[361]); sizerInputs->Add( b09, wxGBPosition(2, 1), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); b10 = new wxRadioButton( this, WXD_ID_FONT_10, pTexts[362] ); if(!(b10)) { goto dkctGUILayoutFinished; } b10->SetToolTip(pTexts[362]); sizerInputs->Add( b10, wxGBPosition(2, 2), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); sizerInputs->Add(10, 10, wxGBPosition(3, 0), wxGBSpan(1, 1)); checkboxBold = new wxCheckBox( this, WXD_ID_FONT_BOLD, pTexts[363] ); if(!(checkboxBold)) { goto dkctGUILayoutFinished; } sizerInputs->Add( checkboxBold, wxGBPosition(4, 0), wxGBSpan(1, 4), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); checkboxItalic = new wxCheckBox( this, WXD_ID_FONT_ITALIC, pTexts[364] ); if(!(checkboxItalic)) { goto dkctGUILayoutFinished; } sizerInputs->Add( checkboxItalic, wxGBPosition(5, 0), wxGBSpan(1, 1), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL ); sizerInputs->Add(10, 10, wxGBPosition(6, 0), wxGBSpan(1, 1)); sizerVertical->Add( sizerInputs, 0, wxALIGN_CENTER_HORIZONTAL ); sizerVertical->Add(10, 10, 0); sizerResult = new wxBoxSizer( wxVERTICAL ); if(!(sizerResult)) { goto dkctGUILayoutFinished; } labelFontname = new wxStaticText( this, wxID_ANY, pTexts[352] ); if(!(labelFontname)) { goto dkctGUILayoutFinished; } sizerResult->Add( labelFontname, 0, wxALIGN_LEFT ); sizerResult->Add(5, 5, 0); bitmapFontname = new wxStaticBitmap( this, wxID_ANY, wxBitmap(pImages[0]) ); if(!(bitmapFontname)) { goto dkctGUILayoutFinished; } sizerResult->Add( bitmapFontname, 0, wxALIGN_CENTER_HORIZONTAL ); sizerVertical->Add( sizerResult, 0, wxALIGN_CENTER_HORIZONTAL ); sizerVertical->Add(10, 10, 0); sizerButtons = new wxStdDialogButtonSizer( ); if(!(sizerButtons)) { goto dkctGUILayoutFinished; } buttonOK = new wxButton( this, wxID_OK, pTexts[365] ); if(!(buttonOK)) { goto dkctGUILayoutFinished; } buttonOK->SetToolTip(pTexts[366]); sizerButtons->AddButton( buttonOK ); buttonCancel = new wxButton( this, wxID_CANCEL, pTexts[297] ); if(!(buttonCancel)) { goto dkctGUILayoutFinished; } buttonCancel->SetToolTip(pTexts[298]); sizerButtons->AddButton( buttonCancel ); sizerButtons->Realize(); sizerVertical->Add( sizerButtons, 0, wxALIGN_CENTER_HORIZONTAL ); 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 400 "WxdkdrawDlgFontName.wxc" if (dkctGUILayoutOK) { /* Fix dialog size */ wxSize minsize = GetMinSize(); SetMaxSize(minsize); /* Transfer font from drawing object to UI elements */ labelFontname->SetLabel(pTexts[299 + m_uFontnumber]); bitmapFontname->SetBitmap(wxBitmap(pImages[m_uFontnumber])); switch (m_uFontbase) { case 0 : { b00->SetValue(true); } break; case 4 : { b01->SetValue(true); } break; case 8 : { b02->SetValue(true); } break; case 12 : { b03->SetValue(true); } break; case 16 : { b04->SetValue(true); } break; case 20 : { b05->SetValue(true); } break; case 24 : { b06->SetValue(true); } break; case 28 : { b07->SetValue(true); } break; case 32 : { b08->SetValue(true); } break; case 33 : { b09->SetValue(true); } break; case 34 : { b10->SetValue(true); } break; } if (32U > m_uFontnumber) { switch (m_uFontnumber % 4U) { case 0 : { checkboxBold->SetValue(false); checkboxItalic->SetValue(false); } break; case 1 : { checkboxBold->SetValue(false); checkboxItalic->SetValue(true); } break; case 2 : { checkboxBold->SetValue(true); checkboxItalic->SetValue(false); } break; case 3 : { checkboxBold->SetValue(true); checkboxItalic->SetValue(true); } break; } } else { checkboxBold->SetValue(false); checkboxItalic->SetValue(false); checkboxBold->Enable(false); checkboxItalic->Enable(false); } } } #line 454 "WxdkdrawDlgFontName.wxc" void WxdkdrawDlgFontName::UpdateFontInformation(void) { #line 460 "WxdkdrawDlgFontName.wxc" m_uFontnumber = m_uFontbase; if (32U > m_uFontnumber) { /* Fonts allowing bold/italic variants */ if (checkboxBold->GetValue()) { m_uFontnumber += 2U; } if (checkboxItalic->GetValue()) { m_uFontnumber += 1U; } checkboxBold->Enable(); checkboxItalic->Enable(); } else { /* Fonts without bold/italic variants */ checkboxBold->Enable(false); checkboxItalic->Enable(false); } /* Update dialog */ labelFontname->SetLabel(m_pTexts[299 + m_uFontnumber]); bitmapFontname->SetBitmap(m_pImages[m_uFontnumber]); Refresh(); Update(); (m_pObject->det).t.find = m_uFontnumber; /* When modifying a drawing element, update draw control */ if (m_bRealObj) { m_pParent->UpdateTextForFont(m_pObject); } #line 496 "WxdkdrawDlgFontName.wxc" } void WxdkdrawDlgFontName::OnFontFamily(wxCommandEvent & event) { #line 504 "WxdkdrawDlgFontName.wxc" m_uFontbase = 0U; switch (event.GetId()) { case WXD_ID_FONT_00 : { #line 507 "WxdkdrawDlgFontName.wxc" m_uFontbase = 0U; } break; case WXD_ID_FONT_01 : { #line 510 "WxdkdrawDlgFontName.wxc" m_uFontbase = 4U; } break; case WXD_ID_FONT_02 : { #line 513 "WxdkdrawDlgFontName.wxc" m_uFontbase = 8U; } break; case WXD_ID_FONT_03 : { #line 516 "WxdkdrawDlgFontName.wxc" m_uFontbase = 12U; } break; case WXD_ID_FONT_04 : { #line 519 "WxdkdrawDlgFontName.wxc" m_uFontbase = 16U; } break; case WXD_ID_FONT_05 : { #line 522 "WxdkdrawDlgFontName.wxc" m_uFontbase = 20U; } break; case WXD_ID_FONT_06 : { #line 525 "WxdkdrawDlgFontName.wxc" m_uFontbase = 24U; } break; case WXD_ID_FONT_07 : { #line 528 "WxdkdrawDlgFontName.wxc" m_uFontbase = 28U; } break; case WXD_ID_FONT_08 : { #line 531 "WxdkdrawDlgFontName.wxc" m_uFontbase = 32U; } break; case WXD_ID_FONT_09 : { #line 534 "WxdkdrawDlgFontName.wxc" m_uFontbase = 33U; } break; case WXD_ID_FONT_10 : { #line 537 "WxdkdrawDlgFontName.wxc" m_uFontbase = 34U; } break; } #line 541 "WxdkdrawDlgFontName.wxc" UpdateFontInformation(); #line 543 "WxdkdrawDlgFontName.wxc" } void WxdkdrawDlgFontName::OnOK(wxCommandEvent & WXUNUSED(event)) { if (m_bRealObj) { m_pParent->RequireRedraw(WXD_REFRESH_DRAWING); } if(IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Show(false); } } void WxdkdrawDlgFontName::OnCancel(wxCommandEvent & WXUNUSED(event)) { bool bDoRefresh = false; if ((m_bRealObj) && (m_uOldFontnumber != (m_pObject->det).t.find)) { bDoRefresh = true; } (m_pObject->det).t.find = m_uFontnumber = m_uOldFontnumber; if (bDoRefresh) { m_pParent->RequireRedraw(WXD_REFRESH_DRAWING); } if(IsModal()) { EndModal(wxID_CANCEL); } else { SetReturnCode(wxID_CANCEL); Show(false); } } void WxdkdrawDlgFontName::OnBold(wxCommandEvent & WXUNUSED(event)) { UpdateFontInformation(); } void WxdkdrawDlgFontName::OnItalic(wxCommandEvent & WXUNUSED(event)) { UpdateFontInformation(); } /* vim: set ai sw=4 ts=4 : */