KiCad PCB EDA Suite
SCH::IFACE Struct Reference
Inheritance diagram for SCH::IFACE:
KIFACE_BASE UNITS_PROVIDER KIFACE

Public Member Functions

 IFACE (const char *aName, KIWAY::FACE_T aType)
 
bool OnKifaceStart (PGM_BASE *aProgram, int aCtlBits) override
 Typically start_common() is called from here. More...
 
void OnKifaceEnd () override
 Called just once just before the DSO is to be unloaded. More...
 
wxWindow * CreateKiWindow (wxWindow *aParent, int aClassId, KIWAY *aKiway, int aCtlBits=0) override
 Create a wxWindow for the current project. More...
 
void * IfaceOrAddress (int aDataId) override
 Return a pointer to the requested object. More...
 
void SaveFileAs (const wxString &aProjectBasePath, const wxString &aProjectName, const wxString &aNewProjectBasePath, const wxString &aNewProjectName, const wxString &aSrcFilePath, wxString &aErrors) override
 Saving a file under a different name is delegated to the various KIFACEs because the project doesn't know the internal format of the various files (which may have paths in them that need updating). More...
 
int HandleJob (JOB *aJob) override
 
const wxString Name ()
 
APP_SETTINGS_BASEKifaceSettings () const
 
void InitSettings (APP_SETTINGS_BASE *aSettings)
 
int StartFlags () const
 Return whatever was passed as aCtlBits to OnKifaceStart(). More...
 
bool IsSingle () const
 Is this KIFACE running under single_top? More...
 
const wxString & GetHelpFileName () const
 Return just the basename portion of the current help file. More...
 
SEARCH_STACKKifaceSearch ()
 Only for DSO specific 'non-library' files. More...
 
void GetActions (std::vector< TOOL_ACTION * > &aActions) const override
 Append this Kiface's registered actions to the given list. More...
 
EDA_UNITS GetUserUnits () const
 
void SetUserUnits (EDA_UNITS aUnits)
 
const EDA_IU_SCALEGetIuScale () const
 
virtual ORIGIN_TRANSFORMSGetOriginTransforms ()
 
