kicad/eeschema/sch_io/altium/altium_parser_sch.h

911 lines
19 KiB
C
Raw Normal View History

/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2020 Thomas Pointhuber <thomas.pointhuber@gmx.at>
* Copyright (C) 2021-2024 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef ALTIUM_PARSER_SCH_H
#define ALTIUM_PARSER_SCH_H
#include <cstdint>
#include <cstring>
#include <map>
#include <vector>
#include <math/vector2d.h>
#include <wx/string.h>
// this constant specifies a item which is not inside an component
const int ALTIUM_COMPONENT_NONE = -1;
2024-02-04 17:14:19 +00:00
class ALTIUM_BINARY_PARSER;
2021-04-10 19:45:36 +00:00
struct ASCH_STORAGE_FILE
{
wxString filename;
std::vector<char> data;
2024-02-04 17:14:19 +00:00
explicit ASCH_STORAGE_FILE( const std::map<wxString, wxString>& aProps );
explicit ASCH_STORAGE_FILE( ALTIUM_BINARY_PARSER& aReader );
2021-04-10 19:45:36 +00:00
};
struct ASCH_ADDITIONAL_FILE
{
2022-08-10 08:00:41 +00:00
wxString FileName;
std::vector<char> Data;
2024-02-04 17:14:19 +00:00
explicit ASCH_ADDITIONAL_FILE( ALTIUM_BINARY_PARSER& aReader );
};
2021-04-10 19:45:36 +00:00
enum class ALTIUM_SCH_RECORD
{
UNKNOWN = -1,
HEADER = 0,
COMPONENT = 1,
PIN = 2,
IEEE_SYMBOL = 3,
LABEL = 4,
BEZIER = 5,
POLYLINE = 6,
POLYGON = 7,
ELLIPSE = 8,
PIECHART = 9,
ROUND_RECTANGLE = 10,
ELLIPTICAL_ARC = 11,
ARC = 12,
LINE = 13,
RECTANGLE = 14,
SHEET_SYMBOL = 15,
SHEET_ENTRY = 16,
POWER_PORT = 17,
PORT = 18,
NO_ERC = 22,
NET_LABEL = 25,
BUS = 26,
WIRE = 27,
TEXT_FRAME = 28,
JUNCTION = 29,
IMAGE = 30,
SHEET = 31,
SHEET_NAME = 32,
FILE_NAME = 33,
DESIGNATOR = 34,
BUS_ENTRY = 37,
TEMPLATE = 39,
PARAMETER = 41,
PARAMETER_SET = 43,
IMPLEMENTATION_LIST = 44,
IMPLEMENTATION = 45,
MAP_DEFINER_LIST = 46,
MAP_DEFINER = 47,
IMPL_PARAMS = 48,
NOTE = 209,
COMPILE_MASK = 211,
HARNESS_CONNECTOR = 215,
HARNESS_ENTRY = 216,
HARNESS_TYPE = 217,
SIGNAL_HARNESS = 218,
BLANKET = 225,
2023-08-28 21:50:56 +00:00
HYPERLINK = 226,
};
enum class ASCH_RECORD_ORIENTATION
{
RIGHTWARDS = 0, // 0
UPWARDS = 1, // 90
LEFTWARDS = 2, // 180
DOWNWARDS = 3 // 270
};
struct ASCH_OWNER_INTERFACE
{
int ownerindex;
int ownerpartid;
int ownerpartdisplaymode;
int indexinsheet;
bool IsNotAccesible;
2023-08-28 21:50:56 +00:00
explicit ASCH_OWNER_INTERFACE( const std::map<wxString, wxString>& aProps );
2023-08-28 21:50:56 +00:00
};
2023-08-28 21:50:56 +00:00
struct ASCH_FILL_INTERFACE
{
int AreaColor;
2022-09-03 22:38:41 +00:00
bool IsSolid;
2023-08-28 21:50:56 +00:00
bool IsTransparent;
explicit ASCH_FILL_INTERFACE( const std::map<wxString, wxString>& aProps );
};
2023-08-28 21:50:56 +00:00
struct ASCH_BORDER_INTERFACE
{
int LineWidth;
2022-09-03 22:38:41 +00:00
int Color;
2023-08-28 21:50:56 +00:00
explicit ASCH_BORDER_INTERFACE( const std::map<wxString, wxString>& aProps );
};
2021-06-10 14:10:55 +00:00
struct ASCH_SYMBOL
{
int currentpartid;
2022-11-28 00:34:33 +00:00
int m_indexInSheet;
wxString libreference;
wxString sourcelibraryname;
wxString componentdescription;
int orientation;
bool isMirrored;
VECTOR2I location;
int partcount;
int displaymodecount;
int displaymode;
2021-07-23 20:46:04 +00:00
explicit ASCH_SYMBOL( const std::map<wxString, wxString>& aProps );
};
struct ASCH_TEMPLATE : ASCH_OWNER_INTERFACE
{
wxString filename;
explicit ASCH_TEMPLATE( const std::map<wxString, wxString>& aProps );
};
2023-08-28 21:50:56 +00:00
enum class ASCH_PIN_SYMBOL_EDGE
{
UNKNOWN = -1,
NO_SYMBOL = 0,
2023-08-28 21:50:56 +00:00
NEGATED = 1,
RIGHTLEFT = 2,
CLOCK = 3,
LOW_INPUT = 4,
ANALOG_IN = 5,
NOLOGICCONNECT = 6,
// 7 is missing
POSTPONE_OUTPUT = 8,
OPEN_COLLECTOR = 9,
HIZ = 10,
HIGH_CURRENT = 11,
PULSE = 12,
SCHMITT = 13,
2023-08-28 21:50:56 +00:00
// 14-16 missing
LOW_OUTPUT = 17,
// 18-21 missing
OPEN_COLLECTOR_PULL_UP = 22,
OPEN_EMITTER = 23,
OPEN_EMITTER_PULL_UP = 24,
2023-08-28 21:50:56 +00:00
DIGITAL_IN = 25,
// 26-29 missing
SHIFT_LEFT = 30,
2023-08-28 21:50:56 +00:00
// 31 is missing
OPEN_OUTPUT = 32,
LEFTRIGHT = 33,
BIDI = 34
};
class ASCH_PIN_SYMBOL
{
public:
enum PTYPE
{
UNKNOWN = -1,
NO_SYMBOL = 0,
NEGATED = 1,
RIGHTLEFT = 2,
CLOCK = 3,
LOW_INPUT = 4,
ANALOG_IN = 5,
NOLOGICCONNECT = 6,
// 7 is missing
POSTPONE_OUTPUT = 8,
OPEN_COLLECTOR = 9,
HIZ = 10,
HIGH_CURRENT = 11,
PULSE = 12,
SCHMITT = 13,
// 14-16 missing
LOW_OUTPUT = 17,
// 18-21 missing
OPEN_COLLECTOR_PULL_UP = 22,
OPEN_EMITTER = 23,
OPEN_EMITTER_PULL_UP = 24,
DIGITAL_IN = 25,
// 26-29 missing
SHIFT_LEFT = 30,
// 31 is missing
OPEN_OUTPUT = 32,
LEFTRIGHT = 33,
BIDI = 34
};
static PTYPE FromInt( int aInt )
{
switch( aInt )
{
case 0:
return NO_SYMBOL;
case 1:
return NEGATED;
case 2:
return RIGHTLEFT;
case 3:
return CLOCK;
case 4:
return LOW_INPUT;
case 5:
return ANALOG_IN;
case 6:
return NOLOGICCONNECT;
case 8:
return POSTPONE_OUTPUT;
case 9:
return OPEN_COLLECTOR;
case 10:
return HIZ;
case 11:
return HIGH_CURRENT;
case 12:
return PULSE;
case 13:
return SCHMITT;
case 17:
return LOW_OUTPUT;
case 22:
return OPEN_COLLECTOR_PULL_UP;
case 23:
return OPEN_EMITTER;
case 24:
return OPEN_EMITTER_PULL_UP;
case 25:
return DIGITAL_IN;
case 30:
return SHIFT_LEFT;
case 32:
return OPEN_OUTPUT;
case 33:
return LEFTRIGHT;
case 34:
return BIDI;
default:
return UNKNOWN;
}
}
};
enum class ASCH_PIN_ELECTRICAL
{
UNKNOWN = -1,
INPUT = 0,
BIDI = 1,
OUTPUT = 2,
OPEN_COLLECTOR = 3,
PASSIVE = 4,
TRISTATE = 5,
OPEN_EMITTER = 6,
POWER = 7
};
struct ASCH_PIN : ASCH_OWNER_INTERFACE
{
wxString name;
wxString text;
wxString designator;
2023-08-28 21:50:56 +00:00
ASCH_PIN_SYMBOL::PTYPE symbolOuter;
ASCH_PIN_SYMBOL::PTYPE symbolInner;
2023-08-28 21:50:56 +00:00
ASCH_PIN_SYMBOL::PTYPE symbolOuterEdge;
ASCH_PIN_SYMBOL::PTYPE symbolInnerEdge;
2020-10-17 11:52:47 +00:00
ASCH_PIN_ELECTRICAL electrical;
ASCH_RECORD_ORIENTATION orientation;
VECTOR2I location;
int pinlength;
VECTOR2I kicadLocation; // location of pin in KiCad without rounding error
bool showPinName;
bool showDesignator;
2023-08-28 21:50:56 +00:00
bool hidden;
bool locked;
2023-08-28 21:50:56 +00:00
bool isKiCadLibPin; // Tracking variable to handle LibEdit nuance
2021-07-23 20:46:04 +00:00
explicit ASCH_PIN( const std::map<wxString, wxString>& aProps );
};
2020-10-17 11:52:47 +00:00
enum class ASCH_LABEL_JUSTIFICATION
{
UNKNOWN = -1,
BOTTOM_LEFT = 0,
BOTTOM_CENTER = 1,
BOTTOM_RIGHT = 2,
CENTER_LEFT = 3,
CENTER_CENTER = 4,
CENTER_RIGHT = 5,
TOP_LEFT = 6,
TOP_CENTER = 7,
TOP_RIGHT = 8
};
enum class ASCH_TEXT_FRAME_ALIGNMENT
{
LEFT = 1,
CENTER = 2,
RIGHT = 3
};
struct ASCH_LABEL : ASCH_OWNER_INTERFACE
2020-10-17 11:52:47 +00:00
{
VECTOR2I location;
2020-10-17 11:52:47 +00:00
wxString text;
2023-08-28 21:50:56 +00:00
int textColor;
int fontId;
bool isMirrored;
2020-10-17 11:52:47 +00:00
ASCH_LABEL_JUSTIFICATION justification;
ASCH_RECORD_ORIENTATION orientation;
2020-10-17 11:52:47 +00:00
2021-07-23 20:46:04 +00:00
explicit ASCH_LABEL( const std::map<wxString, wxString>& aProps );
2020-10-17 11:52:47 +00:00
};
2023-08-28 21:50:56 +00:00
struct ASCH_HYPERLINK : ASCH_LABEL
{
wxString url;
explicit ASCH_HYPERLINK( const std::map<wxString, wxString>& aProps );
};
2020-10-17 11:52:47 +00:00
struct ASCH_TEXT_FRAME : ASCH_OWNER_INTERFACE
{
VECTOR2I Location;
VECTOR2I Size;
// have both coordinates, for convenience
VECTOR2I BottomLeft;
VECTOR2I TopRight;
wxString Text;
bool IsWordWrapped; // to do when kicad supports this
bool ShowBorder;
int FontID;
int TextMargin; // to do when kicad supports this
int AreaColor;
2023-08-28 21:50:56 +00:00
int TextColor;
int BorderColor;
2023-08-28 21:50:56 +00:00
int BorderWidth;
bool isSolid;
ASCH_TEXT_FRAME_ALIGNMENT Alignment;
2021-07-23 20:46:04 +00:00
explicit ASCH_TEXT_FRAME( const std::map<wxString, wxString>& aProps );
};
struct ASCH_NOTE : ASCH_TEXT_FRAME
{
wxString author;
explicit ASCH_NOTE( const std::map<wxString, wxString>& aProperties );
};
struct ASCH_BEZIER : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
{
std::vector<VECTOR2I> points;
2021-07-23 20:46:04 +00:00
explicit ASCH_BEZIER( const std::map<wxString, wxString>& aProps );
};
2020-10-14 19:04:53 +00:00
enum class ASCH_POLYLINE_LINESTYLE
{
SOLID = 0,
DASHED = 1,
DOTTED = 2,
DASH_DOTTED = 3
};
enum class ASCH_SHEET_ENTRY_SIDE
{
LEFT = 0,
RIGHT = 1,
TOP = 2,
BOTTOM = 3
};
struct ASCH_POLYLINE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
{
2022-09-03 22:02:17 +00:00
std::vector<VECTOR2I> Points;
2022-09-03 22:02:17 +00:00
ASCH_POLYLINE_LINESTYLE LineStyle;
2020-10-14 19:04:53 +00:00
2021-07-23 20:46:04 +00:00
explicit ASCH_POLYLINE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_POLYGON : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
{
std::vector<VECTOR2I> points;
2021-07-23 20:46:04 +00:00
explicit ASCH_POLYGON( const std::map<wxString, wxString>& aProps );
};
struct ASCH_ROUND_RECTANGLE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
{
2022-09-03 22:38:41 +00:00
VECTOR2I BottomLeft;
VECTOR2I TopRight;
VECTOR2I CornerRadius;
2021-07-23 20:46:04 +00:00
explicit ASCH_ROUND_RECTANGLE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_ARC : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
{
bool m_IsElliptical;
VECTOR2I m_Center;
int m_Radius;
int m_SecondaryRadius;
double m_StartAngle;
double m_EndAngle;
2021-07-23 20:46:04 +00:00
explicit ASCH_ARC( const std::map<wxString, wxString>& aProps );
};
struct ASCH_ELLIPSE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
{
VECTOR2I Center;
int Radius;
double SecondaryRadius;
explicit ASCH_ELLIPSE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_LINE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
{
VECTOR2I point1;
VECTOR2I point2;
ASCH_POLYLINE_LINESTYLE LineStyle;
2021-07-23 20:46:04 +00:00
explicit ASCH_LINE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_SIGNAL_HARNESS : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
VECTOR2I Point1;
VECTOR2I Point2;
2022-08-10 08:00:41 +00:00
std::vector<VECTOR2I> Points;
2022-08-10 08:00:41 +00:00
int Color;
int LineWidth;
explicit ASCH_SIGNAL_HARNESS( const std::map<wxString, wxString>& aProps );
};
struct ASCH_HARNESS_CONNECTOR : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
VECTOR2I Location;
VECTOR2I Size;
2022-08-10 08:00:41 +00:00
int AreaColor;
int Color;
int LineWidth;
//int locationX; // keep just in case
//int locationY;
2022-08-10 08:00:41 +00:00
int LocationPrimaryConnectionPosition;
//int xSize; // keep just in case
//int ySize;
explicit ASCH_HARNESS_CONNECTOR( const std::map<wxString, wxString>& aProps );
};
struct ASCH_HARNESS_ENTRY : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
int AreaColor;
int Color;
int DistanceFromTop;
int TextColor;
int TextFontID;
int TextStyle;
2022-08-10 08:00:41 +00:00
bool OwnerIndexAdditionalList; // what is that?
2022-08-10 08:00:41 +00:00
wxString Name;
ASCH_SHEET_ENTRY_SIDE Side;
explicit ASCH_HARNESS_ENTRY( const std::map<wxString, wxString>& aProps );
};
struct ASCH_HARNESS_TYPE : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
int Color;
int FontID;
2022-08-10 08:00:41 +00:00
bool IsHidden;
bool OwnerIndexAdditionalList; // what is that?
2022-08-10 08:00:41 +00:00
VECTOR2I Location;
2022-08-10 08:00:41 +00:00
wxString Text;
explicit ASCH_HARNESS_TYPE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_RECTANGLE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
{
2022-09-03 22:38:41 +00:00
VECTOR2I BottomLeft;
VECTOR2I TopRight;
2021-07-23 20:46:04 +00:00
explicit ASCH_RECTANGLE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_SHEET_SYMBOL : ASCH_OWNER_INTERFACE
{
VECTOR2I location;
VECTOR2I size;
bool isSolid;
int color;
int areacolor;
2021-07-23 20:46:04 +00:00
explicit ASCH_SHEET_SYMBOL( const std::map<wxString, wxString>& aProps );
};
enum class ASCH_PORT_IOTYPE
{
UNSPECIFIED = 0,
OUTPUT = 1,
INPUT = 2,
BIDI = 3,
};
enum class ASCH_PORT_STYLE
{
NONE_HORIZONTAL = 0,
LEFT = 1,
RIGHT = 2,
LEFT_RIGHT = 3,
NONE_VERTICAL = 4,
TOP = 5,
BOTTOM = 6,
TOP_BOTTOM = 7
};
struct ASCH_SHEET_ENTRY : ASCH_OWNER_INTERFACE
{
int distanceFromTop;
ASCH_SHEET_ENTRY_SIDE side;
ASCH_PORT_IOTYPE iotype;
ASCH_PORT_STYLE style;
wxString name;
2021-07-23 20:46:04 +00:00
explicit ASCH_SHEET_ENTRY( const std::map<wxString, wxString>& aProps );
};
enum class ASCH_POWER_PORT_STYLE
{
UNKNOWN = -1,
CIRCLE = 0,
ARROW = 1,
BAR = 2,
WAVE = 3,
POWER_GROUND = 4,
SIGNAL_GROUND = 5,
EARTH = 6,
GOST_ARROW = 7,
GOST_POWER_GROUND = 8,
GOST_EARTH = 9,
GOST_BAR = 10
};
struct ASCH_POWER_PORT : ASCH_OWNER_INTERFACE
{
wxString text;
bool showNetName;
VECTOR2I location;
ASCH_RECORD_ORIENTATION orientation;
ASCH_POWER_PORT_STYLE style;
2021-07-23 20:46:04 +00:00
explicit ASCH_POWER_PORT( const std::map<wxString, wxString>& aProps );
};
struct ASCH_PORT : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
wxString Name;
wxString HarnessType;
2022-08-10 08:00:41 +00:00
VECTOR2I Location;
int Width;
int Height;
int AreaColor;
int Color;
int TextColor;
int FontID;
2022-08-10 08:00:41 +00:00
ASCH_TEXT_FRAME_ALIGNMENT Alignment;
2022-08-10 08:00:41 +00:00
ASCH_PORT_IOTYPE IOtype;
ASCH_PORT_STYLE Style;
2021-07-23 20:46:04 +00:00
explicit ASCH_PORT( const std::map<wxString, wxString>& aProps );
};
2020-10-14 19:23:36 +00:00
struct ASCH_NO_ERC
{
VECTOR2I location;
2020-10-14 19:23:36 +00:00
bool isActive;
bool suppressAll;
2020-10-14 19:23:36 +00:00
2021-07-23 20:46:04 +00:00
explicit ASCH_NO_ERC( const std::map<wxString, wxString>& aProps );
2020-10-14 19:23:36 +00:00
};
struct ASCH_NET_LABEL : ASCH_OWNER_INTERFACE
{
wxString text;
VECTOR2I location;
ASCH_LABEL_JUSTIFICATION justification;
ASCH_RECORD_ORIENTATION orientation;
2021-07-23 20:46:04 +00:00
explicit ASCH_NET_LABEL( const std::map<wxString, wxString>& aProps );
};
struct ASCH_BUS : ASCH_OWNER_INTERFACE
{
int lineWidth;
std::vector<VECTOR2I> points;
2021-07-23 20:46:04 +00:00
explicit ASCH_BUS( const std::map<wxString, wxString>& aProps );
};
struct ASCH_WIRE : ASCH_OWNER_INTERFACE
{
int lineWidth;
std::vector<VECTOR2I> points;
2021-07-23 20:46:04 +00:00
explicit ASCH_WIRE( const std::map<wxString, wxString>& aProps );
};
struct ASCH_JUNCTION : ASCH_OWNER_INTERFACE
2020-10-09 15:21:27 +00:00
{
VECTOR2I location;
2020-10-09 15:21:27 +00:00
2021-07-23 20:46:04 +00:00
explicit ASCH_JUNCTION( const std::map<wxString, wxString>& aProps );
2020-10-09 15:21:27 +00:00
};
struct ASCH_IMAGE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
2021-04-10 19:45:36 +00:00
{
wxString filename;
VECTOR2I location;
VECTOR2I corner;
2021-04-10 19:45:36 +00:00
bool embedimage;
bool keepaspect;
2021-07-23 20:46:04 +00:00
explicit ASCH_IMAGE( const std::map<wxString, wxString>& aProps );
2021-04-10 19:45:36 +00:00
};
struct ASCH_SHEET_FONT : ASCH_OWNER_INTERFACE
{
2022-08-10 08:00:41 +00:00
wxString FontName;
2022-08-10 08:00:41 +00:00
int Size;
int Rotation;
int AreaColor;
2022-08-10 08:00:41 +00:00
bool Italic;
bool Bold;
bool Underline;
2021-07-23 20:46:04 +00:00
explicit ASCH_SHEET_FONT( const std::map<wxString, wxString>& aProps, int aId );
};
enum class ASCH_SHEET_SIZE
{
UNKNOWN = -1, // use A4
A4 = 0, // 1150 × 760
A3 = 1, // 1550 × 1110
A2 = 2, // 2230 × 1570
A1 = 3, // 3150 × 2230
A0 = 4, // 4460 × 3150
A = 5, // 950 × 750
B = 6, // 1500 × 950
C = 7, // 2000 × 1500
D = 8, // 3200 × 2000
E = 9, // 4200 × 3200
LETTER = 10, // 1100 × 850
LEGAL = 11, // 1400 × 850
TABLOID = 12, // 1700 × 1100
ORCAD_A = 13, // 990 × 790
ORCAD_B = 14, // 1540 × 990
ORCAD_C = 15, // 2060 × 1560
ORCAD_D = 16, // 3260 × 2060
ORCAD_E = 17 // 4280 × 3280
};
VECTOR2I ASchSheetGetSize( ASCH_SHEET_SIZE aSheetSize );
enum class ASCH_SHEET_WORKSPACEORIENTATION
{
LANDSCAPE = 0,
PORTRAIT = 1
};
struct ASCH_SHEET : ASCH_OWNER_INTERFACE
{
std::vector<ASCH_SHEET_FONT> fonts;
bool useCustomSheet;
VECTOR2I customSize;
ASCH_SHEET_SIZE sheetSize;
ASCH_SHEET_WORKSPACEORIENTATION sheetOrientation;
2021-07-23 20:46:04 +00:00
explicit ASCH_SHEET( const std::map<wxString, wxString>& aProps );
};
struct ASCH_SHEET_NAME : ASCH_OWNER_INTERFACE
{
wxString text;
ASCH_RECORD_ORIENTATION orientation;
VECTOR2I location;
bool isHidden;
2021-07-23 20:46:04 +00:00
explicit ASCH_SHEET_NAME( const std::map<wxString, wxString>& aProps );
};
struct ASCH_FILE_NAME : ASCH_OWNER_INTERFACE
{
wxString text;
ASCH_RECORD_ORIENTATION orientation;
VECTOR2I location;
bool isHidden;
2021-07-23 20:46:04 +00:00
explicit ASCH_FILE_NAME( const std::map<wxString, wxString>& aProps );
};
struct ASCH_DESIGNATOR : ASCH_OWNER_INTERFACE
{
wxString name;
wxString text;
2023-09-06 17:10:54 +00:00
int fontId;
ASCH_RECORD_ORIENTATION orientation;
ASCH_LABEL_JUSTIFICATION justification;
VECTOR2I location;
2021-07-23 20:46:04 +00:00
explicit ASCH_DESIGNATOR( const std::map<wxString, wxString>& aProps );
};
2020-10-17 14:03:46 +00:00
struct ASCH_IMPLEMENTATION : ASCH_OWNER_INTERFACE
{
wxString name;
wxString type;
wxString libname;
wxString description;
bool isCurrent;
2021-07-23 20:46:04 +00:00
explicit ASCH_IMPLEMENTATION( const std::map<wxString, wxString>& aProps );
};
struct ASCH_IMPLEMENTATION_LIST : ASCH_OWNER_INTERFACE
{
2021-07-23 20:46:04 +00:00
explicit ASCH_IMPLEMENTATION_LIST( const std::map<wxString, wxString>& aProps );
};
struct ASCH_BUS_ENTRY : ASCH_OWNER_INTERFACE
2020-10-17 14:03:46 +00:00
{
VECTOR2I location;
VECTOR2I corner;
2020-10-17 14:03:46 +00:00
2021-07-23 20:46:04 +00:00
explicit ASCH_BUS_ENTRY( const std::map<wxString, wxString>& aProps );
2020-10-17 14:03:46 +00:00
};
struct ASCH_PARAMETER : ASCH_OWNER_INTERFACE
{
VECTOR2I location;
ASCH_LABEL_JUSTIFICATION justification;
ASCH_RECORD_ORIENTATION orientation;
wxString name;
wxString text;
bool isHidden;
bool isMirrored;
bool isShowName;
2023-09-06 17:10:54 +00:00
int fontId;
2021-07-23 20:46:04 +00:00
explicit ASCH_PARAMETER( const std::map<wxString, wxString>& aProps );
};
2021-06-10 14:10:55 +00:00
#endif //ALTIUM_PARSER_SCH_H