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 <erc_settings.h>
41 #include <eeschema_settings.h>
42 #include <math/box2.h>
43 #include <sch_base_frame.h>
44 #include <sch_text.h> // enum PINSHEETLABEL_SHAPE
45 #include <template_fieldnames.h>
46 #include <undo_redo_container.h>
47 
48 class STATUS_TEXT_POPUP;
49 
50 class SCH_ITEM;
51 class EDA_ITEM;
52 class SCH_LINE;
53 class SCH_TEXT;
54 class SCH_BITMAP;
55 class SCH_SHEET;
56 class SCH_SHEET_PATH;
57 class SCH_SHEET_PIN;
58 class SCH_COMPONENT;
59 class SCH_FIELD;
60 class SCH_JUNCTION;
61 class SCHEMATIC;
62 class DIALOG_SCH_FIND;
63 class wxFindReplaceData;
64 class RESCUER;
66 
67 // @todo Move this to transform alone with all of the transform manipulation code.
70  CMP_NORMAL, // Normal orientation, no rotation or mirror
71  CMP_ROTATE_CLOCKWISE, // Rotate -90
73  CMP_ORIENT_0, // No rotation and no mirror id CMP_NORMAL
74  CMP_ORIENT_90, // Rotate 90, no mirror
75  CMP_ORIENT_180, // Rotate 180, no mirror
76  CMP_ORIENT_270, // Rotate -90, no mirror
77  CMP_MIRROR_X = 0x100, // Mirror around X axis
78  CMP_MIRROR_Y = 0x200 // Mirror around Y axis
79 };
80 
81 
87 };
89 
90 
97 };
99 
100 
105 };
106 
107 
112 };
113 
114 
119 {
120  // The schematic editor control class should be able to access some internal
121  // functions of the editor frame.
122  friend class SCH_EDITOR_CONTROL;
123 
124 private:
127 
128  wxPageSetupDialogData m_pageSetupData;
131  int m_exec_flags;
133 
136 
138 
139 protected:
145  bool doAutoSave() override;
146 
150  bool isAutoSaveRequired() const override;
151 
155  void sendNetlistToCvpcb();
156 
157  void onSize( wxSizeEvent& aEvent );
158 
159 public:
160  SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
161  ~SCH_EDIT_FRAME() override;
162 
163  SCH_SCREEN* GetScreen() const override;
164 
165  SELECTION& GetCurrentSelection() override;
166 
167  SCHEMATIC& Schematic() const;
168 
172  bool GetShowAllPins() const override;
173 
177  void SaveProjectSettings() override;
178 
184  bool LoadProjectSettings();
185 
186  void ShowSchematicSetupDialog( const wxString& aInitialPage = wxEmptyString );
187 
188  void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
189  void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
190 
191  void CreateScreens();
192  void ReCreateHToolbar() override;
193  void ReCreateVToolbar() override;
194  void ReCreateOptToolbar() override;
195  void ReCreateMenuBar() override;
196 
197  void setupUIConditions() override;
198 
204  bool IsContentModified() override;
205 
210  void OnModify() override;
211 
215  wxString GetScreenDesc() const override;
216 
235  void ExecuteRemoteCommand( const char* cmdline ) override;
236 
237  void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
238 
243  void AddItemToScreenAndUndoList( SCH_SCREEN* aScreen, SCH_ITEM* aItem, bool aUndoAppend );
244 
248  void ShowFindReplaceDialog( bool aReplace );
249 
255  void UpdateHierarchyNavigator( bool aForceUpdate = false );
256 
261 
262  void ShowFindReplaceStatus( const wxString& aMsg, int aStatusTime );
263  void ClearFindReplaceStatus();
264 
268  wxFindReplaceData* GetFindReplaceData();
269 
273  void OnFindDialogClose();
274 
286  bool BreakSegment( SCH_LINE* aSegment, const wxPoint& aPoint,
287  SCH_LINE** aNewSegment = NULL, SCH_SCREEN* aScreen = nullptr );
288 
299  bool BreakSegments( const wxPoint& aPoint, SCH_SCREEN* aScreen = nullptr );
300 
310  bool BreakSegmentsOnJunctions( SCH_SCREEN* aScreen = nullptr );
311 
316  bool TestDanglingEnds();
317 
330  void SendMessageToPCBNEW( EDA_ITEM* aObjectToSync, SCH_COMPONENT* aPart );
331 
337  void SendCrossProbeNetName( const wxString& aNetName );
338 
343  void SetCrossProbeConnection( const SCH_CONNECTION* aConnection );
344 
349 
351  {
352  return m_highlightedConn;
353  }
354 
355  void SetHighlightedConnection( const SCH_CONNECTION* aConnection )
356  {
357  m_highlightedConn = aConnection;
358  }
359 
369  bool ReadyToNetlist( bool aSilent = false, bool aSilentAnnotate = false );
370 
387  bool WriteNetListFile( int aFormat,
388  const wxString& aFullFileName,
389  unsigned aNetlistOptions,
390  REPORTER* aReporter = NULL );
391 
398  void DeleteAnnotation( bool aCurrentSheetOnly, bool* appendUndo );
399 
428  void AnnotateComponents( bool aAnnotateSchematic, ANNOTATE_ORDER_T aSortOption,
429  ANNOTATE_OPTION_T aAlgoOption, int aStartNumber,
430  bool aResetAnnotation, bool aRepairTimestamps, bool aLockUnits,
431  REPORTER& aReporter );
432 
449  int CheckAnnotate( REPORTER& aReporter, bool aOneSheetOnly );
450 
456  int ModalAnnotate( const wxString& aMessage );
457 
458  // Functions used for hierarchy handling
460 
461  void SetCurrentSheet( const SCH_SHEET_PATH& aSheet );
462 
466  void HardRedraw() override;
467 
471  void DisplayCurrentSheet();
472 
478 
484  void OnPageSettingsChange() override;
485 
497 
503  void SetSheetNumberAndCount();
504 
505  wxPageSetupDialogData& GetPageSetupData() { return m_pageSetupData; }
506 
507  void NewProject();
508  void LoadProject();
509 
510  void Save_File( bool doSaveAs = false );
511 
512  bool SaveProject();
513 
514  bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
515 
516  wxString GetCurrentFileName() const override;
517 
523  bool AppendSchematic();
524 
534  bool SaveEEFile( SCH_SHEET* aSheet,
535  bool aSaveUnderNewName = false );
536 
537 
545  bool AskToSaveChanges();
546 
547  SCH_JUNCTION* AddJunction( SCH_SCREEN* aScreen, const wxPoint& aPos, bool aAppendToUndo,
548  bool aFinal = true );
549 
559  bool SchematicCleanUp( SCH_SCREEN* aScreen = nullptr );
560 
571  bool TrimWire( const wxPoint& aStart, const wxPoint& aEnd );
572 
578  std::vector<wxPoint> GetSchematicConnections();
579 
580  void OnOpenPcbnew( wxCommandEvent& event );
581  void OnOpenCvpcb( wxCommandEvent& event );
582  void OnUpdatePCB( wxCommandEvent& event );
583  void OnAnnotate( wxCommandEvent& event );
584 
585 private:
586  // Sets up the tool framework
587  void setupTools();
588 
589  void OnExit( wxCommandEvent& event );
590 
591  void OnLoadFile( wxCommandEvent& event );
592  void OnAppendProject( wxCommandEvent& event );
593  void OnImportProject( wxCommandEvent& event );
594 
595  void OnClearFileHistory( wxCommandEvent& aEvent );
596 
597  bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
598  void doCloseWindow() override;
599 
608  void UpdateTitle();
609 
618  bool checkForNoFullyDefinedLibIds( SCH_SHEET* aSheet );
619 
626  bool importFile( const wxString& aFileName, int aFileType );
627 
632  void mapExistingAnnotation( std::map<wxString, wxString>& aMap );
633 
634 public:
643  bool CheckSheetForRecursion( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy );
644 
656  bool AllowCaseSensitiveFileNameClashes( const wxString& aSchematicFileName );
657 
686  bool EditSheetProperties( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy,
687  bool* aClearAnnotationNewItems );
688 
689  void InitSheet( SCH_SHEET* aSheet, const wxString& aNewFilename );
690 
735  bool LoadSheetFromFile( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHierarchy,
736  const wxString& aFileName );
737 
745 
752 
759  void DeleteJunction( SCH_ITEM* aItem, bool aAppend = false );
760 
761  void ConvertPart( SCH_COMPONENT* aComponent );
762 
763  void SelectUnit( SCH_COMPONENT* aComponent, int aUnit );
764 
765  /* Undo - redo */
766 
791  void SaveCopyInUndoList( SCH_SCREEN* aScreen,
792  SCH_ITEM* aItemToCopy,
793  UNDO_REDO aTypeCommand,
794  bool aAppend,
795  const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
796 
805  void SaveCopyInUndoList( const PICKED_ITEMS_LIST& aItemsList,
806  UNDO_REDO aTypeCommand,
807  bool aAppend,
808  const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
809 
816  void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
817 
830  void ClearUndoORRedoList( UNDO_REDO_LIST whichList, int aItemCount = -1 ) override;
831 
835  void SaveCopyForRepeatItem( SCH_ITEM* aItem );
836 
843 
844  EDA_ITEM* GetItem( const KIID& aId ) override;
845 
851 
861  bool CreateArchiveLibraryCacheFile( bool aUseCurrentSheetFilename = false );
862 
869  bool CreateArchiveLibrary( const wxString& aFileName );
870 
876  virtual void PrintPage( RENDER_SETTINGS* aSettings ) override;
877 
878  void SetNetListerCommand( const wxString& aCommand ) { m_netListerCommand = aCommand; }
879 
883  void DefaultExecFlags() { m_exec_flags = wxEXEC_SYNC; }
884 
890  void SetExecFlags( const int aFlags ) { m_exec_flags |= aFlags; }
891 
898  void ClearExecFlags( const int aFlags ) { m_exec_flags &= ~( aFlags ); }
899 
900  wxString GetNetListerCommand() const { return m_netListerCommand; }
901 
905  void RecalculateConnections( SCH_CLEANUP_FLAGS aCleanupFlags );
906 
910  void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
911 
915  void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
916 
918 
919  void ShowChangedLanguage() override;
920 
921  void SetScreen( BASE_SCREEN* aScreen ) override;
922 
923  const BOX2I GetDocumentExtents() const override;
924 
925  void FixupJunctions();
926 
927  void FocusOnItem( SCH_ITEM* aItem );
928 
938  void ConvertTimeStampUuids();
939 
947  void UpdateSymbolFromEditor( const LIB_PART& aSymbol );
948 
949  DECLARE_EVENT_TABLE()
950 };
951 
952 
953 #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:46
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:52
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:42
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:79
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.
bool AskToSaveChanges()
Checks if any of the screens has unsaved changes and asks the user whether to save or drop them.
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:95
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:537
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:236
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.
const BOX2I GetDocumentExtents() const override
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: common.h:68
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:103
bool AllowCaseSensitiveFileNameClashes(const wxString &aSchematicFileName)
Check aSchematicFileName for a potential file name case sensitivity clashes.
Definition: sheet.cpp:605
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
static PINSHEETLABEL_SHAPE m_lastSheetPinType
Last sheet pin type.
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:43
Annotate by position of component in the schematic sheet object list.
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:43
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:84
bool isAutoSaveRequired() const override
Returns true if the schematic has been modified.
SCH_SHEET_PATH.
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:196
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:216
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...
PINSHEETLABEL_SHAPE
Definition: sch_text.h:152
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.
SCH_HIERLABEL * ImportHierLabel(SCH_SHEET *aSheet)
Import a hierarchical label with no attached sheet pin.
Definition: sheet.cpp:519
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:80
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: base_struct.h:159
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()
void ConvertTimeStampUuids()
Convert sheet and symbol legacy time stamp UUIDs to full UUIDs.
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:464
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:74
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:66
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: LIB_EDIT_FRAME, LIB_VIEW_FRAME,...
void ConvertPart(SCH_COMPONENT *aComponent)
Definition: getpart.cpp:235
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:194
void SetNetListerCommand(const wxString &aCommand)
SCH_SHEET_PIN * CreateSheetPin(SCH_SHEET *aSheet, SCH_HIERLABEL *aLabel)
Create a new SCH_SHEET_PIN object and add it to aSheet at the current cursor position.
Definition: sheet.cpp:483
bool GetShowAllPins() const override
Allow edit frame to show/hide hidden pins.
void ReCreateVToolbar() override
void sendNetlistToCvpcb()
Send the kicad netlist over to CVPCB.