You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

328 lines
12 KiB

* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
12 years ago
  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2018 Jean-Pierre Charras, jp.charras at wanadoo.fr
  5. * Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
  6. *
  7. * This program is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU General Public License
  9. * as published by the Free Software Foundation; either version 2
  10. * of the License, or (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, you may find one here:
  19. * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  20. * or you may search the http://www.gnu.org website for the version 2 license,
  21. * or you may write to the Free Software Foundation, Inc.,
  22. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  23. */
  24. /**
  25. * @file cvpcb_mainframe.h
  26. */
  27. #ifndef _CVPCB_MAINFRAME_H_
  28. #define _CVPCB_MAINFRAME_H_
  29. #include <wx/listctrl.h>
  30. #include <wx/filename.h>
  31. #include <pcb_netlist.h>
  32. #include <footprint_info.h>
  33. #include <pcb_base_frame.h>
  34. #include <config_params.h>
  35. #include <auto_associate.h>
  36. #include <memory>
  37. /* Forward declarations of all top-level window classes. */
  38. class wxAuiToolBar;
  39. class FOOTPRINTS_LISTBOX;
  40. class COMPONENTS_LISTBOX;
  41. class LIBRARY_LISTBOX;
  42. class DISPLAY_FOOTPRINTS_FRAME;
  43. class COMPONENT;
  44. class FP_LIB_TABLE;
  45. namespace CV { struct IFACE; }
  46. /**
  47. * The CvPcb application main window.
  48. */
  49. class CVPCB_MAINFRAME : public KIWAY_PLAYER
  50. {
  51. friend struct CV::IFACE;
  52. wxString m_currentSearchPattern;
  53. NETLIST m_netlist;
  54. int m_filteringOptions;
  55. wxAuiToolBar* m_mainToolBar;
  56. FOOTPRINTS_LISTBOX* m_footprintListBox;
  57. LIBRARY_LISTBOX* m_libListBox;
  58. COMPONENTS_LISTBOX* m_compListBox;
  59. wxTextCtrl* m_tcFilterString;
  60. wxStaticText* m_statusLine1;
  61. wxStaticText* m_statusLine2;
  62. wxButton* m_saveAndContinue;
  63. public:
  64. wxArrayString m_ModuleLibNames;
  65. wxArrayString m_EquFilesNames;
  66. FOOTPRINT_LIST* m_FootprintsList;
  67. protected:
  68. bool m_modified;
  69. bool m_skipComponentSelect; // true to skip OnSelectComponent event
  70. // (in automatic selection/deletion of associations)
  71. PARAM_CFG_ARRAY m_projectFileParams;
  72. bool m_initialized;
  73. CVPCB_MAINFRAME( KIWAY* aKiway, wxWindow* aParent );
  74. public:
  75. ~CVPCB_MAINFRAME();
  76. bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl=0 ) override;
  77. void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
  78. /**
  79. * @return a pointer on the Footprint Viewer frame, if exists, or NULL
  80. */
  81. DISPLAY_FOOTPRINTS_FRAME* GetFootprintViewerFrame();
  82. /**
  83. * Function OnSelectComponent
  84. * Called when clicking on a component in component list window
  85. * * Updates the filtered footprint list, if the filtered list option is selected
  86. * * Updates the current selected footprint in footprint list
  87. * * Updates the footprint shown in footprint display window (if opened)
  88. */
  89. void OnSelectComponent( wxListEvent& event );
  90. /**
  91. * Function OnEditFootprintLibraryTable
  92. * displays the footprint library table editing dialog and updates the global and local
  93. * footprint tables accordingly.
  94. */
  95. void OnEditFootprintLibraryTable( wxCommandEvent& event );
  96. void OnCancel( wxCommandEvent& aEvent );
  97. void OnOK( wxCommandEvent& aEvent );
  98. void OnSaveAndContinue( wxCommandEvent& aEvent );
  99. void OnQuit( wxCommandEvent& event );
  100. void OnCloseWindow( wxCloseEvent& Event );
  101. void OnSize( wxSizeEvent& SizeEvent );
  102. void OnKeyDown( wxKeyEvent& aEvent );
  103. void ReCreateHToolbar();
  104. virtual void ReCreateMenuBar() override;
  105. void ShowChangedLanguage() override;
  106. void ChangeFocus( bool aMoveRight );
  107. void ToFirstNA( wxCommandEvent& event );
  108. void ToPreviousNA( wxCommandEvent& event );
  109. /**
  110. * Function DelAssociations
  111. * removes all component footprint associations already made
  112. */
  113. void DelAssociations( wxCommandEvent& event );
  114. void OnConfigurePaths( wxCommandEvent& aEvent );
  115. /**
  116. * Function OnEditEquFilesList
  117. * envokes the equ files list edit dialog.
  118. */
  119. void OnEditEquFilesList( wxCommandEvent& aEvent );
  120. void DisplayModule( wxCommandEvent& event );
  121. void OnComponentRightClick( wxMouseEvent& event );
  122. void OnFootprintRightClick( wxMouseEvent& event );
  123. /**
  124. * Called by the automatic association button
  125. * Read *.equ files to try to find corresponding footprint
  126. * for each component that is not already linked to a footprint ( a "free"
  127. * component )
  128. * format of a line:
  129. * 'cmp_ref' 'footprint_name'
  130. */
  131. void AutomaticFootprintMatching( wxCommandEvent& event );
  132. /**
  133. * Function OnSelectFilteringFootprint
  134. * is the command event handler for enabling and disabling footprint filtering.
  135. */
  136. void OnSelectFilteringFootprint( wxCommandEvent& event );
  137. /**
  138. * Function OnEnterFilteringText
  139. * Is called each time the text of m_tcFilterString is changed.
  140. */
  141. void OnEnterFilteringText( wxCommandEvent& event );
  142. /**
  143. * Function SetNewPkg
  144. * set the footprint name for all selected components in component list
  145. * and selects the next component.
  146. * @param aFootprintName = the new footprint name
  147. */
  148. void SetNewPkg( const wxString& aFootprintName );
  149. /**
  150. * Function SetNewPkg
  151. * Set the footprint name for the component of position aIndex in the component list
  152. *
  153. * @param aFootprintName = the new footprint name
  154. * @param aIndex = the index of the component to modify in the component list
  155. */
  156. void SetNewPkg( const wxString& aFootprintName, int aIndex );
  157. void BuildCmpListBox();
  158. void BuildFOOTPRINTS_LISTBOX();
  159. void BuildLIBRARY_LISTBOX();
  160. /**
  161. * Create or Update the frame showing the current highlighted footprint
  162. * and (if showed) the 3D display frame
  163. */
  164. void CreateScreenCmp();
  165. /**
  166. * Function SaveFootprintAssociation
  167. * saves the edits that the user has done by sending them back to eeschema
  168. * via the kiway.
  169. * Optionally saves the schematic to disk as well.
  170. */
  171. bool SaveFootprintAssociation( bool doSaveSchematic );
  172. /**
  173. * Function ReadNetListAndFpFiles
  174. * loads the netlist file built on the fly by Eeschema and loads
  175. * footprint libraries from fp lib tables.
  176. * @param aNetlist is the netlist from eeschema in kicad s-expr format.
  177. * (see CVPCB_MAINFRAME::KiwayMailIn() to know how to get this netlist)
  178. */
  179. bool ReadNetListAndFpFiles( const std::string& aNetlist );
  180. /**
  181. * Function ReadSchematicNetlist
  182. * read the netlist (.net) file built on the fly by Eeschema.
  183. * @param aNetlist is the netlist buffer filled by eeschema, in kicad s-expr format.
  184. * It is the same netlist as the .net file created by Eeschema.
  185. * (This method is called by ReadNetListAndFpFiles)
  186. */
  187. int ReadSchematicNetlist( const std::string& aNetlist );
  188. /**
  189. * Function LoadProjectFile
  190. * reads the CvPcb configuration parameter from the project (.pro) file \a aFileName
  191. */
  192. void LoadProjectFile();
  193. /**
  194. * Function SaveProjectFile
  195. * Saves the CvPcb configuration parameter from the project (.pro) file \a aFileName
  196. */
  197. void SaveProjectFile();
  198. void LoadSettings( wxConfigBase* aCfg ) override;
  199. void SaveSettings( wxConfigBase* aCfg ) override;
  200. /**
  201. * Function DisplayStatus
  202. * updates the information displayed on the status bar at bottom of the main frame.
  203. *
  204. * When the library or component list controls have the focus, the footprint assignment
  205. * status of the components is displayed in the first status bar pane and the list of
  206. * filters for the selected component is displayed in the second status bar pane. When
  207. * the footprint list control has the focus, the description of the selected footprint is
  208. * displayed in the first status bar pane and the key words for the selected footprint are
  209. * displayed in the second status bar pane. The third status bar pane always displays the
  210. * current footprint list filtering.
  211. */
  212. void DisplayStatus();
  213. /**
  214. * Function LoadFootprintFiles
  215. * reads the list of footprint (*.mod files) and generate the list of footprints.
  216. * for each module are stored
  217. * the module name
  218. * documentation string
  219. * associated keywords
  220. * m_ModuleLibNames is the list of library that must be read (loaded)
  221. * fills m_footprints
  222. * @return true if libraries are found, false otherwise.
  223. */
  224. bool LoadFootprintFiles();
  225. /**
  226. * Function GetProjectFileParameters
  227. * return project file parameter list for CvPcb.
  228. * <p>
  229. * Populate the project file parameter array specific to CvPcb if it hasn't
  230. * already been populated and return a reference to the array to the caller.
  231. * Creating the parameter list at run time has the advantage of being able
  232. * to define local variables. The old method of statically building the array
  233. * at compile time requiring global variable definitions.
  234. * </p>
  235. *
  236. * @return A reference to a PARAM_CFG_ARRAY contain the project settings for CvPcb.
  237. */
  238. PARAM_CFG_ARRAY& GetProjectFileParameters( void );
  239. /**
  240. * Function SendMessageToEESCHEMA
  241. * Send a remote command to Eeschema via a socket,
  242. * Commands are
  243. * $PART: "reference" put cursor on component anchor
  244. * @param aClearHighligntOnly = true if the message to send is only "clear highlight"
  245. * (used when exiting Cvpcb)
  246. */
  247. void SendMessageToEESCHEMA( bool aClearHighligntOnly = false );
  248. COMPONENT* GetSelectedComponent();
  249. /**
  250. * @return the LIB_ID of the selected footprint in footprint listview
  251. * or a empty string if no selection
  252. */
  253. wxString GetSelectedFootprint();
  254. void SetStatusText( const wxString& aText, int aNumber = 0 ) override;
  255. private:
  256. // UI event handlers.
  257. // Keep consistent the display state of toggle menus or tools in toolbar
  258. void OnFilterFPbyKeywords( wxUpdateUIEvent& event );
  259. void OnFilterFPbyPinCount( wxUpdateUIEvent& event );
  260. void OnFilterFPbyLibrary( wxUpdateUIEvent& event );
  261. void OnFilterFPbyKeyName( wxUpdateUIEvent& event );
  262. /**
  263. * read the .equ files and populate the list of equvalents
  264. * @param aList the list to populate
  265. * @param aErrorMessages is a pointer to a wxString to store error messages
  266. * (can be NULL)
  267. * @return the error count ( 0 = no error)
  268. */
  269. int buildEquivalenceList( FOOTPRINT_EQUIVALENCE_LIST& aList, wxString * aErrorMessages = NULL );
  270. void refreshAfterComponentSearch (COMPONENT* component);
  271. DECLARE_EVENT_TABLE()
  272. };
  273. #endif //#ifndef _CVPCB_MAINFRAME_H_