/* 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: WxdkdrawFrameEvents.cpt */ /** @file WxdkdrawFrameEvents.cpp The WxdkdrawFrameEvents module. */ #line 7 "WxdkdrawFrameEvents.cpt" #include "wxdkdraw.h" #ifndef DK4WXYESNODIALOG_H_INCLUDED #include "Dk4WxYesNoDialog.h" #endif #ifndef WXDKDRAWAPPH_INCLUDED #include "WxdkdrawApp.h" #endif #ifndef WXDKDRAWFRAME_H_INCLUDED #include "WxdkdrawFrame.h" #endif #ifndef WXDKDRAWDLGLINESTYLE_H_INCLUDED #include "WxdkdrawDlgLineStyle.h" #endif #ifndef WXDKDRAWDLGSTYLELENGTH_H_INCLUDED #include "WxdkdrawDlgStyleLength.h" #endif #ifndef WXDKDRAWDLGLINEJOIN_H_INCLUDED #include "WxdkdrawDlgLineJoin.h" #endif #ifndef WXDKDRAWDLGMITERLIMIT_H_INCLUDED #include "WxdkdrawDlgMiterLimit.h" #endif #ifndef WXDKDRAWDLGLINECAP_H_INCLUDED #include "WxdkdrawDlgLineCap.h" #endif #ifndef WXDKDRAWDLGARROWTYPE_H_INCLUDED #include "WxdkdrawDlgArrowType.h" #endif #ifndef WXDKDRAWDLGARROWSIZE_H_INCLUDED #include "WxdkdrawDlgArrowSize.h" #endif #ifndef WXDKDRAWDLGFILLSTYLE_H_INCLUDED #include "WxdkdrawDlgFillStyle.h" #endif #ifndef WXDKDRAWDLGTEXTALIGN_H_INCLUDED #include "WxdkdrawDlgTextAlign.h" #endif #ifndef WXDKDRAWDLGFONTNAME_H_INCLUDED #include "WxdkdrawDlgFontName.h" #endif #ifndef WXDKDRAWDLGLAYERMANAGER_H_INCLUDED #include "WxdkdrawDlgLayerManager.h" #endif #ifndef WXDKDRAWDLGTEXTINPUT_H_INCLUDED #include "WxdkdrawDlgTextInput.h" #endif #ifndef WXDKDRAWDLGSPLINEVALUE_H_INCLUDED #include "WxdkdrawDlgSplineValue.h" #endif #ifndef WXDKDRAWDLGOPTIONSNEWOBJECTS_H_INCLUDED #include "WxdkdrawDlgOptionsNewObjects.h" #endif #ifndef WXDKDRAWDLGOPTIONSSCREEN_H_INCLUDED #include "WxdkdrawDlgOptionsScreen.h" #endif #line 84 "WxdkdrawFrameEvents.cpt" /** Events the frame must handle. */ #if wxCHECK_VERSION(3,0,0) wxBEGIN_EVENT_TABLE(WxdkdrawFrame,wxFrame) #else BEGIN_EVENT_TABLE(WxdkdrawFrame,wxFrame) #endif EVT_MENU(\ wxID_EXIT,\ WxdkdrawFrame::OnQuit\ ) EVT_MENU(\ WxdkdrawFrame::ID_HELP_ABOUT,\ WxdkdrawFrame::OnAbout\ ) EVT_MENU(\ WxdkdrawFrame::ID_HELP_CONTENTS,\ WxdkdrawFrame::OnHelpContents\ ) EVT_MENU(\ wxID_NEW,\ WxdkdrawFrame::OnFileNew\ ) EVT_MENU(\ wxID_OPEN,\ WxdkdrawFrame::OnFileOpen\ ) EVT_BUTTON(\ wxID_OPEN,\ WxdkdrawFrame::OnFileOpen\ ) EVT_MENU(\ wxID_SAVE,\ WxdkdrawFrame::OnFileSave\ ) EVT_BUTTON(\ wxID_SAVE,\ WxdkdrawFrame::OnFileSave\ ) EVT_MENU(\ wxID_SAVEAS,\ WxdkdrawFrame::OnFileSaveAs\ ) EVT_MENU(\ wxID_ZOOM_IN,\ WxdkdrawFrame::OnZoomIn\ ) EVT_BUTTON(\ wxID_ZOOM_IN,\ WxdkdrawFrame::OnZoomIn\ ) EVT_MENU(\ wxID_ZOOM_OUT,\ WxdkdrawFrame::OnZoomOut\ ) EVT_BUTTON(\ wxID_ZOOM_OUT,\ WxdkdrawFrame::OnZoomOut\ ) EVT_MENU(\ wxID_ZOOM_100,\ WxdkdrawFrame::OnZoom100\ ) EVT_BUTTON(\ wxID_ZOOM_100,\ WxdkdrawFrame::OnZoom100\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_POLYINE,\ WxdkdrawFrame::OnAddPolyline\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_POLYINE,\ WxdkdrawFrame::OnAddPolyline\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_POLYGON,\ WxdkdrawFrame::OnAddPolygon\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_POLYGON,\ WxdkdrawFrame::OnAddPolygon\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_RECT,\ WxdkdrawFrame::OnAddRectangle\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_RECT,\ WxdkdrawFrame::OnAddRectangle\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_BOX,\ WxdkdrawFrame::OnAddBox\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_BOX,\ WxdkdrawFrame::OnAddBox\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_CIRCLE,\ WxdkdrawFrame::OnAddCircle\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_CIRCLE,\ WxdkdrawFrame::OnAddCircle\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_ELLIPSE,\ WxdkdrawFrame::OnAddEllipse\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_ELLIPSE,\ WxdkdrawFrame::OnAddEllipse\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_ARC_O,\ WxdkdrawFrame::OnAddArcOpen\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_ARC_O,\ WxdkdrawFrame::OnAddArcOpen\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_ARC_C,\ WxdkdrawFrame::OnAddArcClosed\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_ARC_C,\ WxdkdrawFrame::OnAddArcClosed\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_SPL_AO,\ WxdkdrawFrame::OnAddSplineAO\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_SPL_AO,\ WxdkdrawFrame::OnAddSplineAO\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_SPL_AC,\ WxdkdrawFrame::OnAddSplineAC\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_SPL_AC,\ WxdkdrawFrame::OnAddSplineAC\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_SPL_IO,\ WxdkdrawFrame::OnAddSplineIO\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_SPL_IO,\ WxdkdrawFrame::OnAddSplineIO\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_SPL_IC,\ WxdkdrawFrame::OnAddSplineIC\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_SPL_IC,\ WxdkdrawFrame::OnAddSplineIC\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_DOT_C,\ WxdkdrawFrame::OnAddDot\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_DOT_C,\ WxdkdrawFrame::OnAddDot\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_DOT_W,\ WxdkdrawFrame::OnAddWhiteDot\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_DOT_W,\ WxdkdrawFrame::OnAddWhiteDot\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_TEXT,\ WxdkdrawFrame::OnAddTextlabel\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_TEXT,\ WxdkdrawFrame::OnAddTextlabel\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_IMG,\ WxdkdrawFrame::OnAddImage\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_IMG,\ WxdkdrawFrame::OnAddImage\ ) EVT_MENU(\ WxdkdrawFrame::ID_ADD_LIBELEM,\ WxdkdrawFrame::OnAddLibelem\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ADD_LIBELEM,\ WxdkdrawFrame::OnAddLibelem\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_COPY,\ WxdkdrawFrame::OnEditCopy\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_COPY,\ WxdkdrawFrame::OnEditCopy\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_MOVE,\ WxdkdrawFrame::OnEditMove\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_MOVE,\ WxdkdrawFrame::OnEditMove\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_DEL,\ WxdkdrawFrame::OnEditDelete\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_DEL,\ WxdkdrawFrame::OnEditDelete\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_PT_MOVE,\ WxdkdrawFrame::OnEditPointMove\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_PT_MOVE,\ WxdkdrawFrame::OnEditPointMove\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_PT_ADD,\ WxdkdrawFrame::OnEditPointAdd\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_PT_ADD,\ WxdkdrawFrame::OnEditPointAdd\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_PT_DEL,\ WxdkdrawFrame::OnEditPointDelete\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_PT_DEL,\ WxdkdrawFrame::OnEditPointDelete\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_DET,\ WxdkdrawFrame::OnEditDetails\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_DET,\ WxdkdrawFrame::OnEditDetails\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_GRP1,\ WxdkdrawFrame::OnEditGroup\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_GRP13,\ WxdkdrawFrame::OnEditGroup3\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_GRP1,\ WxdkdrawFrame::OnEditGroup\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_GRP13,\ WxdkdrawFrame::OnEditGroup3\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_UNGRP,\ WxdkdrawFrame::OnEditUngroup\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_UNGRP,\ WxdkdrawFrame::OnEditUngroup\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_FLIPH,\ WxdkdrawFrame::OnEditFlipH\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_FLIPH,\ WxdkdrawFrame::OnEditFlipH\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_FLIPV,\ WxdkdrawFrame::OnEditFlipV\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_FLIPV,\ WxdkdrawFrame::OnEditFlipV\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_ROTLEFT,\ WxdkdrawFrame::OnEditRotateLeft\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_ROTLEFT,\ WxdkdrawFrame::OnEditRotateLeft\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_ROTRIGHT,\ WxdkdrawFrame::OnEditRotateRight\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_ROTRIGHT,\ WxdkdrawFrame::OnEditRotateRight\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_DRSZ,\ WxdkdrawFrame::OnEditChangeSize\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_EDIT_DRSZ,\ WxdkdrawFrame::OnEditChangeSize\ ) EVT_MENU(\ WxdkdrawFrame::ID_LAYERS_ALL,\ WxdkdrawFrame::OnLayersAll\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_LAYERS_ALL,\ WxdkdrawFrame::OnLayersAll\ ) EVT_MENU(\ WxdkdrawFrame::ID_LAYERS_MGR,\ WxdkdrawFrame::OnLayerManager\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_LAYERS_MGR,\ WxdkdrawFrame::OnLayerManager\ ) EVT_MENU(\ WxdkdrawFrame::ID_ZOOM_CENTER,\ WxdkdrawFrame::OnCenterView\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_1,\ WxdkdrawFrame::OnConvert1\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_2,\ WxdkdrawFrame::OnConvert2\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_3,\ WxdkdrawFrame::OnConvert3\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_4,\ WxdkdrawFrame::OnConvert4\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_5,\ WxdkdrawFrame::OnConvert5\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_6,\ WxdkdrawFrame::OnConvert6\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_7,\ WxdkdrawFrame::OnConvert7\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_8,\ WxdkdrawFrame::OnConvert8\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_9,\ WxdkdrawFrame::OnConvert9\ ) EVT_MENU(\ WxdkdrawFrame::ID_EDIT_CONVERT_A,\ WxdkdrawFrame::OnConvertA\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_BORDER,\ WxdkdrawFrame::OnColourBorderModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_BORDER,\ WxdkdrawFrame::OnColourBorderReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_BACKGROUND,\ WxdkdrawFrame::OnColourBackgroundModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_BACKGROUND,\ WxdkdrawFrame::OnColourBackgroundReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_GRID,\ WxdkdrawFrame::OnColourGridModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_GRID,\ WxdkdrawFrame::OnColourGridReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_PH,\ WxdkdrawFrame::OnColourPlacementModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_PH,\ WxdkdrawFrame::OnColourPlacementReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_COPY,\ WxdkdrawFrame::OnColourCopyModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_COPY,\ WxdkdrawFrame::OnColourCopyReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_MOVE,\ WxdkdrawFrame::OnColourMoveModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_MOVE,\ WxdkdrawFrame::OnColourMoveReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_DELETE,\ WxdkdrawFrame::OnColourDeleteModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_DELETE,\ WxdkdrawFrame::OnColourDeleteReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_GROUP,\ WxdkdrawFrame::OnColourGroupModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_GROUP,\ WxdkdrawFrame::OnColourGroupReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_MOD_MISSING,\ WxdkdrawFrame::OnColourMissingModify\ ) EVT_MENU(\ WxdkdrawFrame::ID_COL_RES_MISSING,\ WxdkdrawFrame::OnColourMissingReset\ ) EVT_MENU(\ WxdkdrawFrame::ID_RESET_OPTIONS,\ WxdkdrawFrame::OnResetOptions\ ) EVT_MENU(\ WxdkdrawFrame::ID_MOD_SPLINE,\ WxdkdrawFrame::OnModifySplineValue\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_MOD_SPLINE,\ WxdkdrawFrame::OnModifySplineValue\ ) EVT_MENU(\ WxdkdrawFrame::ID_OPT_NEW_OBJECTS,\ WxdkdrawFrame::OnOptionsNewObjects\ ) EVT_MENU(\ WxdkdrawFrame::ID_OPT_SCREEN,\ WxdkdrawFrame::OnOptionsScreenRepresentation\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_ZOOM_CENTER,\ WxdkdrawFrame::OnCenterView\ ) EVT_CHECKBOX(\ WxdkdrawFrame::ID_GRID_ON_OFF,\ WxdkdrawFrame::OnGridOnOff\ ) EVT_CHOICE(\ WxdkdrawFrame::ID_GRID_UNIT,\ WxdkdrawFrame::OnGridUnit\ ) EVT_CHOICE(\ WxdkdrawFrame::ID_GRID_BASE,\ WxdkdrawFrame::OnGridBase\ ) EVT_CHECKBOX(\ WxdkdrawFrame::ID_PLACEMENT,\ WxdkdrawFrame::OnPlacementHelp\ ) EVT_COMMAND(\ WxdkdrawFrame::ID_STYLE_LINE_COL,\ wxEVT_DK4_COLOUR_VIEW_EVENT,WxdkdrawFrame::OnStyleLineColour\ ) EVT_SPINCTRL(\ WxdkdrawFrame::ID_STYLE_LAYER,\ WxdkdrawFrame::OnStyleLayer\ ) EVT_SPINCTRL(\ WxdkdrawFrame::ID_STYLE_LINE_WIDTH,\ WxdkdrawFrame::OnStyleLineWidth\ ) EVT_SPINCTRL(\ WxdkdrawFrame::ID_SPIN_ROTATION,\ WxdkdrawFrame::OnSpinRotation\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_LINE_STYLE,\ WxdkdrawFrame::OnStyleLineStyle\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_LINE_CAP,\ WxdkdrawFrame::OnStyleLineCap\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_LINE_JOIN,\ WxdkdrawFrame::OnStyleLineJoin\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_ARROW_F,\ WxdkdrawFrame::OnStyleLineArrowF\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_ARROW_B,\ WxdkdrawFrame::OnStyleLineArrowB\ ) EVT_COMMAND(\ WxdkdrawFrame::ID_STYLE_FILL_COL,\ wxEVT_DK4_COLOUR_VIEW_EVENT,WxdkdrawFrame::OnStyleFillColour\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_FILL_PATT,\ WxdkdrawFrame::OnStyleFillPattern\ ) EVT_CHECKBOX(\ WxdkdrawFrame::ID_STYLE_TEXT_LATEX,\ WxdkdrawFrame::OnStyleTextLatex\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_TEXT_ALIGN,\ WxdkdrawFrame::OnStyleTextAlign\ ) EVT_BUTTON(\ WxdkdrawFrame::ID_STYLE_TEXT_FONT,\ WxdkdrawFrame::OnStyleTextFont\ ) EVT_SPINCTRL(\ WxdkdrawFrame::ID_STYLE_TEXT_SIZE,\ WxdkdrawFrame::OnStyleTextSize\ ) EVT_COMMAND_SCROLL(\ WxdkdrawFrame::ID_SCROLL_H,\ WxdkdrawFrame::OnScrollH\ ) EVT_COMMAND_SCROLL(\ WxdkdrawFrame::ID_SCROLL_V,\ WxdkdrawFrame::OnScrollV\ ) #if wxCHECK_VERSION(3,0,0) wxEND_EVENT_TABLE() #else END_EVENT_TABLE() #endif /** DK tools and libraries version number as wxChar text. */ static const wxChar versno[] = { DKT_VERSION_WX }; /** Files to open in dialog box. */ static const wxChar wxd_file_type_suffix[] = { wxT("WXD files (*.wxd)|*.wxd") }; bool WxdkdrawFrame::BeginEventHandling(void) { bool back = false; dk4error_init(&m_oErrorReport); if ((NULL != m_pDrw) && (m_bActive) && (NULL != drawco)) { back = true; m_bUpdate = false; } return back; } void WxdkdrawFrame::ErrorReportingAtEventEnd(void) { wxString msgText(sTexts[506]); int msgflags; bool usetp; if (DK4_E_NONE != m_oErrorReport.ec) { msgflags = (wxOK | wxCENTRE | wxICON_ERROR); usetp = false; switch (m_oErrorReport.ec) { case DK4_E_MEMORY_ALLOCATION_FAILED : { wxMessageBox(sTexts[346], sTexts[345], msgflags); } break; case DK4_E_MATH_OVERFLOW : { wxMessageBox(sTexts[348], sTexts[347], msgflags); } break; case WXD_E_FAILED_TO_OPEN_FILE : { wxMessageBox(sTexts[508], sTexts[507], msgflags); } break; case WXD_E_MOUSE_POS_NOT_AVAILABLE : { wxMessageBox(sTexts[510], sTexts[509], msgflags); } break; case WXD_E_NO_EXPORT_TEXT : { wxMessageBox(sTexts[512], sTexts[511], msgflags); } break; case WXD_E_NO_FILENAME : { wxMessageBox(sTexts[514], sTexts[513], msgflags); } break; case WXD_E_GET_CONTROL_POINT : { wxMessageBox(sTexts[516], sTexts[515], msgflags); } break; case WXD_E_SET_CONTROL_POINT : { wxMessageBox(sTexts[518], sTexts[517], msgflags); } break; case WXD_E_OVERFLOW_COORDINATES : { wxMessageBox(sTexts[520], sTexts[519], msgflags); } break; case WXD_E_MOVE_TO_GROUP : { wxMessageBox(sTexts[522], sTexts[521], msgflags); } break; case WXD_E_UNGROUP_OBJECT : { wxMessageBox(sTexts[524], sTexts[523], msgflags); } break; case WXD_E_BOX_TOO_SMALL : { wxMessageBox(sTexts[526], sTexts[525], msgflags); } break; case WXD_E_BUG_POINT_OOR : { wxMessageBox(sTexts[528], sTexts[527], msgflags); } break; case WXD_E_TOO_MANY_POINTS : { wxMessageBox(sTexts[530], sTexts[529], msgflags); } break; case WXD_E_CANNOT_CONVERT : { wxMessageBox(sTexts[557], sTexts[556], msgflags); } break; case WXD_E_CWD_TOO_LONG : { wxMessageBox(sTexts[559], sTexts[558], msgflags); } break; case WXD_E_NO_CWD : { wxMessageBox(sTexts[561], sTexts[560], msgflags); } break; case WXD_E_OUTPUT_FN_TOO_LONG : { wxMessageBox(sTexts[563], sTexts[562], msgflags); } break; case WXD_E_OUTPUT_DIRNAME : { wxMessageBox(sTexts[565], sTexts[564], msgflags); } break; case WXD_E_FAILED_TO_READ_FILE : { if ( (WXDRD_E_MEMORY <= m_oStatusReader.ec) && (WXDRD_E_BOX_NO_AREA >= m_oStatusReader.ec) ) { switch (m_oStatusReader.ec) { case WXDRD_E_NUM_CONV : case WXDRD_E_COORD_OVERFLOW : case WXDRD_E_BOX_NO_AREA : { usetp = true; } break; } msgText.Append(sTexts[575 + m_oStatusReader.ec]); } else { msgText.Append(sTexts[575]); } if (0UL < m_oStatusReader.ln) { wxString strLineno; strLineno.Printf(wxT("%lu"), m_oStatusReader.ln); msgText.Append(sTexts[596]); msgText.Append(strLineno); if (usetp) { wxString strTextno; strTextno.Printf( wxT("%lu"), ((unsigned long)(m_oStatusReader.te) + 1UL) ); msgText.Append(sTexts[597]); msgText.Append(strTextno); } msgText.Append(sTexts[598]); } wxMessageBox(msgText, sTexts[505], msgflags); } break; default : { wxMessageBox(sTexts[350], sTexts[349], msgflags); } break; } } } void WxdkdrawFrame::EndEventHandling(void) { if ((NULL != m_pDrw) && (m_bActive) && (NULL != drawco)) { if (WXD_REFRESH_NONE < m_pDrw->redraw) { drawco->Refresh(); m_bUpdate = true; } } if (m_bUpdate) { Update(); } ErrorReportingAtEventEnd(); dk4error_init(&m_oErrorReport); } bool WxdkdrawFrame::CanClose(bool isLast) { int res; /* Result from message box */ bool back = true; /* Function result */ #line 823 "WxdkdrawFrameEvents.cpt" /* __CHANGE__ 013: Check for unsaved data. */ if (isLast) { SaveConfiguration(); } if ((NULL != m_pDrw) && (NULL != drawco) && (m_bActive)) { if (m_bModified) { Dk4WxYesNoDialog dlg( this, pAppHelp, sTexts[169], sTexts[168] ); #if VERSION_BEFORE_2020_08_23 res = wxMessageBox(sTexts[169],sTexts[168],(wxYES_NO | wxICON_QUESTION)); #else res = dlg.ShowModal(); #endif if (wxYES == res) { if (!(SaveToFile())) { back = false; } } } if (back) { m_bActive = false; if (NULL != m_pDrw) { wxdobj_drw_delete(m_pDrw); } m_pDrw = NULL; } } #line 855 "WxdkdrawFrameEvents.cpt" return back; } void WxdkdrawFrame::UpdatePositionLabels(bool havepos, int32_t x, int32_t y) { double res; if (havepos) { wxString s1 = wxString(sTexts[16]); wxString s2 = wxString(sTexts[17]); wxString sx = wxEmptyString; wxString sy = wxEmptyString; if (0 != cbGridUnit->GetSelection()) { res = 6400000.0; } else { res = 16256000.0; } sx.Printf(wxT("%g"), ((double)x / res)); sy.Printf(wxT("%g"), ((double)y / res)); s1.Append(sx); s2.Append(sy); tlPosX->SetLabel(s1); tlPosY->SetLabel(s2); } else { tlPosX->SetLabel(sTexts[16]); tlPosY->SetLabel(sTexts[17]); } tlPosX->Refresh(); tlPosY->Refresh(); m_bUpdate = true; } bool WxdkdrawFrame::UpdateGridPosition(void) { dk4_er_t er; /* Error report */ int32_t xdraw; /* Raw x position (not grid-snapped) */ int32_t ydraw; /* Raw y position (not grid-snapped) */ int32_t xgrid; /* Corrected x position (grid-snap) */ int32_t ygrid; /* Corrected y position (grid-snap) */ bool ok = true; /* Flag: No errors occured */ bool back = false; /* Function result */ #line 901 "WxdkdrawFrameEvents.cpt" xdraw = drawco->InvX((double)(m_szMousePosPix.GetWidth()), ok); ydraw = drawco->InvY((double)(m_szMousePosPix.GetHeight()), ok); if (ok) { #line 904 "WxdkdrawFrameEvents.cpt" if ((m_ptMousePosRaw.x != xdraw) || (m_ptMousePosRaw.y != ydraw)) { m_ptMousePosRaw.x = xdraw; m_ptMousePosRaw.y = ydraw; back = true; } } #if TRACE_DEBUG else { #line 912 "WxdkdrawFrameEvents.cpt" } #endif xgrid = drawco->GridRoundNearest(xdraw, drawco->m_uGridSnap, ok); ygrid = drawco->GridRoundNearest(ydraw, drawco->m_uGridSnap, ok); if (ok) { #line 917 "WxdkdrawFrameEvents.cpt" if ((m_ptMousePosGrid.x != xgrid) || (m_ptMousePosGrid.y != ygrid)) { m_ptMousePosGrid.x = xgrid; m_ptMousePosGrid.y = ygrid; back = true; } if (!(m_bMousePos)) { back = true; } if (back) { UpdatePositionLabels(true, xgrid, ygrid); } m_bMousePos = true; m_bMouseDiff = false; #line 930 "WxdkdrawFrameEvents.cpt" switch (m_iState) { /* _STATE_ For some states we need to calculate the difference between move/copy origin point and current point. */ case S_MOVE_PLACE : case S_COPY_PLACE : case S_LIBELEM_PLACE : case S_MOVEPT_PLACE : case S_DRWSZ_PLACE : { dk4error_init(&er); m_ptMouseMoveDiff.x = dk4ma_int32_t_sub( m_ptMousePosGrid.x, m_ptMouseMoveStart.x, &er ); m_ptMouseMoveDiff.y = dk4ma_int32_t_sub( m_ptMousePosGrid.y, m_ptMouseMoveStart.y, &er ); if (DK4_E_NONE == er.ec) { m_bMouseDiff = true; #line 950 "WxdkdrawFrameEvents.cpt" } #if TRACE_DEBUG else { #line 953 "WxdkdrawFrameEvents.cpt" } #endif } break; #if TRACE_DEBUG default : { #line 958 "WxdkdrawFrameEvents.cpt" } break; #endif } } else { #line 963 "WxdkdrawFrameEvents.cpt" if (m_bMousePos) { UpdatePositionLabels(false, (int32_t)0L, (int32_t)0L); back = true; } m_bMousePos = false; m_bMouseDiff = false; #line 969 "WxdkdrawFrameEvents.cpt" } #line 970 "WxdkdrawFrameEvents.cpt" return back; } bool WxdkdrawFrame::UpdateMousePosition(wxMouseEvent & event) { int xpos = 0; /* Mouse x position in pixels */ int ypos = 0; /* Mouse y position in pixels */ bool back = false; /* Function result */ #line 982 "WxdkdrawFrameEvents.cpt" event.GetPosition(&xpos, &ypos); if ( (m_szMousePosPix.GetWidth() != xpos) || (m_szMousePosPix.GetHeight() != ypos) ) { m_szMousePosPix.SetWidth(xpos); m_szMousePosPix.SetHeight(ypos); back = UpdateGridPosition(); } #line 993 "WxdkdrawFrameEvents.cpt" return back; } void WxdkdrawFrame::ControlMouseEnter(wxMouseEvent & event) { #if 0 #line 1003 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (UpdateMousePosition(event)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); } #line 1008 "WxdkdrawFrameEvents.cpt" EndEventHandling(); #endif #line 1011 "WxdkdrawFrameEvents.cpt" ControlMouseMove(event); #line 1013 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::ControlMouseLeave(wxMouseEvent & WXUNUSED(event)) { #line 1021 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (m_bMousePos) { UpdatePositionLabels(false, (int32_t)0L, (int32_t)0L); } m_bMousePos = false; if ((S_NOOP == m_iState) && (NULL != m_pCurrent)) { m_pCurrent->mark &= (~(OBJ_MARKER_1)); m_pCurrent = NULL; } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); #line 1032 "WxdkdrawFrameEvents.cpt" EndEventHandling(); } void WxdkdrawFrame::ControlMouseMove(wxMouseEvent & event) { #line 1041 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (UpdateMousePosition(event)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); } /* _STATE_ Call mouse move method. */ switch (m_iState) { case S_NOOP : { MouseMoveNoop(); } break; case S_DELETE : { MouseMoveDelete(); } break; case S_REGION_DELETE : { MouseMoveRegionDelete(); } break; case S_MOVE_SELECT : { MouseMoveMoveSelect(); } break; case S_MOVE_PLACE : { MouseMoveMovePlace(); } break; case S_COPY_SELECT : { MouseMoveCopySelect(); } break; case S_COPY_PLACE : { MouseMoveCopyPlace(); } break; case S_POLY_FIRST : { MouseMovePolyFirst(); } break; case S_POLY_FURTHER : { MouseMovePolyFurther(); } break; case S_SPLINE_FIRST : { MouseMoveSplineFirst(); } break; case S_SPLINE_FURTHER : { MouseMoveSplineFurther(); } break; case S_BOX_FIRST : { MouseMoveBoxFirst(); } break; case S_BOX_OPPOSITE : { MouseMoveBoxOpposite(); } break; case S_CIRCLE_CENTER : { MouseMoveCircleCenter(); } break; case S_CIRCLE_RADIUS : { MouseMoveCircleRadius(); } break; case S_ELLIPSE_CENTER : { MouseMoveEllipseCenter(); } break; case S_ELLIPSE_CORNER : { MouseMoveEllipseCorner(); } break; case S_ARC_1 : { MouseMoveArc1(); } break; case S_ARC_2 : { MouseMoveArc2(); } break; case S_ARC_3 : { MouseMoveArc3(); } break; case S_DOT : { MouseMoveDot(); } break; case S_TEXT : { MouseMoveText(); } break; case S_IMG_1 : { MouseMoveImage1(); } break; case S_IMG_2 : { MouseMoveImage2(); } break; case S_LIBELEM_PLACE : { MouseMoveLibelemPlace(); } break; case S_MOVEPT_SELECT : { MouseMovePointMoveSelect(); } break; case S_MOVEPT_PLACE : { MouseMovePointMovePlace(); } break; case S_DELPT : { MouseMovePointDelete(); } break; case S_ADDPT_SELECT : { MouseMovePointAddSelect(); } break; case S_ADDPT_PLACE : { MouseMovePointAddPlace(); } break; case S_DRWSZ_SELECT : { MouseMoveDrawingSizeSelect(); } break; case S_DRWSZ_PLACE : { MouseMoveDrawingSizePlace(); } break; case S_FLIP : { MouseMoveFlip(); } break; case S_GROUP_ONE : { MouseMoveGroupOne(); } break; case S_GROUP_RECT_1 : { MouseMoveGroupRect1(); } break; case S_GROUP_RECT_2 : { MouseMoveGroupRect2(); } break; case S_UNGROUP : { MouseMoveUngroup(); } break; case S_DETAILS : { MouseMoveDetails(); } break; case S_DETAILS_2 : { } break; case S_CONVERT : { MouseMoveConvert(); } break; case S_ROTATE : { MouseMoveRotate(); } break; case S_MOD_SPLINE : { MouseMoveModspline(); } break; } #line 1176 "WxdkdrawFrameEvents.cpt" EndEventHandling(); } void WxdkdrawFrame::ControlLeftMouseButton(wxMouseEvent & event) { #line 1185 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (UpdateMousePosition(event)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); } /* _STATE_ Call mouse button method. */ switch (m_iState) { case S_NOOP : { MouseLeftNoop(); } break; case S_DELETE : { MouseLeftDelete(); } break; case S_REGION_DELETE : { MouseLeftRegionDelete(); } break; case S_MOVE_SELECT : { MouseLeftMoveSelect(); } break; case S_MOVE_PLACE : { MouseLeftMovePlace(); } break; case S_COPY_SELECT : { MouseLeftCopySelect(); } break; case S_COPY_PLACE : { MouseLeftCopyPlace(); } break; case S_POLY_FIRST : { MouseLeftPolyFirst(); } break; case S_POLY_FURTHER : { MouseLeftPolyFurther(); } break; case S_SPLINE_FIRST : { MouseLeftSplineFirst(); } break; case S_SPLINE_FURTHER : { MouseLeftSplineFurther(); } break; case S_BOX_FIRST : { MouseLeftBoxFirst(); } break; case S_BOX_OPPOSITE : { MouseLeftBoxOpposite(); } break; case S_CIRCLE_CENTER : { MouseLeftCircleCenter(); } break; case S_CIRCLE_RADIUS : { MouseLeftCircleRadius(); } break; case S_ELLIPSE_CENTER : { MouseLeftEllipseCenter(); } break; case S_ELLIPSE_CORNER : { MouseLeftEllipseCorner(); } break; case S_ARC_1 : { MouseLeftArc1(); } break; case S_ARC_2 : { MouseLeftArc2(); } break; case S_ARC_3 : { MouseLeftArc3(); } break; case S_DOT : { MouseLeftDot(); } break; case S_TEXT : { MouseLeftText(); } break; case S_IMG_1 : { MouseLeftImage1(); } break; case S_IMG_2 : { MouseLeftImage2(); } break; case S_LIBELEM_PLACE : { MouseLeftLibelemPlace(); } break; case S_MOVEPT_SELECT : { MouseLeftPointMoveSelect(); } break; case S_MOVEPT_PLACE : { MouseLeftPointMovePlace(); } break; case S_DELPT : { MouseLeftPointDelete(); } break; case S_ADDPT_SELECT : { MouseLeftPointAddSelect(); } break; case S_ADDPT_PLACE : { MouseLeftPointAddPlace(); } break; case S_DRWSZ_SELECT : { MouseLeftDrawingSizeSelect(); } break; case S_DRWSZ_PLACE : { MouseLeftDrawingSizePlace(); } break; case S_FLIP : { MouseLeftFlip(); } break; case S_GROUP_ONE : { MouseLeftGroupOne(); } break; case S_GROUP_RECT_1 : { MouseLeftGroupRect1(); } break; case S_GROUP_RECT_2 : { MouseLeftGroupRect2(); } break; case S_UNGROUP : { MouseLeftUngroup(); } break; case S_DETAILS : { MouseLeftDetails(); } break; case S_DETAILS_2 : { } break; case S_CONVERT : { MouseLeftConvert(); } break; case S_ROTATE : { MouseLeftRotate(); } break; case S_MOD_SPLINE : { MouseLeftModspline(); } break; } #line 1320 "WxdkdrawFrameEvents.cpt" EndEventHandling(); } void WxdkdrawFrame::ControlRightMouseButton(wxMouseEvent & event) { Wxd_object_t *pCurrent; uint16_t uCurrent; #line 1331 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (UpdateMousePosition(event)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); } /* _STATE_ Call right mouse button method. */ switch (m_iState) { case S_MOVEPT_PLACE : { pCurrent = NULL; uCurrent = 0U; if ( (NULL != m_pCurrent) && ( (WXD_OT_O_SPLINE == m_pCurrent->ot) || (WXD_OT_C_SPLINE == m_pCurrent->ot) ) && (m_uCurrent < (m_pCurrent->det).s.n) ) { pCurrent = m_pCurrent; uCurrent = m_uCurrent; } EndOperation(); if (NULL != pCurrent) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); drawco->Refresh(); Update(); ModifySplineValue(pCurrent, uCurrent); m_iState = S_MOVEPT_SELECT; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetMouseAndStatusTexts(m_iState); } } break; case S_NOOP : case S_DELETE : case S_REGION_DELETE : case S_MOVE_SELECT : case S_MOVE_PLACE : case S_COPY_SELECT : case S_COPY_PLACE : case S_POLY_FIRST : case S_POLY_FURTHER : case S_SPLINE_FIRST : case S_SPLINE_FURTHER : case S_BOX_FIRST : case S_BOX_OPPOSITE : case S_CIRCLE_CENTER : case S_CIRCLE_RADIUS : case S_ELLIPSE_CENTER : case S_ELLIPSE_CORNER : case S_ARC_1 : case S_ARC_2 : case S_ARC_3 : case S_DOT : case S_TEXT : case S_IMG_1 : case S_IMG_2 : case S_LIBELEM_PLACE : case S_MOVEPT_SELECT : case S_DELPT : case S_DRWSZ_SELECT : case S_DRWSZ_PLACE : case S_GROUP_ONE : case S_GROUP_RECT_1 : case S_GROUP_RECT_2 : case S_DETAILS : case S_DETAILS_2 : case S_CONVERT : case S_ROTATE : case S_MOD_SPLINE : default : { EndOperation(); } break; } #line 1406 "WxdkdrawFrameEvents.cpt" EndEventHandling(); } void WxdkdrawFrame::ControlMiddleMouseButton(wxMouseEvent & event) { #line 1415 "WxdkdrawFrameEvents.cpt" StartEventHandling(); if (UpdateMousePosition(event)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); } switch (m_iState) { case S_DELETE : { MouseMiddleDelete(); } break; } #line 1425 "WxdkdrawFrameEvents.cpt" EndEventHandling(); } void WxdkdrawFrame::OnQuit(wxCommandEvent & WXUNUSED(event)) { #line 1435 "WxdkdrawFrameEvents.cpt" EndOperation(true); #line 1437 "WxdkdrawFrameEvents.cpt" Close(); } void WxdkdrawFrame::OnAbout(wxCommandEvent & WXUNUSED(event)) { wxString text(wxT("")); wxString title(wxT("")); #line 1448 "WxdkdrawFrameEvents.cpt" /* Construct message text. */ text.Append(sNlWx[0]); #if 0 /* Do not show a separated version number for wxdkdraw as it is a part of DK tools and libraries. */ text.Append(sNlWx[7]); text.Append(sNlWx[1]); #endif text.Append(sNlWx[8]); text.Append(sTexts[19]); text.Append(versno); text.Append(sNlWx[8]); text.Append(sTexts[9]); text.Append(sNlWx[2]); text.Append(sNlWx[8]); text.Append(sNlWx[8]); text.Append(sTexts[11]); text.Append(sNlWx[8]); text.Append(sNlWx[9]); text.Append(sNlWx[8]); text.Append(sNlWx[8]); text.Append(sTexts[12]); text.Append(sNlWx[8]); text.Append(sNlWx[10]); text.Append(sNlWx[8]); text.Append(sNlWx[11]); text.Append(sNlWx[8]); text.Append(sNlWx[12]); text.Append(sNlWx[8]); text.Append(sNlWx[13]); text.Append(sNlWx[8]); text.Append(sNlWx[14]); text.Append(sNlWx[8]); text.Append(sNlWx[15]); text.Append(sNlWx[8]); /* Construct dialog box title. */ title.Append(sTexts[10]); title.Append(sNlWx[0]); /* Show dialog box. */ wxMessageBox(text, title); #line 1493 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnHelpContents(wxCommandEvent & WXUNUSED(event)) { #line 1501 "WxdkdrawFrameEvents.cpt" #if 1 DisplayContents(); #else if (!(FindFileAndLaunch(dkT("wxdkdraw.pdf"), true))) { DisplayContents(); } #endif #line 1509 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnIdle(wxIdleEvent & event) { bool isFirstIdleEvent = true; #line 1518 "WxdkdrawFrameEvents.cpt" /* Check whether we really have the first idle event. */ { wxCriticalSectionLocker lock(csIsFirstIdle); isFirstIdleEvent = m_bIsFirstIdle; m_bIsFirstIdle = false; } if (isFirstIdleEvent) { #line 1528 "WxdkdrawFrameEvents.cpt" Disconnect(wxEVT_IDLE, wxIdleEventHandler(WxdkdrawFrame::OnIdle)); #line 1530 "WxdkdrawFrameEvents.cpt" OnFirstIdle(); #line 1532 "WxdkdrawFrameEvents.cpt" Update(); } #line 1535 "WxdkdrawFrameEvents.cpt" event.Skip(); } void WxdkdrawFrame::OnFileNew(wxCommandEvent & WXUNUSED(event)) { Wxd_drawing_t *pDrw = NULL; /* New drawing */ int res; /* Operation result */ bool bLoadNew = true; /* Can load new empty drawing */ #line 1547 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); EndEventHandling(); if (m_bModified) { Dk4WxYesNoDialog dlg( this, pAppHelp, sTexts[169], sTexts[168] ); #if VERSION_BEFORE_2020_08_23 res = wxMessageBox(sTexts[169],sTexts[168],(wxYES_NO | wxICON_QUESTION)); #else res = dlg.ShowModal(); #endif if (wxYES == res) { if (!(SaveToFile())) { bLoadNew = false; } } } if (bLoadNew) { pDrw = wxdobj_drw_new(); if (NULL != pDrw) { wxdobj_drw_delete(m_pDrw); m_pDrw = pDrw; m_sFileFull = wxEmptyString; m_sFileDir = wxEmptyString; m_sFileShort = wxEmptyString; m_bHaveName = false; SetTitle(sTexts[18]); DrawingLoaded(); szTopBar->Layout(); m_bUpdate = true; } else { } } } #line 1585 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnFileOpen(wxCommandEvent & WXUNUSED(event)) { wxString sDialogTitle(sTexts[339]); /* Dialog box title */ wxString sFileTypes(sTexts[172]); /* File type suffixes */ Wxd_drawing_t *pDrw = NULL; /* New drawing */ int res; /* Intermediate result */ bool bLoadNew = true; /* Flag: Can load new file */ #line 1598 "WxdkdrawFrameEvents.cpt" #line 1599 "WxdkdrawFrameEvents.cpt" wxdrd_status_init(&m_oStatusReader); if (BeginEventHandling()) { EndOperation(true); if (m_bModified) { Dk4WxYesNoDialog dlg( this, pAppHelp, sTexts[169], sTexts[168] ); #if VERSION_BEFORE_2020_08_23 res = wxMessageBox(sTexts[169],sTexts[168],(wxYES_NO | wxICON_QUESTION)); #else res = dlg.ShowModal(); #endif if (wxYES == res) { if (!(SaveToFile())) { bLoadNew = false; } } } if (bLoadNew) { #if wxCHECK_VERSION(2, 9, 0) wxFileDialog dlg( this, sDialogTitle, m_sFileDir, m_sFileShort, sFileTypes, (wxFD_OPEN | wxFD_FILE_MUST_EXIST) ); #else wxFileDialog dlg( this, sDialogTitle, m_sFileDir, m_sFileShort, sFileTypes, wxOPEN ); #endif if(wxID_OK == dlg.ShowModal()) { wxString pa = dlg.GetPath(); pDrw = ReadDrawingFromFile(pa); if (NULL != pDrw) { wxdobj_drw_delete(m_pDrw); m_pDrw = pDrw; m_sFileFull = pa; m_sFileDir = dlg.GetDirectory(); m_sFileShort = dlg.GetFilename(); m_bHaveName = true; SetTitle(m_sFileShort); DrawingLoaded(); szTopBar->Layout(); m_bUpdate = true; } else { /* ERROR: Failed to read file, already reported */ } } } ModificationReportingAtEventEnd(); EndEventHandling(); #line 1653 "WxdkdrawFrameEvents.cpt" wxdrd_status_init(&m_oStatusReader); } #line 1656 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnFileSave(wxCommandEvent & WXUNUSED(event)) { #line 1664 "WxdkdrawFrameEvents.cpt" wxdwr_status_init(&m_oStatusWriter, pAppHelp->GetWxEncoding()); if (BeginEventHandling()) { EndOperation(true); SaveToFile(); EndEventHandling(); } #line 1671 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnFileSaveAs(wxCommandEvent & WXUNUSED(event)) { wxString sNewTitle = wxEmptyString; /* New program window title */ wxString sDlgTitle(sTexts[171]); /* Dialog title */ wxString sDlgTypes(sTexts[172]); /* File type suffixes */ #line 1682 "WxdkdrawFrameEvents.cpt" wxdwr_status_init(&m_oStatusWriter, pAppHelp->GetWxEncoding()); if (BeginEventHandling()) { EndOperation(true); #if wxCHECK_VERSION(2, 9, 0) wxFileDialog dlg( this, sDlgTitle, m_sFileDir, m_sFileShort, sDlgTypes, (wxFD_SAVE | wxFD_OVERWRITE_PROMPT) ); #else wxFileDialog dlg( this, sDlgTitle, m_sFileDir, m_sFileShort, sDlgTypes, wxSAVE ); #endif if(wxID_OK == dlg.ShowModal()) { m_sFileFull = dlg.GetPath(); m_sFileDir = dlg.GetDirectory(); m_sFileShort = dlg.GetFilename(); m_bHaveName = true; if (m_bModified) { sNewTitle.Append(sTexts[170]); sNewTitle.Append(m_sFileShort); SetTitle(sNewTitle); } else { SetTitle(m_sFileShort); } m_bUpdate = true; SaveToFile(); } EndEventHandling(); } #line 1715 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnZoomIn(wxCommandEvent & WXUNUSED(event)) { #line 1723 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if ((int8_t)14 > m_pDrw->zl) { m_pDrw->zl += (int8_t)1; ZoomChanged(false); } EndEventHandling(); } #line 1731 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnZoomOut(wxCommandEvent & WXUNUSED(event)) { #line 1739 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if ((int8_t)(-14) < m_pDrw->zl) { m_pDrw->zl -= (int8_t)1; ZoomChanged(true); } EndEventHandling(); } #line 1747 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnZoom100(wxCommandEvent & WXUNUSED(event)) { bool bZoomOut; #line 1756 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if ((int8_t)0 != m_pDrw->zl) { bZoomOut = ((int8_t)0 < m_pDrw->zl); m_pDrw->zl = (int8_t)0; ZoomChanged(bZoomOut); } EndEventHandling(); } #line 1765 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnPolygonPolyline(int8_t ot) { m_iObjToCreate = ot; m_iState = S_POLY_FIRST; SetMouseAndStatusTexts(S_POLY_FIRST); m_bAcceptablePoint = false; } void WxdkdrawFrame::OnAddPolyline(wxCommandEvent & WXUNUSED(event)) { #line 1784 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnPolygonPolyline(WXD_OT_POLYLINE); EndEventHandling(); } #line 1790 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddPolygon(wxCommandEvent & WXUNUSED(event)) { #line 1798 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnPolygonPolyline(WXD_OT_POLYGON); EndEventHandling(); } #line 1804 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnRectangleBox(bool bRounded) { m_iState = S_BOX_FIRST; m_bSplineInterpolated = bRounded; m_bAcceptablePoint = false; SetMouseAndStatusTexts(S_BOX_FIRST); } void WxdkdrawFrame::OnAddRectangle(wxCommandEvent & WXUNUSED(event)) { #line 1823 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnRectangleBox(false); EndEventHandling(); } #line 1829 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddBox(wxCommandEvent & WXUNUSED(event)) { #line 1837 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnRectangleBox(true); EndEventHandling(); } #line 1843 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddCircle(wxCommandEvent & WXUNUSED(event)) { #line 1851 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_CIRCLE_CENTER; SetMouseAndStatusTexts(S_CIRCLE_CENTER); m_bAcceptablePoint = false; EndEventHandling(); } #line 1859 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddEllipse(wxCommandEvent & WXUNUSED(event)) { #line 1867 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_ELLIPSE_CENTER; SetMouseAndStatusTexts(m_iState); m_bAcceptablePoint = false; EndEventHandling(); } #line 1875 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddArcOpen(wxCommandEvent & WXUNUSED(event)) { #line 1883 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iObjToCreate = WXD_OT_O_ARC; m_iState = S_ARC_1; SetMouseAndStatusTexts(m_iState); m_bAcceptablePoint = false; EndEventHandling(); } #line 1892 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddArcClosed(wxCommandEvent & WXUNUSED(event)) { #line 1900 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iObjToCreate = WXD_OT_C_ARC; m_iState = S_ARC_1; SetMouseAndStatusTexts(m_iState); m_bAcceptablePoint = false; EndEventHandling(); } #line 1909 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnSpline(int8_t ot, bool bInterpolated) { m_iObjToCreate = ot; m_bSplineInterpolated = bInterpolated; m_iState = S_SPLINE_FIRST; m_bAcceptablePoint = false; SetMouseAndStatusTexts(S_SPLINE_FIRST); } void WxdkdrawFrame::OnAddSplineAO(wxCommandEvent & WXUNUSED(event)) { #line 1929 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnSpline(WXD_OT_O_SPLINE, false); EndEventHandling(); } #line 1935 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddSplineAC(wxCommandEvent & WXUNUSED(event)) { #line 1943 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnSpline(WXD_OT_C_SPLINE, false); EndEventHandling(); } #line 1949 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddSplineIO(wxCommandEvent & WXUNUSED(event)) { #line 1957 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnSpline(WXD_OT_O_SPLINE, true); EndEventHandling(); } #line 1963 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddSplineIC(wxCommandEvent & WXUNUSED(event)) { #line 1971 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); OnSpline(WXD_OT_C_SPLINE, true); EndEventHandling(); } #line 1977 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddDot(wxCommandEvent & WXUNUSED(event)) { #line 1985 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iObjToCreate = WXD_OT_DOT_FILLED; m_iState = S_DOT; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 1993 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddWhiteDot(wxCommandEvent & WXUNUSED(event)) { #line 2001 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iObjToCreate = WXD_OT_DOT_WHITE; m_iState = S_DOT; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2009 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddTextlabel(wxCommandEvent & WXUNUSED(event)) { #line 2017 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_TEXT; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2024 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnAddImage(wxCommandEvent & WXUNUSED(event)) { #line 2032 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_IMG_1; SetMouseAndStatusTexts(m_iState); DK4_MEMCPY(&m_ptMouseMoveStart,&m_ptMousePosGrid,sizeof(Wxd_point_t)); m_bAcceptablePoint = false; EndEventHandling(); } #line 2041 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::AddLibelem(void) { wxString sDialogTitle(sTexts[410]); wxString sFileTypes(wxd_file_type_suffix); dk4_er_t er; FILE *fp = NULL; m_iState = S_NOOP; #if wxCHECK_VERSION(2, 9, 0) wxFileDialog dlg( this, sDialogTitle, m_sLibraryDir, m_sLibraryShort, sFileTypes, (wxFD_OPEN | wxFD_FILE_MUST_EXIST) ); #else wxFileDialog dlg( this, sDialogTitle, m_sLibraryDir, m_sLibraryShort, sFileTypes, wxOPEN ); #endif if(wxID_OK == dlg.ShowModal()) { wxString pa = dlg.GetPath(); m_sLibraryDir = dlg.GetDirectory(); m_sLibraryShort = dlg.GetFilename(); { wxFFile wxff(pa); if (wxff.IsOpened()) { fp = wxff.Detach(); if (NULL != fp) { #line 2075 "WxdkdrawFrameEvents.cpt" wxdrd_status_init(&m_oStatusReader); m_pCurrent = wxdrd_read_symbol(m_pDrw,fp,&m_oStatusReader); if (NULL != m_pCurrent) { UpdateStipples(); UpdateFonts(); UpdateImages(); m_iState = S_LIBELEM_PLACE; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); wxdobj_mark_recursively(m_pCurrent, OBJ_MARKER_1); m_ptMouseMoveStart.x = m_oStatusReader.bb.xl; m_ptMouseMoveStart.y = m_oStatusReader.bb.yb; dk4error_init(&er); m_ptMouseMoveDiff.x = dk4ma_int32_t_sub( m_ptMousePosGrid.x, m_oStatusReader.bb.xl, &er ); m_ptMouseMoveDiff.y = dk4ma_int32_t_sub( m_ptMousePosGrid.y, m_oStatusReader.bb.yb, &er ); m_bMouseDiff = (DK4_E_NONE == er.ec); m_iState = S_LIBELEM_PLACE; wxdobj_drw_require_redraw( m_pDrw, WXD_REFRESH_MARKUP ); } else { /* ERROR: Failed to read file */ dk4error_set_simple_error_code( &m_oErrorReport, WXD_E_FAILED_TO_READ_FILE ); m_iState = S_NOOP; } fclose(fp); } else { /* ERROR: Failed to open file */ dk4error_set_simple_error_code( &m_oErrorReport, WXD_E_FAILED_TO_OPEN_FILE ); m_iState = S_NOOP; } } else { /* ERROR: Failed to open file */ dk4error_set_simple_error_code( &m_oErrorReport, WXD_E_FAILED_TO_OPEN_FILE ); m_iState = S_NOOP; } } } else { m_iState = S_NOOP; } } void WxdkdrawFrame::OnAddLibelem(wxCommandEvent & WXUNUSED(event)) { #line 2136 "WxdkdrawFrameEvents.cpt" #line 2137 "WxdkdrawFrameEvents.cpt" wxdrd_status_init(&m_oStatusReader); if (BeginEventHandling()) { EndOperation(true); AddLibelem(); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2145 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditCopy(wxCommandEvent & WXUNUSED(event)) { #line 2153 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); DK4_MEMCPY(&m_ptMouseMoveStart,&m_ptMousePosGrid,sizeof(Wxd_point_t)); m_ptMouseMoveDiff.x = (int32_t)0L; m_ptMouseMoveDiff.y = (int32_t)0L; m_bMouseDiff = true; m_iState = S_COPY_SELECT; SetMouseAndStatusTexts(S_COPY_SELECT); EndEventHandling(); } #line 2164 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditMove(wxCommandEvent & WXUNUSED(event)) { #line 2172 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); DK4_MEMCPY(&m_ptMouseMoveStart,&m_ptMousePosGrid,sizeof(Wxd_point_t)); m_ptMouseMoveDiff.x = (int32_t)0L; m_ptMouseMoveDiff.y = (int32_t)0L; m_bMouseDiff = true; m_iState = S_MOVE_SELECT; SetMouseAndStatusTexts(S_MOVE_SELECT); EndEventHandling(); } #line 2183 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditDelete(wxCommandEvent & WXUNUSED(event)) { #line 2191 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_DELETE; SetMouseAndStatusTexts(S_DELETE); EndEventHandling(); } #line 2198 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditPointMove(wxCommandEvent & WXUNUSED(event)) { #line 2206 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_MOVEPT_SELECT; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2214 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditPointAdd(wxCommandEvent & WXUNUSED(event)) { #line 2222 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_ADDPT_SELECT; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2230 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditPointDelete(wxCommandEvent & WXUNUSED(event)) { #line 2238 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_DELPT; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2246 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditDetails(wxCommandEvent & WXUNUSED(event)) { #line 2254 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_DETAILS; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2262 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditGroup(wxCommandEvent & WXUNUSED(event)) { #line 2270 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_GROUP_ONE; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); wxdobj_unmark_all(m_pDrw, OBJ_MARKER_2); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2279 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditGroup3(wxCommandEvent & WXUNUSED(event)) { #line 2287 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_GROUP_RECT_1; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); wxdobj_unmark_all(m_pDrw, OBJ_MARKER_2); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2296 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditUngroup(wxCommandEvent & WXUNUSED(event)) { #line 2303 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_UNGROUP; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2311 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditFlipH(wxCommandEvent & WXUNUSED(event)) { #line 2319 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_bVerticalFlip = false; m_iState = S_FLIP; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2329 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditFlipV(wxCommandEvent & WXUNUSED(event)) { #line 2337 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_bVerticalFlip = true; m_iState = S_FLIP; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2347 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditRotateLeft(wxCommandEvent & WXUNUSED(event)) { #line 2355 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_bSplineInterpolated = false; m_iState = S_ROTATE; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); m_pCurrent = NULL; m_uCurrent = (uint16_t)0U; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2366 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditRotateRight(wxCommandEvent & WXUNUSED(event)) { #line 2374 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_bSplineInterpolated = true; m_iState = S_ROTATE; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); m_pCurrent = NULL; m_uCurrent = (uint16_t)0U; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 2385 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnEditChangeSize(wxCommandEvent & WXUNUSED(event)) { #line 2393 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_DRWSZ_SELECT; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); SetMouseAndStatusTexts(m_iState); m_bHaveCornerPoint = false; m_uCurrent = 0U; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_MARKUP); DK4_MEMCPY(&m_oOldSize,&(m_pDrw->bb),sizeof(Wxd_bb_t)); DK4_MEMCPY(&(m_oBorder.det.b.b),&(m_pDrw->bb),sizeof(Wxd_bb_t)); EndEventHandling(); } #line 2406 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnLayersAll(wxCommandEvent & WXUNUSED(event)) { Wxd_layer_t *play; #line 2415 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { dk4sto_it_reset(m_pDrw->i_layers); do { play = (Wxd_layer_t *)dk4sto_it_next(m_pDrw->i_layers); if (NULL != play) { if (0x00 == play->active) { play->active = 0x01; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); } } } while (NULL != play); EndEventHandling(); } #line 2429 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnLayerManager(wxCommandEvent & WXUNUSED(event)) { Wxd_layer_cb_t *pLayerCb; Wxd_layer_t *pLayer; size_t nl; size_t i; bool changed; #line 2442 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { nl = wxdobj_get_number_of_layers(m_pDrw); #line 2445 "WxdkdrawFrameEvents.cpt" if ((size_t)0U < nl) { pLayerCb = dk4mem_new(Wxd_layer_cb_t,nl,NULL); if (NULL != pLayerCb) { for (i = 0; i < nl; i++) { #line 2450 "WxdkdrawFrameEvents.cpt" pLayerCb[i].lay = NULL; pLayerCb[i].cb = NULL; pLayerCb[i].oa = 0x00; } i = 0; dk4sto_it_reset(m_pDrw->i_layers); do { pLayer = (Wxd_layer_t *)dk4sto_it_next(m_pDrw->i_layers); if (NULL != pLayer) { if (i < nl) { #line 2461 "WxdkdrawFrameEvents.cpt" pLayerCb[i].lay = pLayer; pLayerCb[i].oa = pLayer->active; i++; } } } while (NULL != pLayer); WxdkdrawDlgLayerManager dlg(this, m_pDrw, sTexts, pLayerCb, nl); if (wxID_OK != dlg.ShowModal()) { changed = false; for (i = 0; i < nl; i++) { if (NULL != pLayerCb[i].lay) { if (0x00 != pLayerCb[i].oa) { if (0x00 == (pLayerCb[i].lay)->active) { (pLayerCb[i].lay)->active = 0x01; changed = true; } } else { if (0x00 != (pLayerCb[i].lay)->active) { (pLayerCb[i].lay)->active = 0x01; changed = true; } } } } if (changed) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); } } #if TRACE_DEBUG else { #line 2492 "WxdkdrawFrameEvents.cpt" } #endif for (i = 0; i < nl; i++) { pLayerCb[i].lay = NULL; pLayerCb[i].cb = NULL; pLayerCb[i].oa = 0x00; } dk4mem_free(pLayerCb); } else { /* ERROR: Memory */ dk4error_set_simple_error_code( &m_oErrorReport, DK4_E_MEMORY_ALLOCATION_FAILED ); } } else { /* NOTICE: No layer currently in use */ wxMessageBox( sTexts[368], sTexts[369], (wxOK | wxCENTRE | wxICON_INFORMATION) ); } EndEventHandling(); } #line 2518 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnCenterViewFunction(void) { dk4_er_t er; /* Error report */ #line 2527 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { dk4error_init(&er); m_pDrw->cx = dk4ma_int32_t_add((m_pDrw->bb).xl, (m_pDrw->bb).xr, &er) / (int32_t)2L; if (DK4_E_NONE != er.ec) { m_pDrw->cx = (m_pDrw->bb).xl / (int32_t)2L + (m_pDrw->bb).xr / (int32_t)2L; } dk4error_init(&er); m_pDrw->cy = dk4ma_int32_t_add((m_pDrw->bb).yb, (m_pDrw->bb).yt, &er) / (int32_t)2L; if (DK4_E_NONE != er.ec) { m_pDrw->cy = (m_pDrw->bb).yb / (int32_t)2L + (m_pDrw->bb).yt / (int32_t)2L; } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); m_bUpdate = true; AdjustScrollbars(); EndEventHandling(); } #line 2549 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnCenterView(wxCommandEvent & WXUNUSED(event)) { OnCenterViewFunction(); } void WxdkdrawFrame::OnGridOnOff(wxCommandEvent & WXUNUSED(event)) { #line 2565 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); m_bUpdate = true; EndEventHandling(); } #line 2572 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnGridUnit(wxCommandEvent & WXUNUSED(event)) { int seli; /* Selected index */ #line 2581 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { seli = cbGridUnit->GetSelection(); switch (seli) { case 0: { m_pDrw->gridunit = (uint8_t)0U; } break; default : { m_pDrw->gridunit = (uint8_t)1U; } break; } drawco->CalculateGridDistances(); if (cbGridOnOff->GetValue()) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); m_bUpdate = true; } EndEventHandling(); } #line 2600 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnGridBase(wxCommandEvent & WXUNUSED(event)) { int seli; /* Selected index */ #line 2609 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { seli = cbGridBase->GetSelection(); switch (seli) { case 0: { m_pDrw->gridbase = (uint8_t)0U; } break; default : { m_pDrw->gridbase = (uint8_t)1U; } break; } drawco->CalculateGridDistances(); if (cbGridOnOff->GetValue()) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); m_bUpdate = true; } EndEventHandling(); } #line 2628 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnPlacementHelp(wxCommandEvent & WXUNUSED(event)) { #line 2636 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); m_bUpdate = true; EndEventHandling(); } #line 2643 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineColour(wxCommandEvent & WXUNUSED(event)) { int r; int g; int b; #line 2654 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { r = ccLineColour->Red(); g = ccLineColour->Green(); b = ccLineColour->Blue(); if (NULL != m_pStyle) { if ( ((uint8_t)r != m_pStyle->sc[0]) || ((uint8_t)g != m_pStyle->sc[1]) || ((uint8_t)b != m_pStyle->sc[2]) ) { switch (m_pStyle->ot) { case WXD_OT_TEXT : case WXD_OT_DOT_FILLED : case WXD_OT_DOT_WHITE : { m_pStyle->sc[0] = (uint8_t)r; m_pStyle->sc[1] = (uint8_t)g; m_pStyle->sc[2] = (uint8_t)b; #if 0 m_pStyle->fc[0] = (uint8_t)r; m_pStyle->fc[1] = (uint8_t)g; m_pStyle->fc[2] = (uint8_t)b; #endif } break; default : { m_pStyle->sc[0] = (uint8_t)r; m_pStyle->sc[1] = (uint8_t)g; m_pStyle->sc[2] = (uint8_t)b; } break; } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); } } else { m_oStyle.sc[0] = (uint8_t)r; m_oStyle.sc[1] = (uint8_t)g; m_oStyle.sc[2] = (uint8_t)b; } EndEventHandling(); } #line 2695 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLayer(wxSpinEvent & WXUNUSED(event)) { int nl; #line 2704 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { nl = spLayerNumber->GetValue(); if (NULL != m_pStyle) { if (nl != m_pStyle->lay) { SetModified(); if (0 == wxdobj_modify_layer(m_pDrw, m_pStyle, nl)) { m_pStyle = NULL; RequireRedraw(WXD_REFRESH_DRAWING); /* ERROR: Memory */ dk4error_set_simple_error_code( &m_oErrorReport, DK4_E_MEMORY_ALLOCATION_FAILED ); } } } else { m_oStyle.lay = nl; } EndEventHandling(); } #line 2725 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineWidth(wxSpinEvent & WXUNUSED(event)) { int lw; #line 2734 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { lw = spLineWidth->GetValue(); if (NULL != m_pStyle) { if ((uint16_t)lw != m_pStyle->lw) { m_pStyle->lw = (uint16_t)lw; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); } } else { m_oStyle.lw = (uint16_t)lw; } EndEventHandling(); } #line 2749 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineStyle(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; /* Object to modify */ int res; /* Result from showing dialog */ uint8_t ols; /* Old line style */ uint8_t osv; /* Old style value */ uint8_t nls; /* New line style */ uint8_t nsv; /* New style value */ bool bDrwElem; /* Object is drawing element */ bool bRefresh; /* Refresh draw control */ #line 2765 "WxdkdrawFrameEvents.cpt" pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = ((NULL != m_pStyle) ? (true) : (false)); if (BeginEventHandling()) { WxdkdrawDlgLineStyle dlg( this, pobj, sTexts, ms_ls_images, bDrwElem ); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleLineStyle, dlg); ols = pobj->ls; #if 0 /* 2020-03-24 Modification Line below removed due to clang static analyzers complaints about dead assignment. */ nls = ols; #endif osv = pobj->sl; #if 0 /* 2020-03-24 Modification Line below removed due to clang static analyzers complaints about dead assignment. */ nsv = osv; #endif res = dlg.ShowModal(); switch (res) { case wxID_OK : { nls = pobj->ls; if (nls != ols) { if (NULL != m_pStyle) { if (WXD_LS_SOLID == ols) { pobj->sl = m_iv[IVI_STYLE_VALUE]; } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); drawco->Refresh(); drawco->Update(); } bStyleLineStyle->SetBitmap(ms_ls_images[nls]); bStyleLineStyle->Refresh(); m_bUpdate = true; } switch (nls) { case WXD_LS_DASH : case WXD_LS_DASH_DOT : case WXD_LS_DASH_DOT_DOT : case WXD_LS_DASH_DOT_DOT_DOT : { #line 2812 "WxdkdrawFrameEvents.cpt" WxdkdrawDlgStyleLength dlh( this, pobj, bDrwElem, sTexts ); #line 2816 "WxdkdrawFrameEvents.cpt" Dk4WxApplicationHelper::ChooseChildPosition( *bStyleLineStyle, dlh ); #line 2820 "WxdkdrawFrameEvents.cpt" res = dlh.ShowModal(); #line 2822 "WxdkdrawFrameEvents.cpt" switch (res) { case wxID_OK : case wxID_CANCEL : { #line 2826 "WxdkdrawFrameEvents.cpt" bRefresh = true; nsv = pobj->sl; if (wxID_OK == res) { m_iv[IVI_STYLE_VALUE ] = nsv; } if (nsv == pobj->sl) { #line 2832 "WxdkdrawFrameEvents.cpt" bRefresh = false; } else { #line 2835 "WxdkdrawFrameEvents.cpt" } if (osv != nsv) { SetModified(); } if (bRefresh) { wxdobj_drw_require_redraw( m_pDrw, WXD_REFRESH_DRAWING ); } #line 2845 "WxdkdrawFrameEvents.cpt" } break; } } break; } } break; case wxID_CANCEL : { } break; } EndEventHandling(); } #line 2856 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineCap(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t ocs; uint8_t ncs; bool bDrwElem; #line 2869 "WxdkdrawFrameEvents.cpt" pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); ocs = ncs = pobj->cs; if (BeginEventHandling()) { WxdkdrawDlgLineCap dlg(this, pobj, sTexts, ms_lc_images, bDrwElem); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleLineEnds, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { ncs = pobj->cs; if (ocs != ncs) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); } bStyleLineEnds->SetBitmap(ms_lc_images[ncs]); bStyleLineEnds->Refresh(); m_bUpdate = true; } } EndEventHandling(); } #line 2891 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineJoin(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t ojs; uint8_t njs; uint8_t oml; uint8_t nml; bool bDrwElem; #line 2906 "WxdkdrawFrameEvents.cpt" pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); ojs = njs = pobj->js; oml = nml = pobj->ml; if (BeginEventHandling()) { WxdkdrawDlgLineJoin dlg(this, pobj, sTexts, ms_lj_images, bDrwElem); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleLineJoins, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { njs = pobj->js; if (ojs != njs) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); if (WXD_LJ_MITERED == njs) { pobj->ml = m_iv[IVI_MITER_LIMIT]; drawco->Refresh(); drawco->Update(); } } bStyleLineJoins->SetBitmap(ms_lj_images[njs]); bStyleLineJoins->Refresh(); m_bUpdate = true; } if (WXD_LJ_MITERED == njs) { WxdkdrawDlgMiterLimit dlh(this, pobj, sTexts, bDrwElem); Dk4WxApplicationHelper::ChooseChildPosition( *bStyleLineJoins, dlh ); res = dlh.ShowModal(); if (wxID_OK == res) { #line 2937 "WxdkdrawFrameEvents.cpt" nml = pobj->ml; #line 2938 "WxdkdrawFrameEvents.cpt" m_iv[IVI_MITER_LIMIT] = nml; if (oml != nml) { SetModified(); } } } } EndEventHandling(); } #line 2948 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineArrowF(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t oat; uint8_t nat; uint8_t oal; uint8_t nal; uint8_t oaw; uint8_t naw; bool bDrwElem; pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); oat = nat = pobj->aft; oal = nal = pobj->afl; oaw = naw = pobj->afw; #line 2970 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { WxdkdrawDlgArrowType dlg( this, pobj, sTexts, ms_arrow_images, bDrwElem, false ); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleArrowForward, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { nat = pobj->aft; if (oat != nat) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); /* 2020-03-20 Show new arrow style immediately */ if (0 == oat) { pobj->afl = m_iv[IVI_ARROWHEAD_LENGTH]; pobj->afw = m_iv[IVI_ARROWHEAD_WIDTH]; } drawco->Refresh(); drawco->Update(); } bStyleArrowForward->SetBitmap(ms_arrow_images[nat]); bStyleArrowForward->Refresh(); m_bUpdate = true; } if (0U != nat) { WxdkdrawDlgArrowSize dlh(this, pobj, sTexts, bDrwElem, false); Dk4WxApplicationHelper::ChooseChildPosition( *bStyleArrowForward, dlh ); res = dlh.ShowModal(); if (wxID_OK == res) { nal = pobj->afl; naw = pobj->afw; m_iv[IVI_ARROWHEAD_LENGTH] = nal; m_iv[IVI_ARROWHEAD_WIDTH] = naw; if ((oal != nal) || (oaw != naw)) { if (NULL != m_pStyle) { SetModified(); wxdobj_drw_require_redraw( m_pDrw, WXD_REFRESH_DRAWING ); } } } } } EndEventHandling(); } #line 3021 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleLineArrowB(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t oat; uint8_t nat; uint8_t oal; uint8_t nal; uint8_t oaw; uint8_t naw; bool bDrwElem; pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); oat = nat = pobj->abt; oal = nal = pobj->abl; oaw = naw = pobj->abw; #line 3043 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { WxdkdrawDlgArrowType dlg( this, pobj, sTexts, ms_arrow_images, bDrwElem, true ); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleArrowBackward, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { nat = pobj->abt; if (oat != nat) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); if (0 == oat) { pobj->abl = m_iv[IVI_ARROWHEAD_LENGTH]; pobj->abw = m_iv[IVI_ARROWHEAD_WIDTH]; } drawco->Refresh(); drawco->Update(); } bStyleArrowBackward->SetBitmap(ms_arrow_images[nat]); bStyleArrowBackward->Refresh(); m_bUpdate = true; } if (0U != nat) { WxdkdrawDlgArrowSize dlh(this, pobj, sTexts, bDrwElem, true); Dk4WxApplicationHelper::ChooseChildPosition( *bStyleArrowForward, dlh ); res = dlh.ShowModal(); if (wxID_OK == res) { nal = pobj->abl; naw = pobj->abw; m_iv[IVI_ARROWHEAD_LENGTH] = nal; m_iv[IVI_ARROWHEAD_WIDTH] = naw; if ((oal != nal) || (oaw != naw)) { if (NULL != m_pStyle) { SetModified(); wxdobj_drw_require_redraw( m_pDrw, WXD_REFRESH_DRAWING ); } } } } } EndEventHandling(); } #line 3091 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleFillColour(wxCommandEvent & WXUNUSED(event)) { Wxd_stipple_t *pstip; int r; int g; int b; bool hsti; #line 3104 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { r = ccFillColour->Red(); g = ccFillColour->Green(); b = ccFillColour->Blue(); if (NULL != m_pStyle) { if ( ((uint8_t)r != m_pStyle->fc[0]) || ((uint8_t)g != m_pStyle->fc[1]) || ((uint8_t)b != m_pStyle->fc[2]) ) { m_pStyle->fc[0] = (uint8_t)r; m_pStyle->fc[1] = (uint8_t)g; m_pStyle->fc[2] = (uint8_t)b; wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); hsti = (NULL != m_pStyle->psti); if (WXD_FS_PURE < m_pStyle->fs) { pstip = wxdobj_find_stipple_structure(m_pDrw, m_pStyle); m_pStyle->psti = pstip; } else { m_pStyle->psti = NULL; } if (hsti) { #line 3128 "WxdkdrawFrameEvents.cpt" wxdobj_remove_unused_stipples(m_pDrw); } if (NULL != m_pStyle->psti) { if (NULL == (m_pStyle->psti)->bm) { UpdateOneStipple(m_pStyle->psti); } } } } else { m_oStyle.fc[0] = r; m_oStyle.fc[1] = g; m_oStyle.fc[2] = b; } EndEventHandling(); } #line 3145 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleFillPattern(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; Wxd_stipple_t *pstip; int res; uint8_t ofs; uint8_t nfs; bool hsti; bool bDrwElem; #line 3160 "WxdkdrawFrameEvents.cpt" pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); ofs = nfs = pobj->fs; if (BeginEventHandling()) { WxdkdrawDlgFillStyle dlg(this, pobj, sTexts, ms_fs_images, bDrwElem); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleFillPattern, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { nfs = pobj->fs; if (ofs != nfs) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); hsti = (NULL != m_pStyle->psti); if (WXD_FS_PURE < m_pStyle->fs) { pstip = wxdobj_find_stipple_structure(m_pDrw, m_pStyle); m_pStyle->psti = pstip; } else { m_pStyle->psti = NULL; } if (hsti) { wxdobj_remove_unused_stipples(m_pDrw); } if (NULL != m_pStyle->psti) { if (NULL == (m_pStyle->psti)->bm) { UpdateOneStipple(m_pStyle->psti); } } } bStyleFillPattern->SetBitmap(ms_fs_images[nfs]); bStyleFillPattern->Refresh(); m_bUpdate = true; } } EndEventHandling(); } #line 3198 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleTextLatex(wxCommandEvent & WXUNUSED(event)) { #line 3205 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if (cbStyleTextLaTeX->GetValue()) { if (NULL != m_pStyle) { (m_pStyle->det).t.fl |= WXD_TEXT_FLAG_LATEX; } else { m_oStyle.det.t.fl |= WXD_TEXT_FLAG_LATEX; } } else { if (NULL != m_pStyle) { (m_pStyle->det).t.fl &= (~(WXD_TEXT_FLAG_LATEX)); } else { m_oStyle.det.t.fl &= (~(WXD_TEXT_FLAG_LATEX)); } } if (NULL != m_pStyle) { SetModified(); wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); } EndEventHandling(); } #line 3229 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleTextAlign(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t oal; uint8_t nal; bool bDrwElem; #line 3242 "WxdkdrawFrameEvents.cpt" pobj = ((NULL != m_pStyle) ? (m_pStyle) : (&m_oStyle)); bDrwElem = (NULL != m_pStyle); oal = nal = WXD_TA_LEFT; if (WXD_OT_TEXT == pobj->ot) { oal = nal = (pobj->det).t.al; } if (BeginEventHandling()) { WxdkdrawDlgTextAlign dlg(this, pobj, sTexts, ms_ta_images, bDrwElem); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleTextAlign, dlg); res = dlg.ShowModal(); if (wxID_OK == res) { nal = (pobj->det).t.al; if (oal != nal) { if (WXD_OT_TEXT == pobj->ot) { if (NULL != m_pStyle) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); } bStyleTextAlign->SetBitmap(ms_ta_images[nal]); bStyleLineEnds->Refresh(); m_bUpdate = true; } else { if (NULL == m_pStyle) { bStyleTextAlign->SetBitmap(ms_ta_images[nal]); bStyleLineEnds->Refresh(); m_bUpdate = true; } } } } EndEventHandling(); } #line 3274 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnStyleTextFont(wxCommandEvent & WXUNUSED(event)) { Wxd_object_t *pobj; int res; uint8_t ofind; bool isobj; if (NULL != m_pStyle) { pobj = m_pStyle; isobj = true; } else { pobj = &m_oStyle; isobj = false; } ofind = (pobj->det).t.find; if (DK4_FONT_MAX < ofind) { ofind = DK4_FONT_MAX; } if (BeginEventHandling()) { WxdkdrawDlgFontName dlg(this, pobj, isobj, sTexts, ms_fn_images); Dk4WxApplicationHelper::ChooseChildPosition(*bStyleFontName, dlg); res = dlg.ShowModal(); if (wxID_OK != res) { UpdateTextForFont(pobj, false); } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); if (ofind != (pobj->det).t.find) { SetModified(); bStyleFontName->SetBitmap(ms_fn_images[(pobj->det).t.find]); bStyleFontName->Refresh(); m_bUpdate = true; } EndEventHandling(); } } void WxdkdrawFrame::OnStyleTextSize(wxSpinEvent & WXUNUSED(event)) { Wxd_font_t *pfont; uint16_t ofs; uint16_t nfs; bool hasf; #line 3324 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if (NULL != m_pStyle) { if (WXD_OT_TEXT == m_pStyle->ot) { ofs = nfs = (m_pStyle->det).t.fsz; nfs = (uint16_t)(spFontSize->GetValue()); if (ofs != nfs) { (m_pStyle->det).t.fsz = nfs; hasf = (NULL != (m_pStyle->det).t.font); pfont = FindFont((m_pStyle->det).t.find, nfs); (m_pStyle->det).t.font = pfont; if (NULL != pfont) { UpdateOneFont(pfont); } if (hasf) { wxdobj_remove_unused_fonts(m_pDrw); } wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); SetModified(); } } } else { m_oStyle.det.t.fsz = (uint16_t)(spFontSize->GetValue()); } EndEventHandling(); } #line 3347 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnSpinRotation(wxSpinEvent & WXUNUSED(event)) { #line 3355 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { if (NULL != m_pStyle) { switch ( (int)(m_pStyle->ot) ) { case WXD_OT_TEXT : { (m_pStyle->det).t.a = spRotation->GetValue(); SetModified(); RequireRedraw(WXD_REFRESH_DRAWING); } break; case WXD_OT_ELLIPSE : { (m_pStyle->det).e.a = spRotation->GetValue(); SetModified(); RequireRedraw(WXD_REFRESH_DRAWING); } break; } } EndEventHandling(); } #line 3373 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnScrollH(wxScrollEvent & WXUNUSED(event)) { #line 3381 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { UseScrollH(); EndEventHandling(); } #line 3386 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnScrollV(wxScrollEvent & WXUNUSED(event)) { #line 3394 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { UseScrollV(); EndEventHandling(); } #line 3399 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert1(wxCommandEvent & WXUNUSED(event)) { #line 3407 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_POLYGON; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3416 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert2(wxCommandEvent & WXUNUSED(event)) { #line 3424 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_POLYLINE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3433 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert3(wxCommandEvent & WXUNUSED(event)) { #line 3441 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = true; m_iObjToCreate = WXD_OT_O_SPLINE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3450 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert4(wxCommandEvent & WXUNUSED(event)) { #line 3457 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_C_ARC; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3466 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert5(wxCommandEvent & WXUNUSED(event)) { #line 3474 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_O_ARC; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3483 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert6(wxCommandEvent & WXUNUSED(event)) { #line 3491 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_C_SPLINE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3500 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert7(wxCommandEvent & WXUNUSED(event)) { #line 3508 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_O_SPLINE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3517 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert8(wxCommandEvent & WXUNUSED(event)) { #line 3525 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_DOT_WHITE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3534 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvert9(wxCommandEvent & WXUNUSED(event)) { #line 3542 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = false; m_iObjToCreate = WXD_OT_DOT_FILLED; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3551 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnConvertA(wxCommandEvent & WXUNUSED(event)) { #line 3559 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { m_bSplineInterpolated = true; m_iObjToCreate = WXD_OT_C_SPLINE; m_iState = S_CONVERT; m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3568 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnColourBorderModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_BORDER_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourBorderReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_BORDER_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourBackgroundModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_BG_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourBackgroundReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_BG_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourGridModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_GRID_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourGridReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_GRID_RED, WXD_REFRESH_GRID); EndEventHandling(); } } void WxdkdrawFrame::OnColourPlacementModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_PH_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourPlacementReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_PH_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourCopyModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_M_COPY_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourCopyReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_M_COPY_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourMoveModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_M_MOVE_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourMoveReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_M_MOVE_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourDeleteModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_M_DEL_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourDeleteReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_M_DEL_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourGroupModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_M_GROUP_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourGroupReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_M_GROUP_RED, WXD_REFRESH_MARKUP); EndEventHandling(); } } void WxdkdrawFrame::OnColourMissingModify(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorModify(IVI_MISSIMG_RED, WXD_REFRESH_DRAWING); EndEventHandling(); } } void WxdkdrawFrame::OnColourMissingReset(wxCommandEvent & WXUNUSED(event)) { if (BeginEventHandling()) { ColorReset(IVI_MISSIMG_RED, WXD_REFRESH_DRAWING); EndEventHandling(); } } void WxdkdrawFrame::OnResetOptions(wxCommandEvent & WXUNUSED(event)) { int res; /* Message box result */ #line 3776 "WxdkdrawFrameEvents.cpt" if (m_bActive) { Dk4WxYesNoDialog dlg( this, pAppHelp, sTexts[605], sTexts[604] ); StartEventHandling(); #if VERSION_BEFORE_2020_08_23 res = wxMessageBox( sTexts[605], sTexts[604], (wxYES_NO | wxICON_QUESTION) ); #else res = dlg.ShowModal(); #endif if (wxYES == res) { ResetConfiguration(); cbGridOnOff->SetValue(true); cbPH->SetValue(false); if ( (S_NOOP != m_iState) || (NULL == m_pStyle) || (&m_oStyle == m_pStyle) ) { StyleToGUI(); } cbGridOnOff->Refresh(); cbPH->Refresh(); if ((NULL != m_pDrw) && (NULL != drawco)) { wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_GRID); drawco->Refresh(); } m_bUpdate = true; } EndEventHandling(); } #line 3809 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnModifySplineValue(wxCommandEvent & WXUNUSED(event)) { #line 3817 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); m_iState = S_MOD_SPLINE; wxdobj_unmark_all(m_pDrw, OBJ_MARKER_1); m_pCurrent = NULL; SetMouseAndStatusTexts(m_iState); EndEventHandling(); } #line 3826 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnOptionsNewObjects(wxCommandEvent & WXUNUSED(event)) { #line 3834 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); WxdkdrawDlgOptionsNewObjects dlg( this, &(m_iv[IVI_DOT_DIAMETER_FILLED]), &(m_iv[IVI_DOT_DIAMETER_WHITE]), sTexts ); dlg.ShowModal(); EndEventHandling(); } #line 3846 "WxdkdrawFrameEvents.cpt" } void WxdkdrawFrame::OnOptionsScreenRepresentation(wxCommandEvent & WXUNUSED(event)) { #line 3854 "WxdkdrawFrameEvents.cpt" if (BeginEventHandling()) { EndOperation(true); WxdkdrawDlgOptionsScreen dlg( this, drawco, m_pDrw, &(m_iv[IVI_XS_SUBSEGS]), &(m_iv[IVI_FONT_EXACT]), &(m_iv[IVI_REDUCE_MARKUP_POINTS]), sTexts ); dlg.ShowModal(); UpdateFonts(); wxdobj_drw_require_redraw(m_pDrw, WXD_REFRESH_DRAWING); drawco->Refresh(); m_bUpdate = true; EndEventHandling(); } #line 3869 "WxdkdrawFrameEvents.cpt" } /* vim: set ai sw=4 ts=4 : */