Moved Type() method from EDA_ITEM to VIEW_ITEM.
This commit is contained in:
parent
dcb5d8f25c
commit
56c78d44bf
|
@ -47,104 +47,6 @@ extern std::ostream& operator <<( std::ostream& out, const wxPoint& pt );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enum KICAD_T
|
|
||||||
* is the set of class identification values, stored in EDA_ITEM::m_StructType
|
|
||||||
*/
|
|
||||||
enum KICAD_T {
|
|
||||||
NOT_USED = -1, ///< the 3d code uses this value
|
|
||||||
|
|
||||||
EOT = 0, ///< search types array terminator (End Of Types)
|
|
||||||
|
|
||||||
TYPE_NOT_INIT = 0,
|
|
||||||
PCB_T,
|
|
||||||
SCREEN_T, ///< not really an item, used to identify a screen
|
|
||||||
|
|
||||||
// Items in pcb
|
|
||||||
PCB_MODULE_T, ///< class MODULE, a footprint
|
|
||||||
PCB_PAD_T, ///< class D_PAD, a pad in a footprint
|
|
||||||
PCB_LINE_T, ///< class DRAWSEGMENT, a segment not on copper layers
|
|
||||||
PCB_TEXT_T, ///< class TEXTE_PCB, text on a layer
|
|
||||||
PCB_MODULE_TEXT_T, ///< class TEXTE_MODULE, text in a footprint
|
|
||||||
PCB_MODULE_EDGE_T, ///< class EDGE_MODULE, a footprint edge
|
|
||||||
PCB_TRACE_T, ///< class TRACKE, a track segment (segment on a copper layer)
|
|
||||||
PCB_VIA_T, ///< class SEGVIA, a via (like a track segment on a copper layer)
|
|
||||||
PCB_ZONE_T, ///< class SEGZONE, a segment used to fill a zone area (segment on a
|
|
||||||
///< copper layer)
|
|
||||||
PCB_MARKER_T, ///< class MARKER_PCB, a marker used to show something
|
|
||||||
PCB_DIMENSION_T, ///< class DIMENSION, a dimension (graphic item)
|
|
||||||
PCB_TARGET_T, ///< class PCB_TARGET, a target (graphic item)
|
|
||||||
PCB_ZONE_AREA_T, ///< class ZONE_CONTAINER, a zone area
|
|
||||||
PCB_ITEM_LIST_T, ///< class BOARD_ITEM_LIST, a list of board items
|
|
||||||
|
|
||||||
// Schematic draw Items. The order of these items effects the sort order.
|
|
||||||
// It is currently ordered to mimic the old Eeschema locate behavior where
|
|
||||||
// the smallest item is the selected item.
|
|
||||||
SCH_MARKER_T,
|
|
||||||
SCH_JUNCTION_T,
|
|
||||||
SCH_NO_CONNECT_T,
|
|
||||||
SCH_BUS_WIRE_ENTRY_T,
|
|
||||||
SCH_BUS_BUS_ENTRY_T,
|
|
||||||
SCH_LINE_T,
|
|
||||||
SCH_BITMAP_T,
|
|
||||||
SCH_TEXT_T,
|
|
||||||
SCH_LABEL_T,
|
|
||||||
SCH_GLOBAL_LABEL_T,
|
|
||||||
SCH_HIERARCHICAL_LABEL_T,
|
|
||||||
SCH_FIELD_T,
|
|
||||||
SCH_COMPONENT_T,
|
|
||||||
SCH_SHEET_PIN_T,
|
|
||||||
SCH_SHEET_T,
|
|
||||||
|
|
||||||
// Be prudent with these 3 types:
|
|
||||||
// they should be used only to locate a specific field type
|
|
||||||
// among SCH_FIELD_T items types
|
|
||||||
SCH_FIELD_LOCATE_REFERENCE_T,
|
|
||||||
SCH_FIELD_LOCATE_VALUE_T,
|
|
||||||
SCH_FIELD_LOCATE_FOOTPRINT_T,
|
|
||||||
|
|
||||||
// General
|
|
||||||
SCH_SCREEN_T,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Draw items in library component.
|
|
||||||
*
|
|
||||||
* The order of these items effects the sort order for items inside the
|
|
||||||
* "DRAW/ENDDRAW" section of the component definition in a library file.
|
|
||||||
* If you add a new draw item, type, please make sure you add it so the
|
|
||||||
* sort order is logical.
|
|
||||||
*/
|
|
||||||
LIB_COMPONENT_T,
|
|
||||||
LIB_ALIAS_T,
|
|
||||||
LIB_ARC_T,
|
|
||||||
LIB_CIRCLE_T,
|
|
||||||
LIB_TEXT_T,
|
|
||||||
LIB_RECTANGLE_T,
|
|
||||||
LIB_POLYLINE_T,
|
|
||||||
LIB_BEZIER_T,
|
|
||||||
LIB_PIN_T,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
|
|
||||||
* types before this line.
|
|
||||||
*/
|
|
||||||
LIB_FIELD_T,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For GerbView: items type:
|
|
||||||
*/
|
|
||||||
TYPE_GERBER_DRAW_ITEM,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* for Pl_Editor, in undo/redo commands
|
|
||||||
*/
|
|
||||||
TYPE_PL_EDITOR_LAYOUT,
|
|
||||||
|
|
||||||
// End value
|
|
||||||
MAX_STRUCT_TYPE_ID
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enum FILL_T
|
* Enum FILL_T
|
||||||
* is the set of fill types used in plotting or drawing enclosed areas.
|
* is the set of fill types used in plotting or drawing enclosed areas.
|
||||||
|
@ -440,12 +342,7 @@ public:
|
||||||
EDA_ITEM( const EDA_ITEM& base );
|
EDA_ITEM( const EDA_ITEM& base );
|
||||||
virtual ~EDA_ITEM() { };
|
virtual ~EDA_ITEM() { };
|
||||||
|
|
||||||
/**
|
/// @copydoc VIEW_ITEM::Type()
|
||||||
* Function Type
|
|
||||||
* returns the type of object. This attribute should never be changed
|
|
||||||
* after a constructor sets it, so there is no public "setter" method.
|
|
||||||
* @return KICAD_T - the type of object.
|
|
||||||
*/
|
|
||||||
KICAD_T Type() const { return m_StructType; }
|
KICAD_T Type() const { return m_StructType; }
|
||||||
|
|
||||||
void SetTimeStamp( time_t aNewTimeStamp ) { m_TimeStamp = aNewTimeStamp; }
|
void SetTimeStamp( time_t aNewTimeStamp ) { m_TimeStamp = aNewTimeStamp; }
|
||||||
|
|
|
@ -36,6 +36,104 @@
|
||||||
#include <view/view.h>
|
#include <view/view.h>
|
||||||
#include <gal/definitions.h>
|
#include <gal/definitions.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enum KICAD_T
|
||||||
|
* is the set of class identification values, stored in EDA_ITEM::m_StructType
|
||||||
|
*/
|
||||||
|
enum KICAD_T {
|
||||||
|
NOT_USED = -1, ///< the 3d code uses this value
|
||||||
|
|
||||||
|
EOT = 0, ///< search types array terminator (End Of Types)
|
||||||
|
|
||||||
|
TYPE_NOT_INIT = 0,
|
||||||
|
PCB_T,
|
||||||
|
SCREEN_T, ///< not really an item, used to identify a screen
|
||||||
|
|
||||||
|
// Items in pcb
|
||||||
|
PCB_MODULE_T, ///< class MODULE, a footprint
|
||||||
|
PCB_PAD_T, ///< class D_PAD, a pad in a footprint
|
||||||
|
PCB_LINE_T, ///< class DRAWSEGMENT, a segment not on copper layers
|
||||||
|
PCB_TEXT_T, ///< class TEXTE_PCB, text on a layer
|
||||||
|
PCB_MODULE_TEXT_T, ///< class TEXTE_MODULE, text in a footprint
|
||||||
|
PCB_MODULE_EDGE_T, ///< class EDGE_MODULE, a footprint edge
|
||||||
|
PCB_TRACE_T, ///< class TRACKE, a track segment (segment on a copper layer)
|
||||||
|
PCB_VIA_T, ///< class SEGVIA, a via (like a track segment on a copper layer)
|
||||||
|
PCB_ZONE_T, ///< class SEGZONE, a segment used to fill a zone area (segment on a
|
||||||
|
///< copper layer)
|
||||||
|
PCB_MARKER_T, ///< class MARKER_PCB, a marker used to show something
|
||||||
|
PCB_DIMENSION_T, ///< class DIMENSION, a dimension (graphic item)
|
||||||
|
PCB_TARGET_T, ///< class PCB_TARGET, a target (graphic item)
|
||||||
|
PCB_ZONE_AREA_T, ///< class ZONE_CONTAINER, a zone area
|
||||||
|
PCB_ITEM_LIST_T, ///< class BOARD_ITEM_LIST, a list of board items
|
||||||
|
|
||||||
|
// Schematic draw Items. The order of these items effects the sort order.
|
||||||
|
// It is currently ordered to mimic the old Eeschema locate behavior where
|
||||||
|
// the smallest item is the selected item.
|
||||||
|
SCH_MARKER_T,
|
||||||
|
SCH_JUNCTION_T,
|
||||||
|
SCH_NO_CONNECT_T,
|
||||||
|
SCH_BUS_WIRE_ENTRY_T,
|
||||||
|
SCH_BUS_BUS_ENTRY_T,
|
||||||
|
SCH_LINE_T,
|
||||||
|
SCH_BITMAP_T,
|
||||||
|
SCH_TEXT_T,
|
||||||
|
SCH_LABEL_T,
|
||||||
|
SCH_GLOBAL_LABEL_T,
|
||||||
|
SCH_HIERARCHICAL_LABEL_T,
|
||||||
|
SCH_FIELD_T,
|
||||||
|
SCH_COMPONENT_T,
|
||||||
|
SCH_SHEET_PIN_T,
|
||||||
|
SCH_SHEET_T,
|
||||||
|
|
||||||
|
// Be prudent with these 3 types:
|
||||||
|
// they should be used only to locate a specific field type
|
||||||
|
// among SCH_FIELD_T items types
|
||||||
|
SCH_FIELD_LOCATE_REFERENCE_T,
|
||||||
|
SCH_FIELD_LOCATE_VALUE_T,
|
||||||
|
SCH_FIELD_LOCATE_FOOTPRINT_T,
|
||||||
|
|
||||||
|
// General
|
||||||
|
SCH_SCREEN_T,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Draw items in library component.
|
||||||
|
*
|
||||||
|
* The order of these items effects the sort order for items inside the
|
||||||
|
* "DRAW/ENDDRAW" section of the component definition in a library file.
|
||||||
|
* If you add a new draw item, type, please make sure you add it so the
|
||||||
|
* sort order is logical.
|
||||||
|
*/
|
||||||
|
LIB_COMPONENT_T,
|
||||||
|
LIB_ALIAS_T,
|
||||||
|
LIB_ARC_T,
|
||||||
|
LIB_CIRCLE_T,
|
||||||
|
LIB_TEXT_T,
|
||||||
|
LIB_RECTANGLE_T,
|
||||||
|
LIB_POLYLINE_T,
|
||||||
|
LIB_BEZIER_T,
|
||||||
|
LIB_PIN_T,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
|
||||||
|
* types before this line.
|
||||||
|
*/
|
||||||
|
LIB_FIELD_T,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For GerbView: items type:
|
||||||
|
*/
|
||||||
|
TYPE_GERBER_DRAW_ITEM,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* for Pl_Editor, in undo/redo commands
|
||||||
|
*/
|
||||||
|
TYPE_PL_EDITOR_LAYOUT,
|
||||||
|
|
||||||
|
// End value
|
||||||
|
MAX_STRUCT_TYPE_ID
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
namespace KiGfx
|
namespace KiGfx
|
||||||
{
|
{
|
||||||
// Forward declarations
|
// Forward declarations
|
||||||
|
@ -81,6 +179,17 @@ public:
|
||||||
delete[] m_groups;
|
delete[] m_groups;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function Type
|
||||||
|
* returns the type of object. This attribute should never be changed
|
||||||
|
* after a constructor sets it, so there is no public "setter" method.
|
||||||
|
* @return KICAD_T - the type of object.
|
||||||
|
*/
|
||||||
|
virtual KICAD_T Type() const
|
||||||
|
{
|
||||||
|
return NOT_USED;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ViewBBox()
|
* Function ViewBBox()
|
||||||
* returns the bounding box of the item covering all its layers.
|
* returns the bounding box of the item covering all its layers.
|
||||||
|
|
|
@ -207,7 +207,7 @@ PCB_PAINTER::PCB_PAINTER( GAL* aGal ) :
|
||||||
bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
|
bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
|
||||||
{
|
{
|
||||||
// the "cast" applied in here clarifies which overloaded draw() is called
|
// the "cast" applied in here clarifies which overloaded draw() is called
|
||||||
switch( item->Type() )
|
switch( aItem->Type() )
|
||||||
{
|
{
|
||||||
case PCB_ZONE_T:
|
case PCB_ZONE_T:
|
||||||
case PCB_TRACE_T:
|
case PCB_TRACE_T:
|
||||||
|
|
Loading…
Reference in New Issue