/** * @file class_marker_pcb.h * @brief Markers used to show a drc problem on boards. */ #ifndef CLASS_MARKER_PCB_H #define CLASS_MARKER_PCB_H #include #include class MSG_PANEL_ITEM; class MARKER_PCB : public BOARD_ITEM, public MARKER_BASE { public: MARKER_PCB( BOARD_ITEM* aParent ); /** * Constructor * @param aErrorCode The categorizing identifier for an error * @param aMarkerPos The position of the MARKER_PCB on the BOARD * @param aText Text describing the first of two objects * @param aPos The position of the first of two objects * @param bText Text describing the second of the two conflicting objects * @param bPos The position of the second of two objects */ MARKER_PCB( int aErrorCode, const wxPoint& aMarkerPos, const wxString& aText, const wxPoint& aPos, const wxString& bText, const wxPoint& bPos ); /** * Constructor * @param aErrorCode The categorizing identifier for an error * @param aMarkerPos The position of the MARKER_PCB on the BOARD * @param aText Text describing the object * @param aPos The position of the object */ MARKER_PCB( int aErrorCode, const wxPoint& aMarkerPos, const wxString& aText, const wxPoint& aPos ); ~MARKER_PCB(); void Move(const wxPoint& aMoveVector) { m_Pos += aMoveVector; } void Rotate( const wxPoint& aRotCentre, double aAngle ); void Flip( const wxPoint& aCentre ); void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDrawMode, const wxPoint& aOffset = ZeroOffset ) { DrawMarker( aPanel, aDC, aDrawMode, aOffset ); } const wxPoint& GetPosition() const { return m_Pos; } void SetPosition( const wxPoint& aPos ) { m_Pos = aPos; } bool HitTest( const wxPoint& aPosition ) const { return HitTestMarker( aPosition ); } bool IsOnLayer( LAYER_NUM aLayer ) const; void GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ); wxString GetSelectMenuText() const; BITMAP_DEF GetMenuImage() const { return drc_xpm; } #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif }; #endif // CLASS_MARKER_PCB_H