204 lines
5.4 KiB
C++
204 lines
5.4 KiB
C++
/********************************************/
|
||
/* Definitions for the EESchema program: */
|
||
/********************************************/
|
||
|
||
#ifndef PROGRAM_H
|
||
#define PROGRAM_H
|
||
|
||
#ifndef eda_global
|
||
#define eda_global extern
|
||
#endif
|
||
|
||
#include "macros.h"
|
||
#include "base_struct.h"
|
||
|
||
#include "component_class.h"
|
||
#include "class_screen.h"
|
||
|
||
#define DRAWJUNCTION_SIZE 16 /* Rayon du symbole connexion */
|
||
#define DRAWMARKER_SIZE 16 /* Rayon du symbole marqueur */
|
||
#define DRAWNOCONNECT_SIZE 48 /* Rayon du symbole No Connexion */
|
||
|
||
#define HIGHLIGHT_COLOR WHITE
|
||
|
||
|
||
#define TEXT_NO_VISIBLE 1
|
||
|
||
/* flags pour BUS ENTRY (bus to bus ou wire to bus */
|
||
#define WIRE_TO_BUS 0
|
||
#define BUS_TO_BUS 1
|
||
|
||
|
||
typedef enum { /* Type des Marqueurs */
|
||
MARQ_UNSPEC,
|
||
MARQ_ERC,
|
||
MARQ_PCB,
|
||
MARQ_SIMUL,
|
||
MARQ_NMAX /* Derniere valeur: fin de tableau */
|
||
} TypeMarker;
|
||
|
||
/* Messages correspondants aux types des marqueurs */
|
||
#ifdef MAIN
|
||
const wxChar * NameMarqueurType[] =
|
||
{
|
||
wxT(""),
|
||
wxT("ERC"),
|
||
wxT("PCB"),
|
||
wxT("SIMUL"),
|
||
wxT("?????")
|
||
};
|
||
#else
|
||
extern const wxChar * NameMarqueurType[];
|
||
#endif
|
||
|
||
|
||
/* Forward declarations */
|
||
class DrawSheetStruct;
|
||
|
||
class EDA_DrawLineStruct: public EDA_BaseLineStruct /* Segment decription
|
||
base class to describe items which have 2 end points (track, wire, draw line ...) */
|
||
{
|
||
public:
|
||
bool m_StartIsDangling, m_EndIsDangling; // TRUE si Start ou End not connected (wires, tracks...)
|
||
|
||
public:
|
||
EDA_DrawLineStruct(const wxPoint & pos, int layer );
|
||
~EDA_DrawLineStruct(void) {}
|
||
bool IsOneEndPointAt(const wxPoint & pos);
|
||
EDA_DrawLineStruct * GenCopy(void);
|
||
bool IsNull(void)
|
||
{
|
||
return (m_Start == m_End);
|
||
}
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
|
||
class DrawMarkerStruct: public EDA_BaseStruct /* marqueurs */
|
||
{
|
||
public:
|
||
wxPoint m_Pos; /* XY coordinates of marker. */
|
||
TypeMarker m_Type;
|
||
int m_MarkFlags; // complements d'information
|
||
wxString m_Comment; /* Texte (commentaireassocie eventuel */
|
||
|
||
public:
|
||
DrawMarkerStruct(const wxPoint & pos, const wxString & text);
|
||
~DrawMarkerStruct(void);
|
||
DrawMarkerStruct * GenCopy(void);
|
||
wxString GetComment(void);
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
class DrawNoConnectStruct: public EDA_BaseStruct /* Symboles de non connexion */
|
||
{
|
||
public:
|
||
wxPoint m_Pos; /* XY coordinates of NoConnect. */
|
||
|
||
public:
|
||
DrawNoConnectStruct(const wxPoint & pos);
|
||
~DrawNoConnectStruct(void) {}
|
||
DrawNoConnectStruct * GenCopy(void);
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
class DrawBusEntryStruct: public EDA_BaseStruct /* Struct de descr 1 raccord
|
||
a 45 degres de BUS ou WIRE */
|
||
{
|
||
public:
|
||
int m_Layer;
|
||
int m_Width;
|
||
wxPoint m_Pos;
|
||
wxSize m_Size;
|
||
|
||
public:
|
||
DrawBusEntryStruct(const wxPoint & pos, int shape, int id );
|
||
~DrawBusEntryStruct(void) {}
|
||
DrawBusEntryStruct * GenCopy(void);
|
||
wxPoint m_End(void); // retourne la coord de fin du raccord
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
class DrawPolylineStruct: public EDA_BaseStruct /* Polyligne (serie de segments) */
|
||
{
|
||
public:
|
||
int m_Layer;
|
||
int m_Width;
|
||
int m_NumOfPoints; /* Number of XY pairs in Points array. */
|
||
int *m_Points; /* XY pairs that forms the polyline. */
|
||
|
||
public:
|
||
DrawPolylineStruct(int layer);
|
||
~DrawPolylineStruct(void);
|
||
DrawPolylineStruct * GenCopy(void);
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
class DrawJunctionStruct: public EDA_BaseStruct
|
||
{
|
||
public:
|
||
int m_Layer;
|
||
wxPoint m_Pos; /* XY coordinates of connection. */
|
||
|
||
public:
|
||
DrawJunctionStruct(const wxPoint & pos);
|
||
~DrawJunctionStruct(void){}
|
||
DrawJunctionStruct * GenCopy(void);
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
};
|
||
|
||
class DrawTextStruct: public EDA_BaseStruct, public EDA_TextStruct
|
||
{
|
||
public:
|
||
int m_Layer;
|
||
int m_Shape;
|
||
bool m_IsDangling; // TRUE si non connect<63>
|
||
|
||
public:
|
||
DrawTextStruct(const wxPoint & pos = wxPoint(0,0), const wxString & text = wxEmptyString);
|
||
~DrawTextStruct(void) {}
|
||
DrawTextStruct * GenCopy(void);
|
||
virtual void Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color = -1);
|
||
void SwapData(DrawTextStruct * copyitem);
|
||
virtual void Place(WinEDA_DrawFrame * frame, wxDC * DC);
|
||
private:
|
||
void DrawAsText(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color);
|
||
void DrawAsLabel(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color);
|
||
void DrawAsGlobalLabel(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, int draw_mode, int Color);
|
||
};
|
||
|
||
|
||
class DrawLabelStruct: public DrawTextStruct
|
||
{
|
||
public:
|
||
DrawLabelStruct(const wxPoint & pos = wxPoint(0,0), const wxString & text = wxEmptyString);
|
||
~DrawLabelStruct(void) {}
|
||
};
|
||
|
||
|
||
class DrawGlobalLabelStruct: public DrawTextStruct
|
||
{
|
||
public:
|
||
DrawGlobalLabelStruct(const wxPoint & pos = wxPoint(0,0), const wxString & text = wxEmptyString);
|
||
~DrawGlobalLabelStruct(void) {}
|
||
};
|
||
|
||
|
||
#define MAX_LAYERS 44
|
||
class LayerStruct
|
||
{
|
||
public:
|
||
char LayerNames[MAX_LAYERS+1][8];
|
||
int LayerColor[MAX_LAYERS+1];
|
||
char LayerStatus[MAX_LAYERS+1];
|
||
int NumberOfLayers;
|
||
int CurrentLayer;
|
||
int CurrentWidth;
|
||
int CommonColor;
|
||
int Flags;
|
||
};
|
||
|
||
|
||
#endif /* PROGRAM_H */
|
||
|