Add support for LIB_ALIAS objects.
This commit is contained in:
parent
8b4f01b6b7
commit
8e915ae8d8
|
@ -813,9 +813,6 @@ void LIB_PART::GetFields( LIB_FIELDS& aList )
|
|||
{
|
||||
LIB_FIELD* field;
|
||||
|
||||
// The only caller of this function is the library field editor, so it
|
||||
// establishes policy here.
|
||||
|
||||
// Grab the MANDATORY_FIELDS first, in expected order given by
|
||||
// enum NumFieldType
|
||||
for( int id=0; id<MANDATORY_FIELDS; ++id )
|
||||
|
|
|
@ -399,9 +399,7 @@ public:
|
|||
void SetFields( const std::vector <LIB_FIELD>& aFieldsList );
|
||||
|
||||
/**
|
||||
* Return a list of fields withing this part. The only known caller of
|
||||
* this function is the library part field editor, and it establishes
|
||||
* needed behavior.
|
||||
* Return a list of fields within this part.
|
||||
*
|
||||
* @param aList - List to add fields to
|
||||
*/
|
||||
|
|
|
@ -141,6 +141,7 @@ bool SCH_PAINTER::Draw( const VIEW_ITEM *aItem, int aLayer )
|
|||
*/
|
||||
switch(item->Type())
|
||||
{
|
||||
HANDLE_ITEM(LIB_ALIAS_T, LIB_ALIAS);
|
||||
HANDLE_ITEM(LIB_PART_T, LIB_PART);
|
||||
HANDLE_ITEM(LIB_RECTANGLE_T, LIB_RECTANGLE);
|
||||
HANDLE_ITEM(LIB_POLYLINE_T, LIB_POLYLINE);
|
||||
|
@ -170,24 +171,48 @@ bool SCH_PAINTER::Draw( const VIEW_ITEM *aItem, int aLayer )
|
|||
return false;
|
||||
}
|
||||
|
||||
void SCH_PAINTER::draw ( LIB_PART *aComp, int aLayer, bool aDrawFields, int aUnit, int aConvert )
|
||||
|
||||
void SCH_PAINTER::draw( LIB_PART *aComp, int aLayer, bool aDrawFields, int aUnit, int aConvert )
|
||||
{
|
||||
auto comp = const_cast<LIB_PART*>(aComp);
|
||||
for ( auto& item : comp->GetDrawItems() )
|
||||
for( auto& item : aComp->GetDrawItems() )
|
||||
{
|
||||
if( !aDrawFields && item.Type() == LIB_FIELD_T)
|
||||
if( !aDrawFields && item.Type() == LIB_FIELD_T )
|
||||
continue;
|
||||
|
||||
if ( aUnit && item.GetUnit() && aUnit != item.GetUnit() )
|
||||
if( aUnit && item.GetUnit() && aUnit != item.GetUnit() )
|
||||
continue;
|
||||
|
||||
if ( aConvert && item.GetConvert() && aConvert != item.GetConvert() )
|
||||
if( aConvert && item.GetConvert() && aConvert != item.GetConvert() )
|
||||
continue;
|
||||
|
||||
Draw ( &item, aLayer );
|
||||
Draw( &item, aLayer );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SCH_PAINTER::draw( LIB_ALIAS *aAlias, int aLayer )
|
||||
{
|
||||
LIB_PART* comp = aAlias->GetPart();
|
||||
int unit = 0;
|
||||
int convert = 0;
|
||||
|
||||
draw( comp, aLayer, false, unit, convert );
|
||||
|
||||
LIB_FIELDS fields;
|
||||
comp->GetFields( fields );
|
||||
|
||||
if( !aAlias->IsRoot() )
|
||||
{
|
||||
fields[ VALUE ].SetText( aAlias->GetName() );
|
||||
fields[ DATASHEET ].SetText( aAlias->GetDocFileName() );
|
||||
}
|
||||
|
||||
for( LIB_FIELD& field : fields )
|
||||
draw( &field, aLayer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
static VECTOR2D mapCoords( const wxPoint& aCoord )
|
||||
{
|
||||
return VECTOR2D( aCoord.x, -aCoord.y );
|
||||
|
|
|
@ -32,6 +32,7 @@ class LIB_PIN;
|
|||
class LIB_CIRCLE;
|
||||
class LIB_ITEM;
|
||||
class LIB_PART;
|
||||
class LIB_ALIAS;
|
||||
class LIB_POLYLINE;
|
||||
class LIB_ARC;
|
||||
class LIB_FIELD;
|
||||
|
@ -120,6 +121,7 @@ private:
|
|||
void draw( LIB_CIRCLE *, int );
|
||||
void draw( LIB_ITEM *, int );
|
||||
void draw( LIB_PART *, int, bool aDrawFields = true, int aUnit = 0, int aConvert = 0 );
|
||||
void draw( LIB_ALIAS *, int );
|
||||
void draw( LIB_ARC *, int );
|
||||
void draw( LIB_POLYLINE *, int );
|
||||
void draw( LIB_FIELD *, int );
|
||||
|
|
Loading…
Reference in New Issue