diff options
Diffstat (limited to 'support/dktools/WxdkdrawTypes.h')
-rw-r--r-- | support/dktools/WxdkdrawTypes.h | 462 |
1 files changed, 0 insertions, 462 deletions
diff --git a/support/dktools/WxdkdrawTypes.h b/support/dktools/WxdkdrawTypes.h deleted file mode 100644 index 5e6db51293..0000000000 --- a/support/dktools/WxdkdrawTypes.h +++ /dev/null @@ -1,462 +0,0 @@ -/* -Copyright (C) 2018-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: WxdkdrawTypes.cpt -*/ - -#ifndef WXDKDRAWTYPES_H_INCLUDED -/** Avoid multiple inclusions. */ -#define WXDKDRAWTYPES_H_INCLUDED 1 - - -#line 8 "WxdkdrawTypes.cpt" - -/** @file WxdkdrawTypes.h Data types for the wxd2lat program. - - Here we have Wxd_... structures corresponding to the wxd_... - structures from the wxd2lat/wxdtypes.h file. -*/ - -#ifndef DK4CONF_H_INCLUDED -#include "dk4conf.h" -#endif - -#ifndef DK4TYPES_H_INCLUDED -#include "dk4types.h" -#endif - -#ifndef DK4BB_H_INCLUDED -#include "dk4bb.h" -#endif - - - -#if (DK4_HAVE_WXWIDGETS) && (defined(__cplusplus)) - - -#ifndef WX_WXPREC_H_INCLUDED -#include <wx/wxprec.h> -#define WX_WXPREC_H_INCLUDED 1 -#endif -#ifdef __BORLANDC__ -#pragma hdrstop -#endif -#ifndef WX_PRECOMP -#if DK4_HAVE_WX_CHARTYPE_H -#ifndef WX_CHARTYPE_H_INCLUDED -#include <wx/chartype.h> -#define WX_CHARTYPE_H_INCLUDED 1 -#endif -#else -#if DK4_HAVE_WX_WXCHAR_H -#ifndef WX_WXCHAR_H_INCLUDED -#include <wx/wxchar.h> -#define WX_WXCHAR_H_INCLUDED 1 -#endif -#else -#ifndef WX_WX_H_INCLUDED -#include <wx/wx.h> -#define WX_WX_H_INCLUDED -#endif -#endif -#endif -#endif - -#ifndef WX_BITMAP_H_INCLUDED -#include <wx/bitmap.h> -#define WX_BITMAP_H_INCLUDED 1 -#endif - -#ifndef DK4STO_H_INCLUDED -#include "dk4sto.h" -#endif - - -/** Marker 1: Mouse moved over object or object selected - for copy/move/delete. - Indicated by coloured markup. -*/ -#define OBJ_MARKER_1 ((uint8_t)1U) - -/** Marker 2: Object selected for grouping or style editing. - Indicated by black markup. -*/ -#define OBJ_MARKER_2 ((uint8_t)2U) - - - -/** WXD font description. -*/ -typedef struct { - wxFont *font; /**< Font to be used for drawing. */ - uint16_t fsz; /**< Font size in pt. */ - uint8_t find; /**< Font index. */ - bool used; /**< Font is used by drawing. */ - bool attempted; /**< Already attempted to find font. */ -} Wxd_font_t; - - - -/** Association of file name suffix and image type. -*/ -typedef struct { - wxChar const *suffix; /**< File name suffix. */ - wxBitmapType t; /**< Corresponding image type. */ -} Wxd_suffix_and_type_t; - - - -/** Polygon or polyline point. -*/ -typedef struct { - int32_t x; /**< X position. */ - int32_t y; /**< Y position. */ -} Wxd_point_t; - - - -/** X-Spline point. -*/ -typedef struct { - double s; /**< S parameter. */ - int32_t x; /**< X position. */ - int32_t y; /**< Y position. */ -} Wxd_spline_point_t; - - - -/** Bounding box values. -*/ -typedef struct { - int32_t xl; /**< Left x. */ - int32_t xr; /**< Right x. */ - int32_t yb; /**< Bottom y. */ - int32_t yt; /**< Top y. */ -} Wxd_bb_t; - - - -#define WXD_TEXT_FLAG_NONE ((uint8_t)0U) -#define WXD_TEXT_FLAG_LATEX ((uint8_t)1U) - -#define WXD_TEXT_ALIGN_LEFT ((uint8_t)0U) -#define WXD_TEXT_ALIGN_CENTERED ((uint8_t)1U) -#define WXD_TEXT_ALIGN_RIGHT ((uint8_t)2U) - -/** Details for a text. - The 4 most significant bits in al represent the vertical - text alignment, the 4 least significant bits represent the - horizontal alignment. -*/ -typedef struct { - wxChar *t; /**< Text to export. */ - wxChar *tsc; /**< Text to show on screen. */ - Wxd_font_t *font; /**< WXD font structure. */ - int32_t x; /**< X position. */ - int32_t y; /**< Y position. */ - uint16_t fsz; /**< Font size. */ - int16_t a; /**< Rotation counterclockwise in degree. */ - uint8_t find; /**< Font index. */ - uint8_t al; /**< Horizontal and vertical align. */ - uint8_t fl; /**< Text flags. */ -} Wxd_det_text_t; - - - -/** Polygon and polyline details. -*/ -typedef struct { - Wxd_point_t *p; /**< Points. */ - uint16_t n; /**< Number of points. */ -} Wxd_det_pl_t; - - - -/** X-Spline details (opened and closed). -*/ -typedef struct { - Wxd_spline_point_t *p; /**< Points. */ - uint16_t n; /**< Number of points. */ -} Wxd_det_xs_t; - - - - -#define WXD_ARC_DIRECTION_POSITIVE ((int8_t)1) -#define WXD_ARC_DIRECTION_NEGATIVE ((int8_t)-1) -#define WXD_ARC_DIRECTION_UNKNOWN ((int8_t)0) - -/** Details for arcs (opened and closed). - The x1, y1, x2, y2, x3, y3 components are read from file, the - other values are calculated from the 3 points after reading - the file and after each point modification. -*/ -typedef struct { - double a; /**< Start angle alpha counterclockwise in degree. */ - double b; /**< Angle range beta counterclockwise in degree. */ - double x; /**< X position of center point. */ - double y; /**< Y position of center point. */ - double r; /**< Radius. */ - int32_t x1; /**< X position of point 1. */ - int32_t y1; /**< Y position of point 1. */ - int32_t x2; /**< X position of point 2. */ - int32_t y2; /**< Y position of point 2. */ - int32_t x3; /**< X position of point 3. */ - int32_t y3; /**< Y position of point 3. */ - int8_t d; /**< Direction, 1=positive, -1=negative, 0=unknown. */ -} Wxd_det_arc_t; - - -/** Details for dot. -*/ -typedef struct { - int32_t x; /**< X position of center point. */ - int32_t y; /**< Y position of center point. */ - uint16_t d; /**< Diameter in multiples of the base line width. */ -} Wxd_det_dot_t; - - -/** Details for an ellipse or circle. - For a circle ry and a are ignored. -*/ -typedef struct { - int32_t x; /**< X position of center point. */ - int32_t y; /**< Y position of center point. */ - uint32_t rx; /**< X radius for ellipse, radius for circle. */ - uint32_t ry; /**< Y radius for ellipse. */ - int16_t a; /**< Rotation counterclockwise in degree. */ -} Wxd_det_ellipse_t; - - -/** Radius value to indicate corner is not rounded. -*/ -#define WXD_BOX_CORNER_NONE ((uint32_t)0UL) - -/** Details for a box. -*/ -typedef struct { - Wxd_bb_t b; /**< Box rectangle. */ - uint32_t r; /**< Corner radius, 0 for no rounded corner. */ -} Wxd_det_box_t; - - - -/** Details for an embedded image. -*/ -typedef struct { - wxChar *fn; /**< File name for image. */ - wxBitmap *bm; /**< Bitmap to draw on screen. */ - dk4_bb_t pl; /**< Calculated coordinates for placement. */ - Wxd_bb_t br; /**< Box rectangle from file. */ - double xres; /**< Image x resolution. */ - double yres; /**< Image y resolution. */ - uint16_t fl; /**< Image flags. */ - int8_t r2g; /**< RGB to gray conversion method. */ - int8_t r2c; /**< RGB to CMYK conversion method (unused). */ - wxBitmapType t; /**< Bitmap type. */ -} Wxd_det_image_t; - - - -/** Details for a group of objects. -*/ -typedef struct Wxd_det_group__t { - dk4_sto_t *s_e; /**< Elements storage. */ - dk4_sto_it_t *i_e; /**< Elements iterator. */ -} Wxd_det_group_t; - - - -/** Union of different details. -*/ -typedef union { - Wxd_det_text_t t; /**< Text details. */ - Wxd_det_pl_t p; /**< Polygon and polyline details. */ - Wxd_det_xs_t s; /**< Spline details. */ - Wxd_det_arc_t a; /**< Arc and circle details. */ - Wxd_det_dot_t d; /**< Details for a dot. */ - Wxd_det_ellipse_t e; /**< Ellipse details. */ - Wxd_det_box_t b; /**< Box details. */ - Wxd_det_image_t i; /**< Image details. */ - Wxd_det_group_t g; /**< Group details. */ -} Wxd_det_t; - - - -/** Stipple bitmap (fill pattern). -*/ -typedef struct Wxd__stipple__t { - uint8_t cd[8]; /**< Color data. */ - wxBitmap *bm; /**< Stipple bit map. */ -} Wxd_stipple_t; -/* - The color data array cd contains the following data: - 0 fill style (pattern number) - 1 fill red - 2 fill green - 3 fill blue - 4 stroke red - 5 stroke green - 6 stroke blue - 7 Flag: Stipple is in use -*/ - - - -/** Information about a layer. -*/ -typedef struct Wxd__layer__t { - int16_t lay; /**< Layer number. */ - uint8_t active; /**< Flag: Layer is active. */ - uint8_t used; /**< Flag: Layer is used. */ -} Wxd_layer_t; - - - -/** One drawing element. - The forward arrow and backward arrow components are ignored for - closed objects. -*/ -typedef struct Wxd__object__t { - Wxd_det_t det; /**< Graphics element details. */ - dk4_bb_t bb; /**< Object bounding box. */ - struct Wxd__object__t *pa; /**< Parent group. */ - Wxd_stipple_t *psti; /**< Stipple for some fill patterns. */ - Wxd_layer_t *play; /**< Layer management information. */ - int16_t lay; /**< Layer number. */ - uint16_t lw; /**< Line width, multiples of base width. */ - uint8_t fc[3]; /**< Fill color. */ - uint8_t sc[3]; /**< Stroke and text color. */ - uint8_t cs; /**< Cap style. */ - uint8_t fs; /**< Fill style. */ - uint8_t ls; /**< Line style. */ - uint8_t sl; /**< Style length. */ - uint8_t js; /**< Line join style. */ - uint8_t ml; /**< Miter limit for mitered line join. */ - uint8_t aft; /**< Arrowhead forward type. */ - uint8_t afl; /**< Length of arrowhead forward. */ - uint8_t afw; /**< Width of arrowhead forward. */ - uint8_t abt; /**< Arrowhead backward type. */ - uint8_t abl; /**< Length of arrowhead backward. */ - uint8_t abw; /**< Width of arrowhead backward. */ - uint8_t mark; /**< Markers or-combined. */ - int8_t ot; /**< Object type. */ -} Wxd_object_t; - - - -/** Entire drawing. - The flattened container contains all objects of the drawing without - any group structure. Elements are sorted by layer number. - A second container s_stru contains the group structure. -*/ -typedef struct { - dk4_sto_t *s_stru; /**< Structured container of all objects. */ - dk4_sto_it_t *i_stru; /**< Iterator for structured container. */ - dk4_sto_t *s_flat; /**< Flattened container of all objects. */ - dk4_sto_it_t *i_flat; /**< Iterator for flattened container. */ - dk4_sto_t *s_stip; /**< Stipples container. */ - dk4_sto_it_t *i_stip; /**< Stipples iterator. */ - dk4_sto_t *s_layers; /**< Layer management storage. */ - dk4_sto_it_t *i_layers; /**< Layer management iterator. */ - dk4_sto_t *s_fonts; /**< Fonts storage. */ - dk4_sto_it_t *i_fonts; /**< Fonts storage iterator. */ - Wxd_bb_t bb; /**< Bounding box. */ - size_t xsubs; /**< Sub segments per X-spline segment. */ - int32_t cx; /**< X coordinate in center of control. */ - int32_t cy; /**< Y coordinate in center of control. */ - uint32_t baselw; /**< Base line width in wxd units. */ - uint32_t bleft; /**< Left border. */ - uint32_t bright; /**< Right border. */ - uint32_t bbottom; /**< Bottom border. */ - uint32_t btop; /**< Top border. */ - int redraw; /**< Required redraw level. */ - uint16_t fv_maj; /**< Format version major number. */ - uint16_t fv_min; /**< Format version minor number. */ - int8_t zl; /**< Zoom level. */ - uint8_t gridunit; /**< Grid unit (0=inch, 1=cm). */ - uint8_t gridbase; /**< Grid base (0=powers of 2, 1=of 10). */ -} Wxd_drawing_t; - - - -/** Error codes for reader module. -*/ -enum { - WXDRD_E_NONE = 0, /**< No error occured. */ - WXDRD_E_MEMORY , /**< Not enough memory. */ - WXDRD_E_TEXT_PARTS , /**< Expected number of texts ot found. */ - WXDRD_E_NUM_CONV , /**< Conversion of text to number failed. */ - WXDRD_E_RECODE_TEXT , /**< Recoding failed for text label. */ - WXDRD_E_RECODE_FILENAME , /**< Recoding failed for file name. */ - WXDRD_E_INVALID_ARGS , /**< Invalid function arguments. */ - WXDRD_E_NO_VERSION , /**< File format information not found. */ - WXDRD_E_NO_BB , /**< No bounding box information found. */ - WXDRD_E_NO_WXD , /**< Not a WXD file. */ - WXDRD_E_WRONG_VERSION , /**< File format too new. */ - WXDRD_E_EXPECTED_OBJSTART , /**< Object start line expected. */ - WXDRD_E_EXPECTED_DETAILS , /**< Details line expected. */ - WXDRD_E_READER_STATE , /**< Wrong reader state. */ - WXDRD_E_OBJTYPE , /**< Illegal object or subobject type. */ - WXDRD_E_COORD_OVERFLOW , /**< Mathematical overflow in coordinates. */ - WXDRD_E_NO_GROUP_TO_END , /**< No open group to end. */ - WXDRD_E_TOO_FEW_POINTS , /**< Too few points. */ - WXDRD_E_EMPTY_FILENAME , /**< Empty image file name. */ - WXDRD_E_FILENAME_TOO_LONG , /**< Image file name too long. */ - WXDRD_E_BOX_NO_AREA , /**< Box does not span an area. */ -}; - - - -/** Reader status. -*/ -typedef struct { - Wxd_bb_t bb; /**< Drawing bounding box. */ - wxChar *dirn; /**< Directory file resides in. */ - unsigned long ln; /**< Line number error occured in. */ - size_t te; /**< Number of text element not convertable. */ - int ec; /**< Error code from module. */ - int wxe; /**< Encoding used for wxChar. */ - int mod; /**< Flag: Modified by corrections. */ -} wxdrd_status_t; - - - -/** Errors occuring in write operations. -*/ -enum { - WXDWR_E_NONE = 0, /**< No error occured. */ - WXDWR_E_WRITE , /**< Error in write operation. */ - WXDWR_E_STRING_TOO_LONG , /**< String is too long. */ - WXDWR_E_RECODE_TEXT , /**< Failed to recode a text. */ - WXDWR_E_RECODE_FILENAME , /**< Failed to recode a file name. */ - WXDWR_E_STRING_EMPTY , /**< Empty string. */ -}; - - -/** Writer status. -*/ -typedef struct { - int ec; /**< Error code. */ - int wxe; /**< Encoding used for wxChar strings. */ - wxChar *str; /**< String for which conversion failed. */ - wxChar *dirn; /**< Directory name for output file. */ -} wxdwr_status_t; - - - -#endif -/* if (DK4_HAVE_WXWIDGETS) && (defined(__cplusplus)) */ - - -/* vim: set ai sw=4 ts=4 : */ - - -#endif |