2007-08-04 04:42:49 +00:00
|
|
|
/**************************************************************/
|
2009-10-28 11:48:47 +00:00
|
|
|
/* pcbstruct.h : some classes and definitions used in pcbnew */
|
2007-08-04 04:42:49 +00:00
|
|
|
/**************************************************************/
|
2007-05-28 18:09:49 +00:00
|
|
|
|
|
|
|
#ifndef PCBSTRUCT_H
|
|
|
|
#define PCBSTRUCT_H
|
|
|
|
|
|
|
|
#include "base_struct.h"
|
2009-02-04 15:25:03 +00:00
|
|
|
#include "class_base_screen.h"
|
2009-10-21 19:16:25 +00:00
|
|
|
#include "class_board_item.h"
|
2010-01-29 20:36:12 +00:00
|
|
|
#include "layers_id_colors_and_visibility.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2009-11-23 20:18:47 +00:00
|
|
|
// Definitions relatives aux libraries
|
2009-12-07 03:46:13 +00:00
|
|
|
#define ENTETE_LIBRAIRIE "PCBNEW-LibModule-V1"
|
|
|
|
#define ENTETE_LIBDOC "PCBNEW-LibDoc----V1"
|
|
|
|
#define L_ENTETE_LIB 18
|
|
|
|
#define EXT_DOC wxT( "mdc" )
|
|
|
|
|
|
|
|
|
|
|
|
#define FLAG1 (1 << 13) // flag for free local computations
|
|
|
|
#define FLAG0 (1 << 12) // flag for free local computations
|
|
|
|
#define BEGIN_ONPAD (1 << 11) // flag indicating a start of segment pad
|
|
|
|
#define END_ONPAD (1 << 10) // flag indicating an end of segment pad
|
|
|
|
#define BUSY (1 << 9) // flag indicating that the structure has
|
|
|
|
// already been edited, in some routines
|
|
|
|
#define DELETED (1 << 8) // structures erased and set string "DELETED"
|
|
|
|
#define NO_TRACE (1 << 7) // The element must not be displayed
|
|
|
|
|
|
|
|
#define SURBRILL (1 << 5) // element highlighted
|
|
|
|
#define DRAG (1 << 4) // segment in drag mode
|
|
|
|
#define EDIT (1 << 3) // element being edited
|
|
|
|
#define SEGM_FIXE (1 << 2) // segment fixed (not erase global)
|
|
|
|
#define SEGM_AR (1 << 1) // segment marked for auto routing
|
|
|
|
#define CHAIN (1 << 0) // mark segment
|
2007-08-04 04:42:49 +00:00
|
|
|
|
|
|
|
|
2009-05-24 18:28:36 +00:00
|
|
|
class NETINFO_ITEM;
|
2009-08-01 19:26:05 +00:00
|
|
|
class MARKER_PCB;
|
2009-05-24 18:28:36 +00:00
|
|
|
class RATSNEST_ITEM;
|
2008-01-28 18:44:14 +00:00
|
|
|
|
2008-01-01 11:46:47 +00:00
|
|
|
|
|
|
|
/* main window classes : */
|
2009-07-30 11:04:07 +00:00
|
|
|
#include "wxBasePcbFrame.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2007-12-09 12:55:53 +00:00
|
|
|
/* Class to handle a board */
|
|
|
|
#include "class_board.h"
|
|
|
|
|
2010-01-21 20:53:01 +00:00
|
|
|
|
2007-05-28 18:09:49 +00:00
|
|
|
// Values for m_DisplayViaMode member:
|
|
|
|
enum DisplayViaMode {
|
2007-08-04 04:42:49 +00:00
|
|
|
VIA_HOLE_NOT_SHOW = 0,
|
|
|
|
VIA_SPECIAL_HOLE_SHOW,
|
|
|
|
ALL_VIA_HOLE_SHOW,
|
|
|
|
OPT_VIA_HOLE_END
|
2007-05-28 18:09:49 +00:00
|
|
|
};
|
|
|
|
|
2007-12-09 12:55:53 +00:00
|
|
|
/* Handle info to display a board */
|
2009-07-29 13:10:36 +00:00
|
|
|
#include "class_pcb_screen.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2007-10-26 06:08:19 +00:00
|
|
|
/**********************************/
|
|
|
|
/* Module (Footprint) description */
|
|
|
|
/**********************************/
|
|
|
|
|
2008-01-28 18:44:14 +00:00
|
|
|
#include "class_pad.h" // class for pads
|
|
|
|
#include "class_edge_mod.h" // Class for footprint graphic elements
|
|
|
|
#include "class_text_mod.h" // Class for footprint fields
|
|
|
|
#include "class_module.h" // Class for the footprint
|
2009-05-25 11:53:55 +00:00
|
|
|
#include "class_netinfo.h" // Class for nets
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2008-01-14 19:24:41 +00:00
|
|
|
#include "class_drawsegment.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
#include "class_pcb_text.h"
|
2010-01-18 12:37:53 +00:00
|
|
|
#include "class_dimension.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
#include "class_mire.h"
|
|
|
|
#include "class_track.h"
|
2009-08-01 19:26:05 +00:00
|
|
|
#include "class_marker_pcb.h"
|
2007-12-09 12:55:53 +00:00
|
|
|
#include "class_zone.h"
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2009-06-18 20:51:01 +00:00
|
|
|
/* Values for DISPLAY_OPTIONS.ShowTrackClearanceMode parameter option
|
2009-11-23 20:18:47 +00:00
|
|
|
* This parameter controls how to show tracks and vias clearance area
|
2009-06-18 20:51:01 +00:00
|
|
|
*/
|
|
|
|
enum ShowTrackClearanceModeList {
|
2009-11-23 20:18:47 +00:00
|
|
|
DO_NOT_SHOW_CLEARANCE = 0, // Do not show clearance areas
|
|
|
|
SHOW_CLEARANCE_NEW_TRACKS, /* Show clearance areas only
|
|
|
|
* for new track during track
|
|
|
|
* creation */
|
|
|
|
SHOW_CLEARANCE_NEW_TRACKS_AND_VIA_AREAS, /* Show clearance areas only
|
|
|
|
* for new track during track
|
|
|
|
* creation, and shows a via
|
|
|
|
* clearance area at end of
|
|
|
|
* current new segment (guide
|
|
|
|
* to place a new via
|
|
|
|
*/
|
|
|
|
SHOW_CLEARANCE_ALWAYS /* Show Always clearance areas
|
|
|
|
* for track and vias
|
|
|
|
*/
|
2009-06-18 20:51:01 +00:00
|
|
|
};
|
2007-05-28 18:09:49 +00:00
|
|
|
|
2008-03-01 13:15:41 +00:00
|
|
|
class DISPLAY_OPTIONS
|
2007-05-28 18:09:49 +00:00
|
|
|
{
|
|
|
|
public:
|
2007-08-04 04:42:49 +00:00
|
|
|
bool DisplayPadFill;
|
2009-09-29 04:44:35 +00:00
|
|
|
bool DisplayViaFill;
|
2007-08-04 04:42:49 +00:00
|
|
|
bool DisplayPadNum;
|
|
|
|
bool DisplayPadIsol;
|
|
|
|
|
|
|
|
int DisplayModEdge;
|
|
|
|
int DisplayModText;
|
2009-11-23 20:18:47 +00:00
|
|
|
bool DisplayPcbTrackFill; /* FALSE = sketch , TRUE = filled */
|
|
|
|
int ShowTrackClearanceMode; /* = 0 , 1 or 2
|
|
|
|
* 0 = do not show clearance
|
|
|
|
* 1 = show track clearance
|
|
|
|
* 2 = show clearance + via area
|
|
|
|
* (useful to know what clearance area is
|
|
|
|
* needed if we want to put a via on
|
|
|
|
* terminal track point)
|
|
|
|
*/
|
2009-06-18 20:51:01 +00:00
|
|
|
|
|
|
|
int m_DisplayViaMode; /* 0 do not show via hole,
|
2007-08-08 03:50:44 +00:00
|
|
|
* 1 show via hole for non default value
|
|
|
|
* 2 show all via hole */
|
2007-08-04 04:42:49 +00:00
|
|
|
|
|
|
|
bool DisplayPolarCood;
|
2008-12-12 21:30:07 +00:00
|
|
|
int DisplayZonesMode;
|
2009-03-26 19:27:50 +00:00
|
|
|
int DisplayNetNamesMode; /* 0 do not show netnames,
|
|
|
|
* 1 show netnames on pads
|
|
|
|
* 2 show netnames on tracks
|
|
|
|
* 3 show netnames on tracks and pads
|
2009-05-21 17:42:42 +00:00
|
|
|
*/
|
2009-03-26 19:27:50 +00:00
|
|
|
|
2007-08-04 04:42:49 +00:00
|
|
|
int DisplayDrawItems;
|
|
|
|
bool ContrastModeDisplay;
|
2007-05-28 18:09:49 +00:00
|
|
|
|
|
|
|
public:
|
2007-08-30 22:20:52 +00:00
|
|
|
DISPLAY_OPTIONS();
|
2007-05-28 18:09:49 +00:00
|
|
|
};
|
|
|
|
|
2009-12-07 03:46:13 +00:00
|
|
|
#endif // PCBSTRUCT_H
|