KiCad PCB EDA Suite
sch_edit_frame.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2015 Jean-Pierre Charras, jp.charras wanadoo.fr
5  * Copyright (C) 2008 Wayne Stambaugh <stambaughw@gmail.com>
6  * Copyright (C) 2004-2020 KiCad Developers, see AUTHORS.txt for contributors.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
26 #ifndef SCH_EDIT_FRAME_H
27 #define SCH_EDIT_FRAME_H
28 
29 #include <stddef.h>
30 #include <vector>
31 #include <wx/cmndata.h>
32 #include <wx/event.h>
33 #include <wx/gdicmn.h>
34 #include <wx/string.h>
35 #include <wx/utils.h>
36 
37 #include <config_params.h>
38 #include <core/typeinfo.h>
39 #include <eda_base_frame.h>
40 #include <eeschema_settings.h>
41 #include <math/box2.h>
42 #include <sch_base_frame.h>
43 #include <sch_text.h> // enum PINSHEETLABEL_SHAPE
44 #include <template_fieldnames.h>
45 #include <undo_redo_container.h>
46 
47 class STATUS_TEXT_POPUP;
48 
49 class SCH_ITEM;
50 class EDA_ITEM;
51 class SCH_LINE;
52 class SCH_TEXT;
53 class SCH_BITMAP;
54 class SCH_SHEET;
55 class SCH_SHEET_PATH;
56 class SCH_SHEET_PIN;
57 class SCH_COMPONENT;
58 class SCH_FIELD;
59 class SCH_JUNCTION;
60 class SCHEMATIC;
61 class DIALOG_SCH_FIND;
62 class wxFindReplaceData;
63 class RESCUER;
65 
66 // @todo Move this to transform alone with all of the transform manipulation code.
69  CMP_NORMAL, // Normal orientation, no rotation or mirror
70  CMP_ROTATE_CLOCKWISE, // Rotate -90
72  CMP_ORIENT_0, // No rotation and no mirror id CMP_NORMAL
73  CMP_ORIENT_90, // Rotate 90, no mirror
74  CMP_ORIENT_180, // Rotate 180, no mirror
75  CMP_ORIENT_270, // Rotate -90, no mirror
76  CMP_MIRROR_X = 0x100, // Mirror around X axis
77  CMP_MIRROR_Y = 0x200 // Mirror around Y axis
78 };
79 
80 
86 };
88 
89 
96 };
98 
99 
104 };
105 
106 
111 };
112 
113 
118 {
119  // The schematic editor control class should be able to access some internal
120  // functions of the editor frame.
121  friend class SCH_EDITOR_CONTROL;
122 
123 private:
126 
127  wxPageSetupDialogData m_pageSetupData;
130  int m_exec_flags;
132 
135 
136 protected:
142  bool doAutoSave() override;
143 
147  bool isAutoSaveRequired() const override;
148 
152  void sendNetlistToCvpcb();
153 
154  void onSize( wxSizeEvent& aEvent );
155 
156 public:
157  SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
158  ~SCH_EDIT_FRAME() override;
159 
160  SCH_SCREEN* GetScreen() const override;
161 
162  SELECTION& GetCurrentSelection() override;
163 
164  SCHEMATIC& Schematic() const;
165 
169  bool GetShowAllPins() const override;
170 
174  void SaveProjectSettings() override;
175 
181  bool LoadProjectSettings();
182 
183  void ShowSchematicSetupDialog( const wxString& aInitialPage = wxEmptyString );
184 
185  void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
186  void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
187 
188  void CreateScreens();
189  void ReCreateHToolbar() override;
190  void ReCreateVToolbar() override;
191  void ReCreateOptToolbar() override;
192  void ReCreateMenuBar() override;
193 
194  void setupUIConditions() override;
195 
201  bool IsContentModified() override;
202 
207  void OnModify() override;
208 
212  void RecordERCExclusions();
213 
217  void ResolveERCExclusions();
218 
222  wxString GetScreenDesc() const override;
223 
242  void ExecuteRemoteCommand( const char* cmdline ) override;
243 
244  void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
245 
250  void AddItemToScreenAndUndoList( SCH_SCREEN* aScreen, SCH_ITEM* aItem, bool aUndoAppend );
251 
255  void ShowFindReplaceDialog( bool aReplace );
256 
262  void UpdateHierarchyNavigator( bool aForceUpdate = false );
263 
268 
269  void ShowFindReplaceStatus( const wxString& aMsg, int aStatusTime );
270  void ClearFindReplaceStatus();
271 
275  wxFindReplaceData* GetFindReplaceData();
276 
280  void OnFindDialogClose();
281 
293  bool BreakSegment( SCH_LINE* aSegment, const wxPoint& aPoint,
294  SCH_LINE** aNewSegment = NULL, SCH_SCREEN* aScreen = nullptr );
295 
306  bool BreakSegments( const wxPoint& aPoint, SCH_SCREEN* aScreen = nullptr );
307 
317  bool BreakSegmentsOnJunctions( SCH_SCREEN* aScreen = nullptr );
318 
323  bool TestDanglingEnds();
324 
337  void SendMessageToPCBNEW( EDA_ITEM* aObjectToSync, SCH_COMPONENT* aPart );
338 
344  void SendCrossProbeNetName( const wxString& aNetName );
345 
350  void SetCrossProbeConnection( const SCH_CONNECTION* aConnection );
351 
356 
358  {
359  return m_highlightedConn;
360  }
361 
362  void SetHighlightedConnection( const SCH_CONNECTION* aConnection )
363  {
364  m_highlightedConn = aConnection;
365  }
366 
376  bool ReadyToNetlist( bool aSilent = false, bool aSilentAnnotate = false );
377 
394  bool WriteNetListFile( int aFormat,
395  const wxString& aFullFileName,
396  unsigned aNetlistOptions,
397  REPORTER* aReporter = NULL );
398 
405  void DeleteAnnotation( bool aCurrentSheetOnly, bool* appendUndo );
406 
435  void AnnotateComponents( bool aAnnotateSchematic, ANNOTATE_ORDER_T aSortOption,
436  ANNOTATE_OPTION_T aAlgoOption, int aStartNumber,
437  bool aResetAnnotation, bool aRepairTimestamps, bool aLockUnits,
438  REPORTER& aReporter );
439 
456  int CheckAnnotate( REPORTER& aReporter, bool aOneSheetOnly );
457 
463  int ModalAnnotate( const wxString& aMessage );
464 
465  // Functions used for hierarchy handling
467 
468  void SetCurrentSheet( const SCH_SHEET_PATH& aSheet );
469 
473  void HardRedraw() override;
474 
478  void DisplayCurrentSheet();
479 
485 
491  void OnPageSettingsChange() override;
492 
504 
510  void SetSheetNumberAndCount();
511 
512  wxPageSetupDialogData& GetPageSetupData() { return m_pageSetupData; }
513 
514  void NewProject();
515  void LoadProject();
516 
517  void Save_File( bool doSaveAs = false );
518 
519  bool SaveProject();
520 
521  bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
522 
523  wxString GetCurrentFileName() const override;
524 
530  bool AppendSchematic();
531 
541  bool SaveEEFile( SCH_SHEET* aSheet,
542  bool aSaveUnderNewName = false );
543 
544 
552  bool AskToSaveChanges();
553 
554  SCH_JUNCTION* AddJunction( SCH_SCREEN* aScreen, const wxPoint& aPos, bool aAppendToUndo,
555  bool aFinal = true );
556 
566  bool SchematicCleanUp( SCH_SCREEN* aScreen = nullptr );
567 
578  bool TrimWire( const wxPoint& aStart, const wxPoint& aEnd );
579 
585  std::vector<wxPoint> GetSchematicConnections();
586 
587  void OnOpenPcbnew( wxCommandEvent& event );
588  void OnOpenCvpcb( wxCommandEvent& event );
589  void OnUpdatePCB( wxCommandEvent& event );
590  void OnAnnotate( wxCommandEvent& event );
591 
592 private:
593  // Sets up the tool framework
594  void setupTools();
595 
596  void OnExit( wxCommandEvent& event );
597 
598  void OnLoadFile( wxCommandEvent& event );
599  void OnAppendProject( wxCommandEvent& event );
600  void OnImportProject( wxCommandEvent& event );
601 
602  void OnClearFileHistory( wxCommandEvent& aEvent );
603 
604  bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
605  void doCloseWindow() override;
606 
615  void UpdateTitle();
616 
625  bool checkForNoFullyDefinedLibIds( SCH_SHEET* aSheet );
626 
633  bool importFile( const wxString& aFileName, int aFileType );
634 
639  void mapExistingAnnotation( std::map<wxString, wxString>& aMap );
640 
641 public:
650  bool CheckSheetForRecursion( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy );
651 
663  bool AllowCaseSensitiveFileNameClashes( const wxString& aSchematicFileName );
664 
693  bool EditSheetProperties( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy,
694  bool* aClearAnnotationNewItems );
695 
696  void InitSheet( SCH_SHEET* aSheet, const wxString& aNewFilename );
697 
742  bool LoadSheetFromFile( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy,
743  const wxString& aFileName );
744 
751  void DeleteJunction( SCH_ITEM* aItem, bool aAppend = false );
752 
753  void ConvertPart( SCH_COMPONENT* aComponent );
754 
755  void SelectUnit( SCH_COMPONENT* aComponent, int aUnit );
756 
757  /* Undo - redo */
758 
783  void SaveCopyInUndoList( SCH_SCREEN* aScreen,
784  SCH_ITEM* aItemToCopy,
785  UNDO_REDO aTypeCommand,
786  bool aAppend,
787  const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
788 
797  void SaveCopyInUndoList( const PICKED_ITEMS_LIST& aItemsList,
798  UNDO_REDO aTypeCommand,
799  bool aAppend,
800  const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
801 
808  void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
809 
822  void ClearUndoORRedoList( UNDO_REDO_LIST whichList, int aItemCount = -1 ) override;
823 
827  void SaveCopyForRepeatItem( SCH_ITEM* aItem );
828 
835 
836  EDA_ITEM* GetItem( const KIID& aId ) override;
837 
843 
853  bool CreateArchiveLibraryCacheFile( bool aUseCurrentSheetFilename = false );
854 
861  bool CreateArchiveLibrary( const wxString& aFileName );
862 
868  virtual void PrintPage( RENDER_SETTINGS* aSettings ) override;
869 
870  void SetNetListerCommand( const wxString& aCommand ) { m_netListerCommand = aCommand; }
871 
875  void DefaultExecFlags() { m_exec_flags = wxEXEC_SYNC; }
876 
882  void SetExecFlags( const int aFlags ) { m_exec_flags |= aFlags; }
883 
890  void ClearExecFlags( const int aFlags ) { m_exec_flags &= ~( aFlags ); }
891 
892  wxString GetNetListerCommand() const { return m_netListerCommand; }
893 
897  void RecalculateConnections( SCH_CLEANUP_FLAGS aCleanupFlags );
898 
902  void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
903 
907  void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
908 
910 
911  void ShowChangedLanguage() override;
912 
913  void SetScreen( BASE_SCREEN* aScreen ) override;
914 
915  const BOX2I GetDocumentExtents( bool aIncludeAllVisible = true ) const override;
916 
917  void FixupJunctions();
918 
919  void FocusOnItem( SCH_ITEM* aItem );
920 
928  void UpdateSymbolFromEditor( const LIB_PART& aSymbol );
929 
931 
932  void ShowAllIntersheetRefs( bool aShow );
933 
934  DECLARE_EVENT_TABLE()
935 };
936 
937 
938 #endif // SCH_EDIT_FRAME_H
void SetCurrentSheet(const SCH_SHEET_PATH &aSheet)
bool CheckSheetForRecursion(SCH_SHEET *aSheet, SCH_SHEET_PATH *aHierarchy)
Verify that aSheet will not cause a recursion error in aHierarchy.
Definition: sheet.cpp:44
wxString m_netListerCommand
Command line to call a custom net list generator.
void ShowFindReplaceStatus(const wxString &aMsg, int aStatusTime)
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:51
void OnOpenCvpcb(wxCommandEvent &event)
void onSize(wxSizeEvent &aEvent)
void Save_File(bool doSaveAs=false)
bool SchematicCleanUp(SCH_SCREEN *aScreen=nullptr)
Performs routine schematic cleaning including breaking wire and buses and deleting identical objects ...
SCHEMATIC * m_schematic
The currently loaded schematic.
KIWAY_EXPRESS carries a payload from one KIWAY_PLAYER to another within a PROJECT.
Definition: kiway_express.h:39
void DefaultExecFlags()
Reset the execution flags to defaults for external netlist and bom generators.
void UpdateNetHighlightStatus()
HIERARCHY_NAVIG_DLG * FindHierarchyNavigator()
bool OpenProjectFiles(const std::vector< wxString > &aFileSet, int aCtl=0) override
Function OpenProjectFiles is abstract, and opens a project or set of files given by aFileList.
void mapExistingAnnotation(std::map< wxString, wxString > &aMap)
Fills a map of uuid -> reference from the currently loaded schematic.
void OnLoadFile(wxCommandEvent &event)
wxFindReplaceData * GetFindReplaceData()
Get the find criteria (as set by the dialog).
void SendCrossProbeNetName(const wxString &aNetName)
Sends a net name to pcbnew for highlighting.
bool WriteNetListFile(int aFormat, const wxString &aFullFileName, unsigned aNetlistOptions, REPORTER *aReporter=NULL)
Create a netlist file.
SELECTION & GetCurrentSelection() override
Get the current selection from the canvas area.
void RecalculateConnections(SCH_CLEANUP_FLAGS aCleanupFlags)
Generates the connection data for the entire schematic hierarchy.
RENDER_SETTINGS Contains all the knowledge about how graphical objects are drawn on any output surfac...
void SaveProjectSettings() override
Save changes to the project settings to the project (.pro) file.
COMPONENT_ORIENTATION_T
enum used in RotationMiroir()
Holds all the data relating to one schematic A schematic may consist of one or more sheets (and one r...
Definition: schematic.h:44
ANNOTATE_ORDER_T
Schematic annotation order options.
bool BreakSegments(const wxPoint &aPoint, SCH_SCREEN *aScreen=nullptr)
Checks every wire and bus for a intersection at aPoint and break into two segments at aPoint if an in...
void SetScreen(BASE_SCREEN *aScreen) override
const SCH_CONNECTION * GetHighlightedConnection() const
bool BreakSegment(SCH_LINE *aSegment, const wxPoint &aPoint, SCH_LINE **aNewSegment=NULL, SCH_SCREEN *aScreen=nullptr)
Breaks a single segment into two at the specified point.
void ReCreateMenuBar() override
Recreates the menu bar.
STATUS_TEXT_POPUP.
Definition: status_popup.h:82
void SendCrossProbeClearHighlight()
Tells PcbNew to clear the existing highlighted net, if one exists.
void AnnotateComponents(bool aAnnotateSchematic, ANNOTATE_ORDER_T aSortOption, ANNOTATE_OPTION_T aAlgoOption, int aStartNumber, bool aResetAnnotation, bool aRepairTimestamps, bool aLockUnits, REPORTER &aReporter)
Annotate the components in the schematic that are not currently annotated.
const BOX2I GetDocumentExtents(bool aIncludeAllVisible=true) const override
Returns bbox of document with option to not include some items.
bool AskToSaveChanges()
Checks if any of the screens has unsaved changes and asks the user whether to save or drop them.
void ResolveERCExclusions()
Update markers to match recorded exclusions.
EDA_ITEM * GetItem(const KIID &aId) override
Fetch an item by KIID.
void UpdateTitle()
Set the main window title bar text.
Annotate incrementally using the first free reference number.
void OnAppendProject(wxCommandEvent &event)
void InitSheet(SCH_SHEET *aSheet, const wxString &aNewFilename)
Definition: sheet.cpp:93
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
void DrawCurrentSheetToClipboard()
Use the wxWidgets print code to draw an image of the current sheet onto the clipboard.
Definition: sheet.cpp:481
SCH_CLEANUP_FLAGS
Schematic editor (Eeschema) main window.
bool TestDanglingEnds()
Test all of the connectable objects in the schematic for unused connection points.
void OnPageSettingsChange() override
Called when modifying the page settings.
bool ReadyToNetlist(bool aSilent=false, bool aSilentAnnotate=false)
Checks if we are ready to write a netlist file for the current schematic.
void DisplayCurrentSheet()
Draw the current sheet on the display.
Definition: hierarch.cpp:234
REPORTER is a pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:64
void OnFindDialogClose()
Notification that the Find dialog has closed.
bool canCloseWindow(wxCloseEvent &aCloseEvent) override
void DeleteAnnotation(bool aCurrentSheetOnly, bool *appendUndo)
Clear the current component annotation.
bool importFile(const wxString &aFileName, int aFileType)
Load the given filename but sets the path to the current project path.
bool SaveEEFile(SCH_SHEET *aSheet, bool aSaveUnderNewName=false)
Save aSheet to a schematic file.
UNDO_REDO
Undo Redo considerations: Basically we have 3 cases New item Deleted item Modified item there is also...
void OnImportProject(wxCommandEvent &event)
SCH_JUNCTION * AddJunction(SCH_SCREEN *aScreen, const wxPoint &aPos, bool aAppendToUndo, bool aFinal=true)
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
wxString GetScreenDesc() const override
Return a human-readable description of the current screen.
SCH_EDITOR_CONTROL.
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
void OnClearFileHistory(wxCommandEvent &aEvent)
void SendMessageToPCBNEW(EDA_ITEM *aObjectToSync, SCH_COMPONENT *aPart)
Send a message to Pcbnew via a socket connection.
Definition: kiid.h:44
void doCloseWindow() override
void ReCreateHToolbar() override
bool LoadSheetFromFile(SCH_SHEET *aSheet, SCH_SHEET_PATH *aHierarchy, const wxString &aFileName)
Load a the KiCad schematic file aFileName into the sheet aSheet.
Definition: sheet.cpp:101
bool AllowCaseSensitiveFileNameClashes(const wxString &aSchematicFileName)
Check aSchematicFileName for a potential file name case sensitivity clashes.
Definition: sheet.cpp:549
void UpdateSymbolFromEditor(const LIB_PART &aSymbol)
Update the LIB_PART of the currently selected symbol.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:99
#define NULL
int RecomputeIntersheetsRefs()
void HardRedraw() override
Rebuild the GAL and redraw the screen.
wxPageSetupDialogData m_pageSetupData
BASE_SCREEN handles how to draw a screen (a board, a schematic ...)
Definition: base_screen.h:41
Annotate by position of component in the schematic sheet object list.
void ShowAllIntersheetRefs(bool aShow)
SCHEMATIC & Schematic() const
void UpdateHierarchyNavigator(bool aForceUpdate=false)
Run the Hierarchy Navigator dialog.
Define a library symbol object.
void SaveCopyInUndoList(SCH_SCREEN *aScreen, SCH_ITEM *aItemToCopy, UNDO_REDO aTypeCommand, bool aAppend, const wxPoint &aTransformPoint=wxPoint(0, 0))
Create a copy of the current schematic item, and put it in the undo list.
Base window classes and related definitions.
void SaveCopyForRepeatItem(SCH_ITEM *aItem)
Clone aItem and owns that clone in this container.
bool AppendSchematic()
Import a KiCad schematic into the current sheet.
bool CreateArchiveLibraryCacheFile(bool aUseCurrentSheetFilename=false)
Create a symbol library file with the name of the root document plus the '-cache' suffix,...
Definition: libarch.cpp:42
void KiwayMailIn(KIWAY_EXPRESS &aEvent) override
Function KiwayMailIn receives KIWAY_EXPRESS messages from other players.
std::vector< wxPoint > GetSchematicConnections()
Collects a unique list of all possible connection points in the schematic.
KIWAY is a minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the s...
Definition: kiway.h:273
ANNOTATE_OPTION_T
Schematic annotation type options.
SCH_ITEM * m_item_to_repeat
Last item to insert by the repeat command.
DIALOG_SCH_FIND * m_findReplaceDialog
Define a sheet pin (label) used in sheets to create hierarchical schematics.
Definition: sch_sheet.h:85
bool isAutoSaveRequired() const override
Returns true if the schematic has been modified.
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
wxPageSetupDialogData & GetPageSetupData()
PICKED_ITEMS_LIST is a holder to handle information on schematic or board items.
virtual void PrintPage(RENDER_SETTINGS *aSettings) override
Plot or print the current sheet to the clipboard.
void OnUpdatePCB(wxCommandEvent &event)
void ReCreateOptToolbar() override
Object to handle a bitmap image that can be inserted in a schematic.
Definition: sch_bitmap.h:42
void SelectUnit(SCH_COMPONENT *aComponent, int aUnit)
Definition: getpart.cpp:198
bool LoadProjectSettings()
Loads the KiCad project file (*.pro) settings specific to Eeschema.
const SCH_CONNECTION * m_highlightedConn
The highlighted net or bus, or nullptr.
int CheckAnnotate(REPORTER &aReporter, bool aOneSheetOnly)
Check for annotation errors.
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
Definition: sch_sheet.h:219
void PutDataInPreviousState(PICKED_ITEMS_LIST *aList, bool aRedoCommand)
Restore an undo or redo command to put data pointed by aList in the previous state.
bool doAutoSave() override
Save the schematic files that have been modified and not yet saved.
Annotate by Y position from top to bottom.
UNDO_REDO_LIST
Function ClearUndoORRedoList (virtual).
bool BreakSegmentsOnJunctions(SCH_SCREEN *aScreen=nullptr)
Tests all junctions and bus entries in the schematic for intersections with wires and buses and break...
void OnAnnotate(wxCommandEvent &event)
Annotate using the first free reference number starting at the sheet number * 100.
void ClearFindReplaceStatus()
void SetHighlightedConnection(const SCH_CONNECTION *aConnection)
void ClearExecFlags(const int aFlags)
Clear (removes) specified flags that not needed for next execution of external generator of the netli...
SCH_ITEM * GetRepeatItem() const
Return the item which is to be repeated with the insert key.
int ModalAnnotate(const wxString &aMessage)
Run a modal version of the Annotate dialog for a specific purpose.
void AddItemToScreenAndUndoList(SCH_SCREEN *aScreen, SCH_ITEM *aItem, bool aUndoAppend)
Add an item to the schematic and adds the changes to the undo/redo container.
SCH_SEARCH_T
Schematic search type used by the socket link with Pcbnew.
void InstallPreferences(PAGED_DIALOG *aParent, PANEL_HOTKEYS_EDITOR *aHotkeysPanel) override
Allows Eeschema to install its preferences panels into the preferences dialog.
void OnExit(wxCommandEvent &event)
Segment description base class to describe items which have 2 end points (track, wire,...
Definition: sch_line.h:37
SCH_EDIT_FRAME(KIWAY *aKiway, wxWindow *aParent)
void SetSheetNumberAndCount()
Set the m_ScreenNumber and m_NumberOfScreens members for screens.
Each graphical item can have a SCH_CONNECTION describing its logical connection (to a bus or net).
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
void DeleteJunction(SCH_ITEM *aItem, bool aAppend=false)
Removes a given junction and heals any wire segments under the junction.
void RollbackSchematicFromUndo()
Performs an undo of the last edit WITHOUT logging a corresponding redo.
Annotate by X position from left to right.
Annotate using the first free reference number starting at the sheet number * 1000.
void ShowFindReplaceDialog(bool aReplace)
Run the Find or Find & Replace dialog.
void OnOpenPcbnew(wxCommandEvent &event)
Schematic symbol object.
Definition: sch_component.h:79
void SetCrossProbeConnection(const SCH_CONNECTION *aConnection)
Sends a connection (net or bus) to pcbnew for highlighting.
EDA_ITEM is a base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:148
wxString GetCurrentFileName() const override
Get the full filename + path of the currently opened file in the frame.
~SCH_EDIT_FRAME() override
void ExecuteRemoteCommand(const char *cmdline) override
Execute a remote command sent by Pcbnew via a socket connection.
wxString GetUniqueFilenameForCurrentSheet()
bool EditSheetProperties(SCH_SHEET *aSheet, SCH_SHEET_PATH *aHierarchy, bool *aClearAnnotationNewItems)
Edit an existing sheet or add a new sheet to the schematic.
Definition: sheet.cpp:465
wxString GetNetListerCommand() const
SCH_SHEET_PATH & GetCurrentSheet() const
bool TrimWire(const wxPoint &aStart, const wxPoint &aEnd)
If any single wire passes through both points, remove the portion between the two points,...
void FocusOnItem(SCH_ITEM *aItem)
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag of the current screen and u...
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Saves common frame parameters to a configuration data file.
bool IsContentModified() override
Get if the current schematic has been modified but not saved.
bool checkForNoFullyDefinedLibIds(SCH_SHEET *aSheet)
Verify that the symbol library links aSheet and all of it's child sheets have been remapped to the sy...
Definition: sheet.cpp:72
void ClearUndoORRedoList(UNDO_REDO_LIST whichList, int aItemCount=-1) override
Free the undo or redo list from aList element.
int m_exec_flags
Flags of the wxExecute() function to call a custom net list generator.
void ShowSchematicSetupDialog(const wxString &aInitialPage=wxEmptyString)
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Called after the preferences dialog is run.
bool CreateArchiveLibrary(const wxString &aFileName)
Create a library aFileName that contains all components used in the current schematic.
Definition: libarch.cpp:65
void SetExecFlags(const int aFlags)
Set (adds) specified flags for next execution of external generator of the netlist or bom.
A shim class between EDA_DRAW_FRAME and several derived classes: SYMBOL_EDIT_FRAME,...
void ConvertPart(SCH_COMPONENT *aComponent)
Definition: getpart.cpp:237
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:194
void SetNetListerCommand(const wxString &aCommand)
void RecordERCExclusions()
Scan existing markers and record data from any that are Excluded.
bool GetShowAllPins() const override
Allow edit frame to show/hide hidden pins.
void ReCreateVToolbar() override
void sendNetlistToCvpcb()
Send the kicad netlist over to CVPCB.