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

Public Member Functions

 IFACE (const char *aName, KIWAY::FACE_T aType)
 
bool OnKifaceStart (PGM_BASE *aProgram, int aCtlBits) override
 Function OnKifaceStart is called just once shortly after the DSO is loaded. More...
 
void OnKifaceEnd () override
 Function OnKifaceEnd is called just once just before the DSO is to be unloaded. More...
 
wxWindow * CreateWindow (wxWindow *aParent, int aClassId, KIWAY *aKiway, int aCtlBits=0) override
 Function CreateWindow creates a wxWindow for the current project. More...
 
void * IfaceOrAddress (int aDataId) override
 Function IfaceOrAddress return a pointer to the requested object. More...
 
const wxString Name ()
 
wxConfigBase * KifaceSettings () const
 
int StartFlags () const
 Function StartFlags returns whatever was passed as aCtlBits to OnKifaceStart() More...
 
bool IsSingle () const
 Function IsSingle is this KIFACE_I running under single_top? More...
 
const wxString & GetHelpFileName () const
 Function GetHelpFileName returns just the basename portion of the current help file. More...
 
wxFileHistory & GetFileHistory ()
 
SEARCH_STACKKifaceSearch ()
 Only for DSO specific 'non-library' files. More...
 

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...
 

Detailed Description

Definition at line 62 of file eeschema.cpp.

Constructor & Destructor Documentation

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

Definition at line 66 of file eeschema.cpp.

66  :
67  KIFACE_I( aName, aType )
68  {}
KIFACE_I(const char *aKifaceName, KIWAY::FACE_T aId)
Constructor.
Definition: kiface_i.h:76

Member Function Documentation

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

Function CreateWindow creates 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
wxWindow* - 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_I.

Definition at line 74 of file eeschema.cpp.

References CreateServer(), FRAME_SCH, FRAME_SCH_LIB_EDITOR, FRAME_SCH_VIEWER, FRAME_SCH_VIEWER_MODAL, FRAME_SIMULATOR, KIFACE_I::IsSingle(), KICAD_SCH_PORT_SERVICE_NUMBER, and Kiface().

75  {
76  switch( aClassId )
77  {
78  case FRAME_SCH:
79  {
80  SCH_EDIT_FRAME* frame = new SCH_EDIT_FRAME( aKiway, aParent );
81 
82  if( Kiface().IsSingle() )
83  {
84  // only run this under single_top, not under a project manager.
86  }
87  return frame;
88  }
89  break;
90 
92  {
93  LIB_EDIT_FRAME* frame = new LIB_EDIT_FRAME( aKiway, aParent );
94  return frame;
95  }
96  break;
97 
98 #ifdef KICAD_SPICE
99  case FRAME_SIMULATOR:
100  {
101  SIM_PLOT_FRAME* frame = new SIM_PLOT_FRAME( aKiway, aParent );
102  return frame;
103  }
104  break;
105 #endif /* KICAD_SPICE */
106 
107  case FRAME_SCH_VIEWER:
109  {
110  LIB_VIEW_FRAME* frame = new LIB_VIEW_FRAME( aKiway, aParent, FRAME_T( aClassId ) );
111  return frame;
112  }
113  break;
114 
115  default:
116  return NULL;
117  }
118  }
wxSocketServer * CreateServer(wxWindow *window, int service, bool local)
Definition: eda_dde.cpp:49
FRAME_T
Enum FRAME_T is the set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:34
Schematic editor (Eeschema) main window.
Definition: schframe.h:117
Component library viewer main window.
Definition: viewlib_frame.h:49
#define KICAD_SCH_PORT_SERVICE_NUMBER
Definition: eda_dde.h:42
Implementing SIM_PLOT_FRAME_BASE.
bool IsSingle() const
Function IsSingle is this KIFACE_I running under single_top?
Definition: kiface_i.h:113
The component library editor main window.
Definition: libeditframe.h:51
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: eeschema.cpp:145
void KIFACE_I::end_common ( )
protectedinherited

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

Definition at line 104 of file kiface_i.cpp.

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

Referenced by KIFACE_I::OnKifaceEnd(), PGE::IFACE::OnKifaceEnd(), GERBV::IFACE::OnKifaceEnd(), and CV::IFACE::OnKifaceEnd().

105 {
106  m_bm.End();
107 }
BIN_MOD m_bm
Definition: kiface_i.h:130
void End()
Definition: bin_mod.cpp:53
wxFileHistory& KIFACE_I::GetFileHistory ( )
inlineinherited
const wxString& KIFACE_I::GetHelpFileName ( ) const
inlineinherited

Function GetHelpFileName returns just the basename portion of the current help file.

Definition at line 119 of file kiface_i.h.

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

Referenced by EDA_BASE_FRAME::help_name().

119 { return m_bm.m_help_file; }
BIN_MOD m_bm
Definition: kiface_i.h:130
wxString m_help_file
Definition: bin_mod.h:59
void* SCH::IFACE::IfaceOrAddress ( int  aDataId)
inlineoverridevirtual

