KiCad PCB EDA Suite
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 <[email protected]>
6 * Copyright (C) 1992-2022 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
31#ifndef EDA_BASE_FRAME_H_
32#define EDA_BASE_FRAME_H_
33
34
35#include <vector>
36#include <map>
37
38#include <wx/aui/aui.h>
39#include <layer_ids.h>
40#include <frame_type.h>
41#include <hotkeys_basic.h>
42#include <kiway_holder.h>
43#include <tool/tools_holder.h>
44#include <widgets/ui_common.h>
45#include <widgets/infobar.h>
46#include <undo_redo_container.h>
47#include <units_provider.h>
48#include <origin_transforms.h>
49
50// Option for main frames
51#define KICAD_DEFAULT_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS
52
53
54#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" )
55#define QUALIFIED_VIEWER3D_FRAMENAME( parent ) \
56 ( wxString( VIEWER3D_FRAMENAME ) + wxT( ":" ) + parent->GetName() )
57
58#define KICAD_MANAGER_FRAME_NAME wxT( "KicadFrame" )
59
60
61class wxChoice;
62class wxEvent;
63class wxFileName;
64class EDA_ITEM;
66class EDA_MSG_PANEL;
67class BASE_SCREEN;
68class PARAM_CFG;
69class PAGE_INFO;
70class PLOTTER;
71class TITLE_BLOCK;
72class MSG_PANEL_ITEM;
73class TOOL_MANAGER;
74class TOOL_DISPATCHER;
75class ACTIONS;
76class PAGED_DIALOG;
79class FILE_HISTORY;
81class SEARCH_STACK;
83struct WINDOW_SETTINGS;
84struct WINDOW_STATE;
85
86#define DEFAULT_MAX_UNDO_ITEMS 0
87#define ABS_MAX_UNDO_ITEMS (INT_MAX / 2)
88
90typedef std::function< void( wxUpdateUIEvent& ) > UIUpdateHandler;
91
92wxDECLARE_EVENT( UNITS_CHANGED, wxCommandEvent );
93
94
104class EDA_BASE_FRAME : public wxFrame, public TOOLS_HOLDER, public KIWAY_HOLDER,
105 public UNITS_PROVIDER
106{
107public:
112 {
115 };
116
117 EDA_BASE_FRAME( wxWindow* aParent, FRAME_T aFrameType, const wxString& aTitle,
118 const wxPoint& aPos, const wxSize& aSize, long aStyle,
119 const wxString& aFrameName, KIWAY* aKiway, const EDA_IU_SCALE& aIuScale );
120
122
123 void ChangeUserUnits( EDA_UNITS aUnits );
124
125 virtual void ToggleUserUnits() { }
126
131
132
134
135 virtual SEVERITY GetSeverity( int aErrorCode ) const { return RPT_SEVERITY_UNDEFINED; }
136
143 bool ProcessEvent( wxEvent& aEvent ) override;
144
152 virtual void OnCharHook( wxKeyEvent& aKeyEvent );
153
158 void OnMenuEvent( wxMenuEvent& event );
159
166 virtual void RegisterUIUpdateHandler( int aID, const ACTION_CONDITIONS& aConditions ) override;
167
173 virtual void UnregisterUIUpdateHandler( int aID ) override;
174
183 static void HandleUpdateUIEvent( wxUpdateUIEvent& aEvent, EDA_BASE_FRAME* aFrame,
184 ACTION_CONDITIONS aCond );
185
186 virtual void OnMove( wxMoveEvent& aEvent )
187 {
188 aEvent.Skip();
189 }
190
191 virtual void OnSize( wxSizeEvent& aEvent );
192
193 void OnMaximize( wxMaximizeEvent& aEvent );
194
195 int GetAutoSaveInterval() const;
196
197 bool IsType( FRAME_T aType ) const { return m_ident == aType; }
198 FRAME_T GetFrameType() const { return m_ident; }
199
205 virtual const SEARCH_STACK& sys_search();
206
207 virtual wxString help_name();
208
209 void OnKicadAbout( wxCommandEvent& event );
210
214 void OnPreferences( wxCommandEvent& event );
215
216 void PrintMsg( const wxString& text );
217
218 void CreateInfoBar();
219
221
226
236 void ShowInfoBarError( const wxString& aErrorMsg, bool aShowCloseButton = false,
238
253 void ShowInfoBarError( const wxString& aErrorMsg, bool aShowCloseButton,
254 std::function<void(void)> aCallback );
255
265 void ShowInfoBarWarning( const wxString& aWarningMsg, bool aShowCloseButton = false );
266
276 void ShowInfoBarMsg( const wxString& aMsg, bool aShowCloseButton = false );
277
282 virtual APP_SETTINGS_BASE* config() const;
283
284 void LoadWindowState( const wxString& aFileName );
291 void LoadWindowSettings( const WINDOW_SETTINGS* aCfg );
292
300
307 virtual void LoadSettings( APP_SETTINGS_BASE* aCfg );
308
315 virtual void SaveSettings( APP_SETTINGS_BASE* aCfg );
316
325
329 virtual void LoadWindowState( const WINDOW_STATE& aState );
330
341 wxString ConfigBaseName() override
342 {
343 wxString baseCfgName = m_configName.IsEmpty() ? GetName() : m_configName;
344 return baseCfgName;
345 }
346
355 virtual void SaveProjectSettings() {};
356
364 void ImportHotkeyConfigFromFile( std::map<std::string, TOOL_ACTION*> aActionMap,
365 const wxString& aDefaultShortname );
366
379 wxString GetFileFromHistory( int cmdId, const wxString& type,
380 FILE_HISTORY* aFileHistory = nullptr );
381
388 void ClearFileHistory( FILE_HISTORY* aFileHistory = nullptr );
389
399 void UpdateFileHistory( const wxString& FullFileName, FILE_HISTORY* aFileHistory = nullptr );
400
407 {
408 return *m_fileHistory;
409 }
410
411 void SetMruPath( const wxString& aPath ) { m_mruPath = aPath; }
412
413 wxString GetMruPath() const { return m_mruPath; }
414
422 virtual wxString GetCurrentFileName() const { return wxEmptyString; }
423
429 virtual void ReCreateMenuBar();
430
434 void AddStandardHelpMenu( wxMenuBar* aMenuBar );
435
451 bool IsWritable( const wxFileName& aFileName, bool aVerbose = true );
452
465 virtual void CheckForAutoSaveFile( const wxFileName& aFileName );
466
474 virtual void UpdateStatusBar() { }
475
479 void ShowChangedLanguage() override;
480
485 void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
486
490 virtual void ThemeChanged();
491
495 virtual void ProjectChanged() {}
496
497 const wxString& GetAboutTitle() const { return m_aboutTitle; }
498
504 virtual bool IsContentModified() const;
505
514 wxSize GetWindowSize();
515
528 virtual void ClearUndoORRedoList( UNDO_REDO_LIST aList, int aItemCount = -1 )
529 { }
530
536 virtual void ClearUndoRedoList();
537
543 virtual void PushCommandToUndoList( PICKED_ITEMS_LIST* aItem );
544
550 virtual void PushCommandToRedoList( PICKED_ITEMS_LIST* aItem );
551
556
561
562 virtual int GetUndoCommandCount() const { return m_undoList.m_CommandsList.size(); }
563 virtual int GetRedoCommandCount() const { return m_redoList.m_CommandsList.size(); }
564
565 int GetMaxUndoItems() const { return m_undoRedoCountMax; }
566
567 bool NonUserClose( bool aForce )
568 {
569 m_isNonUserClose = true;
570 return Close( aForce );
571 }
572
576 virtual void HandleSystemColorChange();
577
578protected:
580 static constexpr int KICAD_AUI_TB_STYLE = wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_PLAIN_BACKGROUND;
581
585 static wxString GetAutoSaveFilePrefix()
586 {
587 return wxT( "_autosave-" );
588 }
589
593 void onAutoSaveTimer( wxTimerEvent& aEvent );
594
595
601 virtual void handleIconizeEvent( wxIconizeEvent& aEvent ) {}
602 void onIconize( wxIconizeEvent& aEvent );
603
609 virtual bool isAutoSaveRequired() const { return false; }
610
616 virtual bool doAutoSave();
617
618 virtual bool canCloseWindow( wxCloseEvent& aCloseEvent ) { return true; }
619 virtual void doCloseWindow() { }
620
621 void onSystemColorChange( wxSysColourChangedEvent& aEvent );
622
630 virtual void unitsChangeRefresh() { }
631
635 virtual void setupUIConditions();
636
643 void initExitKey();
644
646
652 virtual void OnDropFiles( wxDropFilesEvent& aEvent );
653
659 virtual void DoWithAcceptedFiles();
660 std::vector<wxFileName> m_AcceptedFiles;
661
662 DECLARE_EVENT_TABLE()
663
664private:
675 void windowClosing( wxCloseEvent& event );
676
680 void commonInit( FRAME_T aFrameType );
681
682 wxWindow* findQuasiModalDialog();
683
691 virtual bool IsModal() const { return false; }
692
693#ifdef _WIN32
697 WXLRESULT MSWWindowProc( WXUINT message, WXWPARAM wParam, WXLPARAM lParam ) override;
698#endif
699
700 protected:
701 FRAME_T m_ident; // Id Type (pcb, schematic, library..)
702 wxPoint m_framePos;
706
707 // These contain the frame size and position for when it is not maximized
710
711 wxString m_aboutTitle; // Name of program displayed in About.
712
713 wxAuiManager m_auimgr;
714 wxString m_perspective; // wxAuiManager perspective.
715
716 WX_INFOBAR* m_infoBar; // Infobar for the frame
717
718 wxString m_configName; // Prefix used to identify some params (frame size...)
719 // and to name some config files (legacy hotkey files)
720
722
723 FILE_HISTORY* m_fileHistory; // The frame's recently opened file list
724
728
729 int m_undoRedoCountMax; // undo/Redo command Max depth
730
731 UNDO_REDO_CONTAINER m_undoList; // Objects list for the undo command (old data)
732 UNDO_REDO_CONTAINER m_redoList; // Objects list for the redo command (old data)
733
734 wxString m_mruPath; // Most recently used path.
735
736 ORIGIN_TRANSFORMS m_originTransforms; // Default display origin transforms object.
737
739 std::map<int, UIUpdateHandler> m_uiUpdateMap;
740
744
747
751 std::map<const wxString, TOOL_ACTION*> m_acceptedExts;
752};
753
754
776class EDA_PANE : public wxAuiPaneInfo
777{
778public:
780 {
781 Gripper( false );
782 CloseButton( false );
783 PaneBorder( false );
784 }
785
790 {
791 SetFlag( optionToolbar, true );
792 CaptionVisible( false );
793 TopDockable().BottomDockable();
794 DockFixed( true );
795 Movable( false );
796 Resizable( true ); // expand to fit available space
797 return *this;
798 }
799
804 {
805 SetFlag( optionToolbar, true );
806 CaptionVisible( false );
807 LeftDockable().RightDockable();
808 DockFixed( true );
809 Movable( false );
810 Resizable( true ); // expand to fit available space
811 return *this;
812 }
813
818 {
819 CaptionVisible( true );
820 PaneBorder( true );
821 return *this;
822 }
823
828 {
829 CaptionVisible( false );
830 Layer( 0 );
831 PaneBorder( true );
832 Resizable( true ); // expand to fit available space
833 return *this;
834 }
835
840 {
841 CaptionVisible( false );
842 BottomDockable( true );
843 DockFixed( true );
844 Movable( false );
845 Resizable( true ); // expand to fit available space
846 return *this;
847 }
848
853 {
854 CaptionVisible( false );
855 Movable( false );
856 Resizable( true );
857 PaneBorder( false );
858 DockFixed( true );
859 return *this;
860 }
861};
862
863#endif // EDA_BASE_FRAME_H_
Gather all the actions that are shared by tools.
Definition: actions.h:41
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:101
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 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
Returns 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...
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.
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()
virtual void UpdateStatusBar()
Update the status bar information.
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()
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 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
Specifies whether we are interacting with the undo or redo stacks.
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...
virtual ORIGIN_TRANSFORMS & GetOriginTransforms()
Return a reference to the default ORIGIN_TRANSFORMS object.
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
EDA_BASE_FRAME(wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aFrameName, KIWAY *aKiway, const EDA_IU_SCALE &aIuScale)
static constexpr int KICAD_AUI_TB_STYLE
< Default style flags used for wxAUI toolbars.
void initExitKey()
Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id.
void OnPreferences(wxCommandEvent &event)
Displays the preferences and settings of all opened editors paged dialog.
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 void SaveProjectSettings()
Save changes to the project settings to the project (.pro) file.
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 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...
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.
void ClearFileHistory(FILE_HISTORY *aFileHistory=nullptr)
Removes all files from the file history.
std::map< int, UIUpdateHandler > m_uiUpdateMap
< Map containing the UI update handlers registered with wx for each action.
UNDO_REDO_CONTAINER m_redoList
virtual void LoadSettings(APP_SETTINGS_BASE *aCfg)
Load common frame parameters from a configuration file.
wxString GetMruPath() const
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
FILE_HISTORY * m_fileHistory
SETTINGS_MANAGER * m_settingsManager
FILE_HISTORY & GetFileHistory()
Get the frame's main file history.
virtual void OnSize(wxSizeEvent &aEvent)
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)
Checks if aFileName can be written.
wxPoint m_normalFramePos
void OnMaximize(wxMaximizeEvent &aEvent)
virtual void OnDropFiles(wxDropFilesEvent &aEvent)
Handles event fired when a file is dropped to the window.
std::map< const wxString, TOOL_ACTION * > m_acceptedExts
Associates files 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)
Fetches the file name from the file history list.
static wxString GetAutoSaveFilePrefix()
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.
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 NonUserClose() to indicate that the user did not request the current close.
bool IsType(FRAME_T aType) const
void AddStandardHelpMenu(wxMenuBar *aMenuBar)
Adds the standard KiCad help menu to the menubar.
wxString m_mruPath
virtual void ReCreateMenuBar()
Recreates the menu bar.
WX_INFOBAR * GetInfoBar()
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:85
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: filehistory.h:43
A mix in class which holds the location of a wxWindow's KIWAY.
Definition: kiway_holder.h:37
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:267
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:54
A base class which establishes the interface functions ReadParam and SaveParam, which are implemented...
Definition: config_params.h:82
A holder to handle information on schematic or board items.
Base plotter engine class.
Definition: plotter.h:110
Look for files in a number of paths.
Definition: search_stack.h:42
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:55
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: infobar.h:75
MESSAGE_TYPE
Sets the type of message for special handling if needed.
Definition: infobar.h:93
@ GENERIC
GENERIC Are messages that do not have special handling.
wxDECLARE_EVENT(UNITS_CHANGED, wxCommandEvent)
std::function< void(wxUpdateUIEvent &) > UIUpdateHandler
This is the handler functor for the update UI events.
EDA_UNITS
Definition: eda_units.h:43
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 ...
Stores the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:83
Stores the window positioning/state.
Definition: app_settings.h:70
Functions to provide common constants and other functions to assist in making a consistent UI.