KiCad PCB EDA Suite
CV::IFACE Struct Reference
Inheritance diagram for CV::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...
 
FILE_HISTORYGetFileHistory ()
 
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 52 of file cvpcb.cpp.

Constructor & Destructor Documentation

◆ IFACE()

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

Definition at line 56 of file cvpcb.cpp.

56  :
57  KIFACE_I( aName, aType )
58  {}
KIFACE_I(const char *aKifaceName, KIWAY::FACE_T aId)
Constructor.
Definition: kiface_i.h:78

Member Function Documentation

◆ CreateWindow()

wxWindow* CV::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 64 of file cvpcb.cpp.

65  {
66  switch( aClassId )
67  {
68  case FRAME_CVPCB:
69  return new CVPCB_MAINFRAME( aKiway, aParent );
70 
72  return new DISPLAY_FOOTPRINTS_FRAME( aKiway, aParent );
73 
74  default:
75  ;
76  }
77 
78  return NULL;
79  }
Class DISPLAY_FOOTPRINTS_FRAME is used to display footprints.
The CvPcb application main window.

References FRAME_CVPCB, and FRAME_CVPCB_DISPLAY.

◆ end_common()

void KIFACE_I::end_common ( )
protectedinherited

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

Definition at line 100 of file kiface_i.cpp.

101 {
102  m_bm.End();
103 }
BIN_MOD m_bm
Definition: kiface_i.h:132
void End()
Definition: bin_mod.cpp:62

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

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

◆ GetFileHistory()

◆ GetHelpFileName()

const wxString& KIFACE_I::GetHelpFileName ( ) const
inlineinherited

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

Definition at line 121 of file kiface_i.h.

121 { return m_bm.m_help_file; }
BIN_MOD m_bm
Definition: kiface_i.h:132
wxString m_help_file
Definition: bin_mod.h:61

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

Referenced by EDA_BASE_FRAME::help_name().

◆ IfaceOrAddress()

void* CV::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 92 of file cvpcb.cpp.

93  {
94  return NULL;
95  }

◆ IsSingle()

bool KIFACE_I::IsSingle ( ) const
inlineinherited

Function IsSingle is this KIFACE_I running under single_top?

Definition at line 115 of file kiface_i.h.

115 { return m_start_flags & KFCTL_STANDALONE; }
int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_i.h:134
#define KFCTL_STANDALONE
Am running as a standalone Top.
Definition: kiway.h:159

References KFCTL_STANDALONE, and KIFACE_I::m_start_flags.

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

◆ KifaceSearch()

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 127 of file kiface_i.h.

127 { return m_bm.m_search; }
BIN_MOD m_bm
Definition: kiface_i.h:132
SEARCH_STACK m_search
Definition: bin_mod.h:63

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

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

◆ KifaceSettings()

wxConfigBase* KIFACE_I::KifaceSettings ( ) const
inlineinherited

Definition at line 103 of file kiface_i.h.

103 { return m_bm.m_config.get(); }
BIN_MOD m_bm
Definition: kiface_i.h:132
std::unique_ptr< wxConfigBase > m_config
maybe from $HOME/.${m_name}
Definition: bin_mod.h:59

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_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_PRINT_GERBVIEW::DIALOG_PRINT_GERBVIEW(), DIALOG_PRINT_PCBNEW::DIALOG_PRINT_PCBNEW(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), FOOTPRINT_EDIT_FRAME::Export_Module(), FOOTPRINT_EDIT_FRAME::Import_Module(), DIALOG_GEN_FOOTPRINT_POSITION::initDialog(), DIALOG_ANNOTATE::InitValues(), EDA_DRAW_FRAME::LoadCanvasTypeSetting(), NETLIST_DIALOG::NETLIST_DIALOG(), FOOTPRINT_PREVIEW_PANEL::New(), LAYERS_MAP_DIALOG::OnGetSetup(), SCH::IFACE::OnKifaceEnd(), SCH::IFACE::OnKifaceStart(), LAYERS_MAP_DIALOG::OnStoreSetup(), SCH_EDIT_FRAME::OpenProjectFiles(), EDA_DRAW_FRAME::saveCanvasTypeSetting(), and DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow().

◆ Name()

const wxString KIFACE_I::Name ( )
inlineinherited

