Commit 01d4080e authored by Maciej Suminski's avatar Maciej Suminski

Added selection box for DIMENSION.

parent fb9a4c2b
...@@ -489,6 +489,18 @@ wxString DIMENSION::GetSelectMenuText() const ...@@ -489,6 +489,18 @@ wxString DIMENSION::GetSelectMenuText() const
} }
void DIMENSION::ViewGetLayers( int aLayers[], int& aCount ) const
{
// Layer that simply displays the text
aLayers[0] = m_Layer;
// On the general purpose overlay there is a selection box displayed
aLayers[1] = ITEM_GAL_LAYER( GP_OVERLAY );
aCount = 2;
}
EDA_ITEM* DIMENSION::Clone() const EDA_ITEM* DIMENSION::Clone() const
{ {
return new DIMENSION( *this ); return new DIMENSION( *this );
......
...@@ -144,6 +144,9 @@ public: ...@@ -144,6 +144,9 @@ public:
EDA_ITEM* Clone() const; EDA_ITEM* Clone() const;
/// @copydoc VIEW_ITEM::ViewGetLayers()
virtual void ViewGetLayers( int aLayers[], int& aCount ) const;
#if defined(DEBUG) #if defined(DEBUG)
virtual void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override virtual void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override
#endif #endif
......
...@@ -236,7 +236,7 @@ bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer ) ...@@ -236,7 +236,7 @@ bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
break; break;
case PCB_DIMENSION_T: case PCB_DIMENSION_T:
draw( (DIMENSION*) aItem ); draw( (DIMENSION*) aItem, aLayer );
break; break;
case PCB_TARGET_T: case PCB_TARGET_T:
...@@ -784,29 +784,37 @@ void PCB_PAINTER::draw( const ZONE_CONTAINER* aZone ) ...@@ -784,29 +784,37 @@ void PCB_PAINTER::draw( const ZONE_CONTAINER* aZone )
} }
void PCB_PAINTER::draw( const DIMENSION* aDimension ) void PCB_PAINTER::draw( const DIMENSION* aDimension, int aLayer )
{ {
int layer = aDimension->GetLayer(); if( aLayer == ITEM_GAL_LAYER( GP_OVERLAY ) )
COLOR4D strokeColor = GetColor( NULL, layer ); {
if( aDimension->IsSelected() )
drawSelectionBox( aDimension );
}
else
{
int layer = aDimension->GetLayer();
COLOR4D strokeColor = GetColor( NULL, layer );
m_gal->SetStrokeColor( strokeColor ); m_gal->SetStrokeColor( strokeColor );
m_gal->SetIsFill( false ); m_gal->SetIsFill( false );
m_gal->SetIsStroke( true ); m_gal->SetIsStroke( true );
m_gal->SetLineWidth( aDimension->GetWidth() ); m_gal->SetLineWidth( aDimension->GetWidth() );
// Draw an arrow // Draw an arrow
m_gal->DrawLine( VECTOR2D( aDimension->m_crossBarO ), VECTOR2D( aDimension->m_crossBarF ) ); m_gal->DrawLine( VECTOR2D( aDimension->m_crossBarO ), VECTOR2D( aDimension->m_crossBarF ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineGO ), m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineGO ),
VECTOR2D( aDimension->m_featureLineGF ) ); VECTOR2D( aDimension->m_featureLineGF ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineDO ), m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineDO ),
VECTOR2D( aDimension->m_featureLineDF ) ); VECTOR2D( aDimension->m_featureLineDF ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowD1O ), VECTOR2D( aDimension->m_arrowD1F ) ); m_gal->DrawLine( VECTOR2D( aDimension->m_arrowD1O ), VECTOR2D( aDimension->m_arrowD1F ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowD2O ), VECTOR2D( aDimension->m_arrowD2F ) ); m_gal->DrawLine( VECTOR2D( aDimension->m_arrowD2O ), VECTOR2D( aDimension->m_arrowD2F ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG1O ), VECTOR2D( aDimension->m_arrowG1F ) ); m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG1O ), VECTOR2D( aDimension->m_arrowG1F ) );
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG2O ), VECTOR2D( aDimension->m_arrowG2F ) ); m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG2O ), VECTOR2D( aDimension->m_arrowG2F ) );
// Draw text // Draw text
draw( &aDimension->Text(), layer ); draw( &aDimension->Text(), layer );
}
} }
......
...@@ -145,7 +145,7 @@ protected: ...@@ -145,7 +145,7 @@ protected:
void draw( const TEXTE_PCB*, int ); void draw( const TEXTE_PCB*, int );
void draw( const TEXTE_MODULE*, int ); void draw( const TEXTE_MODULE*, int );
void draw( const ZONE_CONTAINER* ); void draw( const ZONE_CONTAINER* );
void draw( const DIMENSION* ); void draw( const DIMENSION*, int );
void draw( const PCB_TARGET* ); void draw( const PCB_TARGET* );
/// Draws a white semitransparent box indicating an item as selected /// Draws a white semitransparent box indicating an item as selected
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment