30#include <api/board/board_types.pb.h>
51 kiapi::board::types::Field field;
53 google::protobuf::Any anyText;
55 anyText.UnpackTo( field.mutable_text() );
58 field.mutable_id()->set_id(
GetId() );
60 aContainer.PackFrom( field );
66 kiapi::board::types::Field field;
68 if( !aContainer.UnpackTo( &field ) )
72 setId( field.id().id() );
76 SetName( wxString( field.name().c_str(), wxConvUTF8 ) );
78 if( field.has_text() )
80 google::protobuf::Any anyText;
81 anyText.PackFrom( field.text() );
85 if( field.text().layer() == kiapi::board::types::BoardLayer::BL_UNKNOWN )
98 else if(
m_name.IsEmpty() && aUseDefaultName )
105 wxFAIL_MSG(
"Unhandled field owner type." );
124 wxFAIL_MSG( wxString::Format(
"Unhandled field owner type (id %d, parent type %d).",
147 return _(
"User Field" );
159 return wxString::Format(
_(
"Reference field of %s" ), ref );
162 return wxString::Format(
_(
"Value field of %s (%s)" ), ref, content );
165 return wxString::Format(
_(
"Footprint field of %s (%s)" ), ref, content );
168 return wxString::Format(
_(
"Datasheet field of %s (%s)" ), ref, content );
172 return wxString::Format(
_(
"Field of %s (%s)" ), ref, content );
174 return wxString::Format(
_(
"%s field of %s (%s)" ),
GetName(), ref, content );
225 return *
this == other;
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
virtual void SetLayer(PCB_LAYER_ID aLayer)
Set the layer this item is on.
FOOTPRINT * GetParentFootprint() const
A base class for most all the KiCad significant classes used in schematics and boards.
KICAD_T Type() const
Returns the type of object.
EDA_ITEM * m_parent
Linked list: Link (parent struct).
A mix-in class (via multiple inheritance) that handles texts such as labels, parts,...
virtual const wxString & GetText() const
Return the string associated with the text object.
double Similarity(const EDA_TEXT &aOther) const
bool operator==(const EDA_TEXT &aRhs) const
Contains methods for drawing PCB-specific items.
virtual PCB_RENDER_SETTINGS * GetSettings() override
Return a pointer to current settings that are going to be used when drawing items.
PCB specific render settings.
bool m_ForceShowFieldsWhenFPSelected
static constexpr double LOD_HIDE
Return this constant from ViewGetLOD() to hide the item unconditionally.
static constexpr double LOD_SHOW
Return this constant from ViewGetLOD() to show the item unconditionally.
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
bool IsLayerVisible(int aLayer) const
Return information about visibility of a particular layer.
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
bool operator==(const PCB_FIELD &aOther) const
wxString GetTextTypeDescription() const override
PCB_FIELD(FOOTPRINT *aParent, int aFieldId, const wxString &aName=wxEmptyString)
wxString GetName(bool aUseDefaultName=true) const
Return the field name (not translated).
void Serialize(google::protobuf::Any &aContainer) const override
Serializes this object to the given Any message.
wxString GetCanonicalName() const
Get a non-language-specific name for a field which can be used for storage, variable look-up,...
void SetName(const wxString &aName)
void swapData(BOARD_ITEM *aImage) override
double Similarity(const BOARD_ITEM &aOther) const override
Return a measure of how likely the other object is to represent the same object.
bool Deserialize(const google::protobuf::Any &aContainer) override
Deserializes the given protobuf message into this object.
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
double ViewGetLOD(int aLayer, const KIGFX::VIEW *aView) const override
Return the level of detail (LOD) of the item.
wxString GetItemDescription(UNITS_PROVIDER *aUnitsProvider, bool aFull) const override
Return a user-visible description string of this item.
void Serialize(google::protobuf::Any &aContainer) const override
Serializes this object to the given Any message.
wxString GetShownText(bool aAllowExtraText, int aDepth=0) const override
Return the string actually shown after processing of the base text.
double ViewGetLOD(int aLayer, const KIGFX::VIEW *aView) const override
Return the level of detail (LOD) of the item.
bool Deserialize(const google::protobuf::Any &aContainer) override
Deserializes the given protobuf message into this object.
Provide class metadata.Helper macro to map type hashes to names.
void InheritsAfter(TYPE_ID aDerived, TYPE_ID aBase)
Declare an inheritance relationship between types.
void Mask(TYPE_ID aDerived, TYPE_ID aBase, const wxString &aName)
Sets a base class property as masked in a derived class.
static PROPERTY_MANAGER & Instance()
void AddTypeCast(TYPE_CAST_BASE *aCast)
Register a type converter.
Some functions to handle hotkeys in KiCad.
@ LAYER_FP_REFERENCES
Show footprints references (when texts are visible).
@ LAYER_FP_VALUES
Show footprints values (when texts are visible).
KICOMMON_API wxString EllipsizeMenuText(const wxString &aString)
Ellipsize text (at the end) to be no more than 36 characters.
static struct PCB_FIELD_DESC _PCB_FIELD_DESC
wxString GetUserFieldName(int aFieldNdx, bool aTranslateForHI)
wxString GetCanonicalFieldName(int idx)
@ DATASHEET_FIELD
name of datasheet
@ FOOTPRINT_FIELD
Field Name Module PCB, i.e. "16DIP300".
@ VALUE_FIELD
Field Value of part, i.e. "3.3K".
@ REFERENCE_FIELD
Field Reference of part, i.e. "IC21".
@ DESCRIPTION_FIELD
Field Description of part, i.e. "1/4W 1% Metal Film Resistor".
@ PCB_FIELD_T
class PCB_FIELD, text associated with a footprint property
@ PCB_FOOTPRINT_T
class FOOTPRINT, a footprint