Function IfaceOrAddress 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
void* - and must be cast into the know type.

Implements KIFACE_I.

Definition at line 131 of file eeschema.cpp.

132  {
133  return NULL;
134  }
bool KIFACE_I::IsSingle ( ) const
inlineinherited

Function IsSingle is this KIFACE_I running under single_top?

Definition at line 113 of file kiface_i.h.

References KFCTL_STANDALONE, and KIFACE_I::m_start_flags.

Referenced by CreateWindow(), PCB::IFACE::CreateWindow(), SCH_EDIT_FRAME::OnOpenPcbnew(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), and SCH_EDIT_FRAME::SendMessageToPCBNEW().

113 { return m_start_flags & KFCTL_STANDALONE; }
int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_i.h:132
#define KFCTL_STANDALONE
Am running as a standalone Top.
Definition: kiway.h:158
SEARCH_STACK& KIFACE_I::KifaceSearch ( )
inlineinherited

Only for DSO specific 'non-library' files.

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

Definition at line 125 of file kiface_i.h.

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

Referenced by CVPCB_MAINFRAME::buildEquivalenceList(), FP_LIB_TABLE::LoadGlobalTable(), SYMBOL_LIB_TABLE::LoadGlobalTable(), WORKSHEET_LAYOUT::MakeFullFileName(), WORKSHEET_LAYOUT::MakeShortFileName(), and EDA_BASE_FRAME::sys_search().

125 { return m_bm.m_search; }
BIN_MOD m_bm
Definition: kiface_i.h:130
SEARCH_STACK m_search
Definition: bin_mod.h:61
wxConfigBase* KIFACE_I::KifaceSettings ( ) const
inlineinherited

Definition at line 101 of file kiface_i.h.

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

