Added selection box for DIMENSION.
This commit is contained in:
parent
fb9a4c2bfc
commit
01d4080e47
|
@ -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
|
||||
{
|
||||
return new DIMENSION( *this );
|
||||
|
|
|
@ -144,6 +144,9 @@ public:
|
|||
|
||||
EDA_ITEM* Clone() const;
|
||||
|
||||
/// @copydoc VIEW_ITEM::ViewGetLayers()
|
||||
virtual void ViewGetLayers( int aLayers[], int& aCount ) const;
|
||||
|
||||
#if defined(DEBUG)
|
||||
virtual void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override
|
||||
#endif
|
||||
|
|
|
@ -236,7 +236,7 @@ bool PCB_PAINTER::Draw( const VIEW_ITEM* aItem, int aLayer )
|
|||
break;
|
||||
|
||||
case PCB_DIMENSION_T:
|
||||
draw( (DIMENSION*) aItem );
|
||||
draw( (DIMENSION*) aItem, aLayer );
|
||||
break;
|
||||
|
||||
case PCB_TARGET_T:
|
||||
|
@ -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();
|
||||
COLOR4D strokeColor = GetColor( NULL, layer );
|
||||
if( aLayer == ITEM_GAL_LAYER( GP_OVERLAY ) )
|
||||
{
|
||||
if( aDimension->IsSelected() )
|
||||
drawSelectionBox( aDimension );
|
||||
}
|
||||
else
|
||||
{
|
||||
int layer = aDimension->GetLayer();
|
||||
COLOR4D strokeColor = GetColor( NULL, layer );
|
||||
|
||||
m_gal->SetStrokeColor( strokeColor );
|
||||
m_gal->SetIsFill( false );
|
||||
m_gal->SetIsStroke( true );
|
||||
m_gal->SetLineWidth( aDimension->GetWidth() );
|
||||
m_gal->SetStrokeColor( strokeColor );
|
||||
m_gal->SetIsFill( false );
|
||||
m_gal->SetIsStroke( true );
|
||||
m_gal->SetLineWidth( aDimension->GetWidth() );
|
||||
|
||||
// Draw an arrow
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_crossBarO ), VECTOR2D( aDimension->m_crossBarF ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineGO ),
|
||||
VECTOR2D( aDimension->m_featureLineGF ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineDO ),
|
||||
VECTOR2D( aDimension->m_featureLineDF ) );
|
||||
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_arrowG1O ), VECTOR2D( aDimension->m_arrowG1F ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG2O ), VECTOR2D( aDimension->m_arrowG2F ) );
|
||||
// Draw an arrow
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_crossBarO ), VECTOR2D( aDimension->m_crossBarF ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineGO ),
|
||||
VECTOR2D( aDimension->m_featureLineGF ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_featureLineDO ),
|
||||
VECTOR2D( aDimension->m_featureLineDF ) );
|
||||
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_arrowG1O ), VECTOR2D( aDimension->m_arrowG1F ) );
|
||||
m_gal->DrawLine( VECTOR2D( aDimension->m_arrowG2O ), VECTOR2D( aDimension->m_arrowG2F ) );
|
||||
|
||||
// Draw text
|
||||
draw( &aDimension->Text(), layer );
|
||||
// Draw text
|
||||
draw( &aDimension->Text(), layer );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ protected:
|
|||
void draw( const TEXTE_PCB*, int );
|
||||
void draw( const TEXTE_MODULE*, int );
|
||||
void draw( const ZONE_CONTAINER* );
|
||||
void draw( const DIMENSION* );
|
||||
void draw( const DIMENSION*, int );
|
||||
void draw( const PCB_TARGET* );
|
||||
|
||||
/// Draws a white semitransparent box indicating an item as selected
|
||||
|
|
Loading…
Reference in New Issue