wxString StringFromValue (double aValue, bool aAddUnitLabel=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 Converts aValue in internal units into a united string. More...
 
wxString StringFromValue (const EDA_ANGLE &aValue, bool aAddUnitLabel=false)
 
wxString MessageTextFromValue (double aValue, bool aAddUnitLabel=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 A lower-precision version of StringFromValue(). More...
 
wxString MessageTextFromValue (const EDA_ANGLE &aValue, bool aAddUnitLabel=true)
 
int ValueFromString (const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 Converts aTextValue in aUnits to internal units used by the frame. More...
 
EDA_ANGLE AngleValueFromString (const wxString &aTextValue)
 

Protected Member Functions

bool start_common (int aCtlBits)
 Common things to do for a top program module, during OnKifaceStart(). More...
 
void end_common ()
 Common things to do for a top program module, during OnKifaceEnd();. More...
 

Private Attributes

std::unique_ptr< EESCHEMA_JOBS_HANDLERm_jobHandler
 
KIWAY::FACE_T m_id
 
BIN_MOD m_bm
 
int m_start_flags
 flags provided in OnKifaceStart() More...
 
const EDA_IU_SCALEm_iuScale
 
EDA_UNITS m_userUnits
 

Detailed Description

Definition at line 127 of file eeschema.cpp.

Constructor & Destructor Documentation

◆ IFACE()

SCH::IFACE::IFACE ( const char *  aName,
KIWAY::FACE_T  aType 
)
inline

Definition at line 131 of file eeschema.cpp.

131 :
132 KIFACE_BASE( aName, aType ),
134 {}
constexpr EDA_IU_SCALE schIUScale
Definition: base_units.h:111
KIFACE_BASE(const char *aKifaceName, KIWAY::FACE_T aId)
Definition: kiface_base.h:65
UNITS_PROVIDER(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits)

References MILLIMETRES.

Member Function Documentation

◆ AngleValueFromString()

EDA_ANGLE UNITS_PROVIDER::AngleValueFromString ( const wxString &  aTextValue)
inlineinherited

Definition at line 116 of file units_provider.h.

117 {
119 aTextValue );
120
121 return EDA_ANGLE( angle, DEGREES_T );
122 }
const EDA_IU_SCALE & GetIuScale() const
@ DEGREES_T
Definition: eda_angle.h:31
double DoubleValueFromString(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Function DoubleValueFromString converts aTextValue to a double.
Definition: eda_units.cpp:456
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)

References PNS::angle(), DEGREES, DEGREES_T, EDA_UNIT_UTILS::UI::DoubleValueFromString(), and UNITS_PROVIDER::GetIuScale().

Referenced by FP_TEXT_GRID_TABLE::SetValue().

◆ CreateKiWindow()

wxWindow * SCH::IFACE::CreateKiWindow ( wxWindow *  aParent,
int  aClassId,
KIWAY aKIWAY,
int  aCtlBits = 0 
)
inlineoverridevirtual

Create a wxWindow for the current project.

The caller must cast the return value into the known type.

Parameters
aParentmay be NULL or is otherwise the parent to connect under. If NULL then caller may want to connect the returned wxWindow into some hierarchy after this function returns.
aClassIdidentifies which wxFrame or wxDialog to retrieve, using a value known to the implementing KIFACE.
aKIWAYtells the window which KIWAY (and PROJECT) it is a participant in.
aCtlBitsconsists of bit flags from the set of KFCTL_* #defines above.
Returns
the window created and if not NULL, should be cast into the known type using and old school cast. dynamic_cast is problematic since it needs typeinfo probably not contained in the caller's link image.

Implements KIFACE_BASE.

Definition at line 140 of file eeschema.cpp.

142 {
143 switch( aClassId )
144 {
145 case FRAME_SCH:
146 {
147 SCH_EDIT_FRAME* frame = new SCH_EDIT_FRAME( aKiway, aParent );
148
150
151 if( Kiface().IsSingle() )
152 {
153 // only run this under single_top, not under a project manager.
155 }
156
157 return frame;
158 }
159
161 {
162 SYMBOL_EDIT_FRAME* frame = new SYMBOL_EDIT_FRAME( aKiway, aParent );
163 return frame;
164 }
165
166#ifdef KICAD_SPICE
167 case FRAME_SIMULATOR:
168 {
169 SIM_PLOT_FRAME* frame = new SIM_PLOT_FRAME( aKiway, aParent );
170 return frame;
171 }
172#endif
173 case FRAME_SCH_VIEWER:
175 {
176 SYMBOL_VIEWER_FRAME* frame = new SYMBOL_VIEWER_FRAME( aKiway, aParent,
177 FRAME_T( aClassId ) );
178 return frame;
179 }
180
182 InvokeSchEditSymbolLibTable( aKiway, aParent );
183 // Dialog has completed; nothing to return.
184 return nullptr;
185
187 {
190
191 return new PANEL_SYM_DISPLAY_OPTIONS( aParent, cfg );
192 }
193
195 {
196 EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH_SYMBOL_EDITOR, false );
197
198 if( !frame )
199 frame = aKiway->Player( FRAME_SCH_VIEWER, false );
200
201 if( !frame )
202 frame = aKiway->Player( FRAME_SCH, false );
203
204 if( frame )
205 return new PANEL_SYM_EDITING_OPTIONS( aParent, frame, frame );
206 else
207 return new PANEL_SYM_EDITING_OPTIONS( aParent, this, nullptr );
208 }
209
210 case PANEL_SYM_COLORS:
211 return new PANEL_SYM_COLOR_SETTINGS( aParent );
212
214 {
217
218 return new PANEL_EESCHEMA_DISPLAY_OPTIONS( aParent, cfg );
219 }
220
222 {
223 EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH, false );
224
225 if( !frame )
226 frame = aKiway->Player( FRAME_SCH_SYMBOL_EDITOR, false );
227
228 if( !frame )
229 frame = aKiway->Player( FRAME_SCH_VIEWER, false );
230
231 if( frame )
232 return new PANEL_EESCHEMA_EDITING_OPTIONS( aParent, frame, frame );
233 else
234 return new PANEL_EESCHEMA_EDITING_OPTIONS( aParent, this, nullptr );
235 }
236
238 {
239 EDA_BASE_FRAME* schSettingsProvider = aKiway->Player( FRAME_SCH, false );
240
241 return new PANEL_EESCHEMA_ANNOTATION_OPTIONS( aParent, schSettingsProvider );
242 }
243
244 case PANEL_SCH_COLORS:
245 return new PANEL_EESCHEMA_COLOR_SETTINGS( aParent );
246
248 return new PANEL_TEMPLATE_FIELDNAMES( aParent, nullptr );
249
250 default:
251 return nullptr;
252 }
253 }
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:110
The base frame for deriving all KiCad main window classes.
static void SetSchEditFrame(SCH_EDIT_FRAME *aSchEditFrame)
bool IsSingle() const
Is this KIFACE running under single_top?
Definition: kiface_base.h:105
void CreateServer(int service, bool local=true)
Definition: eda_dde.cpp:43
virtual SETTINGS_MANAGER & GetSettingsManager() const
Definition: pgm_base.h:135
Schematic editor (Eeschema) main window.
T * GetAppSettings(bool aLoadNow=true)
Returns a handle to the a given settings by type If the settings have already been loaded,...
Implementing SIM_PLOT_FRAME_BASE.
The symbol library editor main window.
Symbol library viewer main window.
#define KICAD_SCH_PORT_SERVICE_NUMBER
Scripting window listens for commands for other apps.
Definition: eda_dde.h:43
PGM_BASE & Pgm()
The global Program "get" accessor.
Definition: eeschema.cpp:312
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
Definition: eeschema.cpp:300
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:33
@ FRAME_SCH_SYMBOL_EDITOR
Definition: frame_type.h:35
@ PANEL_SCH_FIELD_NAME_TEMPLATES
Definition: frame_type.h:76
@ FRAME_SCH_VIEWER
Definition: frame_type.h:36
@ PANEL_SCH_DISP_OPTIONS
Definition: frame_type.h:72
@ FRAME_SCH
Definition: frame_type.h:34
@ FRAME_SCH_VIEWER_MODAL
Definition: frame_type.h:37
@ FRAME_SIMULATOR
Definition: frame_type.h:38
@ PANEL_SYM_EDIT_OPTIONS
Definition: frame_type.h:69
@ PANEL_SCH_EDIT_OPTIONS
Definition: frame_type.h:73
@ PANEL_SYM_DISP_OPTIONS
Definition: frame_type.h:68
@ DIALOG_SCH_LIBRARY_TABLE
Definition: frame_type.h:104
@ PANEL_SYM_COLORS
Definition: frame_type.h:70
@ PANEL_SCH_ANNO_OPTIONS
Definition: frame_type.h:74
@ PANEL_SCH_COLORS
Definition: frame_type.h:75
void InvokeSchEditSymbolLibTable(KIWAY *aKiway, wxWindow *aParent)

References FRAME_SCH, KIFACE_BASE::IsSingle(), Kiface(), and EESCHEMA_HELPERS::SetSchEditFrame().

◆ end_common()

void KIFACE_BASE::end_common ( )
protectedinherited

Common things to do for a top program module, during OnKifaceEnd();.

