diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
commit | 0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch) | |
tree | 416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/WxdkdrawFrame.h | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/WxdkdrawFrame.h')
-rw-r--r-- | support/dktools/WxdkdrawFrame.h | 4200 |
1 files changed, 0 insertions, 4200 deletions
diff --git a/support/dktools/WxdkdrawFrame.h b/support/dktools/WxdkdrawFrame.h deleted file mode 100644 index 70d0b0ce95..0000000000 --- a/support/dktools/WxdkdrawFrame.h +++ /dev/null @@ -1,4200 +0,0 @@ -/* -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: WxdkdrawFrame.wxc -*/ - -/** @file WxdkdrawFrame.h Header file for the WxdkdrawFrame module. -*/ - -#ifndef WXDKDRAWFRAME_H_INCLUDED -/** Avoid multiple inclusions. */ -#define WXDKDRAWFRAME_H_INCLUDED 1 - - -#line 1149 "WxdkdrawFrame.wxc" - -#include "wxdkdraw.h" - -#ifndef DK4WXCOLOURVIEW_H_INCLUDED -#include "Dk4WxColourView.h" -#define DK4WXCOLOURVIEW_H_INCLUDED 1 -#endif - - - -#line 1159 "WxdkdrawFrame.wxc" -/** The programs main window. -*/ -class WxdkdrawFrame : public Dk4WxFrame -{ - /* ----- start of control class ----- */ - - /** The draw control. - Defined as nested class to make both classes friend of each other. - */ - class Control : public wxControl - { - /** Allow frame class full access to all members. - */ - friend class WxdkdrawFrame; - - /** Class responds to events. - */ -#if wxCHECK_VERSION(3,0,0) - wxDECLARE_DYNAMIC_CLASS(Control); -#else - DECLARE_DYNAMIC_CLASS(Control) -#endif - - private: - - /* control private members */ - - /** This class uses an event table. - */ -#if wxCHECK_VERSION(3,0,0) - wxDECLARE_EVENT_TABLE(); -#else - DECLARE_EVENT_TABLE() -#endif - - protected: - - /* control protected members */ - - /** Name of control, used in initialization. - */ - static wxChar const ms_controlname[]; - - /** Draw control size. - Only available within OnPaint handler. - */ - wxSize m_szDrawco; - - /** Screen resolution in dpi for x and y direction. - */ - dk4_gra_point_t m_ptRes; - - /** Coefficients for coordinate transformations. - Only available within OnPaint handler. - */ - dk4_gra_point_t m_ptM; - - /** Coefficients for coordinate transformations. - Only available within OnPaint handler. - */ - dk4_gra_point_t m_ptN; - - /** Parent frame, containing pointer to the drawing. - */ - WxdkdrawFrame *m_pParent; - - /** Bitmap 1 contains border, viewport and grid. - */ - wxBitmap *m_pB1; - - /** Bitmap 2 contains the graphics elements on top of bitmap 1. - */ - wxBitmap *m_pB2; - - /** Bitmap 3 contains the markup on top of bitmap 2. - */ - wxBitmap *m_pB3; - - /** Zoom factor, depends on zoom level. - */ - double m_dZoom; - - /** Optical grid distance. - */ - uint32_t m_uGridOptical; - - /** Snap grid distance. - */ - uint32_t m_uGridSnap; - - /** Control is allowed to allocate bitmaps. - */ - bool m_bCanAllocate; - - public: - - /* control public methods */ - - /** Default constructor. - Here for completeness - */ - Control(); - - /** Constructor - */ - Control( - wxWindow *pParent, - wxWindowID wxid, - WxdkdrawFrame *pFrame, - wxPoint const & pos = wxDefaultPosition, - wxSize const & sz = wxDefaultSize, - long st = wxBORDER_NONE, - wxChar const *name = ms_controlname - ); - - /** Create control. - This method is here for completeness, it is not used - by the wxdkdraw program. - @param pParent Parent frame. - @param wxid Window ID. - @param pFrame Parent frame. - @param pos Position. - @param sz Size. - @param st Control style. - @param name Control name. - */ - bool - Create( - wxWindow *pParent, - wxWindowID wxid, - WxdkdrawFrame *pFrame, - wxPoint const & pos = wxDefaultPosition, - wxSize const & sz = wxDefaultSize, - long st = wxBORDER_NONE, - wxChar const *name = ms_controlname - ); - - /** Destructor. - */ - ~Control(); - - /** Prepare control for destruction. - Release bitmaps and avoid re-allocation. - */ - void - PrepareForDestruction(void); - - /** Handler for erase event. - @param event Event to handle. - */ - void - OnErase(wxEraseEvent & event); - - /** Handler for paint event. - @param event Event to handle. - */ - void - OnPaint(wxPaintEvent & event); - - /** Handler for resize event. - @param event Event to handle. - */ - void - OnSize(wxSizeEvent & event); - - /** Handler for mouse enter event. - @param event Event to handle. - */ - void - OnMouseEnter(wxMouseEvent & event); - - /** Handler for mouse leave event. - @param event Event to handle. - */ - void - OnMouseLeave(wxMouseEvent & event); - - /** Handler for mouse motion event. - @param event Event to handle. - */ - void - OnMouseMove(wxMouseEvent & event); - - /** Handler for left mouse button event. - @param event Event to handle. - */ - void - OnLeftMouseButtonDown(wxMouseEvent & event); - - /** Handler for right mouse button event. - @param event Event to handle. - */ - void - OnRightMouseButtonDown(wxMouseEvent & event); - - /** Handler for middle mouse button event. - @param event Event to handle. - */ - void - OnMiddleMouseButtonDown(wxMouseEvent & event); - - /** Handler for mouse wheel event. - @param event Event to handle. - */ - void - OnMouseWheel(wxMouseEvent & event); - - protected: - - /** Check for completed initialization. - @return True if ready to handle events, false otherwise. - */ - bool - CanHandleEvents(void); - - /** Fill entire control using border colour. - @param dc Drawing context. - */ - void - PaintOperation0(wxDC & dc); - - /** Draw background for drawing canvas. - @param gc Graphics context to use. - */ - void - PaintOperationCanvas( - wxGraphicsContext *gc - ); - - /** Draw grid in a calculated bounding box. - @param gc Graphics context to use. - @param g_end Bounding box data for grid. - */ - void - PaintOperationBoundingBoxGrid( - wxGraphicsContext *gc, - Wxd_bb_t const & g_end - ); - - /** Draw grid. - @param gc Graphics context to use. - */ - void - PaintOperationGrid( - wxGraphicsContext *gc - ); - - /** Decide whether or not to use placement help in current state. - @return True to show placement help, false otherwise. - */ - bool - StateUsesPlacementHelp(void); - - /** Draw border, drawable area and grid. - @param gc Graphics context to use. - */ - void - PaintOperation1(wxGraphicsContext *gc); - - /** Draw drawing objects. - @param gc Graphics context to use. - @param event Event to process. - */ - void - PaintOperation2(wxGraphicsContext *gc); - - /** Draw markup on top of drawing. - @param gc Graphics context to use. - @param event Event to process. - */ - void - PaintOperation3(wxGraphicsContext *gc); - - /** Calculate zoom factor and grid distances after zooming in - or out or after changing graphics. - */ - void - CalculateZoomFactor(void); - - /** Calculate grid distances after changing grid settings. - */ - void - CalculateGridDistances(void); - - /** Calculate conversion coefficients. - */ - void - CalculateConversionCoefficients(void); - - /** Convert x distance from wxd to pixels. - @param d Distance to convert. - @return Conversion result. - */ - double - ConvDist(double d); - - /** Convert x distance from wxd to pixels. - @param d Distance to convert. - @return Conversion result. - */ - double - ConvDist(int32_t d); - - /** Convert x coordinate from wxd to pixels. - @param x X coordinate value in wxd. - @return X coordinate value in pixels. - */ - double - ConvX(double x); - - /** Convert x coordinate from wxd to pixels. - @param x X coordinate value in wxd. - @return X coordinate value in pixels. - */ - double - ConvX(int32_t x); - - /** Convert y coordinate from wxd to pixels. - @param y Y coordinate value in wxd. - @return Y coordinate value in pixels. - */ - double - ConvY(double y); - - /** Convert y coordinate from wxd to pixels. - @param y Y coordinate value in wxd. - @return Y coordinate value in pixels. - */ - double - ConvY(int32_t y); - - /** Convert x coordinate back from pixels to wxd. - @param x X coordinate in pixels. - @return X coordinate in wxd. - */ - double - InvX(double x); - - /** Convert y coordinate back from pixels to wxd. - @param y Y coordinate in pixels. - @return Y coordinate in wxd. - */ - double - InvY(double y); - - /** Convert x coordinate back from pixels to wxd. - @param x X coordinate in pixels. - @param ok Success flag to reset on error. - @return Backward conversion value on success, 0L on error. - */ - int32_t - InvX(double x, bool & ok); - - /** Convert y coordinate back from pixels to wxd. - @param y Y coordinate in pixels. - @param ok Success flag to reset on error. - @return Backward conversion value on success, 0L on error. - */ - int32_t - InvY(double y, bool & ok); - -#if 0 - - /** Convert x coordinate back from pixels to wxd. - @param dptr Address of result variable. - @param x X coordinate in pixels. - @return True on success, false on error (x out of range). - */ - bool - InvX(int32_t *dptr, double x); - - /** Convert y coordinate back from pixels to wxd. - @param dptr Address of result variable. - @param y Y coordinate in pixels. - @return True on success, false on error (y out of range). - */ - bool - InvY(int32_t *dptr, double y); - - /** Convert x coordinate back from pixels to wxd. - @param dptr Address of result variable. - @param x X coordinate in pixels. - @return True on success, false on error (x out of range). - */ - bool - InvX(int32_t *dptr, int x); - - /** Convert y coordinate back from pixels to wxd. - @param dptr Address of result variable. - @param y Y coordinate in pixels. - @return True on success, false on error (y out of range). - */ - bool - InvY(int32_t *dptr, int y); - -#endif - - - /** Round grid coordinate downward. - @param x Original coordinate. - @param gr Grid distance. - @param ok Success variable to reset on numerical errors. - @param fo Force downward rounding. - @return Result. - */ - int32_t - GridRoundDown( - int32_t x, - uint32_t gr, - bool & ok, - bool fo = false - ); - - /** Round grid coordinate upward. - @param x Original coordinate. - @param gr Grid distance. - @param ok Success variable to reset on numerical errors. - @param fo Force upward rounding. - @return Result. - */ - int32_t - GridRoundUp( - int32_t x, - uint32_t gr, - bool & ok, - bool fo = false - ); - - /** Round grid coordinate to nearest grid point. - @param x Original coordinate. - @param gr Grid distance. - @param ok Success variable to reset on numerical errors. - @return Result. - */ - int32_t - GridRoundNearest(int32_t x, uint32_t gr, bool & ok); - - /** Check whether object contains all required data for drawing. - @param pobj Object to check. - @return True to draw the object, false to skip object. - */ - bool - CanDrawElement(Wxd_object_t const *pobj); - - /** Check whether to draw an object in normal drawing pass. - @param pobj Object to check. - @return True to draw the object, false to skip drawing. - */ - bool - MustDrawElementInNormalPass(Wxd_object_t const *pobj); - - /** Check whether to draw an object in markup pass. - @param pobj Object to check. - @return True to draw the object, false to skip drawing. - */ - bool - MustDrawElementInMarkupPass(Wxd_object_t const *pobj); - - /** Check whether to highlight an object in markup pass. - @param pobj Object to check. - @return True to draw the object, false to skip drawing. - */ - bool - MustHighlightElementInMarkupPass(Wxd_object_t const *pobj); - - /** Check whether to highlight an object in markup pass. - @param pobj Object to check. - @return True to draw the object, false to skip drawing. - */ - bool - MustHighlight2ElementInMarkupPass(Wxd_object_t const *pobj); - - /** Check whether there are objects under construction in - current state. - @return True for states with objects under construction. - */ - bool - StateHasObjectsUnderModification(void); - - /** Check whether there are objects to highlight in current state. - @return True for states with objects under construction. - */ - bool - StateHasObjectsToHighlight(void); - - /** Check whether there are objects to highlight in current state. - @return True for states with objects under construction. - */ - bool - StateHasObjectsToHighlight2(void); - - /** Choose stroke colour, either the objects stroke colour - or a colour for markup. - @param sc Destination array for colour components. - @param pObj Object to draw. - @param iMarkup Markup type to use. - */ - void - ChooseStrokeColour(int *sc, Wxd_object_t const *pObj, int iMarkup); - - /** Draw one graphics object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Draw one text object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawTextElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Create path for polyline or polygon. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathPolyline( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Create path for one X-spline segment consisting - of multiple sub-segments. - @param p Graphics path to modify. - @param pt Spline points array. - @param xsp X-spline data. - @param segno Number of current segment. - @param subsegs Number of sub-segments to produce. - @param divisor Divisor for derivative values. - @param shiftx X shift value. - @param shifty Y shift value. - @param ib Index of point B in pt. - @param ic Index of point C in pt. - */ - void - SplineSegment( - wxGraphicsPath & p, - Wxd_spline_point_t *pt, - dk4_xsp_2d_t *xsp, - uint16_t segno, - size_t subsegs, - double divisor, - double shiftx, - double shifty, - uint16_t ib, - uint16_t ic - ); - - /** Create path for spline. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathSpline( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Create path for arc. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathArc( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Create path for circle. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathCircle( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Create path for ellipse. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathEllipse( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Create path for box. - @param p Path to construct. - @param pObj Object. - @param pShift Vector to shift object. - */ - void - PathBox( - wxGraphicsPath & p, - Wxd_object_t const *pObj, - Wxd_point_t const *pShift - ); - - /** Mark up one polyline object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupPolyline( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one spline object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupSpline( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one arc object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupArc( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one circle object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupCircle( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one ellipse object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupEllipse( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one box object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupBoundingBox( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - Wxd_bb_t const *pbb, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Mark up one box object. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - MarkupBox( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Draw one open path graphics object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawOpenPathElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Draw one closed path graphics object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawClosedPathElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Draw one image creation region to graphics context. - @param gc Graphics context. - */ - void - DrawImageRegion( - wxGraphicsContext *gc - ); - - /** Draw one image object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawImageElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Draw one dot object to graphics context. - @param gc Graphics context. - @param pObj Object to draw. - @param iMarkup Markup to apply. - @param pShift Optional shift vector. - */ - void - DrawDotElement( - wxGraphicsContext *gc, - Wxd_object_t const *pObj, - int iMarkup, - Wxd_point_t const *pShift = NULL - ); - - /** Set up pen attributes for object. - @param pen Pen to modify. - @param pObj Object to draw. - @param pDash Address of dash lengths array. - @param pNdash Address of variable for number of elements. - */ - void - SetupPenForObject( - wxPen & pen, - Wxd_object_t const *pObj, - wxDash *pDash, - int *pNdash - ); - - /** Calculate point radius for markup point. - @param lw Line width of object to markup, may be 0. - @return Markup radius to use. - */ - double - MarkupPointRadius(uint16_t lw); - - /** Draw a markup point. - @param gc Grahics context to draw to. - @param sc Stroke colour. - @param x X position of point. - @param y Y position of point. - @param lw Line width of object markup point belongs to. - @param pShift Shift vector, may be NULL. - */ - void - DrawMarkupPoint( - wxGraphicsContext *gc, - int const *sc, - double x, - double y, - uint16_t lw, - Wxd_point_t const *pShift = NULL - ); - - /** Draw a markup point. - @param gc Grahics context to draw to. - @param sc Stroke colour. - @param x X position of point. - @param y Y position of point. - @param lw Line width of object markup point belongs to. - @param pShift Shift vector, may be NULL. - */ - void - DrawMarkupPoint( - wxGraphicsContext *gc, - int const *sc, - int32_t x, - int32_t y, - uint16_t lw, - Wxd_point_t const *pShift = NULL - ); - - /** Calculate vertices for arrowhead. - @param pt Address of result array. - @param pDrw Drawing. - @param pObj Object to add arrowheads to. - @param xpos X position of arrow end. - @param ypos Y position of arrow end. - @param rot Arrow rotation. - @param atype Arrow type. - @param alength Arrow length. - @param awidth Arrow width. - */ - void - ArrowVertices( - dk4_gra_point_t *pt, - Wxd_drawing_t const *pDrw, - Wxd_object_t const *pObj, - double xpos, - double ypos, - double rot, - uint8_t atype, - uint8_t alength, - uint8_t awidth - ); - - /** Draw one arrowhead. - @param gc Grahpics context to use for drawing. - @param pDrw Drawing. - @param pObj Object to add arrowhead to. - @param sc Stroke colour. - @param xpos X position of arrowhead end. - @param ypos Y position of arrowhead end. - @param rot Arrowhead rotation. - @param atype Arrowhead type. - @param alength Arrowhead length. - @param awidth Arrowhead width. - */ - void - DrawOneArrowhead( - wxGraphicsContext *gc, - Wxd_drawing_t const *pDrw, - Wxd_object_t const *pObj, - int const *sc, - double xpos, - double ypos, - double rot, - uint8_t atype, - uint8_t alength, - uint8_t awidth - ); - - /** Add arrowheads to object. - @param gc Graphics context to use for drawing. - @param pDrw Drawing. - @param pObj Object to add arrows to. - @param sc Stroke colour. - @param pShift Shift vector. - */ - void - AddArrowheads( - wxGraphicsContext *gc, - Wxd_drawing_t const *pDrw, - Wxd_object_t const *pObj, - int const *sc, - Wxd_point_t const *pShift = NULL - ); - - /** Calculate line width in pixels for object. - @param pDrw Drawing. - @param pObj Object. - @return Line width to use on screen. - */ - int - LineWidthForObject( - Wxd_drawing_t const *pDrw, - Wxd_object_t const *pObj, - int iMarkup = WXD_MARKUP_NONE - ); - - /** Highlight the point to move. - @param gc Graphics context to draw to. - @param pobj Object to highlight. - @param pno Point number. - */ - void - HighlightPointToMove( - wxGraphicsContext *gc, - Wxd_object_t const *pobj, - uint16_t pno - ); - - /** Highlight the point to delete. - @param gc Graphics context to draw to. - @param pobj Object to highlight. - @param pno Point number. - */ - void - HighlightPointToDelete( - wxGraphicsContext *gc, - Wxd_object_t const *pobj, - uint16_t pno - ); - - /** Highlight the point to delete. - @param gc Graphics context to draw to. - @param pobj Object to highlight. - @param pno Point number. - @param bAppend New point must be appended after pno. - */ - void - HighlightPointToAdd( - wxGraphicsContext *gc, - Wxd_object_t const *pobj, - uint16_t pno, - bool bAppend - ); - - /** Highlight one point of the element for style changes. - @param gc Graphics context to use. - @param x X position (in WXD coordinates). - @param y Y position (in WXD coordinates). - @param r Radius (half square length). - @param sc Colour components. - */ - void - HighlightStylePoint( - wxGraphicsContext *gc, - double x, - double y, - double r, - int const *sc - ); - - /** Highlight one point of the element for style changes. - @param gc Graphics context to use. - @param x X position (in WXD coordinates). - @param y Y position (in WXD coordinates). - @param r Radius (half square length). - @param sc Colour components. - */ - void - HighlightStylePoint( - wxGraphicsContext *gc, - int32_t x, - int32_t y, - double r, - int const *sc - ); - - /** Highlight the element for style changes. - @param gc Graphics context to use. - @param pobj Object to highlight. - */ - void - HighlightStyleElement( - wxGraphicsContext *gc, - Wxd_object_t const *pobj - ); - - /** Retrieve point coordinates from a bounding box. - @param x Result variable for x coordinate. - @param y Result variable for y coordinate. - @param pbb Bounding box (box or image). - @param pno Point number. - */ - void - GetPointFromBox( - double & x, - double & y, - Wxd_bb_t const *pbb, - uint16_t pno - ); - - /** Highlight the point to move. - @param gc Graphics context to draw to. - @param pobj Object to highlight. - @param pno Point number. - @param ci Color index for highlighting. - */ - void - HighlightPointForOperation( - wxGraphicsContext *gc, - Wxd_object_t const *pobj, - uint16_t pno, - int ci - ); - - /** Highlight line from mouse position to control point. - @param gc Graphics context to draw to. - @param pobj Object to highlight. - @param pno Point number. - @param ci Color index for highlighting. - */ - void - HighlightLineToPoint( - wxGraphicsContext *gc, - Wxd_object_t const *pobj, - uint16_t pno, - int ci - ); - - }; - - /* ----- End of control class ----- */ - - /** The control has full access to all members of the frame class. - */ - friend class Control; - - public: - - /** IDs for menu items, buttons and other elements. - */ - enum { - ID_FRAME = ((wxID_HIGHEST) + 1) , /**< Main window. */ - ID_HELP_ABOUT , /**< Show version dialog box. */ - ID_HELP_CONTENTS , /**< Open online help table of contents. */ - ID_ADD_POLYINE , /**< Add polyline. */ - ID_ADD_POLYGON , /**< Add polygon. */ - ID_ADD_RECT , /**< Add rectangle. */ - ID_ADD_BOX , /**< Add box (rounded corner rectangle). */ - ID_ADD_CIRCLE , /**< Add circle. */ - ID_ADD_ELLIPSE , /**< Add ellipse. */ - ID_ADD_ARC_O , /**< Add open arc. */ - ID_ADD_ARC_C , /**< Add closed arc. */ - ID_ADD_SPL_AO , /**< Add open approximated spline. */ - ID_ADD_SPL_AC , /**< Add closed approximated spline. */ - ID_ADD_SPL_IO , /**< Add open interpolated spline. */ - ID_ADD_SPL_IC , /**< Add closed interpolated spline. */ - ID_ADD_DOT_C , /**< Add colour filled dot. */ - ID_ADD_DOT_W , /**< Add white filled dot. */ - ID_ADD_TEXT , /**< Add text label. */ - ID_ADD_IMG , /**< Add image. */ - ID_ADD_LIBELEM , /**< Add library element. */ - ID_EDIT_COPY , /**< Copy object. */ - ID_EDIT_MOVE , /**< Move object. */ - ID_EDIT_DEL , /**< Delete object. */ - ID_EDIT_PT_MOVE , /**< Move point. */ - ID_EDIT_PT_ADD , /**< Add point. */ - ID_EDIT_PT_DEL , /**< Delete point. */ - ID_EDIT_DET , /**< Edit details. */ - ID_EDIT_GRP1 , /**< Group objects (elements one by one). */ -#if 0 - ID_EDIT_GRP12 , /**< Group objects (touching rectangle). */ -#endif - ID_EDIT_GRP13 , /**< Group objects (including rectangle). */ - ID_EDIT_UNGRP , /**< Ungroup objects. */ - ID_EDIT_FLIPH , /**< Flip ojects horizontally. */ - ID_EDIT_FLIPV , /**< Flip objects vertically. */ - ID_EDIT_ROTLEFT , /**< Rotate 90 degree to left. */ - ID_EDIT_ROTRIGHT , /**< Rotate 90 degree to right. */ - ID_EDIT_DRSZ , /**< Change drawing size. */ - ID_LAYERS_ALL , /**< Activate all layers. */ - ID_LAYERS_MGR , /**< Run layer manager. */ - ID_ZOOM_CENTER , /**< Center view. */ - ID_GRID_ON_OFF , /**< Activate or deactivate grid. */ - ID_GRID_UNIT , /**< Grid unit changed. */ - ID_GRID_BASE , /**< Grid base changed. */ - ID_PLACEMENT , /**< Placement help changed. */ -#if 0 - ID_SELECT_OBJ, /**< Select object to change style .*/ -#endif - ID_STYLE_LAYER , /**< Layer spin control. */ - ID_STYLE_LINE_COL , /**< Line colour button. */ - ID_STYLE_LINE_WIDTH , /**< Line width spin control. */ - ID_STYLE_LINE_STYLE , /**< Line style button. */ - ID_STYLE_LINE_CAP , /**< Line cap button. */ - ID_STYLE_LINE_JOIN , /**< Line joint button. */ - ID_STYLE_ARROW_F , /**< Arrowhead forward button. */ - ID_STYLE_ARROW_B , /**< Arrowhead backward button. */ - ID_STYLE_FILL_COL , /**< Fill colour button. */ - ID_STYLE_FILL_PATT , /**< Fill pattern button. */ - ID_STYLE_TEXT_LATEX , /**< LaTeX special text checkbox. */ - ID_STYLE_TEXT_ALIGN , /**< Text align button. */ - ID_STYLE_TEXT_FONT , /**< Text font button. */ - ID_STYLE_TEXT_SIZE , /**< Text size spin control. */ - ID_SCROLL_H , /**< Horizontal scrollbar. */ - ID_SCROLL_V , /**< Vertical scrollbar. */ - ID_CB_POINT_MOVE_MODE , /**< Checkbox for point move mode. */ - ID_SPIN_ROTATION , /**< Spin control for rotation. */ - ID_EDIT_CONVERT_1 , /**< Convert to polygon. */ - ID_EDIT_CONVERT_2 , /**< Convert to polyline. */ - ID_EDIT_CONVERT_3 , /**< Convert to open interpolated spline. */ - ID_EDIT_CONVERT_4 , /**< Convert to closed arc. */ - ID_EDIT_CONVERT_5 , /**< Convert to open arc. */ - ID_EDIT_CONVERT_6 , /**< Convert to closed approximated spl. */ - ID_EDIT_CONVERT_7 , /**< Convert to open approximated spline. */ - ID_EDIT_CONVERT_8 , /**< Convert to white filled dot. */ - ID_EDIT_CONVERT_9 , /**< Convert to simple dot. */ - ID_EDIT_CONVERT_A , /**< Convert to closed interpolated spl. */ - ID_RESET_OPTIONS , /**< Reset options to default values. */ - ID_COL_MOD_BORDER , /**< Modify border colour. */ - ID_COL_RES_BORDER , /**< Reset border colour. */ - ID_COL_MOD_BACKGROUND , /**< Modify background colour. */ - ID_COL_RES_BACKGROUND , /**< Reset background colour. */ - ID_COL_MOD_GRID , /**< Modify grid colour. */ - ID_COL_RES_GRID , /**< Reset grid colour. */ - ID_COL_MOD_PH , /**< Modify placement help colour. */ - ID_COL_RES_PH , /**< Reset placement help colour. */ - ID_COL_MOD_COPY , /**< Modify copy operation colour. */ - ID_COL_RES_COPY , /**< Reset copy operation colour. */ - ID_COL_MOD_MOVE , /**< Modify move operation colour. */ - ID_COL_RES_MOVE , /**< Reset move operation colour. */ - ID_COL_MOD_DELETE , /**< Modify delete operation colour. */ - ID_COL_RES_DELETE , /**< Reset delete operation colour. */ - ID_COL_MOD_GROUP , /**< Modify group candidates colour. */ - ID_COL_RES_GROUP , /**< Reset group candidates colour. */ - ID_COL_MOD_MISSING , /**< Modify missing image colour. */ - ID_COL_RES_MISSING , /**< Reset missing image colour. */ - ID_MOD_SPLINE , /**< Modify spline s value. */ - ID_OPT_NEW_OBJECTS , /**< Options for new objects. */ - ID_OPT_SCREEN , /**< Options for screen representation. */ - }; - - /** Zoom level range. - */ - enum { - ZOOM_LEVEL_MIN = -14 , /**< Minimum zoom level. */ - ZOOM_LEVEL_MAX = 14 /**< Maximum zoom level. */ - }; - - /* IMPORTANT: Number and order of entries (except IVI_MAX) must match - the number and order of entries in the default_values and - iv_keys arrays in the WxdkdrawFrameTools module! - */ - /** Names for indices into the m_iv array. - */ - enum { - IVI_BORDER_RED = 0 , /**< Border colour red component. */ - IVI_BORDER_GREEN , /**< Border colour green component. */ - IVI_BORDER_BLUE , /**< Border colour blue component. */ - IVI_BG_RED , /**< Background colour red. */ - IVI_BG_GREEN , /**< Background colour green. */ - IVI_BG_BLUE , /**< Background colour blue. */ - IVI_GRID_RED , /**< Grid colour red. */ - IVI_GRID_GREEN , /**< Grid colour green. */ - IVI_GRID_BLUE , /**< Grid colour blue. */ - IVI_PH_RED , /**< Placement help colour red. */ - IVI_PH_GREEN , /**< Placement help colour green. */ - IVI_PH_BLUE , /**< Placement help colour blue. */ - IVI_M_COPY_RED , /**< Copy markup colour red. */ - IVI_M_COPY_GREEN , /**< Copy markup colour green. */ - IVI_M_COPY_BLUE , /**< Copy markup colour blue. */ - IVI_M_MOVE_RED , /**< Move markup colour red. */ - IVI_M_MOVE_GREEN , /**< Move markup colour green. */ - IVI_M_MOVE_BLUE , /**< Move markup colour blue. */ - IVI_M_DEL_RED , /**< Delete markup colour red. */ - IVI_M_DEL_GREEN , /**< Delete markup colour green. */ - IVI_M_DEL_BLUE , /**< Delete markup colour blue. */ - IVI_M_GROUP_RED , /**< Group markup colour red. */ - IVI_M_GROUP_GREEN , /**< Group markup colour green. */ - IVI_M_GROUP_BLUE , /**< Group markup colour blue. */ - IVI_MISSIMG_RED , /**< Missing image border red. */ - IVI_MISSIMG_GREEN , /**< Missing image border green. */ - IVI_MISSIMG_BLUE , /**< Missing image border blue. */ - IVI_XS_SUBSEGS , /**< X-spline sub segments. */ - IVI_FONT_EXACT , /**< Flag: Use exact fonts. */ - IVI_DOT_DIAMETER_FILLED , /**< Diameter filled dots. */ - IVI_DOT_DIAMETER_WHITE , /**< Diameter white filled dots. */ - IVI_ARROWHEAD_LENGTH , /**< Default arrowhead length. */ - IVI_ARROWHEAD_WIDTH , /**< Default arrowhead width. */ - IVI_STYLE_VALUE , /**< Default style value. */ - IVI_MITER_LIMIT , /**< Miter limit. */ - IVI_REDUCE_MARKUP_POINTS , /**< Reduce markup point radius. */ - IVI_D_LAYER , /**< Default layer for new objects. */ - IVI_D_LINE_COL_RED , /**< Default line colour red comp. */ - IVI_D_LINE_COL_GREEN , /**< Default line colour green comp. */ - IVI_D_LINE_COL_BLUE , /**< Default line colour blue comp. */ - IVI_D_LINEWIDTH , /**< Default line width. */ - IVI_D_LINESTYLE , /**< Default line style. */ - IVI_D_STYLE_VALUE , /**< Default style value. */ - IVI_D_JOIN_STYLE , /**< Default line join style. */ - IVI_D_MITER_LIMIT , /**< Default miter limit. */ - IVI_D_CAP_STYLE , /**< Default line cap style. */ - IVI_D_AHF_TYPE , /**< Default arrowhead forward type. */ - IVI_D_AHF_LENGTH , /**< Default arrowhead forward lgt. */ - IVI_D_AHF_WIDTH , /**< Default arrowhead forward width. */ - IVI_D_AHB_TYPE , /**< Default arrowhead backward type. */ - IVI_D_AHB_LENGTH , /**< Default arrowhead backward lgt. */ - IVI_D_AHB_WIDTH , /**< Default arrowhead backward wdth. */ - IVI_D_FILL_COL_RED , /**< Default fill colour red comp. */ - IVI_D_FILL_COL_GREEN , /**< Default fill colour green comp. */ - IVI_D_FILL_COL_BLUE , /**< Default fill colour blue comp. */ - IVI_D_FILL_STYLE , /**< Default fill style. */ - IVI_D_TEXT_LATEX , /**< Default LaTeX option for text. */ - IVI_D_TEXT_ALIGN , /**< Default text align. */ - IVI_D_TEXT_FONT , /**< Default text font. */ - IVI_D_TEXT_SIZE , /**< Default text size. */ - IVI_C_GRID , /**< Enable or disable grid. */ - IVI_C_PH , /**< Enable or disable place help. */ - IVI_C_COR_POSITION , /**< Correct position after zoom out. */ - IVI_MAX /**< Number of indices in the list. */ - }; - /* IMPORTANT: Number and order of entries (except IVI_MAX) must match - the number and order of entries in the default_values and - iv_keys arrays in the WxdkdrawFrameTools module! - */ - - private: - - /* Frame private members */ - - /** Event table for frame. - */ -#if wxCHECK_VERSION(3,0,0) - wxDECLARE_EVENT_TABLE(); -#else - DECLARE_EVENT_TABLE() -#endif - - protected: - - /* frame protected members */ - - /** Drawing object containing default style information. - */ - Wxd_object_t m_oStyle; - - /** Border object to show drawing size. - */ - Wxd_object_t m_oBorder; - - /** Status structure to read WXD file. - */ - wxdrd_status_t m_oStatusReader; - - /** Status structure to write WXD file. - */ - wxdwr_status_t m_oStatusWriter; - - /** Integer values for different purposes, configurable. - */ - int m_iv[IVI_MAX]; - - /** Coefficients used to create stipple bitmaps, - recalculated on zoom level changes or file reload. - 0: Length equivalent for 3.6 / sqrt(3) - 1: Length equivalent for 7.2 - 2: Length equivalent for 3.6 * sqrt(2) - 3: Length equivalent for 14.4 - 4: Length equivalent for 3.6 - 5: Length equivalent for 21.6 - 6: Length equivalent for 14.54 (width of large fish scale) - 7: Length equivalent for 3.7 (height of large fish scale) - 8: Length equivalent for 14.4 * sqrt(3) - 9: X difference at start of large fish scale - 10: Y difference at start of large fish scale - 11: X difference at end of large fish scale - 12: Y difference at end of large fish scale - 13: X difference at start of small fish scale - 14: Y difference at start of small fish scale - 15: X difference at end of small fish scale - 16: Y difference at end of small fish scale - 17...19 unused - */ - double m_dPatterns[20]; - - /** Constant factors calculated once in the constructor. - 0: sqrt(3) - 1: dx/dt at 0 factor for large fish scales - 2: dy/dt at 0 factor for large fish scales - 3: dx/dt at 1 factor for large fish scales - 4: dy/dt at 1 factor for large fish scales - 5: dx/dt at 0 factor for small fish scales - 6: dy/dt at 0 factor for small fish scales - 7: dx/dt at 1 factor for small fish scales - 8: dy/dt at 1 factor for small fish scales - 9...15 unused - */ - double m_dFactors[16]; - - /** Error report used in event processing. - */ - dk4_er_t m_oErrorReport; - - /** Protect m_bIsFirstIdle against multiple access. - */ - wxCriticalSection csIsFirstIdle; - - /** Original ellipse/circle data before moving a point. - */ - Wxd_det_ellipse_t m_ellPointMoveOri; - - /** Full path name. - */ - wxString m_sFileFull; - - /** Short file name without leading directory. - */ - wxString m_sFileShort; - - /** Directory file resides in. - */ - wxString m_sFileDir; - - /** Directory previous embedded image was taken from. - */ - wxString m_sImageDir; - - /** Directory previous library element was taken from. - */ - wxString m_sLibraryDir; - - /** Short name of previous library element. - */ - wxString m_sLibraryShort; - - /** Original drawing size. - */ - Wxd_bb_t m_oOldSize; - - /** Raw mouse position (not aligned to grid). - */ - Wxd_point_t m_ptMousePosRaw; - - /** Mouse position aligned to grid. - */ - Wxd_point_t m_ptMousePosGrid; - - /** Start point of copy or move operation. - */ - Wxd_point_t m_ptMouseMoveStart; - - /** Difference in copy or move operation, - (m_ptMousePosGrid - m_ptMouseMoveStart). - */ - Wxd_point_t m_ptMouseMoveDiff; - - /** Original position of the point currently moved. - Required to compute differences or to restore - position on abort. - */ - Wxd_point_t m_ptPointMoveOri; - - /** Mouse position on control in pixels. - */ - wxSize m_szMousePosPix; - - /** Object currently to edit with style elements. - */ - Wxd_object_t *m_pStyle; - - /** Current object, used for several purposes: - * S_NOOP: Selection candidate. - * S_POLY_FURTHER: Polyline we are editing. - */ - Wxd_object_t *m_pCurrent; - - /** Localized texts. - */ - wxChar const * const *sTexts; - - /** Non-localized texts. - */ - wxChar const * const *sNlWx; - - /** Non-localized texts. - */ - dkChar const * const *sNlDk; - - /** Drawing opened in this frame. - */ - Wxd_drawing_t *m_pDrw; - - /** Current operation state. - */ - int m_iState; - - /** Accumulated wheel rotation with control key pressed. - */ - int m_iWheelControl; - - /** Accumulated wheel rotation with shift key pressed. - */ - int m_iWheelShift; - - /** Accumulated wheel rotation with not key pressed. - */ - int m_iWheelNormal; - - /** Index of current point to edit. - */ - uint16_t m_uCurrent; - - /** Object we are about to create or to convert to. - */ - int8_t m_iObjToCreate; - - /** Flag for different purposes: - * Spline just created is interpolated (otherwise approximated). - * Box just created is a rounded box (otherwise rectangular). - * Rotation in negative direction. - */ - bool m_bSplineInterpolated; - - /** Flag: Current mouse position is an acceptable point. - */ - bool m_bAcceptablePoint; - - /** Flag: Is first idle. - */ - bool m_bIsFirstIdle; - - /** Flag: Windows is active an event handlers can be executed. - This flag is set in the reaction on the first idle event - and reset on closing the application. - */ - bool m_bActive; - - /** Flag: Drawing was modified (there are unsaved changes). - */ - bool m_bModified; - - /** Flag: File name known for output file. - */ - bool m_bHaveName; - - /** Flag: Mouse position is known. - */ - bool m_bMousePos; - - /** Flag: Successfully calculated difference for copy/shift operation. - */ - bool m_bMouseDiff; - - /** Snap point to move to the mouse position (otherwise relative - movement). - */ - bool m_bSnap; - - /** Flag: Update frame at end of event handler. - */ - bool m_bUpdate; - - /** Flag: Append new point after current point (true) - or insert before current point (false). - */ - bool m_bAppendPoint; - - /** Flag: Have corner point to move when changing drawing size. - */ - bool m_bHaveCornerPoint; - - /** Flip vertically (true) or horizontally (false). - */ - bool m_bVerticalFlip; - - /* __CHANGE__ 011: Add further member variables. - */ - - /** Flag: GUI ok. - */ - bool dkctGUILayoutOK; - - /** Contents panel. - */ - wxPanel *dkctGUIContentsPanel; - - /** GUI element mainSizer. - */ -#line 567 "WxdkdrawFrame.wxc" - wxBoxSizer *mainSizer; - - /** GUI element mbMain. - */ -#line 17 "WxdkdrawFrame.wxc" - wxMenuBar *mbMain; - - /** GUI element menuFile. - */ -#line 25 "WxdkdrawFrame.wxc" - wxMenu *menuFile; - - /** GUI element menuAdd. - */ -#line 58 "WxdkdrawFrame.wxc" - wxMenu *menuAdd; - - /** GUI element menuEdit. - */ -#line 164 "WxdkdrawFrame.wxc" - wxMenu *menuEdit; - - /** GUI element menuView. - */ -#line 335 "WxdkdrawFrame.wxc" - wxMenu *menuView; - - /** GUI element menuOptions. - */ -#line 341 "WxdkdrawFrame.wxc" - wxMenu *menuOptions; - - /** GUI element menuHelp. - */ -#line 552 "WxdkdrawFrame.wxc" - wxMenu *menuHelp; - - /** GUI element miFileNew. - */ -#line 33 "WxdkdrawFrame.wxc" - wxMenuItem *miFileNew; - - /** GUI element miFileOpen. - */ -#line 38 "WxdkdrawFrame.wxc" - wxMenuItem *miFileOpen; - - /** GUI element miFileSave. - */ -#line 43 "WxdkdrawFrame.wxc" - wxMenuItem *miFileSave; - - /** GUI element miFileSaveAs. - */ -#line 48 "WxdkdrawFrame.wxc" - wxMenuItem *miFileSaveAs; - - /** GUI element miFileExit. - */ -#line 53 "WxdkdrawFrame.wxc" - wxMenuItem *miFileExit; - - /** GUI element miAddPolyline. - */ -#line 79 "WxdkdrawFrame.wxc" - wxMenuItem *miAddPolyline; - - /** GUI element miAddPolygon. - */ -#line 84 "WxdkdrawFrame.wxc" - wxMenuItem *miAddPolygon; - - /** GUI element miAddRectangle. - */ -#line 89 "WxdkdrawFrame.wxc" - wxMenuItem *miAddRectangle; - - /** GUI element miAddRoundedBox. - */ -#line 94 "WxdkdrawFrame.wxc" - wxMenuItem *miAddRoundedBox; - - /** GUI element miAddCircle. - */ -#line 99 "WxdkdrawFrame.wxc" - wxMenuItem *miAddCircle; - - /** GUI element miAddEllipse. - */ -#line 104 "WxdkdrawFrame.wxc" - wxMenuItem *miAddEllipse; - - /** GUI element miAddArcOpen. - */ -#line 109 "WxdkdrawFrame.wxc" - wxMenuItem *miAddArcOpen; - - /** GUI element miAddArcClosed. - */ -#line 114 "WxdkdrawFrame.wxc" - wxMenuItem *miAddArcClosed; - - /** GUI element miAddSplineAO. - */ -#line 119 "WxdkdrawFrame.wxc" - wxMenuItem *miAddSplineAO; - - /** GUI element miAddSplineAC. - */ -#line 124 "WxdkdrawFrame.wxc" - wxMenuItem *miAddSplineAC; - - /** GUI element miAddSplineIO. - */ -#line 129 "WxdkdrawFrame.wxc" - wxMenuItem *miAddSplineIO; - - /** GUI element miAddSplineIC. - */ -#line 134 "WxdkdrawFrame.wxc" - wxMenuItem *miAddSplineIC; - - /** GUI element miAddConnector. - */ -#line 139 "WxdkdrawFrame.wxc" - wxMenuItem *miAddConnector; - - /** GUI element miAddPin. - */ -#line 144 "WxdkdrawFrame.wxc" - wxMenuItem *miAddPin; - - /** GUI element miAddText. - */ -#line 149 "WxdkdrawFrame.wxc" - wxMenuItem *miAddText; - - /** GUI element miAddImage. - */ -#line 154 "WxdkdrawFrame.wxc" - wxMenuItem *miAddImage; - - /** GUI element miAddLibelem. - */ -#line 159 "WxdkdrawFrame.wxc" - wxMenuItem *miAddLibelem; - - /** GUI element miEditCopy. - */ -#line 184 "WxdkdrawFrame.wxc" - wxMenuItem *miEditCopy; - - /** GUI element miEditMove. - */ -#line 189 "WxdkdrawFrame.wxc" - wxMenuItem *miEditMove; - - /** GUI element miEditDelete. - */ -#line 194 "WxdkdrawFrame.wxc" - wxMenuItem *miEditDelete; - - /** GUI element miEditPointAdd. - */ -#line 209 "WxdkdrawFrame.wxc" - wxMenuItem *miEditPointAdd; - - /** GUI element miEditPointRemove. - */ -#line 214 "WxdkdrawFrame.wxc" - wxMenuItem *miEditPointRemove; - - /** GUI element miEditPointMove. - */ -#line 199 "WxdkdrawFrame.wxc" - wxMenuItem *miEditPointMove; - - /** GUI element miEditModifySpline. - */ -#line 204 "WxdkdrawFrame.wxc" - wxMenuItem *miEditModifySpline; - - /** GUI element miEditFlipH. - */ -#line 246 "WxdkdrawFrame.wxc" - wxMenuItem *miEditFlipH; - - /** GUI element miEditFlipV. - */ -#line 251 "WxdkdrawFrame.wxc" - wxMenuItem *miEditFlipV; - - /** GUI element miEditRotLeft. - */ -#line 256 "WxdkdrawFrame.wxc" - wxMenuItem *miEditRotLeft; - - /** GUI element miEditRotRight. - */ -#line 261 "WxdkdrawFrame.wxc" - wxMenuItem *miEditRotRight; - - /** GUI element miEditDetails. - */ -#line 219 "WxdkdrawFrame.wxc" - wxMenuItem *miEditDetails; - - /** GUI element mEditGroup. - */ -#line 224 "WxdkdrawFrame.wxc" - wxMenu *mEditGroup; - - /** GUI element miEditUngroup. - */ -#line 241 "WxdkdrawFrame.wxc" - wxMenuItem *miEditUngroup; - - /** GUI element miEditChangeSize. - */ -#line 267 "WxdkdrawFrame.wxc" - wxMenuItem *miEditChangeSize; - - /** GUI element mEditConvert. - */ -#line 272 "WxdkdrawFrame.wxc" - wxMenu *mEditConvert; - - /** GUI element miEditGroupElements. - */ -#line 230 "WxdkdrawFrame.wxc" - wxMenuItem *miEditGroupElements; - - /** GUI element miEditGroupIncluding. - */ -#line 235 "WxdkdrawFrame.wxc" - wxMenuItem *miEditGroupIncluding; - - /** GUI element miPolygonToPolyline. - */ -#line 290 "WxdkdrawFrame.wxc" - wxMenuItem *miPolygonToPolyline; - - /** GUI element miPolylineToPolygon. - */ -#line 285 "WxdkdrawFrame.wxc" - wxMenuItem *miPolylineToPolygon; - - /** GUI element miClosedToOpenArc. - */ -#line 300 "WxdkdrawFrame.wxc" - wxMenuItem *miClosedToOpenArc; - - /** GUI element miOpenToClosedArc. - */ -#line 295 "WxdkdrawFrame.wxc" - wxMenuItem *miOpenToClosedArc; - - /** GUI element miClosedToOpenSpline. - */ -#line 310 "WxdkdrawFrame.wxc" - wxMenuItem *miClosedToOpenSpline; - - /** GUI element miOpenToClosedSpline. - */ -#line 305 "WxdkdrawFrame.wxc" - wxMenuItem *miOpenToClosedSpline; - - /** GUI element miClosedToOpenIntSpline. - */ -#line 320 "WxdkdrawFrame.wxc" - wxMenuItem *miClosedToOpenIntSpline; - - /** GUI element miOpenToClosedIntSpline. - */ -#line 315 "WxdkdrawFrame.wxc" - wxMenuItem *miOpenToClosedIntSpline; - - /** GUI element miWhiteFilledToDot. - */ -#line 330 "WxdkdrawFrame.wxc" - wxMenuItem *miWhiteFilledToDot; - - /** GUI element miDotToWhiteFilled. - */ -#line 325 "WxdkdrawFrame.wxc" - wxMenuItem *miDotToWhiteFilled; - - /** GUI element menuZoom. - */ -#line 348 "WxdkdrawFrame.wxc" - wxMenu *menuZoom; - - /** GUI element menuLayer. - */ -#line 369 "WxdkdrawFrame.wxc" - wxMenu *menuLayer; - - /** GUI element miViewCenterView. - */ -#line 384 "WxdkdrawFrame.wxc" - wxMenuItem *miViewCenterView; - - /** GUI element menuColours. - */ -#line 389 "WxdkdrawFrame.wxc" - wxMenu *menuColours; - - /** GUI element miOptionsNewObjects. - */ -#line 537 "WxdkdrawFrame.wxc" - wxMenuItem *miOptionsNewObjects; - - /** GUI element miOptionsScreen. - */ -#line 542 "WxdkdrawFrame.wxc" - wxMenuItem *miOptionsScreen; - - /** GUI element miOptionsReset. - */ -#line 547 "WxdkdrawFrame.wxc" - wxMenuItem *miOptionsReset; - - /** GUI element miZoomIn. - */ -#line 354 "WxdkdrawFrame.wxc" - wxMenuItem *miZoomIn; - - /** GUI element miZoomOut. - */ -#line 359 "WxdkdrawFrame.wxc" - wxMenuItem *miZoomOut; - - /** GUI element miZoomReset. - */ -#line 364 "WxdkdrawFrame.wxc" - wxMenuItem *miZoomReset; - - /** GUI element miLayerActivateAll. - */ -#line 374 "WxdkdrawFrame.wxc" - wxMenuItem *miLayerActivateAll; - - /** GUI element miLayerManager. - */ -#line 379 "WxdkdrawFrame.wxc" - wxMenuItem *miLayerManager; - - /** GUI element menuColourBorder. - */ -#line 401 "WxdkdrawFrame.wxc" - wxMenu *menuColourBorder; - - /** GUI element menuColourBackground. - */ -#line 416 "WxdkdrawFrame.wxc" - wxMenu *menuColourBackground; - - /** GUI element menuColourGrid. - */ -#line 432 "WxdkdrawFrame.wxc" - wxMenu *menuColourGrid; - - /** GUI element menuColourPlacement. - */ -#line 447 "WxdkdrawFrame.wxc" - wxMenu *menuColourPlacement; - - /** GUI element menuColourCopy. - */ -#line 462 "WxdkdrawFrame.wxc" - wxMenu *menuColourCopy; - - /** GUI element menuColourMove. - */ -#line 477 "WxdkdrawFrame.wxc" - wxMenu *menuColourMove; - - /** GUI element menuColourDelete. - */ -#line 492 "WxdkdrawFrame.wxc" - wxMenu *menuColourDelete; - - /** GUI element menuColourGroup. - */ -#line 507 "WxdkdrawFrame.wxc" - wxMenu *menuColourGroup; - - /** GUI element menuColourMissing. - */ -#line 522 "WxdkdrawFrame.wxc" - wxMenu *menuColourMissing; - - /** GUI element miColourBorderModify. - */ -#line 406 "WxdkdrawFrame.wxc" - wxMenuItem *miColourBorderModify; - - /** GUI element miColourBorderReset. - */ -#line 411 "WxdkdrawFrame.wxc" - wxMenuItem *miColourBorderReset; - - /** GUI element miColourBackgroundModify. - */ -#line 422 "WxdkdrawFrame.wxc" - wxMenuItem *miColourBackgroundModify; - - /** GUI element miColourBackgroundReset. - */ -#line 427 "WxdkdrawFrame.wxc" - wxMenuItem *miColourBackgroundReset; - - /** GUI element miColourGridModify. - */ -#line 437 "WxdkdrawFrame.wxc" - wxMenuItem *miColourGridModify; - - /** GUI element miColourGridReset. - */ -#line 442 "WxdkdrawFrame.wxc" - wxMenuItem *miColourGridReset; - - /** GUI element miColourPlacementModify. - */ -#line 452 "WxdkdrawFrame.wxc" - wxMenuItem *miColourPlacementModify; - - /** GUI element miColourPlacementReset. - */ -#line 457 "WxdkdrawFrame.wxc" - wxMenuItem *miColourPlacementReset; - - /** GUI element miColourCopyModify. - */ -#line 467 "WxdkdrawFrame.wxc" - wxMenuItem *miColourCopyModify; - - /** GUI element miColourCopyReset. - */ -#line 472 "WxdkdrawFrame.wxc" - wxMenuItem *miColourCopyReset; - - /** GUI element miColourMoveModify. - */ -#line 482 "WxdkdrawFrame.wxc" - wxMenuItem *miColourMoveModify; - - /** GUI element miColourMoveReset. - */ -#line 487 "WxdkdrawFrame.wxc" - wxMenuItem *miColourMoveReset; - - /** GUI element miColourDeleteModify. - */ -#line 497 "WxdkdrawFrame.wxc" - wxMenuItem *miColourDeleteModify; - - /** GUI element miColourDeleteReset. - */ -#line 502 "WxdkdrawFrame.wxc" - wxMenuItem *miColourDeleteReset; - - /** GUI element miColourGroupModify. - */ -#line 512 "WxdkdrawFrame.wxc" - wxMenuItem *miColourGroupModify; - - /** GUI element miColourGroupReset. - */ -#line 517 "WxdkdrawFrame.wxc" - wxMenuItem *miColourGroupReset; - - /** GUI element miColourMissingModify. - */ -#line 527 "WxdkdrawFrame.wxc" - wxMenuItem *miColourMissingModify; - - /** GUI element miColourMissingReset. - */ -#line 532 "WxdkdrawFrame.wxc" - wxMenuItem *miColourMissingReset; - - /** GUI element miHelpAbout. - */ -#line 557 "WxdkdrawFrame.wxc" - wxMenuItem *miHelpAbout; - - /** GUI element miHelpContents. - */ -#line 562 "WxdkdrawFrame.wxc" - wxMenuItem *miHelpContents; - - /** GUI element verticalSizer. - */ -#line 573 "WxdkdrawFrame.wxc" - wxBoxSizer *verticalSizer; - - /** GUI element szTopBar. - */ -#line 588 "WxdkdrawFrame.wxc" - wxBoxSizer *szTopBar; - - /** GUI element szMiddleBar. - */ -#line 609 "WxdkdrawFrame.wxc" - wxBoxSizer *szMiddleBar; - - /** GUI element szBottomBar. - */ -#line 648 "WxdkdrawFrame.wxc" - wxGridBagSizer *szBottomBar; - - /** GUI element szHintsBar. - */ -#line 721 "WxdkdrawFrame.wxc" - wxBoxSizer *szHintsBar; - - /** GUI element bFileOpen. - */ -#line 773 "WxdkdrawFrame.wxc" - wxBitmapButton *bFileOpen; - - /** GUI element bFileSave. - */ -#line 778 "WxdkdrawFrame.wxc" - wxBitmapButton *bFileSave; - - /** GUI element lZoomPercent. - */ -#line 884 "WxdkdrawFrame.wxc" - wxStaticText *lZoomPercent; - - /** GUI element bZoomIn. - */ -#line 869 "WxdkdrawFrame.wxc" - wxBitmapButton *bZoomIn; - - /** GUI element bZoomOut. - */ -#line 874 "WxdkdrawFrame.wxc" - wxBitmapButton *bZoomOut; - - /** GUI element bZoomOne. - */ -#line 879 "WxdkdrawFrame.wxc" - wxBitmapButton *bZoomOne; - - /** GUI element cbGridOnOff. - */ -#line 887 "WxdkdrawFrame.wxc" - wxCheckBox *cbGridOnOff; - - /** GUI element cbGridUnit. - */ -#line 892 "WxdkdrawFrame.wxc" - wxChoice *cbGridUnit; - - /** GUI element cbGridBase. - */ -#line 897 "WxdkdrawFrame.wxc" - wxChoice *cbGridBase; - - /** GUI element cbPH. - */ -#line 903 "WxdkdrawFrame.wxc" - wxCheckBox *cbPH; - - /** GUI element szLeftBar. - */ -#line 618 "WxdkdrawFrame.wxc" - wxGridBagSizer *szLeftBar; - - /** GUI element szOperationsAndDraw. - */ -#line 638 "WxdkdrawFrame.wxc" - wxBoxSizer *szOperationsAndDraw; - - /** GUI element bPolyline. - */ -#line 908 "WxdkdrawFrame.wxc" - wxBitmapButton *bPolyline; - - /** GUI element bPolygon. - */ -#line 913 "WxdkdrawFrame.wxc" - wxBitmapButton *bPolygon; - - /** GUI element bRect. - */ -#line 918 "WxdkdrawFrame.wxc" - wxBitmapButton *bRect; - - /** GUI element bBox. - */ -#line 923 "WxdkdrawFrame.wxc" - wxBitmapButton *bBox; - - /** GUI element bCircle. - */ -#line 928 "WxdkdrawFrame.wxc" - wxBitmapButton *bCircle; - - /** GUI element bEllipse. - */ -#line 933 "WxdkdrawFrame.wxc" - wxBitmapButton *bEllipse; - - /** GUI element bArcOpen. - */ -#line 938 "WxdkdrawFrame.wxc" - wxBitmapButton *bArcOpen; - - /** GUI element bArcClosed. - */ -#line 943 "WxdkdrawFrame.wxc" - wxBitmapButton *bArcClosed; - - /** GUI element bSplineAO. - */ -#line 948 "WxdkdrawFrame.wxc" - wxBitmapButton *bSplineAO; - - /** GUI element bSplineAC. - */ -#line 953 "WxdkdrawFrame.wxc" - wxBitmapButton *bSplineAC; - - /** GUI element bSplineIO. - */ -#line 958 "WxdkdrawFrame.wxc" - wxBitmapButton *bSplineIO; - - /** GUI element bSplineIC. - */ -#line 963 "WxdkdrawFrame.wxc" - wxBitmapButton *bSplineIC; - - /** GUI element bConnector. - */ -#line 968 "WxdkdrawFrame.wxc" - wxBitmapButton *bConnector; - - /** GUI element bPin. - */ -#line 973 "WxdkdrawFrame.wxc" - wxBitmapButton *bPin; - - /** GUI element bText. - */ -#line 978 "WxdkdrawFrame.wxc" - wxBitmapButton *bText; - - /** GUI element bImage. - */ -#line 988 "WxdkdrawFrame.wxc" - wxBitmapButton *bImage; - - /** GUI element bLibelem. - */ -#line 983 "WxdkdrawFrame.wxc" - wxBitmapButton *bLibelem; - - /** GUI element szOperationButtons. - */ -#line 735 "WxdkdrawFrame.wxc" - wxBoxSizer *szOperationButtons; - - /** GUI element szDrawco. - */ -#line 762 "WxdkdrawFrame.wxc" - wxGridBagSizer *szDrawco; - - /** GUI element lLayer. - */ -#line 994 "WxdkdrawFrame.wxc" - wxStaticText *lLayer; - - /** GUI element spLayerNumber. - */ -#line 1015 "WxdkdrawFrame.wxc" - wxSpinCtrl *spLayerNumber; - - /** GUI element lLine. - */ -#line 998 "WxdkdrawFrame.wxc" - wxStaticText *lLine; - - /** GUI element szLine. - */ -#line 690 "WxdkdrawFrame.wxc" - wxBoxSizer *szLine; - - /** GUI element lFill. - */ -#line 1002 "WxdkdrawFrame.wxc" - wxStaticText *lFill; - - /** GUI element szFill. - */ -#line 701 "WxdkdrawFrame.wxc" - wxBoxSizer *szFill; - - /** GUI element lText. - */ -#line 1006 "WxdkdrawFrame.wxc" - wxStaticText *lText; - - /** GUI element szText. - */ -#line 706 "WxdkdrawFrame.wxc" - wxBoxSizer *szText; - - /** GUI element ccLineColour. - */ -#line 1021 "WxdkdrawFrame.wxc" - Dk4WxColourView *ccLineColour; - - /** GUI element spLineWidth. - */ -#line 1026 "WxdkdrawFrame.wxc" - wxSpinCtrl *spLineWidth; - - /** GUI element bStyleLineStyle. - */ -#line 1032 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleLineStyle; - - /** GUI element bStyleLineJoins. - */ -#line 1042 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleLineJoins; - - /** GUI element bStyleLineEnds. - */ -#line 1037 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleLineEnds; - - /** GUI element bStyleArrowForward. - */ -#line 1047 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleArrowForward; - - /** GUI element bStyleArrowBackward. - */ -#line 1052 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleArrowBackward; - - /** GUI element ccFillColour. - */ -#line 1057 "WxdkdrawFrame.wxc" - Dk4WxColourView *ccFillColour; - - /** GUI element bStyleFillPattern. - */ -#line 1062 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleFillPattern; - - /** GUI element cbStyleTextLaTeX. - */ -#line 1067 "WxdkdrawFrame.wxc" - wxCheckBox *cbStyleTextLaTeX; - - /** GUI element bStyleTextAlign. - */ -#line 1072 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleTextAlign; - - /** GUI element bStyleFontName. - */ -#line 1077 "WxdkdrawFrame.wxc" - wxBitmapButton *bStyleFontName; - - /** GUI element spFontSize. - */ -#line 1082 "WxdkdrawFrame.wxc" - wxSpinCtrl *spFontSize; - - /** GUI element lRotation. - */ -#line 1088 "WxdkdrawFrame.wxc" - wxStaticText *lRotation; - - /** GUI element spRotation. - */ -#line 1091 "WxdkdrawFrame.wxc" - wxSpinCtrl *spRotation; - - /** GUI element tlMouseL. - */ -#line 1097 "WxdkdrawFrame.wxc" - wxStaticText *tlMouseL; - - /** GUI element msgMouseL. - */ -#line 1100 "WxdkdrawFrame.wxc" - wxStaticText *msgMouseL; - - /** GUI element tlMouseM. - */ -#line 1104 "WxdkdrawFrame.wxc" - wxStaticText *tlMouseM; - - /** GUI element msgMouseM. - */ -#line 1107 "WxdkdrawFrame.wxc" - wxStaticText *msgMouseM; - - /** GUI element tlMouseR. - */ -#line 1111 "WxdkdrawFrame.wxc" - wxStaticText *tlMouseR; - - /** GUI element msgMouseR. - */ -#line 1114 "WxdkdrawFrame.wxc" - wxStaticText *msgMouseR; - - /** GUI element tlPosX. - */ -#line 1118 "WxdkdrawFrame.wxc" - wxStaticText *tlPosX; - - /** GUI element msgPosX. - */ -#line 1121 "WxdkdrawFrame.wxc" - wxStaticText *msgPosX; - - /** GUI element tlPosY. - */ -#line 1125 "WxdkdrawFrame.wxc" - wxStaticText *tlPosY; - - /** GUI element msgPosY. - */ -#line 1128 "WxdkdrawFrame.wxc" - wxStaticText *msgPosY; - - /** GUI element bEditCopy. - */ -#line 783 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditCopy; - - /** GUI element bEditMove. - */ -#line 788 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditMove; - - /** GUI element bEditDelete. - */ -#line 793 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditDelete; - - /** GUI element bEditPointAdd. - */ -#line 854 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditPointAdd; - - /** GUI element bEditPointDelete. - */ -#line 859 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditPointDelete; - - /** GUI element bEditPointMove. - */ -#line 798 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditPointMove; - - /** GUI element cbPointMoveMode. - */ -#line 803 "WxdkdrawFrame.wxc" - wxChoice *cbPointMoveMode; - - /** GUI element bModifySplineValue. - */ -#line 808 "WxdkdrawFrame.wxc" - wxBitmapButton *bModifySplineValue; - - /** GUI element bEditFlipH. - */ -#line 834 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditFlipH; - - /** GUI element bEditFlipV. - */ -#line 839 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditFlipV; - - /** GUI element bEditRotLeft. - */ -#line 844 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditRotLeft; - - /** GUI element bEditRotRight. - */ -#line 849 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditRotRight; - - /** GUI element bEditDetails. - */ -#line 813 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditDetails; - - /** GUI element bEditGroup. - */ -#line 819 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditGroup; - - /** GUI element bEditGroup3. - */ -#line 824 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditGroup3; - - /** GUI element bEditUngroup. - */ -#line 829 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditUngroup; - - /** GUI element bEditChangeSize. - */ -#line 864 "WxdkdrawFrame.wxc" - wxBitmapButton *bEditChangeSize; - - /** GUI element drawco. - */ -#line 1133 "WxdkdrawFrame.wxc" - Control *drawco; - - /** GUI element sbVert. - */ -#line 1138 "WxdkdrawFrame.wxc" - wxScrollBar *sbVert; - - /** GUI element sbHori. - */ -#line 1143 "WxdkdrawFrame.wxc" - wxScrollBar *sbHori; - - -#line 2656 "WxdkdrawFrame.wxc" - - public: - - /* frame public members */ - - /** Names for bitmaps to visualize line styles. - */ - static const char ** const ms_ls_images[]; - - /** Names for bitmaps to visualize line cap styles. - */ - static const char ** const ms_lc_images[]; - - /** Names for bitmaps to visualize line join styles. - */ - static const char ** const ms_lj_images[]; - - /** Names for bitmaps to visualize arrow types. - */ - static const char ** const ms_arrow_images[]; - - /** Names for bitmaps to visualize fill patterns. - */ - static const char ** const ms_fs_images[]; - - /** Names for bitmaps to visualize text alignments. - */ - static const char ** const ms_ta_images[]; - - /** Names for bitmaps to visualize fonts. - */ - static const char ** const ms_fn_images[]; - - /** Constructor. - @param wxid Window ID. - @param applicationHelper Application helper object. - @param hc Help controller for online help. - @param argc Number of command line arguments. - @param argv Command line arguments array. - @param localizedTexts Localized wxChar texts. - @param nlWx Non-localized wxChar texts. - @param nlDk Non-localized dkChar texts. - */ - WxdkdrawFrame( - int wxid, - Dk4WxApplicationHelper *applicationHelper, - Dk4WxHelpController *hc, - int argc, - wxChar **argv, - wxChar const * const *localizedTexts, - wxChar const * const *nlWx, - dkChar const * const *nlDk - ); - - /** Destructor. - */ - ~WxdkdrawFrame(); - - /** Check whether we can close the window. - @param isLast Flag: Last main window to close. - */ - bool - CanClose(bool isFinal); - - /** Handler for File/Exit. - @param event Event to process. - */ - void - OnQuit(wxCommandEvent & event); - - /** Handler for Help/About. - @param event Event to process. - */ - void - OnAbout(wxCommandEvent & event); - - /** Handler for Help/Contents. - @param event Event to process. - */ - void - OnHelpContents(wxCommandEvent & event); - - /** Handler for idle events. - @param event Event to process. - */ - void - OnIdle(wxIdleEvent & event); - - /** Handler File / New. - @param event Event to process. - */ - void - OnFileNew(wxCommandEvent & event); - - /** Handler File / Open. - @param event Event to process. - */ - void - OnFileOpen(wxCommandEvent & event); - - /** Save drawing to file. - @return True on success, false on error. - */ - bool - SaveToFile(void); - - /** Mark the drawing as modified or not modified. - @param f New flag value. - */ - void - SetModified(bool f = true); - - /** Handler File / Save. - @param event Event to process. - */ - void - OnFileSave(wxCommandEvent & event); - - /** Handler File / Save as. - @param event Event to process. - */ - void - OnFileSaveAs(wxCommandEvent & event); - - /** On zoom out correct the center point if necessary. - */ - void - CorrectCenterPointIfNecessary(void); - - /** Zoom level was changed. - @param bZoomOut Zoom change was "zoom out". - */ - void - ZoomChanged(bool bZoomOut = false); - - /** Adjust scrollbars after zoom or position change. - */ - void - AdjustScrollbars(void); - - /** Handler Zoom / In. - @param event Event to process. - */ - void - OnZoomIn(wxCommandEvent & event); - - /** Handler Zoom / Out. - @param event Event to process. - */ - void - OnZoomOut(wxCommandEvent & event); - - /** Handler Zoom / Reset. - @param event Event to process. - */ - void - OnZoom100(wxCommandEvent & event); - - /** Start polygon or polyline. - @param ot Object type to start, WXD_OT_POLYLINE or WXD_OT_POLYGON. - */ - void - OnPolygonPolyline(int8_t ot); - - /** Handler for Add polyline. - @param event Event to process. - */ - void - OnAddPolyline(wxCommandEvent & event); - - - /** Handler for Add polygon. - @param event Event to process. - */ - void - OnAddPolygon(wxCommandEvent & event); - - /** Start creation of rectangular box. - @param bRounded Rounded corners (rectangular otherwise). - */ - void - OnRectangleBox(bool bRounded); - - /** Handler for Add rectangle. - @param event Event to process. - */ - void - OnAddRectangle(wxCommandEvent & event); - - /** Handler for Add box. - @param event Event to process. - */ - void - OnAddBox(wxCommandEvent & event); - - /** Handler for Add circle. - @param event Event to process. - */ - void - OnAddCircle(wxCommandEvent & event); - - /** Handler for Add ellipse. - @param event Event to process. - */ - void - OnAddEllipse(wxCommandEvent & event); - - /** Handler for Add open arc. - @param event Event to process. - */ - void - OnAddArcOpen(wxCommandEvent & event); - - /** Handler for Add closed arc. - @param event Event to process. - */ - void - OnAddArcClosed(wxCommandEvent & event); - - /** Start creation of new spline. - @param ot Object type (open or closed spline). - @param bInterpolated Interpolated or approximated. - */ - void - OnSpline(int8_t ot, bool bInterpolated); - - /** Handler for Add open approximated spline. - @param event Event to process. - */ - void - OnAddSplineAO(wxCommandEvent & event); - - /** Handler for Add closed approximated spline. - @param event Event to process. - */ - void - OnAddSplineAC(wxCommandEvent & event); - - /** Handler for Add open interpolated spline. - @param event Event to process. - */ - void - OnAddSplineIO(wxCommandEvent & event); - - /** Handler for Add closed interpolated spline. - @param event Event to process. - */ - void - OnAddSplineIC(wxCommandEvent & event); - - /** Handler for Add dot. - @param event Event to process. - */ - void - OnAddDot(wxCommandEvent & event); - - /** Handler for Add white filled dot. - @param event Event to process. - */ - void - OnAddWhiteDot(wxCommandEvent & event); - - /** Handler for Add text label. - @param event Event to process. - */ - void - OnAddTextlabel(wxCommandEvent & event); - - /** Handler for Add image. - @param event Event to process. - */ - void - OnAddImage(wxCommandEvent & event); - - /** Inner function to add library element. - */ - void - AddLibelem(void); - - /** Handler for Add library element. - @param event Event to process. - */ - void - OnAddLibelem(wxCommandEvent & event); - - /** Handler for Edit / copy. - @param event Event to process. - */ - void - OnEditCopy(wxCommandEvent & event); - - /** Handler for Edit / move. - @param event Event to process. - */ - void - OnEditMove(wxCommandEvent & event); - - /** Handler for Edit / delete. - @param event Event to process. - */ - void - OnEditDelete(wxCommandEvent & event); - - /** Handler for Edit / Move point. - @param event Event to process. - */ - void - OnEditPointMove(wxCommandEvent & event); - - /** Handler for Edit / Add point. - @param event Event to process. - */ - void - OnEditPointAdd(wxCommandEvent & event); - - /** Handler for Edit / Delete point. - @param event Event to process. - */ - void - OnEditPointDelete(wxCommandEvent & event); - - /** Handler for Edit / Details. - @param event Event to process. - */ - void - OnEditDetails(wxCommandEvent & event); - - /** Handler for Edit / Group. - @param event Event to process. - */ - void - OnEditGroup(wxCommandEvent & event); - - /** Handler for Edit / Group. - @param event Event to process. - */ - void - OnEditGroup3(wxCommandEvent & event); - - /** Handler for Edit / Ungroup. - @param event Event to process. - */ - void - OnEditUngroup(wxCommandEvent & event); - - /** Handler for Edit / Flip horizontally. - @param event Event to process. - */ - void - OnEditFlipH(wxCommandEvent & event); - - /** Handler for Edit / Flip vertically. - @param event Event to process. - */ - void - OnEditFlipV(wxCommandEvent & event); - - /** Handler for Rotate left. - @param event Event to process. - */ - void - OnEditRotateLeft(wxCommandEvent & event); - - /** Handler for Rotate right. - @param event Event to process. - */ - void - OnEditRotateRight(wxCommandEvent & event); - - /** Handler for Edit / Change drawing size. - @param event Event to process. - */ - void - OnEditChangeSize(wxCommandEvent & event); - - /** Handler for View / Layers / Activate all. - @param event Event to process. - */ - void - OnLayersAll(wxCommandEvent & event); - - /** Handler for View / Layers / Layer manager. - @param event Event to process. - */ - void - OnLayerManager(wxCommandEvent & event); - - /** Center view. - */ - void - OnCenterViewFunction(void); - - /** Handler for View / center view. - @param event Event to process. - */ - void - OnCenterView(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert1(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert2(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert3(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert4(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert5(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert6(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert7(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert8(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvert9(wxCommandEvent & event); - - /** Handler for conversion. - @param event Event to process. - */ - void - OnConvertA(wxCommandEvent & event); - - /** Handler for options reset. - @param event Event to process. - */ - void - OnResetOptions(wxCommandEvent & event); - - /** Handler for "modify spline s value" button or menu item. - */ - void - OnModifySplineValue(wxCommandEvent & event); - - /** Handler for "defaults for new objects" menu item. - @param event Event to process. - */ - void - OnOptionsNewObjects(wxCommandEvent & event); - - /** Handler for "screen representation options" menu item. - @param event Event to process. - */ - void - OnOptionsScreenRepresentation(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourBorderModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourBorderReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourBackgroundModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourBackgroundReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourGridModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourGridReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourPlacementModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourPlacementReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourCopyModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourCopyReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourMoveModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourMoveReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourDeleteModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourDeleteReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourGroupModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourGroupReset(wxCommandEvent & event); - - /** Handler for colour modification. - @param event Event to process. - */ - void - OnColourMissingModify(wxCommandEvent & event); - - /** Handler for colour reset. - @param event Event to process. - */ - void - OnColourMissingReset(wxCommandEvent & event); - - /** Handler for Grid on/off. - @param event Event to process. - */ - void - OnGridOnOff(wxCommandEvent & event); - - /** Handler for Grid unit. - @param event Event to process. - */ - void - OnGridUnit(wxCommandEvent & event); - - /** Handler for Grid base. - @param event Event to process. - */ - void - OnGridBase(wxCommandEvent & event); - - /** Handler for placement help checkbox. - @param event Event to process. - */ - void - OnPlacementHelp(wxCommandEvent & event); - - /** Handler for layer change. - @param event Event to process. - */ - void - OnStyleLayer(wxSpinEvent & event); - - /** Handler for line colour change. - @param event Event to process. - */ - void - OnStyleLineColour(wxCommandEvent & event); - - /** Handler for line width change. - @param event Event to process. - */ - void - OnStyleLineWidth(wxSpinEvent & event); - - /** Handler for line style button. - @param event Event to process. - */ - void - OnStyleLineStyle(wxCommandEvent & event); - - /** Handler for line cap. - @param event Event to process. - */ - void - OnStyleLineCap(wxCommandEvent & event); - - /** Handler for line width change. - @param event Event to process. - */ - void - OnStyleLineJoin(wxCommandEvent & event); - - /** Handler for arrowhead forward button. - @param event Event to process. - */ - void - OnStyleLineArrowF(wxCommandEvent & event); - - /** Handler for arrowhead backward button. - @param event Event to process. - */ - void - OnStyleLineArrowB(wxCommandEvent & event); - - /** Handler for line width change. - @param event Event to process. - */ - void - OnStyleFillColour(wxCommandEvent & event); - - /** Handler for fill pattern change. - @param event Event to process. - */ - void - OnStyleFillPattern(wxCommandEvent & event); - - /** Handler for line width change. - @param event Event to process. - */ - void - OnStyleTextLatex(wxCommandEvent & event); - - /** Handler for text align change. - @param event Event to process. - */ - void - OnStyleTextAlign(wxCommandEvent & event); - - /** Handler for text font change. - @param event Event to process. - */ - void - OnStyleTextFont(wxCommandEvent & event); - - /** Handler for text size change. - @param event Event to process. - */ - void - OnStyleTextSize(wxSpinEvent & event); - - /** Handler for rotation spin control. - @param event Event to process. - */ - void - OnSpinRotation(wxSpinEvent & event); - - /** Horizontal scrollbar handler. - @param event Event to process. - */ - void - OnScrollH(wxScrollEvent & event); - - /** Vertical scrollbar handler. - @param event Event to process. - */ - void - OnScrollV(wxScrollEvent & event); - - /** Require a redraw. - Only to be executed between BeginEventHandling() - and EndEventHandling(). - @param level Redraw level to require. - */ - void - RequireRedraw(int level); - - /** Update text if new font was choosen. - @param pobj Modified text object. - @param bRedraw Schedule redraw. - */ - void - UpdateTextForFont(Wxd_object_t *pobj, bool bRedraw = true); - - /** Set text for mouse messages when entering a new state. - @param st New state to enter. - */ - void - SetMouseAndStatusTexts(int st); - - /* __CHANGE__ 014: Add further methods. - */ - - /** Attempt to update all fonts. - */ - void - UpdateFonts(void); - - protected: - - /* frame protected methods */ - - /** Transfer style information from object to GUI elements. - @param refresh Flag: Refresh GUI elements explicitly. - */ - void - StyleToGUI(bool refresh = true); - - /** Set style object (object to modify using the style GUI elements). - @param pObj Object to modify. - */ - void - SetStyleObject(Wxd_object_t *pObj = NULL, bool bUpdate = true); - - /** Check whether the frame is up and initialized to handle events. - On success, initialize things to handle one event. - @return True to start event handling, false to skip. - */ - bool - BeginEventHandling(void); - - /** Start handling of events from control. - */ - void - StartEventHandling(void); - - /** Report modifications while reading a file at the end - of event processing. - */ - void - ModificationReportingAtEventEnd(void); - - /** Do error reporting at end of event handling. - */ - void - ErrorReportingAtEventEnd(void); - - /** End handling one event. If necessary call Update() on the frame. - */ - void - EndEventHandling(void); - - /** Update one stipple structure. - @param psti Stipple structure to update. - */ - void - UpdateOneStipple(Wxd_stipple_t *psti); - - /** Update internal pattern coefficients in m_dPatterns. - Recalculation necessary after changing zoom factor and/or - loading a new file. - */ - void - UpdatePatternCoefficients(void); - - /** Update stipple bitmaps after changing zoom or loading - a file. - */ - void - UpdateStipples(void); - - /** Attempt to read all images not yet read. - */ - void - UpdateImages(void); - - /** Update one font. - @param pfont Font to update. - */ - void - UpdateOneFont(Wxd_font_t *pfont); - - /** Find font structure, create new one if necessary. - @param find Font index. - @param fsz Font size in pt. - @return Valid pointer to font structure on success, NULL on error. - */ - Wxd_font_t * - FindFont(uint8_t find, uint16_t fsz); - - /** Read a drawing from file. - @param fn File name to read. - @return Pointer to new drawing on success, NULL on error. - */ - Wxd_drawing_t * - ReadDrawingFromFile(wxString & fn); - - /** A new drawing was loaded, adjust GUI. - */ - void - DrawingLoaded(void); - - /** Find suitable size for colour viewers, derived from - the height of the layer number spin control. - @return Size suggestion for colour viewer. - */ - wxSize - ColourViewSize(void); - - /** Complete setup on first idle event. - Using the first idle event ensures the window is already - shown on screen. - */ - void - OnFirstIdle(void); - - /** Copy default style values to m_iv array. - */ - void - DefaultStyleToArray(void); - - /** Get default style values from m_iv array. - */ - void - DefaultStyleFromArray(void); - - /** Load defaults. - */ - void - LoadDefaults(void); - - /** Load configuration. - */ - void - LoadConfiguration(void); - - /** Save configuration. - */ - void - SaveConfiguration(void); - - /** Reset configuration settings to default values. - */ - void - ResetConfiguration(void); - - /** Update the position labels. - @param havepos Flag: Position is known. - @param x X position if position is known. - @param y Y position if position is known. - */ - void - UpdatePositionLabels(bool havepos, int32_t x, int32_t y); - - /** Calculate drawing and grid position from mouse position. - @return True if position was changed, false if no change. - */ - bool - UpdateGridPosition(void); - - /** Retrieve mouse position, calculate drawing and grid position. - @param event Event to process. - @return True if position was changed, false if everything - unchanged. - */ - bool - UpdateMousePosition(wxMouseEvent & event); - - /** Move scrollbar position as action on mouse wheel. - @param sb Scrollbar to modify. - @param lines Number of lines to move. - @param vert Flag: Moving the vertical bar. - */ - void - MoveScrollbar(wxScrollBar *sb, int lines, bool vert); - - /** Check whether an object is selectable in the current state. - @param pobj Object to check. - @return True if object is selectable, false otherwise. - */ - bool - ObjectSelectableInState(Wxd_object_t const *pobj); - - /** Find object nearest to raw mouse coordinates (not grid-aligned). - @param gr Return group object instead of simple object. - @return Object if found or NULL. - */ - Wxd_object_t * - FindNearestObject(bool gr = false); - - /** End polyline drawing operation while waiting for first point. - @param bComplete End completely. - @param bSkip Skip data entered so far in operation. - */ - void - EndOperationPolyFirst(void); - - /** End polyline drawing operation if points exist. - @param bComplete End completely. - @param bSkip Skip data entered so far in operation. - */ - void - EndOperationPolyFurther(bool bComplete, bool bSkip); - - /** End spline drawing operation while waiting for first point. - */ - void - EndOperationSplineFirst(void); - - /** End spline drawing operation if points exist. - @param bComplete End completely. - @param bSkip Skip data entered so far in operation. - */ - void - EndOperationSplineFurther(bool bComplete, bool bSkip); - - /** End 2-point operation while waiting for second point. - @param ns Next state. - @param bComplete End completely. - */ - void - EndOperationTwoPointsSecond(int ns, bool bComplete); - - /** End box drawing while waiting for first point. - */ - void - EndOperationBoxFirst(void); - - /** End box drawing while waiting for opposite point. - @param bComplete End completely. - */ - void - EndOperationBoxOpposite(bool bComplete); - - /** End circle drawing while waiting for center point. - */ - void - EndOperationCircleCenter(void); - - /** End circle drawing while waiting for radius point. - @param bComplete End completely. - */ - void - EndOperationCircleRadius(bool bComplete); - - /** End ellipse drawing while waiting for center point. - */ - void - EndOperationEllipseCenter(void); - - /** End ellipse drawing while waiting for bounding box corner point. - @param bComplete End completely. - */ - void - EndOperationEllipseCorner(bool bComplete); - - /** End arc drawing while waiting for start point. - */ - void - EndOperationArc1(void); - - /** End arc drawing while waiting for intermediate point. - @param bComplete End completely. - */ - void - EndOperationArc2(bool bComplete); - - /** End arc drawing while waiting for end point. - @param bComplete End completely. - */ - void - EndOperationArc3(bool bComplete); - - /** End dot drawing while waiting for point. - */ - void - EndOperationDot(void); - - /** End library element placement operation while waiting for point. - */ - void - EndOperationLibelemPlace(void); - - /** End point move operation while placing point. - */ - void - EndOperationPointMovePlace(void); - - /** End point add operation while placing point. - @param bComplete End completely. - */ - void - EndOperationPointAddPlace(bool bComplete); - - /** End point add operation while placing drawing corner point. - @param bComplete End completely. - */ - void - EndOperationDrawingSizePlace(bool bComplete); - - /** End recent operation. - @param bComplete End completely. - @param bSkip Skip data entered so far in operation. - */ - void - EndOperation(bool bComplete = false, bool bSkip = false); - - /** Move marker 2 marked objects into new group. - */ - void - GroupNewForMarkedObjects(void); - - /** Ungroup objects from group (resolve group). - @param pgrp Group to resolve. - */ - void - UngroupObjects(Wxd_object_t *pgrp); - - /** Check whether the current point is an acceptable point. - @return Test result. - */ - bool - IsAcceptablePoint(void); - - /** Reaction on mouse move in S_NOOP state. - */ - void - MouseMoveNoop(void); - - /** Reaction on mouse move in S_DELETE state. - */ - void - MouseMoveDelete(void); - - /** Reaction on mouse move in S_REGION_DELETE state. - */ - void - MouseMoveRegionDelete(void); - - /** Reaction on mouse move while selecting objects to move. - */ - void - MouseMoveMoveSelect(void); - - /** Reaction on mouse move while placing objects to move. - */ - void - MouseMoveMovePlace(void); - - /** Reaction on mouse move while selecting objects to copy. - */ - void - MouseMoveCopySelect(void); - - /** Reaction on mouse move while placing objects to copy. - */ - void - MouseMoveCopyPlace(void); - - /** Reaction on middle mouse key. - */ - void - MouseMiddleDelete(void); - - /** Reaction on left mouse click in S_NOOP state. - */ - void - MouseLeftNoop(void); - - /** Reaction on left mouse click in S_DELETE state. - */ - void - MouseLeftDelete(void); - - /** Reaction on left mouse click in S_REGION_DELETE state. - */ - void - MouseLeftRegionDelete(void); - - /** Reaction on left mouse click while selecting objects to move. - */ - void - MouseLeftMoveSelect(void); - - /** Reaction on left mouse click while placing objects to move. - */ - void - MouseLeftMovePlace(void); - - /** Reaction on left mouse click while selecting objects to copy. - */ - void - MouseLeftCopySelect(void); - - /** Reaction on left mouse click while placing objects to copy. - */ - void - MouseLeftCopyPlace(void); - - /** Reaction on mouse move in S_POLY_FIRST state. - */ - void - MouseMovePolyFirst(void); - - /** Reaction on mouse move in S_POLY_FURTHER state. - */ - void - MouseMovePolyFurther(void); - - /** Reaction on mouse left click in S_POLY_FIRST state. - */ - void - MouseLeftPolyFirst(void); - - /** Reaction on mouse left click in S_POLY_FURTHER state. - */ - void - MouseLeftPolyFurther(void); - - /** X-spline s value at end points. - @return S value. - */ - double - SValueAtEnd(void); - - /** Reaction on mouse movement in S_SPLINE_FIRST state. - */ - void - MouseMoveSplineFirst(void); - - /** Reaction on mouse movement in S_SPLINE_FURTHER state. - */ - void - MouseMoveSplineFurther(void); - - /** Reaction on mouse left click in S_SPLINE_FIRST state. - */ - void - MouseLeftSplineFirst(void); - - /** Reaction on mouse left click in S_SPLINE_FURTHER state. - */ - void - MouseLeftSplineFurther(void); - - /** Reaction on mouse move in S_ELLIPSE_CENTER state. - */ - void - MouseMoveEllipseCenter(void); - - /** Reaction on mouse left click in S_ELLIPSE_CENTER state. - */ - void - MouseLeftEllipseCenter(void); - - /** Reaction on mouse move in S_ELLIPSE_CORNER state. - */ - void - MouseMoveEllipseCorner(void); - - /** Reaction on mouse left click in S_ELLIPSE_CORNER state. - */ - void - MouseLeftEllipseCorner(void); - - /** Reaction on mouse move in S_ARC_1 state. - */ - void - MouseMoveArc1(void); - - /** Reaction on mouse left click in S_ARC_1 state. - */ - void - MouseLeftArc1(void); - - /** Reaction on mouse move in S_ARC_2 state. - */ - void - MouseMoveArc2(void); - - /** Reaction on mouse left click in S_ARC_2 state. - */ - void - MouseLeftArc2(void); - - /** Reaction on mouse move in S_ARC_3 state. - */ - void - MouseMoveArc3(void); - - /** Reaction on mouse left click in S_ARC_3 state. - */ - void - MouseLeftArc3(void); - - /** Set box details (bounding box from start point and current point). - The radius should be updated only while constructing a box, - not while moving a point. - @param bUpdateRadius Update radius. - */ - void - SetBoxDetails(bool bUpdateRadius); - - /** Reaction on mouse move in S_BOX_FIRST state. - */ - void - MouseMoveBoxFirst(void); - - /** Reaction on mouse move in S_BOX_OPPOSITE state. - */ - void - MouseMoveBoxOpposite(void); - - /** Reaction on mouse left click in S_BOX_FIRST state. - */ - void - MouseLeftBoxFirst(void); - - /** Reaction on mouse left click in S_BOX_OPPOSITE state. - */ - void - MouseLeftBoxOpposite(void); - - /** Reaction on mouse move in S_CIRCLE_CENTER state. - */ - void - MouseMoveCircleCenter(void); - - /** Calculate circle radius from center point to current point. - */ - void - CalculateCircleRadius(uint32_t & rx, dk4_er_t *erp); - - /** Calculate ellipse radii from center point to current point. - */ - void - CalculateEllipseRadii(uint32_t & rx, uint32_t & ry, dk4_er_t *erp); - - /** Reaction on mouse move in S_CIRCLE_RADIUS state. - */ - void - MouseMoveCircleRadius(void); - - /** Reaction on mouse left click in S_CIRCLE_CENTER state. - */ - void - MouseLeftCircleCenter(void); - - /** Reaction on mouse left click in S_CIRCLE_RADIUS state. - */ - void - MouseLeftCircleRadius(void); - - /** Reaction on mouse move in S_DOT state. - */ - void - MouseMoveDot(void); - - /** Reaction on mouse left click in S_DOT state. - */ - void - MouseLeftDot(void); - - /** Reaction on mouse move in S_TEXT state. - */ - void - MouseMoveText(void); - - /** Reaction on mouse left click in S_TEXT state. - */ - void - MouseLeftText(void); - - /** Reaction on mouse move in S_IMG_1 state. - */ - void - MouseMoveImage1(void); - - /** Reaction on mouse move in S_IMG_2 state. - */ - void - MouseMoveImage2(void); - - /** Reaction on mouse left click in S_IMG_1 state. - */ - void - MouseLeftImage1(void); - - /** Reaction on mouse left click in S_IMG_2 state. - */ - void - MouseLeftImage2(void); - - /** Reaction on mouse move in S_LIBELEM_PLACE state. - */ - void - MouseMoveLibelemPlace(void); - - /** Reaction on mouse left click in S_LIBELEM_PLACE state. - */ - void - MouseLeftLibelemPlace(void); - - /** Reaction on mouse move in S_MOVEPT_SELECT state. - */ - void - MouseMovePointMoveSelect(void); - - /** Reaction on mouse left click in S_MOVEPT_SELECT state. - */ - void - MouseLeftPointMoveSelect(void); - - /** Reaction on mouse move in S_MOVEPT_PLACE state. - */ - void - MouseMovePointMovePlace(void); - - /** Modify spline s value after moving a spline point. - @param pCurrent Spline object to modify. - @param uCurrent Index of point to modify. - */ - void - ModifySplineValue(Wxd_object_t *pCurrent, uint16_t uCurrent); - - /** Reaction on mouse left click in S_MOVEPT_PLACE state. - */ - void - MouseLeftPointMovePlace(void); - - /** Reaction on mouse move in S_DELPT state. - */ - void - MouseMovePointDelete(void); - - /** Reaction on mouse left click in S_DELPT state. - */ - void - MouseLeftPointDelete(void); - - /** Reaction on mouse move in S_ADDPT_SELECT state. - */ - void - MouseMovePointAddSelect(void); - - /** Reaction on mouse left click in S_ADDPT_SELECT state. - */ - void - MouseLeftPointAddSelect(void); - - /** Reaction on mouse move in S_ADDPT_PLACE state. - */ - void - MouseMovePointAddPlace(void); - - /** Reaction on mouse move in S_DRWSZ_SELECT state. - */ - void - MouseMoveDrawingSizeSelect(void); - - /** Reaction on mouse move in S_DRWSZ_PLACE state. - */ - void - MouseMoveDrawingSizePlace(void); - - /** Reaction on mouse left click in S_ADDPT_PLACE state. - */ - void - MouseLeftPointAddPlace(void); - - /** Reaction on mouse left click in S_DRWSZ_SELECT state. - */ - void - MouseLeftDrawingSizeSelect(void); - - /** Reaction on mouse left click in S_DRWSZ_PLACE state. - */ - void - MouseLeftDrawingSizePlace(void); - - /** Reaction on mouse movement click in S_FLIP state. - */ - void - MouseMoveFlip(void); - - /** Reaction on mouse left click in S_FLIP state. - */ - void - MouseLeftFlip(void); - - /** Reaction on mouse movement in S_GROUP_ONE state. - */ - void - MouseMoveGroupOne(void); - - /** Reaction on mouse left click in S_GROUP_ONE state. - */ - void - MouseLeftGroupOne(void); - - /** Mark objects in the selected rectangle for grouping. - */ - void - MarkObjectsForRectangleGrouping(void); - - /** Mark objects in the selected rectangle for deletion. - */ - void - MarkObjectsForRectangleDeletion(void); - - /** Reaction on mouse movement in S_GROUP_RECT_1 state. - */ - void - MouseMoveGroupRect1(void); - - /** Reaction on mouse left click in S_GROUP_RECT_1 state. - */ - void - MouseLeftGroupRect1(void); - - /** Reaction on mouse movement in S_GROUP_RECT_2 state. - */ - void - MouseMoveGroupRect2(void); - - /** Reaction on mouse left click in S_GROUP_RECT_2 state. - */ - void - MouseLeftGroupRect2(void); - - /** Reaction on mouse movement in S_UNGROUP state. - */ - void - MouseMoveUngroup(void); - - /** Reaction on mouse left click in S_UNGROUP state. - */ - void - MouseLeftUngroup(void); - - /** Reaction on mouse movement in S_DETAILS state. - */ - void - MouseMoveDetails(void); - - /** Reaction on mouse left click in S_DETAILS state. - */ - void - MouseLeftDetails(void); - - /** Object type conversion: spline to polyline or polygon. - @param pobj Object to convert. - */ - void - ConvertSplineToPoly(Wxd_object_t *pobj); - - /** Object type conversion: arc to polyline or polygon. - @param pobj Object to convert. - */ - void - ConvertArcToPoly(Wxd_object_t *pobj); - - /** Object type conversion: box to polyline or polygon. - @param pobj Object to convert. - */ - void - ConvertBoxToPoly(Wxd_object_t *pobj); - - /** Object type conversion: polyline or polygon to spline. - @param pobj Object to convert. - */ - void - ConvertPolyToSpline(Wxd_object_t *pobj); - - /** Object type conversion: spline to spline. - @param pobj Object to convert. - */ - void - ConvertSplineToSpline(Wxd_object_t *pobj); - - /** Object type conversion: arc to spline. - @param pobj Object to convert. - */ - void - ConvertArcToSpline(Wxd_object_t *pobj); - - /** Object type conversion: box to spline. - @param pobj Object to convert. - */ - void - ConvertBoxToSpline(Wxd_object_t *pobj); - - /** Object type conversion: polyline or polygon to arc. - @param pobj Object to convert. - */ - void - ConvertPolyToArc(Wxd_object_t *pobj); - - /** Object type conversion: spline to arc. - @param pobj Object to convert. - */ - void - ConvertSplineToArc(Wxd_object_t *pobj); - - /** Object type conversion: circle to dot. - @param pobj Object to convert. - */ - void - ConvertCircleToDot(Wxd_object_t *pobj); - - /** Convert object to specified type. - */ - void - ObjectTypeConversion(Wxd_object_t *pobj); - - /** Reaction on mouse move in S_CONVERT state. - */ - void - MouseMoveConvert(void); - - /** Reaction on left mouse button in S_CONVERT state. - */ - void - MouseLeftConvert(void); - - /** Reaction on mouse move in S_ROTATE state. - */ - void - MouseMoveRotate(void); - - /** Reaction on left mouse button in S_ROTATE state. - */ - void - MouseLeftRotate(void); - - /** Reaction on mouse move in S_MOD_SPLINE state. - */ - void - MouseMoveModspline(void); - - /** Reaction on left mouse button in S_MOD_SPLINE state. - */ - void - MouseLeftModspline(void); - - /** Retrieve input from one text control, set pointer to - a dynamic copy of the input text. - @param ptxt Address of pointer to modify. - @param ptc Text control containing users input. - @param bKeepOld Keep old text if new text is empty. - */ - void - ChangeOneLabelText( - wxChar **ptxt, - wxTextCtrl *ptc, - bool bKeepOld = true - ); - - /** Retrieve the input from text controls for export text and - screen text, save text to m_pCurrent. - @param ptce Text control for export text. - @param ptcs Text control for screen text. - @param bLaTeX LaTeX or non-LaTeX text. - */ - void - RetrieveTextDetails( - wxTextCtrl *ptce, - wxTextCtrl *ptcs, - bool bLaTeX - ); - - /** Modify text label details (texts). - */ - void - ModifyDetailsText(void); - - /** Modify box details (corner radius). - */ - void - ModifyDetailsBox(void); - - /** Change image file for image object. - @param pa New file name to use. - */ - void - ChangeImageFile(wxString & pa); - - /** Modify image details (image file name and flags). - */ - void - ModifyDetailsImage(void); - - /** Modify filled dot details (diameter). - */ - void - ModifyDetailsDotFilled(void); - - /** Modify white dot details (diameter and line width). - */ - void - ModifyDetailsDotWhite(void); - - /** Handler for mouse entering control area. - @param event Event to process. - */ - void - ControlMouseEnter(wxMouseEvent & event); - - /** Handler for mouse leaving the control area. - @param event Event to process. - */ - void - ControlMouseLeave(wxMouseEvent & event); - - /** Handler for mouse move. - @param event Event to process. - */ - void - ControlMouseMove(wxMouseEvent & event); - - /** Handler for left mouse button click. - @param event Event to process. - */ - void - ControlLeftMouseButton(wxMouseEvent & event); - - /** Handler for right mouse button click. - @param event Event to process. - */ - void - ControlRightMouseButton(wxMouseEvent & event); - - /** Handler for middle mouse button click. - @param event Event to process. - */ - void - ControlMiddleMouseButton(wxMouseEvent & event); - - /** Handler for mouse wheell move. - @param event Event to process. - */ - void - ControlMouseWheel(wxMouseEvent & event); - - /** Use values from horizontal scrollbar. - */ - void - UseScrollH(void); - - /** Use values from vertical scrollbar. - */ - void - UseScrollV(void); - - /** Find directory where current file is saved. - @param dnb Buffer for directory. - @param dnsz Size of dnb (number of wxChar). - @param fn File name to find directory for. - @return True on success, false on error. - */ - bool - FindDirectoryForFile(wxChar *dnb, size_t dnsz, wxString & fn); - - /** Modify a colour. - @param ivi Index of color start in m_iv array. - @param rdl Redraw level required by operation. - */ - void - ColorModify(size_t ivi, int rdl); - - /** Modify a colour. - @param ivi Index of color start in m_iv array. - @param rdl Redraw level required by operation. - */ - void - ColorReset(size_t ivi, int rdl); -}; - - -#line 4371 "WxdkdrawFrame.wxc" - - -/* vim: set ai sw=4 ts=4 : */ - -#endif |