Definition at line 101 of file kiface_i.h.

101 { return wxString::FromUTF8( m_bm.m_name ); }
BIN_MOD m_bm
Definition: kiface_i.h:132
const char * m_name
name of this binary module, static C string.
Definition: bin_mod.h:57

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

◆ OnKifaceEnd()

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 182 of file cvpcb.cpp.

183 {
184  end_common();
185 }
void end_common()
Common things to do for a top program module, during OnKifaceEnd();.
Definition: kiface_i.cpp:100

References KIFACE_I::end_common().

◆ OnKifaceStart()

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 135 of file cvpcb.cpp.

136 {
137  // This is process level, not project level, initialization of the DSO.
138 
139  // Do nothing in here pertinent to a project!
140 
141  start_common( aCtlBits );
142 
143  /* Now that there are no *.mod files in the standard library, this function
144  has no utility. User should simply set the variable manually.
145  Looking for *.mod files which do not exist is fruitless.
146 
147  // SetFootprintLibTablePath();
148  */
149 
150  try
151  {
152  // The global table is not related to a specific project. All projects
153  // will use the same global table. So the KIFACE::OnKifaceStart() contract
154  // of avoiding anything project specific is not violated here.
155 
157  {
158  DisplayInfoMessage( NULL, _(
159  "You have run CvPcb for the first time using the "
160  "new footprint library table method for finding "
161  "footprints.\nCvPcb has either copied the default "
162  "table or created an empty table in your home "
163  "folder.\nYou must first configure the library "
164  "table to include all footprint libraries not "
165  "included with KiCad.\nSee the \"Footprint Library "
166  "Table\" section of the CvPcb documentation for "
167  "more information." ) );
168  }
169  }
170  catch( const IO_ERROR& ioe )
171  {
173  nullptr,
174  _( "An error occurred attempting to load the global footprint library table" ),
175  ioe.What() );
176  return false;
177  }
178 
179  return true;
180 }
bool start_common(int aCtlBits)
Common things to do for a top program module, during OnKifaceStart().
Definition: kiface_i.cpp:90
FP_LIB_TABLE GFootprintTable
!!!!!!!!!!!!!! This code is obsolete because of the merge into pcbnew, don't bother with it.
Definition: cvpcb.cpp:128
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Function DisplayErrorMessage displays an error message with aMessage.
Definition: confirm.cpp:258
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:33
static bool LoadGlobalTable(FP_LIB_TABLE &aTable)
Function LoadGlobalTable loads the global footprint library table into aTable.
void DisplayInfoMessage(wxWindow *aParent, const wxString &aMessage, const wxString &aExtraInfo)
Function DisplayInfoMessage displays an informational message box with aMessage.
Definition: confirm.cpp:276
Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions con...
Definition: ki_exception.h:76

References DisplayErrorMessage(), DisplayInfoMessage(), GFootprintTable, FP_LIB_TABLE::LoadGlobalTable(), KIFACE_I::start_common(), and IO_ERROR::What().

◆ start_common()

bool KIFACE_I::start_common ( int  aCtlBits)
protectedinherited

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

Definition at line 90 of file kiface_i.cpp.

91 {
92  m_start_flags = aCtlBits;
93  m_bm.Init();
95 
96  return true;
97 }
KIWAY::FACE_T m_id
Definition: kiface_i.h:130
void Init()
Definition: bin_mod.cpp:37
BIN_MOD m_bm
Definition: kiface_i.h:132
int m_start_flags
flags provided in OnKifaceStart()
Definition: kiface_i.h:134
SEARCH_STACK m_search
Definition: bin_mod.h:63
static void setSearchPaths(SEARCH_STACK *aDst, KIWAY::FACE_T aId)
Initialize aDst SEARCH_STACK with KIFACE (DSO) specific settings.
Definition: kiface_i.cpp:38

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(), OnKifaceStart(), GERBV::IFACE::OnKifaceStart(), SCH::IFACE::OnKifaceStart(), and PCB::IFACE::OnKifaceStart().

◆ StartFlags()

int KIFACE_I::StartFlags ( ) const
inlineinherited

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

Definition at line 109 of file kiface_i.h.

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

References KIFACE_I::m_start_flags.


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