Definition at line 42 of file kiface_base.cpp.

43{
44 m_bm.End();
45}
BIN_MOD m_bm
Definition: kiface_base.h:125
void End()
Definition: bin_mod.cpp:50

References BIN_MOD::End(), and KIFACE_BASE::m_bm.

Referenced by CV::IFACE::OnKifaceEnd(), OnKifaceEnd(), GERBV::IFACE::OnKifaceEnd(), KIFACE_BASE::OnKifaceEnd(), PGE::IFACE::OnKifaceEnd(), PCBCALC::IFACE::OnKifaceEnd(), and PCB::IFACE::OnKifaceEnd().

◆ GetActions()

void KIFACE_BASE::GetActions ( std::vector< TOOL_ACTION * > &  aActions) const
inlineoverridevirtualinherited

Append this Kiface's registered actions to the given list.

Implements KIFACE.

Definition at line 116 of file kiface_base.h.

117 {
119 aActions.push_back( action );
120 }
static std::list< TOOL_ACTION * > & GetActionList()
Return list of TOOL_ACTIONs.
Represent a single user action.
Definition: tool_action.h:68

References ACTION_MANAGER::GetActionList().

◆ GetHelpFileName()

const wxString & KIFACE_BASE::GetHelpFileName ( ) const
inlineinherited

Return just the basename portion of the current help file.

Definition at line 110 of file kiface_base.h.

110{ return m_bm.m_help_file; }
wxString m_help_file
Definition: bin_mod.h:58

References KIFACE_BASE::m_bm, and BIN_MOD::m_help_file.

Referenced by EDA_BASE_FRAME::help_name().

◆ GetIuScale()

◆ GetOriginTransforms()

virtual ORIGIN_TRANSFORMS & UNITS_PROVIDER::GetOriginTransforms ( )
inlinevirtualinherited

Reimplemented in EDA_BASE_FRAME, and PCB_BASE_FRAME.

Definition at line 48 of file units_provider.h.

49 {
50 static ORIGIN_TRANSFORMS identityTransform;
51
52 return identityTransform;
53 }
A class to perform either relative or absolute display origin transforms for a single axis of a point...

◆ GetUserUnits()

EDA_UNITS UNITS_PROVIDER::GetUserUnits ( ) const
inlineinherited

Definition at line 42 of file units_provider.h.

42{ return m_userUnits; }
EDA_UNITS m_userUnits

References UNITS_PROVIDER::m_userUnits.

