KiCad PCB EDA Suite
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
eda_base_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) 2009-2015 Jean-Pierre Charras, jp.charras wanadoo.fr
5 * Copyright (C) 2011 Wayne Stambaugh <stambaughw@gmail.com>
6 * Copyright (C) 2023 CERN (www.cern.ch)
7 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, you may find one here:
21 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22 * or you may search the http://www.gnu.org website for the version 2 license,
23 * or you may write to the Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25 */
26
32#ifndef EDA_BASE_FRAME_H_
33#define EDA_BASE_FRAME_H_
34
35
36#include <map>
37#include <optional>
38#include <vector>
39
40#include <wx/aui/aui.h>
41#include <layer_ids.h>
42#include <frame_type.h>
43#include <hotkeys_basic.h>
44#include <kiway_holder.h>
45#include <tool/action_toolbar.h>
46#include <tool/tools_holder.h>
47#include <widgets/ui_common.h>
48#include <widgets/wx_infobar.h>
49#include <undo_redo_container.h>
50#include <units_provider.h>
51#include <origin_transforms.h>
52#include <ui_events.h>
53
54// Option for main frames
55#define KICAD_DEFAULT_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS
56
57
58#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" )
59#define QUALIFIED_VIEWER3D_FRAMENAME( parent ) \
60 ( wxString( VIEWER3D_FRAMENAME ) + wxT( ":" ) + parent->GetName() )
61
62#define KICAD_MANAGER_FRAME_NAME wxT( "KicadFrame" )
63
64
65class wxChoice;
66class wxEvent;
67class wxFileName;
68class EDA_ITEM;
70class EDA_MSG_PANEL;
71class BASE_SCREEN;
72class PAGE_INFO;
73class PLOTTER;
74class TITLE_BLOCK;
75class MSG_PANEL_ITEM;
76class TOOL_MANAGER;
77class TOOL_DISPATCHER;
78class ACTIONS;
79class PAGED_DIALOG;
82class FILE_HISTORY;
84class SEARCH_STACK;
87struct WINDOW_SETTINGS;
88struct WINDOW_STATE;
89class ACTION_MENU;
92
93#define DEFAULT_MAX_UNDO_ITEMS 0
94#define ABS_MAX_UNDO_ITEMS (INT_MAX / 2)
95
97typedef std::function< void( wxUpdateUIEvent& ) > UIUpdateHandler;
98
99
109class EDA_BASE_FRAME : public wxFrame, public TOOLS_HOLDER, public KIWAY_HOLDER,
110 public UNITS_PROVIDER
111{
112public:
117 {
120 };
121
122 EDA_BASE_FRAME( wxWindow* aParent, FRAME_T aFrameType, const wxString& aTitle,
123 const wxPoint& aPos, const wxSize& aSize, long aStyle,
124 const wxString& aFrameName, KIWAY* aKiway, const EDA_IU_SCALE& aIuScale );
125
127
128 void ChangeUserUnits( EDA_UNITS aUnits );
129
130 virtual void ToggleUserUnits() { }
131
136 {
137 return m_originTransforms;
138 }
139
140
142
143 virtual SEVERITY GetSeverity( int aErrorCode ) const { return RPT_SEVERITY_UNDEFINED; }
144
151 bool ProcessEvent( wxEvent& aEvent ) override;
152
160 virtual void OnCharHook( wxKeyEvent& aKeyEvent );
161
166 void OnMenuEvent( wxMenuEvent& event );
167
174 virtual void RegisterUIUpdateHandler( int aID, const ACTION_CONDITIONS& aConditions ) override;
175
181 virtual void UnregisterUIUpdateHandler( int aID ) override;
182
191 static void HandleUpdateUIEvent( wxUpdateUIEvent& aEvent, EDA_BASE_FRAME* aFrame,
192 ACTION_CONDITIONS aCond );
193
194 virtual void OnMove( wxMoveEvent& aEvent )
195 {
196 aEvent.Skip();
197 }
198
199 virtual void OnSize( wxSizeEvent& aEvent );
200
201 void OnMaximize( wxMaximizeEvent& aEvent );
202
203 int GetAutoSaveInterval() const;
204
205 bool IsType( FRAME_T aType ) const { return m_ident == aType; }
206 FRAME_T GetFrameType() const { return m_ident; }
207
213 virtual const SEARCH_STACK& sys_search();
214
215 virtual wxString help_name();
216
217 // Event handlers for menu events generated by the macOS application menu
218 void OnKicadAbout( wxCommandEvent& event );
219 void OnPreferences( wxCommandEvent& event );
220
225 void ShowPreferences( wxString aStartPage, wxString aStartParentPage );
226
227 void PrintMsg( const wxString& text );
228
229 void CreateInfoBar();
230
232
237
247 void ShowInfoBarError( const wxString& aErrorMsg, bool aShowCloseButton = false,
249
264 void ShowInfoBarError( const wxString& aErrorMsg, bool aShowCloseButton,
265 std::function<void(void)> aCallback );
266
276 void ShowInfoBarWarning( const wxString& aWarningMsg, bool aShowCloseButton = false );
277
287 void ShowInfoBarMsg( const wxString& aMsg, bool aShowCloseButton = false );
288
293 virtual APP_SETTINGS_BASE* config() const;
294
295 void LoadWindowState( const wxString& aFileName );
296
303 void LoadWindowSettings( const WINDOW_SETTINGS* aCfg );
304
312
319 virtual void LoadSettings( APP_SETTINGS_BASE* aCfg );
320
327 virtual void SaveSettings( APP_SETTINGS_BASE* aCfg );
328
337
341 virtual void LoadWindowState( const WINDOW_STATE& aState );
342
353 wxString ConfigBaseName() override
354 {
355 wxString baseCfgName = m_configName.IsEmpty() ? GetName() : m_configName;
356 return baseCfgName;
357 }
358
370 virtual void SaveProjectLocalSettings() {};
371
379 void ImportHotkeyConfigFromFile( std::map<std::string, TOOL_ACTION*> aActionMap,
380 const wxString& aDefaultShortname );
381
394 wxString GetFileFromHistory( int cmdId, const wxString& type,
395 FILE_HISTORY* aFileHistory = nullptr );
396
403 void ClearFileHistory( FILE_HISTORY* aFileHistory = nullptr );
404
414 void UpdateFileHistory( const wxString& FullFileName, FILE_HISTORY* aFileHistory = nullptr );
415
422 {
423 return *m_fileHistory;
424 }
425
426 void SetMruPath( const wxString& aPath ) { m_mruPath = aPath; }
427
428 wxString GetMruPath() const { return m_mruPath; }
429
437 virtual wxString GetCurrentFileName() const { return wxEmptyString; }
438
439 virtual void RecreateToolbars();
440
445
449 virtual void UpdateToolbarControlSizes();
450
461 const ACTION_TOOLBAR_CONTROL_FACTORY& aControlFactory );
462
467
473 void ReCreateMenuBar();
474
475 void SetMenuBar( wxMenuBar *menu_bar ) override;
476
480 void AddStandardHelpMenu( wxMenuBar* aMenuBar );
481
497 bool IsWritable( const wxFileName& aFileName, bool aVerbose = true );
498
511 virtual void CheckForAutoSaveFile( const wxFileName& aFileName );
512
513 virtual void DeleteAutoSaveFile( const wxFileName& aFileName );
514
522 virtual void UpdateStatusBar() { }
523
527 void ShowChangedLanguage() override;
528
533 void CommonSettingsChanged( int aFlags ) override;
534
538 virtual void ThemeChanged();
539
543 virtual void ProjectChanged() {}
544
545 const wxString& GetAboutTitle() const { return wxGetTranslation( m_aboutTitle ); }
546
547 const wxString& GetUntranslatedAboutTitle() const { return m_aboutTitle; }
548
554 virtual bool IsContentModified() const;
555
564 wxSize GetWindowSize();
565
578 virtual void ClearUndoORRedoList( UNDO_REDO_LIST aList, int aItemCount = -1 )
579 { }
580
586 virtual void ClearUndoRedoList();
587
593 virtual void PushCommandToUndoList( PICKED_ITEMS_LIST* aItem );
594
600 virtual void PushCommandToRedoList( PICKED_ITEMS_LIST* aItem );
601
606
611
612 virtual int GetUndoCommandCount() const { return m_undoList.m_CommandsList.size(); }
613 virtual int GetRedoCommandCount() const { return m_redoList.m_CommandsList.size(); }
614
615 virtual wxString GetUndoActionDescription() const;
616 virtual wxString GetRedoActionDescription() const;
617
618 int GetMaxUndoItems() const { return m_undoRedoCountMax; }
619
624 virtual void OnModify();
625
626 bool NonUserClose( bool aForce )
627 {
628 m_isNonUserClose = true;
629 return Close( aForce );
630 }
631
635 virtual void HandleSystemColorChange();
636
643 virtual bool CanAcceptApiCommands() { return IsEnabled(); }
644
645protected:
647 static constexpr int KICAD_AUI_TB_STYLE = wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_PLAIN_BACKGROUND;
648
649 virtual void doReCreateMenuBar() {}
650
651 virtual void configureToolbars();
652
656 void onAutoSaveTimer( wxTimerEvent& aEvent );
657
658
664 virtual void handleIconizeEvent( wxIconizeEvent& aEvent ) {}
665 void onIconize( wxIconizeEvent& aEvent );
666
672 virtual bool isAutoSaveRequired() const { return m_autoSaveRequired; }
673
679 virtual bool doAutoSave();
680
681 virtual bool canCloseWindow( wxCloseEvent& aCloseEvent ) { return true; }
682 virtual void doCloseWindow() { }
683
684 void onSystemColorChange( wxSysColourChangedEvent& aEvent );
685
693 virtual void unitsChangeRefresh() { }
694
698 virtual void setupUIConditions();
699
706 void initExitKey();
707
709
716 virtual void saveProjectSettings() {}
717
724 virtual void OnDropFiles( wxDropFilesEvent& aEvent );
725
732 void AddMenuLanguageList( ACTION_MENU* aMasterMenu, TOOL_INTERACTIVE* aControlTool );
733
740 virtual void DoWithAcceptedFiles();
741 std::vector<wxFileName> m_AcceptedFiles;
742
743 DECLARE_EVENT_TABLE()
744
745private:
756 void windowClosing( wxCloseEvent& event );
757
761 void commonInit( FRAME_T aFrameType );
762
763 wxWindow* findQuasiModalDialog();
764
772 virtual bool IsModal() const { return false; }
773
774#ifdef __WXMSW__
778 WXLRESULT MSWWindowProc( WXUINT message, WXWPARAM wParam, WXLPARAM lParam ) override;
779#endif
780
781 protected:
782 FRAME_T m_ident; // Id Type (pcb, schematic, library..)
783 wxPoint m_framePos;
787
788 // These contain the frame size and position for when it is not maximized
791
792 wxString m_aboutTitle; // Name of program displayed in About.
793
794 wxAuiManager m_auimgr;
795 wxString m_perspective; // wxAuiManager perspective.
796 WX_INFOBAR* m_infoBar; // Infobar for the frame
798 wxString m_configName; // Prefix used to identify some params (frame
799 // size) and to name some config files (legacy
800 // hotkey files)
802
803 FILE_HISTORY* m_fileHistory; // The frame's recently opened file list
808
809 int m_undoRedoCountMax; // undo/Redo command Max depth
810
811 UNDO_REDO_CONTAINER m_undoList; // Objects list for the undo command (old data)
812 UNDO_REDO_CONTAINER m_redoList; // Objects list for the redo command (old data)
813
814 wxString m_mruPath; // Most recently used path.
815
816 ORIGIN_TRANSFORMS m_originTransforms; // Default display origin transforms object.
817
819 std::map<int, UIUpdateHandler> m_uiUpdateMap;
820
824
827
831 std::map<const wxString, TOOL_ACTION*> m_acceptedExts;
832
833 // Toolbar Settings - this is not owned by the frame
835
836 // Toolbar UI elements
838 ACTION_TOOLBAR* m_tbTopAux; // Additional tools under main toolbar
839 ACTION_TOOLBAR* m_tbRight; // Drawing tools (typically on right edge of window)
840 ACTION_TOOLBAR* m_tbLeft; // Options (typically on left edge of window)
841
842 std::map<std::string, ACTION_TOOLBAR_CONTROL_FACTORY> m_toolbarControlFactories;
843};
844
845
867class EDA_PANE : public wxAuiPaneInfo
868{
869public:
871 {
872 Gripper( false );
873 CloseButton( false );
874 PaneBorder( false );
875 }
876
881 {
882 SetFlag( optionToolbar, true );
883 CaptionVisible( false );
884 TopDockable().BottomDockable();
885 DockFixed( true );
886 Movable( false );
887 Resizable( true ); // expand to fit available space
888 return *this;
889 }
890
895 {
896 SetFlag( optionToolbar, true );
897 CaptionVisible( false );
898 LeftDockable().RightDockable();
899 DockFixed( true );
900 Movable( false );
901 Resizable( true ); // expand to fit available space
902 return *this;
903 }
904
909 {
910 CaptionVisible( true );
911 PaneBorder( true );
912 return *this;
913 }
914
919 {
920 CaptionVisible( false );
921 Layer( 0 );
922 PaneBorder( true );
923 Resizable( true ); // expand to fit available space
924 return *this;
925 }
926
931 {
932 CaptionVisible( false );
933 BottomDockable( true );
934 DockFixed( true );
935 Movable( false );
936 Resizable( true ); // expand to fit available space
937 return *this;
938 }
939
944 {
945 CaptionVisible( false );
946 Movable( false );
947 Resizable( true );
948 PaneBorder( false );
949 DockFixed( true );
950 return *this;
951 }
952};
953
954#endif // EDA_BASE_FRAME_H_
std::function< void(ACTION_TOOLBAR *)> ACTION_TOOLBAR_CONTROL_FACTORY
Type for the function signature that is used to add custom controls to the toolbar.
Gather all the actions that are shared by tools.
Definition: actions.h:41
Define the structure of a menu based on ACTIONs.
Definition: action_menu.h:49
Class to hold basic information about controls that can be added to the toolbars.
Define the structure of a toolbar with buttons that invoke ACTIONs.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
Handles how to draw a screen (a board, a schematic ...)
Definition: base_screen.h:41
The base frame for deriving all KiCad main window classes.
virtual wxString help_name()
virtual void saveProjectSettings()
Save any design-related project settings associated with this frame.
virtual bool doAutoSave()
This should be overridden by the derived class to handle the auto save feature.
void LoadWindowState(const wxString &aFileName)
FRAME_T GetFrameType() const
wxString ConfigBaseName() override
Get the configuration base name.
virtual void UnregisterUIUpdateHandler(int aID) override
Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler.
virtual bool isAutoSaveRequired() const
Return the auto save status of the application.
virtual APP_SETTINGS_BASE * config() const
Return the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
virtual void handleIconizeEvent(wxIconizeEvent &aEvent)
Handle a window iconize event.
virtual void PushCommandToUndoList(PICKED_ITEMS_LIST *aItem)
Add a command to undo in the undo list.
void windowClosing(wxCloseEvent &event)
(with its unexpected name so it does not collide with the real OnWindowClose() function provided in d...
APPEARANCE_CONTROLS_3D * m_appearancePanel
virtual void OnCharHook(wxKeyEvent &aKeyEvent)
Capture the key event before it is sent to the GUI.
virtual int GetRedoCommandCount() const
bool NonUserClose(bool aForce)
virtual void ProjectChanged()
Notification event that the project has changed.
void CommonSettingsChanged(int aFlags) override
Notification event that some of the common (suite-wide) settings have changed.
UNDO_REDO_CONTAINER m_undoList
virtual void OnMove(wxMoveEvent &aEvent)
virtual WINDOW_SETTINGS * GetWindowSettings(APP_SETTINGS_BASE *aCfg)
Return a pointer to the window settings for this frame.
virtual void doCloseWindow()
const wxString & GetUntranslatedAboutTitle() const
virtual void UpdateStatusBar()
Update the status bar information.
void OnToolbarSizeChanged()
Update toolbars if desired toolbar icon changed.
void OnMenuEvent(wxMenuEvent &event)
The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't ...
virtual bool IsModal() const
Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame...
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
virtual void HandleSystemColorChange()
Update the UI in response to a change in the system colors.
virtual void setupUIConditions()
Setup the UI conditions for the various actions and their controls in this frame.
void ensureWindowIsOnScreen()
bool m_isNonUserClose
Set by NonUserClose() to indicate that the user did not request the current close.
const wxString & GetAboutTitle() const
void LoadWindowSettings(const WINDOW_SETTINGS *aCfg)
Load window settings from the given settings object.
std::vector< wxFileName > m_AcceptedFiles
virtual SEVERITY GetSeverity(int aErrorCode) const
virtual void CheckForAutoSaveFile(const wxFileName &aFileName)
Check if an auto save file exists for aFileName and takes the appropriate action depending on the use...
void OnKicadAbout(wxCommandEvent &event)
virtual void UpdateToolbarControlSizes()
Update the sizes of any controls in the toolbars of the frame.
virtual void ClearUndoRedoList()
Clear the undo and redo list using ClearUndoORRedoList()
SETTINGS_MANAGER * GetSettingsManager() const
virtual void DoWithAcceptedFiles()
Execute action on accepted dropped file.
UNDO_REDO_LIST
Specify whether we are interacting with the undo or redo stacks.
virtual void OnModify()
Must be called after a model change in order to set the "modify" flag and do other frame-specific pro...
wxWindow * findQuasiModalDialog()
static void HandleUpdateUIEvent(wxUpdateUIEvent &aEvent, EDA_BASE_FRAME *aFrame, ACTION_CONDITIONS aCond)
Handle events generated when the UI is trying to figure out the current state of the UI controls rela...
wxString m_perspective
virtual void ClearUndoORRedoList(UNDO_REDO_LIST aList, int aItemCount=-1)
Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if nee...
virtual void ThemeChanged()
Process light/dark theme change.
wxSize m_normalFrameSize
static constexpr int KICAD_AUI_TB_STYLE
Default style flags used for wxAUI toolbars.
ACTION_TOOLBAR * m_tbRight
void ShowPreferences(wxString aStartPage, wxString aStartParentPage)
Display the preferences and settings of all opened editors paged dialog, starting with a particular p...
void initExitKey()
Set the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id.
void OnPreferences(wxCommandEvent &event)
virtual const SEARCH_STACK & sys_search()
Return a SEARCH_STACK pertaining to entire program.
WX_INFOBAR * m_infoBar
void onAutoSaveTimer(wxTimerEvent &aEvent)
Handle the auto save timer event.
void SaveWindowSettings(WINDOW_SETTINGS *aCfg)
Save window settings to the given settings object.
virtual void ToggleUserUnits()
virtual wxString GetRedoActionDescription() const
TOOLBAR_SETTINGS * m_toolbarSettings
void FinishAUIInitialization()
virtual wxString GetCurrentFileName() const
Get the full filename + path of the currently opened file in the frame.
void ChangeUserUnits(EDA_UNITS aUnits)
wxString m_configName
void AddMenuLanguageList(ACTION_MENU *aMasterMenu, TOOL_INTERACTIVE *aControlTool)
Create a menu list for language choice, and add it as submenu to MasterMenu.
void SetMenuBar(wxMenuBar *menu_bar) override
void RegisterCustomToolbarControlFactory(const ACTION_TOOLBAR_CONTROL &aControlDesc, const ACTION_TOOLBAR_CONTROL_FACTORY &aControlFactory)
Register a creation factory for toolbar controls that are present in this frame.
void ShowInfoBarMsg(const wxString &aMsg, bool aShowCloseButton=false)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an info icon on the left of...
virtual void configureToolbars()
wxTimer * m_autoSaveTimer
void UpdateFileHistory(const wxString &FullFileName, FILE_HISTORY *aFileHistory=nullptr)
Update the list of recently opened files.
wxAuiManager m_auimgr
void PrintMsg(const wxString &text)
void commonInit(FRAME_T aFrameType)
Collect common initialization functions used in all CTORs.
virtual bool IsContentModified() const
Get if the contents of the frame have been modified since the last save.
void ShowInfoBarWarning(const wxString &aWarningMsg, bool aShowCloseButton=false)
Show the WX_INFOBAR displayed on the top of the canvas with a message and a warning icon on the left ...
int GetMaxUndoItems() const
virtual PICKED_ITEMS_LIST * PopCommandFromRedoList()
Return the last command to undo and remove it from list, nothing is deleted.
virtual bool CanAcceptApiCommands()
Check if this frame is ready to accept API commands.
virtual void RecreateToolbars()
void ClearFileHistory(FILE_HISTORY *aFileHistory=nullptr)
Remove all files from the file history.
std::map< int, UIUpdateHandler > m_uiUpdateMap
Map containing the UI update handlers registered with wx for each action.
std::map< std::string, ACTION_TOOLBAR_CONTROL_FACTORY > m_toolbarControlFactories
ACTION_TOOLBAR_CONTROL_FACTORY * GetCustomToolbarControlFactory(const std::string &aName)
UNDO_REDO_CONTAINER m_redoList
virtual void LoadSettings(APP_SETTINGS_BASE *aCfg)
Load common frame parameters from a configuration file.
wxString GetMruPath() const
FILE_HISTORY * m_fileHistory
ACTION_TOOLBAR * m_tbLeft
SETTINGS_MANAGER * m_settingsManager
FILE_HISTORY & GetFileHistory()
Get the frame's main file history.
virtual void DeleteAutoSaveFile(const wxFileName &aFileName)
virtual void OnSize(wxSizeEvent &aEvent)
virtual wxString GetUndoActionDescription() const
void ImportHotkeyConfigFromFile(std::map< std::string, TOOL_ACTION * > aActionMap, const wxString &aDefaultShortname)
Prompt the user for a hotkey file to read, and read it.
virtual PICKED_ITEMS_LIST * PopCommandFromUndoList()
Return the last command to undo and remove it from list, nothing is deleted.
virtual bool canCloseWindow(wxCloseEvent &aCloseEvent)
bool ProcessEvent(wxEvent &aEvent) override
Override the default process event handler to implement the auto save feature.
bool IsWritable(const wxFileName &aFileName, bool aVerbose=true)
Check if aFileName can be written.
wxPoint m_normalFramePos
void OnMaximize(wxMaximizeEvent &aEvent)
ORIGIN_TRANSFORMS & GetOriginTransforms() override
Return a reference to the default ORIGIN_TRANSFORMS object.
ACTION_TOOLBAR * m_tbTopAux
virtual void OnDropFiles(wxDropFilesEvent &aEvent)
Handle event fired when a file is dropped to the window.
std::map< const wxString, TOOL_ACTION * > m_acceptedExts
Associate file extensions with action to execute.
void onIconize(wxIconizeEvent &aEvent)
virtual void unitsChangeRefresh()
Called when when the units setting has changed to allow for any derived classes to handle refreshing ...
wxString GetFileFromHistory(int cmdId, const wxString &type, FILE_HISTORY *aFileHistory=nullptr)
Fetch the file name from the file history list.
wxSize GetWindowSize()
Get the undecorated window size that can be used for restoring the window size.
int GetAutoSaveInterval() const
virtual void SaveSettings(APP_SETTINGS_BASE *aCfg)
Save common frame parameters to a configuration data file.
void SetMruPath(const wxString &aPath)
void onSystemColorChange(wxSysColourChangedEvent &aEvent)
virtual int GetUndoCommandCount() const
ORIGIN_TRANSFORMS m_originTransforms
virtual void RegisterUIUpdateHandler(int aID, const ACTION_CONDITIONS &aConditions) override
Register a UI update handler for the control with ID aID.
ACTION_TOOLBAR * m_tbTopMain
virtual void SaveProjectLocalSettings()
Save changes to the project local settings.
wxString m_aboutTitle
virtual void PushCommandToRedoList(PICKED_ITEMS_LIST *aItem)
Add a command to redo in the redo list.
void ShowInfoBarError(const wxString &aErrorMsg, bool aShowCloseButton=false, WX_INFOBAR::MESSAGE_TYPE aType=WX_INFOBAR::MESSAGE_TYPE::GENERIC)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left o...
bool m_isClosing
Set by the close window event handler after frames are asked if they can close.
bool IsType(FRAME_T aType) const
void AddStandardHelpMenu(wxMenuBar *aMenuBar)
Add the standard KiCad help menu to the menubar.
wxString m_mruPath
void ReCreateMenuBar()
Recreate the menu bar.
virtual void doReCreateMenuBar()
WX_INFOBAR * GetInfoBar()
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:95
A panel to display various information messages.
Definition: msgpanel.h:101
Specialization of the wxAuiPaneInfo class for KiCad panels.
EDA_PANE & Canvas()
Turn *this into an undecorated pane suitable for a drawing canvas.
EDA_PANE & Messages()
Turn *this into a messages pane for KiCad.
EDA_PANE & InfoBar()
Turn *this into a infobar for KiCad.
EDA_PANE & HToolbar()
Turn *this to a horizontal toolbar for KiCad.
EDA_PANE & VToolbar()
Turn *this into a vertical toolbar for KiCad.
EDA_PANE & Palette()
Turn *this into a captioned palette suitable for a symbol tree, layers manager, etc.
This class implements a file history object to store a list of files, that can then be added to a men...
Definition: file_history.h:43
A mix in class which holds the location of a wxWindow's KIWAY.
Definition: kiway_holder.h:39
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:285
EDA_MSG_PANEL items for displaying messages.
Definition: msgpanel.h:54
A class to perform either relative or absolute display origin transforms for a single axis of a point...
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:59
A holder to handle information on schematic or board items.
Base plotter engine class.
Definition: plotter.h:105
Look for files in a number of paths.
Definition: search_stack.h:43
Hold the information shown in the lower right corner of a plot, printout, or editing view.
Definition: title_block.h:41
Master controller class:
Definition: tool_manager.h:62
A holder to handle a list of undo (or redo) commands.
std::vector< PICKED_ITEMS_LIST * > m_CommandsList
A modified version of the wxInfoBar class that allows us to:
Definition: wx_infobar.h:76
MESSAGE_TYPE
Sets the type of message for special handling if needed.
Definition: wx_infobar.h:94
@ GENERIC
GENERIC Are messages that do not have special handling.
std::function< void(wxUpdateUIEvent &) > UIUpdateHandler
This is the handler functor for the update UI events.
EDA_UNITS
Definition: eda_units.h:46
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:33
SEVERITY
@ RPT_SEVERITY_UNDEFINED
Functors that can be used to figure out how the action controls should be displayed in the UI and if ...
Store the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:74
Store the window positioning/state.
Definition: app_settings.h:61
Functions to provide common constants and other functions to assist in making a consistent UI.