Referenced by AUTOPLACER::AUTOPLACER(), PCB_EDIT_FRAME::Begin_Zone(), EDA_BASE_FRAME::config(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_DXF_IMPORT::DIALOG_DXF_IMPORT(), DIALOG_EESCHEMA_CONFIG::DIALOG_EESCHEMA_CONFIG(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_PRINT_FOR_MODEDIT::DIALOG_PRINT_FOR_MODEDIT(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SVG_PRINT::DIALOG_SVG_PRINT(), EDA_DRAW_PANEL::EDA_DRAW_PANEL(), FOOTPRINT_EDIT_FRAME::Export_Module(), FOOTPRINT_EDIT_FRAME::Import_Module(), DIALOG_GEN_MODULE_POSITION::initDialog(), PCB_BASE_FRAME::LoadCanvasTypeSetting(), NETLIST_DIALOG::NETLIST_DIALOG(), LAYERS_MAP_DIALOG::OnGetSetup(), OnKifaceEnd(), OnKifaceStart(), DIALOG_NON_COPPER_ZONES_EDITOR::OnOkClick(), LAYERS_MAP_DIALOG::OnStoreSetup(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_BASE_FRAME::SaveCanvasTypeSetting(), and EDA_DRAW_PANEL::~EDA_DRAW_PANEL().

101 { return m_bm.m_config; }
BIN_MOD m_bm
Definition: kiface_i.h:130
wxConfigBase * m_config
maybe from $HOME/.${m_name}
Definition: bin_mod.h:57
const wxString KIFACE_I::Name ( )
inlineinherited

Definition at line 99 of file kiface_i.h.

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

99 { return wxString::FromUTF8( m_bm.m_name ); }
BIN_MOD m_bm
Definition: kiface_i.h:130
const char * m_name
name of this binary module, static C string.
Definition: bin_mod.h:55
void IFACE::OnKifaceEnd ( )
overridevirtual

Function OnKifaceEnd is 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.

Implements KIFACE.

Definition at line 276 of file eeschema.cpp.

References cfg_params(), KIFACE_I::KifaceSettings(), and wxConfigSaveSetups().

277 {
279  end_common();
280 }
void end_common()
Common things to do for a top program module, during OnKifaceEnd();.
Definition: kiface_i.cpp:104
static PARAM_CFG_ARRAY & cfg_params()
Definition: eeschema.cpp:179
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:101
void wxConfigSaveSetups(wxConfigBase *aCfg, const PARAM_CFG_ARRAY &aList)
Function wxConfigSaveSetups writes aList of PARAM_CFG_ARRAY elements to save configuration values to ...
bool IFACE::OnKifaceStart ( PGM_BASE aProgram,
int  aCtlBits 
)
overridevirtual

Function OnKifaceStart is called just once shortly after the DSO is loaded.

It is the second function called, immediately after the KIFACE_GETTER(). However before either of those, static C++ constructors are called. The DSO implementation should do process level initialization here, not project specific since there will be multiple projects open eventually.

Parameters
aProgramis the process block: PGM_BASE*
aCtlBitsconsists of bit flags from the set of KFCTL_* #defines above.
Returns
bool - true if DSO initialized OK, false if not. When returning false, the loader may optionally decide to terminate the process or not, but will not put out any UI because that is the duty of this function to say why it is returning false. Never return false without having reported to the UI why.

Implements KIFACE_I.

Definition at line 223 of file eeschema.cpp.

References cfg_params(), DARKGRAY, DisplayError(), DisplayInfoMessage(), Format(), g_Eeschema_Hokeys_Descr, GetChars(), SYMBOL_LIB_TABLE::GetGlobalLibTable(), KIFACE_I::KifaceSettings(), LAYER_BACKGROUND, LAYER_FIRST, LAYERSCH_ID_COUNT, SYMBOL_LIB_TABLE::LoadGlobalTable(), ReadHotkeyConfig(), SCH_EDIT_FRAME_NAME, SetLayerColor(), KIFACE_I::start_common(), IO_ERROR::What(), WHITE, and wxConfigLoadSetups().

224 {
225  // This is process level, not project level, initialization of the DSO.
226 
227  // Do nothing in here pertinent to a project!
228 
229  start_common( aCtlBits );
230 
231  // Give a default colour for all layers
232  // (actual color will be initialized by config)
233  for( LAYERSCH_ID ii = LAYER_FIRST; ii < LAYERSCH_ID_COUNT; ++ii )
234  SetLayerColor( COLOR4D( DARKGRAY ), ii );
235 
237 
238  // Must be called before creating the main frame in order to
239  // display the real hotkeys in menus or tool tips
241 
243 
244  try
245  {
246  // The global table is not related to a specific project. All projects
247  // will use the same global table. So the KIFACE::OnKifaceStart() contract
248  // of avoiding anything project specific is not violated here.
250  {
251  DisplayInfoMessage( NULL, _(
252  "You have run Eeschema for the first time using the new symbol library table "
253  "method for finding symbols.\n\n"
254  "Eeschema has either copied the default table or created an empty table in the "
255  "kicad configuration folder.\n\n"
256  "You must first configure the library table to include all symbol libraries you "
257  "want to use.\n\n"
258  "See the \"Symbol Library Table\" section of Eeschema documentation for more "
259  "information." ) );
260  }
261  }
262  catch( const IO_ERROR& ioe )
263  {
264  wxString msg = wxString::Format( _(
265  "An error occurred attempting to load the global symbol library table:\n\n%s" ),
266  GetChars( ioe.What() )
267  );
268  DisplayError( NULL, msg );
269  return false;
270  }
271 
272  return true;
273 }
void ReadHotkeyConfig(const wxString &Appname, struct EDA_HOTKEY_CONFIG *aDescList)
Function ReadHotkeyConfig Read hotkey configuration for a given app, possibly before the frame for th...
bool start_common(int aCtlBits)
Common things to do for a top program module, during OnKifaceStart().
Definition: kiface_i.cpp:94
static SYMBOL_LIB_TABLE & GetGlobalLibTable()
LAYERSCH_ID
Definition: general.h:75
static bool LoadGlobalTable(SYMBOL_LIB_TABLE &aTable)
Function LoadGlobalTable.
static PARAM_CFG_ARRAY & cfg_params()
Definition: eeschema.cpp:179
void SetLayerColor(COLOR4D aColor, LAYERSCH_ID aLayer)
Definition: eeschema.cpp:172
struct EDA_HOTKEY_CONFIG g_Eeschema_Hokeys_Descr[]
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:101
void DisplayInfoMessage(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayInfoMessage displays an informational message box with aMessage.
Definition: confirm.cpp:89
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:33
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
Definition: colors.h:49
#define SCH_EDIT_FRAME_NAME
Definition: schframe.h:112
void wxConfigLoadSetups(wxConfigBase *aCfg, const PARAM_CFG_ARRAY &aList)
Function wxConfigLoadSetups uses aList of PARAM_CFG_ARRAY elements to load configuration values from ...
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions con...
Definition: ki_exception.h:47
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
bool KIFACE_I::start_common ( int  aCtlBits)
protectedinherited

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

Definition at line 94 of file kiface_i.cpp.

References BIN_MOD::Init(), KIFACE_I::m_bm, KIFACE_I::m_id, BIN_MOD::m_search, KIFACE_I::m_start_flags, and setSearchPaths().

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

95 {
96  m_start_flags = aCtlBits;
97  m_bm.Init();
99 
100  return true;
101 }
KIWAY::FACE_T m_id
Definition: kiface_i.h:128
void Init()
Definition: bin_mod.cpp:36
BIN_MOD m_bm
Definition: kiface_i.h:130
int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_i.h:132
SEARCH_STACK m_search
Definition: bin_mod.h:61
static void setSearchPaths(SEARCH_STACK *aDst, KIWAY::FACE_T aId)
Initialize aDst SEARCH_STACK with KIFACE (DSO) specific settings.
Definition: kiface_i.cpp:38
int KIFACE_I::StartFlags ( ) const
inlineinherited

Function StartFlags returns whatever was passed as aCtlBits to OnKifaceStart()

Definition at line 107 of file kiface_i.h.

References KIFACE_I::m_start_flags.

107 { return m_start_flags; }
int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_i.h:132

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