Referenced by DIALOG_CONSTRAINTS_REPORTER::AddPage(), PG_UNIT_EDITOR::CreateControls(), DIALOG_SHIM::DIALOG_SHIM(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), PL_EDITOR_FRAME::DisplayGridMsg(), EDA_DRAW_FRAME::DisplayUnitsMsg(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawSpecificationStackup(), EVT_GRID_CMD_CELL_CHANGED(), PROPERTIES_PANEL::extractValueAndWritability(), FP_TEXT_GRID_TABLE::FP_TEXT_GRID_TABLE(), PCB_EDIT_FRAME::GenFootprintsReport(), GERBER_DRAW_ITEM::GetMsgPanelInfo(), EDA_DRAW_FRAME::GetUnitPair(), WX_GRID::GetUnitValue(), GetUserUnits(), UNIT_BINDER::init(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), UNITS_PROVIDER::MessageTextFromValue(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), WX_GRID::onCellEditorHidden(), PANEL_SETUP_BOARD_STACKUP::onExportToClipboard(), PANEL_SETUP_NETCLASSES::onUnitsChanged(), UNIT_BINDER::onUnitsChanged(), DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged(), DIALOG_NET_INSPECTOR::onUnitsChanged(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES(), PG_UNIT_EDITOR::PG_UNIT_EDITOR(), PIN_TABLE_DATA_MODEL::PIN_TABLE_DATA_MODEL(), PCB_CONTROL::placeBoardItems(), POSITION_RELATIVE_TOOL::PositionRelative(), PROPERTIES_PANEL::rebuildProperties(), DRC_TOOL::RunTests(), SCH_EDIT_FRAME::SaveSettings(), EDA_DRAW_FRAME::SaveSettings(), WX_GRID::SetUnitsProvider(), PIN_TABLE_DATA_MODEL::SetValue(), FP_TEXT_GRID_TABLE::SetValue(), GERBVIEW_INSPECTION_TOOL::ShowDCodes(), UNITS_PROVIDER::StringFromValue(), COMMON_TOOLS::ToggleUnits(), EDA_DRAW_FRAME::ToggleUserUnits(), EDITOR_CONDITIONS::unitsFunc(), GERBVIEW_FRAME::updateDCodeSelectBox(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), PG_UNIT_EDITOR::UpdateFrame(), PNS_TUNE_STATUS_POPUP::UpdateStatus(), PL_EDITOR_FRAME::UpdateStatusBar(), PCB_BASE_FRAME::UpdateUserUnits(), PCB_EDIT_FRAME::UpdateViaSizeSelectBox(), DRC_TOOL::userUnits(), and UNITS_PROVIDER::ValueFromString().

◆ HandleJob()

int IFACE::HandleJob ( JOB aJob)
overridevirtual

Reimplemented from KIFACE.

Definition at line 562 of file eeschema.cpp.

563{
564 return m_jobHandler->RunJob( aJob );
565}
std::unique_ptr< EESCHEMA_JOBS_HANDLER > m_jobHandler
Definition: eeschema.cpp:289

References m_jobHandler.

◆ IfaceOrAddress()

void * SCH::IFACE::IfaceOrAddress ( int  aDataId)
inlineoverridevirtual

Return a pointer to the requested object.

The safest way to use this is to retrieve a pointer to a static instance of an interface, similar to how the KIFACE interface is exported. But if you know what you are doing use it to retrieve anything you want.

Parameters
aDataIdidentifies which object you want the address of.
Returns
the object requested and must be cast into the know type.

Implements KIFACE_BASE.

Definition at line 265 of file eeschema.cpp.

266 {
267 switch( aDataId )
268 {
270 return (void*) generateSchematicNetlist;
271 }
272
273 return nullptr;
274 }
@ KIFACE_NETLIST_SCHEMATIC
Definition: kiface_ids.h:56
bool generateSchematicNetlist(const wxString &aFilename, wxString &aNetlist)
Definition: eeschema.cpp:114

References SCH::generateSchematicNetlist(), and KIFACE_NETLIST_SCHEMATIC.

◆ InitSettings()

void KIFACE_BASE::InitSettings ( APP_SETTINGS_BASE aSettings)
inlineinherited

Definition at line 95 of file kiface_base.h.

95{ m_bm.InitSettings( aSettings ); }
void InitSettings(APP_SETTINGS_BASE *aPtr)
Takes ownership of a new application settings object.
Definition: bin_mod.h:53

References BIN_MOD::InitSettings(), and KIFACE_BASE::m_bm.

Referenced by BMP2CMP::IFACE::CreateKiWindow(), CV::IFACE::OnKifaceStart(), OnKifaceStart(), GERBV::IFACE::OnKifaceStart(), PGE::IFACE::OnKifaceStart(), PCBCALC::IFACE::OnKifaceStart(), and PCB::IFACE::OnKifaceStart().

◆ IsSingle()

bool KIFACE_BASE::IsSingle ( ) const
inlineinherited

Is this KIFACE running under single_top?

Definition at line 105 of file kiface_base.h.

int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_base.h:127
#define KFCTL_STANDALONE
Running as a standalone Top.
Definition: kiway.h:158

References KFCTL_STANDALONE, and KIFACE_BASE::m_start_flags.

Referenced by ACTION_MENU::AddQuitOrClose(), CreateKiWindow(), PCB::IFACE::CreateKiWindow(), DIALOG_DRC::DIALOG_DRC(), SCH_EDIT_FRAME::OnImportProject(), SCH_EDIT_FRAME::SaveProject(), and SCH_EDIT_FRAME::SendSelectItemsToPcb().

◆ KifaceSearch()

SEARCH_STACK & KIFACE_BASE::KifaceSearch ( )
inlineinherited

Only for DSO specific 'non-library' files.

(The library search path is in the PROJECT class.)

Definition at line 114 of file kiface_base.h.

114{ return m_bm.m_search; }
SEARCH_STACK m_search
Definition: bin_mod.h:60

References KIFACE_BASE::m_bm, and BIN_MOD::m_search.

Referenced by CVPCB_MAINFRAME::buildEquivalenceList(), DS_DATA_MODEL::ResolvePath(), and EDA_BASE_FRAME::sys_search().

◆ KifaceSettings()

APP_SETTINGS_BASE * KIFACE_BASE::KifaceSettings ( ) const
inlineinherited

Definition at line 93 of file kiface_base.h.

93{ return m_bm.m_config; }
APP_SETTINGS_BASE * m_config
maybe from $HOME/.${m_name}
Definition: bin_mod.h:57

References KIFACE_BASE::m_bm, and BIN_MOD::m_config.

Referenced by DIALOG_SYMBOL_FIELDS_TABLE::AddField(), AUTOPLACER::AUTOPLACER(), EDA_BASE_FRAME::config(), BMP2CMP::IFACE::CreateKiWindow(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_COLOR_PICKER::DIALOG_COLOR_PICKER(), DIALOG_ERC::DIALOG_ERC(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_PRINT_GERBVIEW::DIALOG_PRINT_GERBVIEW(), DIALOG_PRINT_PCBNEW::DIALOG_PRINT_PCBNEW(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), KIGFX::eeconfig(), PCB_PLUGIN::FootprintSave(), DIALOG_PLOT_SCHEMATIC::getPlotOptions(), LAYERS_MAP_DIALOG::initDialog(), DIALOG_PLOT_SCHEMATIC::initDlg(), DIALOG_ANNOTATE::InitValues(), DIALOG_EXPORT_NETLIST::InstallCustomPages(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), EDA_DRAW_FRAME::loadCanvasTypeSetting(), DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames(), DIALOG_SYMBOL_FIELDS_TABLE::OnAddField(), DIALOG_SYMBOL_FIELDS_TABLE::OnColumnItemToggled(), LAYERS_MAP_DIALOG::OnGetSetup(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), DIALOG_SYMBOL_PROPERTIES::OnInitDlg(), CV::IFACE::OnKifaceStart(), OnKifaceStart(), GERBV::IFACE::OnKifaceStart(), PGE::IFACE::OnKifaceStart(), PCBCALC::IFACE::OnKifaceStart(), PCB::IFACE::OnKifaceStart(), DIALOG_RESCUE_EACH::OnNeverShowClick(), SCH_EDIT_FRAME::OnResizeHierarchyNavigator(), LAYERS_MAP_DIALOG::OnStoreSetup(), DIALOG_SYMBOL_FIELDS_TABLE::OnTableColSize(), DIALOG_EESCHEMA_PAGE_SETTINGS::onTransferDataToWindow(), SCH_EDIT_FRAME::OpenProjectFiles(), pcbconfig(), TRANSLINE_IDENT::ReadConfig(), PCB_EDIT_FRAME::redrawNetnames(), EDA_DRAW_FRAME::saveCanvasTypeSetting(), LIB_TREE_MODEL_ADAPTER::SaveSettings(), PCB_CALCULATOR_FRAME::SaveSettings(), PANEL_PCBNEW_ACTION_PLUGINS::TransferDataFromWindow(), RATSNEST_VIEW_ITEM::ViewDraw(), TRANSLINE_IDENT::WriteConfig(), DIALOG_EXPORT_NETLIST::WriteCurrentNetlistSetup(), DIALOG_ANNOTATE::~DIALOG_ANNOTATE(), DIALOG_COLOR_PICKER::~DIALOG_COLOR_PICKER(), DIALOG_EESCHEMA_PAGE_SETTINGS::~DIALOG_EESCHEMA_PAGE_SETTINGS(), DIALOG_ERC::~DIALOG_ERC(), DIALOG_LABEL_PROPERTIES::~DIALOG_LABEL_PROPERTIES(), DIALOG_SHEET_PROPERTIES::~DIALOG_SHEET_PROPERTIES(), and DIALOG_SYMBOL_PROPERTIES::~DIALOG_SYMBOL_PROPERTIES().

◆ MessageTextFromValue() [1/2]

wxString UNITS_PROVIDER::MessageTextFromValue ( const EDA_ANGLE aValue,
bool  aAddUnitLabel = true 
)
inlineinherited

Definition at line 94 of file units_provider.h.

95 {
97 aValue.AsDegrees(), aAddUnitLabel,
99 }
constexpr EDA_IU_SCALE unityScale
Definition: base_units.h:112
double AsDegrees() const
Definition: eda_angle.h:149
wxString MessageTextFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
A helper to convert the double length aValue to a string in inches, millimeters, or unscaled units.
Definition: eda_units.cpp:326

References EDA_ANGLE::AsDegrees(), DEGREES, DISTANCE, EDA_UNIT_UTILS::UI::MessageTextFromValue(), and unityScale.

◆ MessageTextFromValue() [2/2]

wxString UNITS_PROVIDER::MessageTextFromValue ( double  aValue,
bool  aAddUnitLabel = true,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

A lower-precision version of StringFromValue().

Should ONLY be used for status text and messages. Not suitable for dialogs, files, etc. where the loss of precision matters.

Definition at line 87 of file units_provider.h.

89 {
91 aAddUnitLabel, aType );
92 }
EDA_UNITS GetUserUnits() const

References UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), and EDA_UNIT_UTILS::UI::MessageTextFromValue().

Referenced by CheckLibSymbol(), DRC_TEST_PROVIDER_MATCHED_LENGTH::checkSkews(), DIALOG_BOARD_REANNOTATE::CoordTowxString(), EDA_DRAW_FRAME::DisplayGridMsg(), GERBVIEW_FRAME::DisplayGridMsg(), PCB_BASE_FRAME::DisplayGridMsg(), GERBER_FILE_IMAGE::DisplayImageInfo(), DRAWING_TOOL::DrawBoardCharacteristics(), DRC_ENGINE::EvalRules(), DIALOG_NET_INSPECTOR::formatLength(), DRC_TEST_PROVIDER::formatMsg(), LIB_SHAPE::GetItemDescription(), SCH_LINE::GetItemDescription(), SCH_SHAPE::GetItemDescription(), DS_DRAW_ITEM_LINE::GetItemDescription(), DS_DRAW_ITEM_RECT::GetItemDescription(), PCB_TRACK::GetItemDescription(), LIB_FIELD::GetMsgPanelInfo(), LIB_PIN::GetMsgPanelInfo(), LIB_TEXT::GetMsgPanelInfo(), LIB_TEXTBOX::GetMsgPanelInfo(), SCH_BITMAP::GetMsgPanelInfo(), SCH_FIELD::GetMsgPanelInfo(), SCH_LABEL_BASE::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), SCH_TEXT::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), DS_DRAW_ITEM_BASE::GetMsgPanelInfo(), FP_TEXT::GetMsgPanelInfo(), FP_TEXTBOX::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), PCB_BITMAP::GetMsgPanelInfo(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_DIM_ALIGNED::GetMsgPanelInfo(), PCB_DIM_LEADER::GetMsgPanelInfo(), PCB_TARGET::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), PCB_VIA::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), STROKE_PARAMS::GetMsgPanelInfo(), FOOTPRINT_SEARCH_HANDLER::GetResultCell(), ZONE_SEARCH_HANDLER::GetResultCell(), TEXT_SEARCH_HANDLER::GetResultCell(), DIALOG_BOARD_REANNOTATE::MakeSampleText(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal(), DIALOG_BOARD_STATISTICS::saveReportClicked(), EDA_SHAPE::ShapeGetMsgPanelInfo(), showCoord(), TRACK_WIDTH_MENU::update(), DIFF_PAIR_MENU::update(), VIA_SIZE_MENU::update(), BOARD_NETLIST_UPDATER::updateCopperZoneNets(), DIALOG_BOARD_STATISTICS::updateDrillGrid(), PCB_CONTROL::UpdateMessagePanel(), PL_EDITOR_FRAME::UpdateMsgPanelInfo(), SCH_BASE_FRAME::UpdateStatusBar(), GERBVIEW_FRAME::UpdateStatusBar(), PCB_BASE_FRAME::UpdateStatusBar(), and DIALOG_BOARD_STATISTICS::updateWidets().

◆ Name()

const wxString KIFACE_BASE::Name ( )
inlineinherited

Definition at line 88 of file kiface_base.h.

89 {
90 return wxString::FromUTF8( m_bm.m_name );
91 }
const char * m_name
name of this binary module, static C string.
Definition: bin_mod.h:55

References KIFACE_BASE::m_bm, and BIN_MOD::m_name.

◆ OnKifaceEnd()

void IFACE::OnKifaceEnd ( )
overridevirtual

Called just once just before the DSO is to be unloaded.

It is called before static C++ destructors are called. A default implementation is supplied.

Reimplemented from KIFACE_BASE.

Definition at line 375 of file eeschema.cpp.

376{
377 end_common();
378}
void end_common()
Common things to do for a top program module, during OnKifaceEnd();.
Definition: kiface_base.cpp:42

References KIFACE_BASE::end_common().

◆ OnKifaceStart()

bool IFACE::OnKifaceStart ( PGM_BASE aProgram,
int  aCtlBits 
)
overridevirtual

Typically start_common() is called from here.

Implements KIFACE_BASE.

Definition at line 326 of file eeschema.cpp.

327{
328 // This is process-level-initialization, not project-level-initialization of the DSO.
329 // Do nothing in here pertinent to a project!
332
333 start_common( aCtlBits );
334
336
337 if( !fn.FileExists() )
338 {
339 if( !( aCtlBits & KFCTL_CLI ) )
340 {
341 DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG fpDialog( nullptr );
342
343 fpDialog.ShowModal();
344 }
345 }
346 else
347 {
348 try
349 {
350 // The global table is not related to a specific project. All projects
351 // will use the same global table. So the KIFACE::OnKifaceStart() contract
352 // of avoiding anything project specific is not violated here.
354 return false;
355 }
356 catch( const IO_ERROR& ioe )
357 {
358 // if we are here, a incorrect global symbol library table was found.
359 // Incorrect global symbol library table is not a fatal error:
360 // the user just has to edit the (partially) loaded table.
361 wxString msg =
362 _( "An error occurred attempting to load the global symbol library table.\n"
363 "Please edit this global symbol library table in Preferences menu." );
364
365 DisplayErrorMessage( nullptr, msg, ioe.What() );
366 }
367 }
368
369 m_jobHandler = std::make_unique<EESCHEMA_JOBS_HANDLER>();
370
371 return true;
372}
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:76
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:30
void InitSettings(APP_SETTINGS_BASE *aSettings)
Definition: kiface_base.h:95
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_base.h:93
bool start_common(int aCtlBits)
Common things to do for a top program module, during OnKifaceStart().
Definition: kiface_base.cpp:32
T * RegisterSettings(T *aSettings, bool aLoadNow=true)
Takes ownership of the pointer passed in.
static SYMBOL_LIB_TABLE & GetGlobalLibTable()
static wxString GetGlobalTableFileName()
Fetch the global symbol library table file name.
static bool LoadGlobalTable(SYMBOL_LIB_TABLE &aTable)
Load the global symbol library table into aTable.
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:325
#define _(s)
int PGM_BASE * aProgram
Definition: eeschema.cpp:306
#define KFCTL_CLI
Running as CLI app.
Definition: kiway.h:160

References _, aProgram, DisplayErrorMessage(), SYMBOL_LIB_TABLE::GetGlobalLibTable(), SYMBOL_LIB_TABLE::GetGlobalTableFileName(), PGM_BASE::GetSettingsManager(), KIFACE_BASE::InitSettings(), KFCTL_CLI, KIFACE_BASE::KifaceSettings(), SYMBOL_LIB_TABLE::LoadGlobalTable(), m_jobHandler, SETTINGS_MANAGER::RegisterSettings(), KIFACE_BASE::start_common(), and IO_ERROR::What().

◆ SaveFileAs()

void IFACE::SaveFileAs ( const wxString &  aProjectBasePath,
const wxString &  aProjectName,
const wxString &  aNewProjectBasePath,
const wxString &  aNewProjectName,
const wxString &  aSrcFilePath,
wxString &  aErrors 
)
overridevirtual

Saving a file under a different name is delegated to the various KIFACEs because the project doesn't know the internal format of the various files (which may have paths in them that need updating).

Reimplemented from KIFACE.

Definition at line 394 of file eeschema.cpp.

397{
398 wxFileName destFile( aSrcFilePath );
399 wxString destPath = destFile.GetPathWithSep();
400 wxUniChar pathSep = wxFileName::GetPathSeparator();
401 wxString ext = destFile.GetExt();
402
403 if( destPath.StartsWith( aProjectBasePath + pathSep ) )
404 destPath.Replace( aProjectBasePath, aNewProjectBasePath, false );
405
406 destFile.SetPath( destPath );
407
408 if( ext == LegacySchematicFileExtension ||
412 {
413 if( destFile.GetName() == aProjectName )
414 {
415 destFile.SetName( aNewProjectName );
416 }
417 else if( destFile.GetName() == aNewProjectName )
418 {
419 wxString msg;
420
421 if( !aErrors.empty() )
422 aErrors += wxS( "\n" );
423
424 msg.Printf( _( "Cannot copy file '%s' as it will be overwritten by the new root "
425 "sheet file." ), destFile.GetFullPath() );
426 aErrors += msg;
427 return;
428 }
429
430 // Sheet paths when auto-generated are relative to the root, so those will stay
431 // pointing to whatever they were pointing at.
432 // The author can create their own absolute and relative sheet paths. Absolute
433 // sheet paths aren't an issue, and relative ones will continue to work as long
434 // as the author didn't include any '..'s. If they did, it's still not clear
435 // whether they should be adjusted or not (as the author may be duplicating an
436 // entire tree with several projects within it), so we leave this as an exercise
437 // to the author.
438
439 KiCopyFile( aSrcFilePath, destFile.GetFullPath(), aErrors );
440 }
441 else if( ext == SchematicSymbolFileExtension )
442 {
443 // Symbols are not project-specific. Keep their source names.
444 KiCopyFile( aSrcFilePath, destFile.GetFullPath(), aErrors );
445 }
448 {
449 if( destFile.GetName() == aProjectName + wxS( "-cache" ) )
450 destFile.SetName( aNewProjectName + wxS( "-cache" ) );
451
452 if( destFile.GetName() == aProjectName + wxS( "-rescue" ) )
453 destFile.SetName( aNewProjectName + wxS( "-rescue" ) );
454
455 KiCopyFile( aSrcFilePath, destFile.GetFullPath(), aErrors );
456 }
457 else if( ext == NetlistFileExtension )
458 {
459 bool success = false;
460
461 if( destFile.GetName() == aProjectName )
462 destFile.SetName( aNewProjectName );
463
464 try
465 {
466 SEXPR::PARSER parser;
467 std::unique_ptr<SEXPR::SEXPR> sexpr( parser.ParseFromFile( TO_UTF8( aSrcFilePath ) ) );
468
469 traverseSEXPR( sexpr.get(), [&]( SEXPR::SEXPR* node )
470 {
471 if( node->IsList() && node->GetNumberOfChildren() > 1
472 && node->GetChild( 0 )->IsSymbol()
473 && node->GetChild( 0 )->GetSymbol() == "source" )
474 {
475 auto pathNode = dynamic_cast<SEXPR::SEXPR_STRING*>( node->GetChild( 1 ) );
476 auto symNode = dynamic_cast<SEXPR::SEXPR_SYMBOL*>( node->GetChild( 1 ) );
477 wxString path;
478
479 if( pathNode )
480 path = pathNode->m_value;
481 else if( symNode )
482 path = symNode->m_value;
483
484 if( path == aProjectName + wxS( ".sch" ) )
485 path = aNewProjectName + wxS( ".sch" );
486 else if( path == aProjectBasePath + "/" + aProjectName + wxS( ".sch" ) )
487 path = aNewProjectBasePath + "/" + aNewProjectName + wxS( ".sch" );
488 else if( path.StartsWith( aProjectBasePath ) )
489 path.Replace( aProjectBasePath, aNewProjectBasePath, false );
490
491 if( pathNode )
492 pathNode->m_value = path;
493 else if( symNode )
494 symNode->m_value = path;
495 }
496 } );
497
498 wxFFile destNetList( destFile.GetFullPath(), "wb" );
499
500 if( destNetList.IsOpened() )
501 success = destNetList.Write( sexpr->AsString( 0 ) );
502
503 // wxFFile dtor will close the file
504 }
505 catch( ... )
506 {
507 success = false;
508 }
509
510 if( !success )
511 {
512 wxString msg;
513
514 if( !aErrors.empty() )
515 aErrors += wxS( "\n" );
516
517 msg.Printf( _( "Cannot copy file '%s'." ), destFile.GetFullPath() );
518 aErrors += msg;
519 }
520 }
521 else if( destFile.GetName() == wxS( "sym-lib-table" ) )
522 {
523 SYMBOL_LIB_TABLE symbolLibTable;
524 symbolLibTable.Load( aSrcFilePath );
525
526 for( unsigned i = 0; i < symbolLibTable.GetCount(); i++ )
527 {
528 LIB_TABLE_ROW& row = symbolLibTable.At( i );
529 wxString uri = row.GetFullURI();
530
531 uri.Replace( wxS( "/" ) + aProjectName + wxS( "-cache.lib" ),
532 wxS( "/" ) + aNewProjectName + wxS( "-cache.lib" ) );
533 uri.Replace( wxS( "/" ) + aProjectName + wxS( "-rescue.lib" ),
534 wxS( "/" ) + aNewProjectName + wxS( "-rescue.lib" ) );
535 uri.Replace( wxS( "/" ) + aProjectName + wxS( ".lib" ),
536 wxS( "/" ) + aNewProjectName + wxS( ".lib" ) );
537
538 row.SetFullURI( uri );
539 }
540
541 try
542 {
543 symbolLibTable.Save( destFile.GetFullPath() );
544 }
545 catch( ... )
546 {
547 wxString msg;
548
549 if( !aErrors.empty() )
550 aErrors += "\n";
551
552 msg.Printf( _( "Cannot copy file '%s'." ), destFile.GetFullPath() );
553 aErrors += msg;
554 }
555 }
556 else
557 {
558 wxFAIL_MSG( wxS( "Unexpected filetype for Eeschema::SaveFileAs()" ) );
559 }
560}
Hold a record identifying a library accessed by the appropriate plug in object in the LIB_TABLE.
void SetFullURI(const wxString &aFullURI)
Change the full URI for the library.
const wxString GetFullURI(bool aSubstituted=false) const
Return the full location specifying URI for the LIB, either in original UI form or in environment var...
LIB_TABLE_ROW & At(unsigned aIndex)
Get the 'n'th LIB_TABLE_ROW object.
void Load(const wxString &aFileName)
Load the library table using the path defined by aFileName aFallBackTable.
unsigned GetCount() const
Get the number of rows contained in the table.
void Save(const wxString &aFileName) const
Write this library table to aFileName in s-expression form.
std::unique_ptr< SEXPR > ParseFromFile(const std::string &aFilename)
static void traverseSEXPR(SEXPR::SEXPR *aNode, const std::function< void(SEXPR::SEXPR *)> &aVisitor)
Definition: eeschema.cpp:381
void KiCopyFile(const wxString &aSrcPath, const wxString &aDestPath, wxString &aErrors)
Definition: gestfich.cpp:214
const std::string BackupFileSuffix
const std::string KiCadSymbolLibFileExtension
const std::string LegacySchematicFileExtension
const std::string LegacySymbolDocumentFileExtension
const std::string NetlistFileExtension
const std::string KiCadSchematicFileExtension
const std::string SchematicSymbolFileExtension
const std::string LegacySymbolLibFileExtension
#define TO_UTF8(wxstring)
Convert a wxString to a UTF8 encoded C string for all wxWidgets build modes.
Definition: macros.h:96

References _, BackupFileSuffix, KiCadSchematicFileExtension, KiCadSymbolLibFileExtension, KiCopyFile(), LegacySchematicFileExtension, LegacySymbolDocumentFileExtension, LegacySymbolLibFileExtension, NetlistFileExtension, SEXPR::PARSER::ParseFromFile(), SchematicSymbolFileExtension, TO_UTF8, and traverseSEXPR().

◆ SetUserUnits()

◆ start_common()

bool KIFACE_BASE::start_common ( int  aCtlBits)
protectedinherited

Common things to do for a top program module, during OnKifaceStart().

Definition at line 32 of file kiface_base.cpp.

33{
34 m_start_flags = aCtlBits;
35 m_bm.Init();
37
38 return true;
39}
KIWAY::FACE_T m_id
Definition: kiface_base.h:123
void Init()
Definition: bin_mod.cpp:38
void GlobalPathsAppend(SEARCH_STACK *aDst, KIWAY::FACE_T aId)
Initialize aDst SEARCH_STACK with KIFACE (DSO) specific settings.

References GlobalPathsAppend(), BIN_MOD::Init(), KIFACE_BASE::m_bm, KIFACE_BASE::m_id, BIN_MOD::m_search, and KIFACE_BASE::m_start_flags.

Referenced by BMP2CMP::IFACE::OnKifaceStart(), CV::IFACE::OnKifaceStart(), OnKifaceStart(), GERBV::IFACE::OnKifaceStart(), PGE::IFACE::OnKifaceStart(), PCBCALC::IFACE::OnKifaceStart(), and PCB::IFACE::OnKifaceStart().

◆ StartFlags()

int KIFACE_BASE::StartFlags ( ) const
inlineinherited

Return whatever was passed as aCtlBits to OnKifaceStart().

Definition at line 100 of file kiface_base.h.

100{ return m_start_flags; }

References KIFACE_BASE::m_start_flags.

◆ StringFromValue() [1/2]

wxString UNITS_PROVIDER::StringFromValue ( const EDA_ANGLE aValue,
bool  aAddUnitLabel = false 
)
inlineinherited

Definition at line 74 of file units_provider.h.

75 {
77 aValue.AsDegrees(), aAddUnitLabel,
79 }
wxString StringFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Returns the string from aValue according to aUnits (inch, mm ...) for display.
Definition: eda_units.cpp:236

References EDA_ANGLE::AsDegrees(), DEGREES, DISTANCE, EDA_UNIT_UTILS::UI::StringFromValue(), and unityScale.

◆ StringFromValue() [2/2]

wxString UNITS_PROVIDER::StringFromValue ( double  aValue,
bool  aAddUnitLabel = false,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

Converts aValue in internal units into a united string.

For readability, trailing 0s are removed if the mantissa has 3 or more digits. This function should be used to display values in dialogs because a value entered in mm (for instance 2.0 mm) could need up to 8 digits mantissa if displayed in inch to avoid truncation or rounding made just by the printf function.

Parameters
aValue= value in internal units
aAddUnitLabel= true to add symbol unit to the string value
Returns
A wxString object containing value and optionally the symbol unit (like 2.000 mm)

Definition at line 67 of file units_provider.h.

69 {
71 aAddUnitLabel, aType );
72 }

References UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), and EDA_UNIT_UTILS::UI::StringFromValue().

Referenced by DIALOG_PLOT::applyPlotSettings(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::buildNetclassesGrid(), PANEL_SETUP_BOARD_STACKUP::computeBoardThickness(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), PANEL_SETUP_BOARD_STACKUP::createRowData(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRAWING_TOOL::DrawSpecificationStackup(), DRC_TEST_PROVIDER::formatMsg(), PIN_TABLE_DATA_MODEL::GetValue(), FP_TEXT_GRID_TABLE::GetValue(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), WX_GRID::onCellEditorHidden(), DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged(), reportMax(), reportMin(), reportOpt(), PANEL_SETUP_BOARD_STACKUP::setDefaultLayerWidths(), WX_GRID::SetUnitValue(), PANEL_SETUP_BOARD_STACKUP::synchronizeWithBoard(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), PANEL_SETUP_CONSTRAINTS::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::Validate(), and DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::Validate().

◆ ValueFromString()

int UNITS_PROVIDER::ValueFromString ( const wxString &  aTextValue,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

Member Data Documentation

◆ m_bm

◆ m_id

KIWAY::FACE_T KIFACE_BASE::m_id
privateinherited

Definition at line 123 of file kiface_base.h.

Referenced by KIFACE_BASE::start_common().

◆ m_iuScale

const EDA_IU_SCALE& UNITS_PROVIDER::m_iuScale
privateinherited

Definition at line 125 of file units_provider.h.

Referenced by UNITS_PROVIDER::GetIuScale().

◆ m_jobHandler

std::unique_ptr<EESCHEMA_JOBS_HANDLER> SCH::IFACE::m_jobHandler
private

Definition at line 289 of file eeschema.cpp.

Referenced by HandleJob(), and OnKifaceStart().

◆ m_start_flags

int KIFACE_BASE::m_start_flags
privateinherited

flags provided in OnKifaceStart()

Definition at line 127 of file kiface_base.h.

Referenced by KIFACE_BASE::IsSingle(), KIFACE_BASE::start_common(), and KIFACE_BASE::StartFlags().

◆ m_userUnits

EDA_UNITS UNITS_PROVIDER::m_userUnits
privateinherited

Definition at line 126 of file units_provider.h.

Referenced by UNITS_PROVIDER::GetUserUnits(), and UNITS_PROVIDER::SetUserUnits().


The documentation for this struct was generated from the following file: