KiCad PCB EDA Suite
BM2CMP_FRAME Class Reference

#include <bitmap2cmp_gui.h>

Inheritance diagram for BM2CMP_FRAME:
BM2CMP_FRAME_BASE KIWAY_PLAYER EDA_BASE_FRAME TOOLS_HOLDER KIWAY_HOLDER UNITS_PROVIDER

Public Types

enum  UNDO_REDO_LIST { UNDO_LIST , REDO_LIST }
 Specifies whether we are interacting with the undo or redo stacks. More...
 
enum  HOLDER_TYPE { DIALOG , FRAME , PANEL }
 

Public Member Functions

 BM2CMP_FRAME (KIWAY *aKiway, wxWindow *aParent)
 
 ~BM2CMP_FRAME ()
 
bool OpenProjectFiles (const std::vector< wxString > &aFilenames, int aCtl=0) override
 Open a project or set of files given by aFileList. More...
 
virtual void ParseArgs (wxCmdLineParser &aParser)
 Handle command-line arguments in a frame-specific way. More...
 
virtual bool ShowModal (wxString *aResult=nullptr, wxWindow *aResultantFocusWindow=nullptr)
 Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until this KIWAY_PLAYER derivative calls DismissModal(). More...
 
virtual void KiwayMailIn (KIWAY_EXPRESS &aEvent)
 Receive KIWAY_EXPRESS messages from other players. More...
 
bool Destroy () override
 Our version of Destroy() which is virtual from wxWidgets. More...
 
bool IsModal () const override
 Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame. More...
 
void SetModal (bool aIsModal)
 
bool IsDismissed ()
 
void DismissModal (bool aRetVal, const wxString &aResult=wxEmptyString)
 
void CreateServer (int service, bool local=true)
 
void OnSockRequest (wxSocketEvent &evt)
 
void OnSockRequestServer (wxSocketEvent &evt)
 
virtual void ExecuteRemoteCommand (const char *cmdline)
 Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242). More...
 
void ChangeUserUnits (EDA_UNITS aUnits)
 
virtual void ToggleUserUnits ()
 
virtual ORIGIN_TRANSFORMSGetOriginTransforms ()
 Return a reference to the default ORIGIN_TRANSFORMS object. More...
 
SETTINGS_MANAGERGetSettingsManager () const
 
virtual SEVERITY GetSeverity (int aErrorCode) const
 
bool ProcessEvent (wxEvent &aEvent) override
 Override the default process event handler to implement the auto save feature. More...
 
virtual void OnCharHook (wxKeyEvent &aKeyEvent)
 Capture the key event before it is sent to the GUI. More...
 
void OnMenuEvent (wxMenuEvent &event)
 The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't captured by the menus themselves. More...
 
virtual void RegisterUIUpdateHandler (int aID, const ACTION_CONDITIONS &aConditions) override
 Register a UI update handler for the control with ID aID. More...
 
virtual void RegisterUIUpdateHandler (const TOOL_ACTION &aAction, const ACTION_CONDITIONS &aConditions)
 Register an action's update conditions with the UI layer to allow the UI to appropriately display the state of its controls. More...
 
virtual void UnregisterUIUpdateHandler (int aID) override
 Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler. More...
 
virtual void UnregisterUIUpdateHandler (const TOOL_ACTION &aAction)
 Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler. More...
 
virtual void OnMove (wxMoveEvent &aEvent)
 
virtual void OnSize (wxSizeEvent &aEvent)
 
void OnMaximize (wxMaximizeEvent &aEvent)
 
int GetAutoSaveInterval () const
 
bool IsType (FRAME_T aType) const
 
FRAME_T GetFrameType () const
 
virtual const SEARCH_STACKsys_search ()
 Return a SEARCH_STACK pertaining to entire program. More...
 
virtual wxString help_name ()
 
void OnKicadAbout (wxCommandEvent &event)
 
void OnPreferences (wxCommandEvent &event)
 Displays the preferences and settings of all opened editors paged dialog. More...
 
void PrintMsg (const wxString &text)
 
void CreateInfoBar ()
 
void FinishAUIInitialization ()
 
WX_INFOBARGetInfoBar ()
 
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 of the infobar, and an optional closebox to the right. More...
 
void ShowInfoBarError (const wxString &aErrorMsg, bool aShowCloseButton, std::function< void(void)> aCallback)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right. More...
 
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 of the infobar. More...
 
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 the infobar. More...
 
virtual APP_SETTINGS_BASEconfig () const
 Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME. More...
 
void LoadWindowState (const wxString &aFileName)
 
virtual void LoadWindowState (const WINDOW_STATE &aState)
 Load frame state info from a configuration file. More...
 
void LoadWindowSettings (const WINDOW_SETTINGS *aCfg)
 Load window settings from the given settings object. More...
 
void SaveWindowSettings (WINDOW_SETTINGS *aCfg)
 Save window settings to the given settings object. More...
 
virtual WINDOW_SETTINGSGetWindowSettings (APP_SETTINGS_BASE *aCfg)
 Return a pointer to the window settings for this frame. More...
 
wxString ConfigBaseName () override
 Get the configuration base name. More...
 
virtual void SaveProjectSettings ()
 Save changes to the project settings to the project (.pro) file. More...
 
void ImportHotkeyConfigFromFile (std::map< std::string, TOOL_ACTION * > aActionMap, const wxString &aDefaultShortname)
 Prompt the user for a hotkey file to read, and read it. More...
 
wxString GetFileFromHistory (int cmdId, const wxString &type, FILE_HISTORY *aFileHistory=nullptr)
 Fetches the file name from the file history list. More...
 
void ClearFileHistory (FILE_HISTORY *aFileHistory=nullptr)
 Removes all files from the file history. More...
 
void UpdateFileHistory (const wxString &FullFileName, FILE_HISTORY *aFileHistory=nullptr)
 Update the list of recently opened files. More...
 
FILE_HISTORYGetFileHistory ()
 Get the frame's main file history. More...
 
void SetMruPath (const wxString &aPath)
 
wxString GetMruPath () const
 
virtual wxString GetCurrentFileName () const
 Get the full filename + path of the currently opened file in the frame. More...
 
virtual void ReCreateMenuBar ()
 Recreates the menu bar. More...
 
void AddStandardHelpMenu (wxMenuBar *aMenuBar)
 Adds the standard KiCad help menu to the menubar. More...
 
bool IsWritable (const wxFileName &aFileName, bool aVerbose=true)
 Checks if aFileName can be written. More...
 
virtual void CheckForAutoSaveFile (const wxFileName &aFileName)
 Check if an auto save file exists for aFileName and takes the appropriate action depending on the user input. More...
 
virtual void UpdateStatusBar ()
 Update the status bar information. More...
 
void ShowChangedLanguage () override
 Redraw the menus and what not in current language. More...
 
void CommonSettingsChanged (bool aEnvVarsChanged, bool aTextVarsChanged) override
 Notification event that some of the common (suite-wide) settings have changed. More...
 
virtual void ThemeChanged ()
 Process light/dark theme change. More...
 
virtual void ProjectChanged ()
 Notification event that the project has changed. More...
 
const wxString & GetAboutTitle () const
 
virtual bool IsContentModified () const
 Get if the contents of the frame have been modified since the last save. More...
 
wxSize GetWindowSize ()
 Get the undecorated window size that can be used for restoring the window size. More...
 
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 needed. More...
 
virtual void ClearUndoRedoList ()
 Clear the undo and redo list using ClearUndoORRedoList() More...
 
virtual void PushCommandToUndoList (PICKED_ITEMS_LIST *aItem)
 Add a command to undo in the undo list. More...
 
virtual void PushCommandToRedoList (PICKED_ITEMS_LIST *aItem)
 Add a command to redo in the redo list. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromUndoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromRedoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual int GetUndoCommandCount () const
 
virtual int GetRedoCommandCount () const
 
int GetMaxUndoItems () const
 
bool NonUserClose (bool aForce)
 
virtual void HandleSystemColorChange ()
 Update the UI in response to a change in the system colors. More...
 
TOOL_MANAGERGetToolManager () const
 Return the MVC controller. More...
 
virtual SELECTIONGetCurrentSelection ()
 Get the current selection from the canvas area. More...
 
virtual void PushTool (const TOOL_EVENT &aEvent)
 NB: the definition of "tool" is different at the user level. More...
 
virtual void PopTool (const TOOL_EVENT &aEvent)
 Pops a tool from the stack. More...
 
bool ToolStackIsEmpty ()
 
std::string CurrentToolName () const
 
bool IsCurrentTool (const TOOL_ACTION &aAction) const
 
virtual void DisplayToolMsg (const wxString &msg)
 
bool GetDoImmediateActions () const
 Indicate that hotkeys should perform an immediate action even if another tool is currently active. More...
 
MOUSE_DRAG_ACTION GetDragAction () const
 Indicates whether a drag should draw a selection rectangle or drag selected (or unselected) objects. More...
 
bool GetMoveWarpsCursor () const
 Indicate that a move operation should warp the mouse pointer to the origin of the move object. More...
 
virtual void RefreshCanvas ()
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
bool HasKiway () const
 Safety check before asking for the Kiway reference. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 
EDA_UNITS GetUserUnits () const
 
void SetUserUnits (EDA_UNITS aUnits)
 
const EDA_IU_SCALEGetIuScale () const
 
wxString StringFromValue (double aValue, bool aAddUnitLabel=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 Converts aValue in internal units into a united string. More...
 
wxString StringFromValue (const EDA_ANGLE &aValue, bool aAddUnitLabel=false)
 
wxString MessageTextFromValue (double aValue, bool aAddUnitLabel=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 A lower-precision version of StringFromValue(). More...
 
wxString MessageTextFromValue (const EDA_ANGLE &aValue, bool aAddUnitLabel=true)
 
long long int ValueFromString (const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
 Converts aTextValue in aUnits to internal units used by the frame. More...
 

Static Public Member Functions

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 related to TOOL_ACTIONS (e.g. More...
 

Protected Member Functions

void kiway_express (KIWAY_EXPRESS &aEvent)
 event handler, routes to derivative specific virtual KiwayMailIn() More...
 
void language_change (wxCommandEvent &event)
 An event handler called on a language menu selection. More...
 
void onAutoSaveTimer (wxTimerEvent &aEvent)
 Handle the auto save timer event. More...
 
virtual void handleIconizeEvent (wxIconizeEvent &aEvent)
 Handle a window iconize event. More...
 
void onIconize (wxIconizeEvent &aEvent)
 
virtual bool isAutoSaveRequired () const
 Return the auto save status of the application. More...
 
virtual bool doAutoSave ()
 This should be overridden by the derived class to handle the auto save feature. More...
 
virtual bool canCloseWindow (wxCloseEvent &aCloseEvent)
 
virtual void doCloseWindow ()
 
void onSystemColorChange (wxSysColourChangedEvent &aEvent)
 
virtual void unitsChangeRefresh ()
 Called when when the units setting has changed to allow for any derived classes to handle refreshing and controls that have units based measurements in them. More...
 
virtual void setupUIConditions ()
 Setup the UI conditions for the various actions and their controls in this frame. More...
 
void initExitKey ()
 Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id. More...
 
void ensureWindowIsOnScreen ()
 
virtual void OnDropFiles (wxDropFilesEvent &aEvent)
 Handles event fired when a file is dropped to the window. More...
 
virtual void DoWithAcceptedFiles ()
 Execute action on accepted dropped file. More...
 

Static Protected Member Functions

static wxString GetAutoSaveFilePrefix ()
 

Protected Attributes

wxNotebook * m_Notebook
 
wxScrolledWindow * m_InitialPicturePanel
 
wxScrolledWindow * m_GreyscalePicturePanel
 
wxScrolledWindow * m_BNPicturePanel
 
wxPanel * m_panelRight
 
wxStaticText * m_staticTextISize
 
wxStaticText * m_SizeXValue
 
wxStaticText * m_SizeYValue
 
wxStaticText * m_SizePixUnits
 
wxStaticText * m_staticTextDPI
 
wxStaticText * m_InputXValueDPI
 
wxStaticText * m_InputYValueDPI
 
wxStaticText * m_DPIUnit
 
wxStaticText * m_staticTextBPP
 
wxStaticText * m_BPPValue
 
wxStaticText * m_BPPunits
 
wxStaticText * m_textLock
 
wxBitmapButton * m_AspectRatioLockButton
 
wxStaticText * m_staticTextOSize
 
wxTextCtrl * m_UnitSizeX
 
wxTextCtrl * m_UnitSizeY
 
wxChoice * m_PixelUnit
 
wxButton * m_buttonLoad
 
wxButton * m_buttonExportFile
 
wxButton * m_buttonExportClipboard
 
wxRadioBox * m_rbOutputFormat
 
wxStaticText * m_ThresholdText
 
wxSlider * m_sliderThreshold
 
wxCheckBox * m_checkNegative
 
wxRadioBox * m_rbPCBLayer
 
wxStatusBar * m_statusBar
 
bool m_modal
 
WX_EVENT_LOOPm_modal_loop
 < Points to nested event_loop. NULL means not modal and dismissed. More...
 
wxWindow * m_modal_resultant_parent
 
wxString m_modal_string
 
bool m_modal_ret_val
 
wxSocketServer * m_socketServer
 
std::vector< wxSocketBase * > m_sockets
 interprocess communication More...
 
std::vector< wxFileName > m_AcceptedFiles
 
FRAME_T m_ident
 
wxPoint m_framePos
 
wxSize m_frameSize
 
bool m_maximizeByDefault
 
int m_displayIndex
 
wxPoint m_normalFramePos
 
wxSize m_normalFrameSize
 
wxString m_aboutTitle
 
wxAuiManager m_auimgr
 
wxString m_perspective
 
WX_INFOBARm_infoBar
 
wxString m_configName
 
SETTINGS_MANAGERm_settingsManager
 
FILE_HISTORYm_fileHistory
 
bool m_supportsAutoSave
 
bool m_autoSaveState
 
wxTimer * m_autoSaveTimer
 
int m_undoRedoCountMax
 
UNDO_REDO_CONTAINER m_undoList
 
UNDO_REDO_CONTAINER m_redoList
 
wxString m_mruPath
 
ORIGIN_TRANSFORMS m_originTransforms
 
std::map< int, UIUpdateHandlerm_uiUpdateMap
 < Map containing the UI update handlers registered with wx for each action. More...
 
bool m_isClosing
 Set by NonUserClose() to indicate that the user did not request the current close. More...
 
bool m_isNonUserClose
 
std::map< const wxString, TOOL_ACTION * > m_acceptedExts
 Associates files extensions with action to execute. More...
 
TOOL_MANAGERm_toolManager
 
ACTIONSm_actions
 
TOOL_DISPATCHERm_toolDispatcher
 
SELECTION m_dummySelection
 
std::vector< std::string > m_toolStack
 
bool m_immediateActions
 
MOUSE_DRAG_ACTION m_dragAction
 
bool m_moveWarpsCursor
 

Static Protected Attributes

static constexpr int KICAD_AUI_TB_STYLE = wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_PLAIN_BACKGROUND
 < Default style flags used for wxAUI toolbars. More...
 

Private Member Functions

void OnPaintInit (wxPaintEvent &event) override
 
void OnPaintGreyscale (wxPaintEvent &event) override
 
void OnPaintBW (wxPaintEvent &event) override
 
void OnLoadFile (wxCommandEvent &event) override
 
void OnExportToFile (wxCommandEvent &event) override
 
void OnExportToClipboard (wxCommandEvent &event) override
 
EDA_UNITS getUnitFromSelection ()
 
wxString FormatOutputSize (double aSize)
 
void exportEeschemaFormat ()
 Generate a schematic library which contains one component: the logo. More...
 
void exportPcbnewFormat ()
 Generate a footprint in S expr format. More...
 
void exportPostScriptFormat ()
 Generate a postscript file. More...
 
void OnExportLogo ()
 Generate a file suitable to be copied into a drawing sheet (.kicad_wks) file. More...
 
void Binarize (double aThreshold)
 
void OnNegativeClicked (wxCommandEvent &event) override
 
void OnThresholdChange (wxScrollEvent &event) override
 
void OnSizeChangeX (wxCommandEvent &event) override
 
void OnSizeChangeY (wxCommandEvent &event) override
 
void OnSizeUnitChange (wxCommandEvent &event) override
 
void ToggleAspectRatioLock (wxCommandEvent &event) override
 
void NegateGreyscaleImage ()
 
void ExportToBuffer (std::string &aOutput, OUTPUT_FMT_ID aFormat)
 generate a export data of the current bitmap. More...
 
void updateImageInfo ()
 
void OnFormatChange (wxCommandEvent &event) override
 
void exportBitmap (OUTPUT_FMT_ID aFormat)
 
void LoadSettings (APP_SETTINGS_BASE *aCfg) override
 Load common frame parameters from a configuration file. More...
 
void SaveSettings (APP_SETTINGS_BASE *aCfg) override
 Save common frame parameters to a configuration data file. More...
 
wxWindow * GetToolCanvas () const override
 Canvas access. More...
 
void windowClosing (wxCloseEvent &event)
 (with its unexpected name so it does not collide with the real OnWindowClose() function provided in derived classes) is called just before a window closing, and is used to call a derivation specific SaveSettings(). More...
 
void commonInit (FRAME_T aFrameType)
 Collect common initialization functions used in all CTORs. More...
 
wxWindow * findQuasiModalDialog ()
 

Private Attributes

wxImage m_Pict_Image
 
wxBitmap m_Pict_Bitmap
 
wxImage m_Greyscale_Image
 
wxBitmap m_Greyscale_Bitmap
 
wxImage m_NB_Image
 
wxBitmap m_BN_Bitmap
 
IMAGE_SIZE m_outputSizeX
 
IMAGE_SIZE m_outputSizeY
 
bool m_Negative
 
wxString m_BitmapFileName
 
wxString m_ConvertedFileName
 
bool m_exportToClipboard
 
bool m_AspectRatioLocked
 
double m_AspectRatio
 
KIWAYm_kiway
 
HOLDER_TYPE m_type
 
const EDA_IU_SCALEm_iuScale
 
EDA_UNITS m_userUnits
 

Detailed Description

Definition at line 85 of file bitmap2cmp_gui.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 39 of file kiway_holder.h.

◆ UNDO_REDO_LIST

Specifies whether we are interacting with the undo or redo stacks.

Enumerator
UNDO_LIST 
REDO_LIST 

Definition at line 111 of file eda_base_frame.h.

112 {
113 UNDO_LIST,
115 };

Constructor & Destructor Documentation

◆ BM2CMP_FRAME()

BM2CMP_FRAME::BM2CMP_FRAME ( KIWAY aKiway,
wxWindow *  aParent 
)

Definition at line 154 of file bitmap2cmp_gui.cpp.

154 :
155 BM2CMP_FRAME_BASE( aParent )
156{
157 SetKiway( this, aKiway );
158
159 for( wxString unit : { _( "mm" ), _( "Inch" ), _( "DPI" ) } )
160 m_PixelUnit->Append( unit );
161
162 LoadSettings( config() );
163
168
171
172 //Set icon for aspect ratio
173 m_AspectRatioLocked = true;
174 m_AspectRatio = 1;
176
177 // Give an icon
178 wxIcon icon;
179 wxIconBundle icon_bundle;
180
181 icon.CopyFromBitmap( KiBitmap( BITMAPS::icon_bitmap2component ) );
182 icon_bundle.AddIcon( icon );
183 icon.CopyFromBitmap( KiBitmap( BITMAPS::icon_bitmap2component_32 ) );
184 icon_bundle.AddIcon( icon );
185 icon.CopyFromBitmap( KiBitmap( BITMAPS::icon_bitmap2component_16 ) );
186 icon_bundle.AddIcon( icon );
187
188 SetIcons( icon_bundle );
189
190 GetSizer()->SetSizeHints( this );
191
192 m_buttonExportFile->Enable( false );
193 m_buttonExportClipboard->Enable( false );
194
195 SetSize( m_framePos.x, m_framePos.y, m_frameSize.x, m_frameSize.y );
196
197 if ( m_framePos == wxDefaultPosition )
198 Centre();
199}
wxBitmap KiBitmap(BITMAPS aBitmap, int aHeightTag)
Construct a wxBitmap from an image identifier Returns the image from the active theme if the image ha...
Definition: bitmap.cpp:105
@ icon_bitmap2component
@ icon_bitmap2component_32
@ icon_bitmap2component_16
wxButton * m_buttonExportFile
wxTextCtrl * m_UnitSizeX
wxBitmapButton * m_AspectRatioLockButton
wxButton * m_buttonExportClipboard
wxTextCtrl * m_UnitSizeY
BM2CMP_FRAME_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Bitmap to Component Converter"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL)
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
bool m_AspectRatioLocked
wxString FormatOutputSize(double aSize)
double m_AspectRatio
IMAGE_SIZE m_outputSizeY
IMAGE_SIZE m_outputSizeX
EDA_UNITS getUnitFromSelection()
virtual APP_SETTINGS_BASE * config() const
Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
void SetUnit(EDA_UNITS aUnit)
double GetOutputSize()
void SetOutputSize(double aSize, EDA_UNITS aUnit)
void SetKiway(wxWindow *aDest, KIWAY *aKiway)
It is only used for debugging, since "this" is not a wxWindow*.
#define _(s)

References _, EDA_BASE_FRAME::config(), FormatOutputSize(), IMAGE_SIZE::GetOutputSize(), getUnitFromSelection(), icon_bitmap2component, icon_bitmap2component_16, icon_bitmap2component_32, KiBitmap(), LoadSettings(), locked, m_AspectRatio, BM2CMP_FRAME_BASE::m_AspectRatioLockButton, m_AspectRatioLocked, BM2CMP_FRAME_BASE::m_buttonExportClipboard, BM2CMP_FRAME_BASE::m_buttonExportFile, EDA_BASE_FRAME::m_framePos, EDA_BASE_FRAME::m_frameSize, m_outputSizeX, m_outputSizeY, BM2CMP_FRAME_BASE::m_PixelUnit, BM2CMP_FRAME_BASE::m_UnitSizeX, BM2CMP_FRAME_BASE::m_UnitSizeY, KIWAY_HOLDER::SetKiway(), IMAGE_SIZE::SetOutputSize(), and IMAGE_SIZE::SetUnit().

◆ ~BM2CMP_FRAME()

BM2CMP_FRAME::~BM2CMP_FRAME ( )

Definition at line 202 of file bitmap2cmp_gui.cpp.

203{
204 SaveSettings( config() );
205 /*
206 * This needed for OSX: avoids further OnDraw processing after this
207 * destructor and before the native window is destroyed
208 */
209 Freeze();
210}
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.

References EDA_BASE_FRAME::config(), and SaveSettings().

Member Function Documentation

◆ AddStandardHelpMenu()

void EDA_BASE_FRAME::AddStandardHelpMenu ( wxMenuBar *  aMenuBar)
inherited

Adds the standard KiCad help menu to the menubar.

Definition at line 443 of file eda_base_frame.cpp.

444{
446 ACTION_MENU* helpMenu = new ACTION_MENU( false, commonControl );
447
448 helpMenu->Add( ACTIONS::help );
449 helpMenu->Add( ACTIONS::gettingStarted );
450 helpMenu->Add( ACTIONS::listHotKeys );
451 helpMenu->Add( ACTIONS::getInvolved );
452 helpMenu->Add( ACTIONS::donate );
453 helpMenu->Add( ACTIONS::reportBug );
454
455 helpMenu->AppendSeparator();
456 helpMenu->Add( _( "&About KiCad" ), "", wxID_ABOUT, BITMAPS::about );
457
458 // Trailing space keeps OSX from hijacking our menu (and disabling everything in it).
459 aMenuBar->Append( helpMenu, _( "&Help" ) + wxS( " " ) );
460}
static TOOL_ACTION reportBug
Cursor control event types.
Definition: actions.h:186
static TOOL_ACTION donate
Definition: actions.h:184
static TOOL_ACTION listHotKeys
Definition: actions.h:183
static TOOL_ACTION getInvolved
Definition: actions.h:185
static TOOL_ACTION gettingStarted
Definition: actions.h:181
static TOOL_ACTION help
Definition: actions.h:182
Defines the structure of a menu based on ACTIONs.
Definition: action_menu.h:49
Handle actions that are shared between different applications.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:170

References _, about, ACTIONS::donate, ACTIONS::getInvolved, ACTIONS::gettingStarted, TOOL_MANAGER::GetTool(), ACTIONS::help, ACTIONS::listHotKeys, TOOLS_HOLDER::m_toolManager, and ACTIONS::reportBug.

Referenced by EDA_3D_VIEWER_FRAME::CreateMenuBar(), CVPCB_MAINFRAME::ReCreateMenuBar(), SCH_EDIT_FRAME::ReCreateMenuBar(), SYMBOL_EDIT_FRAME::ReCreateMenuBar(), SYMBOL_VIEWER_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), KICAD_MANAGER_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), FOOTPRINT_EDIT_FRAME::ReCreateMenuBar(), FOOTPRINT_VIEWER_FRAME::ReCreateMenuBar(), and PCB_EDIT_FRAME::ReCreateMenuBar().

◆ Binarize()

void BM2CMP_FRAME::Binarize ( double  aThreshold)
private

Definition at line 604 of file bitmap2cmp_gui.cpp.

605{
606 int h = m_Greyscale_Image.GetHeight();
607 int w = m_Greyscale_Image.GetWidth();
608 unsigned char threshold = aThreshold * 255;
609 unsigned char alpha_thresh = 0.7 * threshold;
610
611 for( int y = 0; y < h; y++ )
612 for( int x = 0; x < w; x++ )
613 {
614 unsigned char pixout;
615 auto pixin = m_Greyscale_Image.GetGreen( x, y );
616 auto alpha = m_Greyscale_Image.HasAlpha() ?
617 m_Greyscale_Image.GetAlpha( x, y ) : wxALPHA_OPAQUE;
618
619 if( pixin < threshold && alpha > alpha_thresh )
620 pixout = 0;
621 else
622 pixout = 255;
623
624 m_NB_Image.SetRGB( x, y, pixout, pixout, pixout );
625
626 }
627
628 m_BN_Bitmap = wxBitmap( m_NB_Image );
629
630}
wxImage m_NB_Image
wxImage m_Greyscale_Image
wxBitmap m_BN_Bitmap

References m_BN_Bitmap, m_Greyscale_Image, and m_NB_Image.

Referenced by OnNegativeClicked(), OnThresholdChange(), and OpenProjectFiles().

◆ canCloseWindow()

virtual bool EDA_BASE_FRAME::canCloseWindow ( wxCloseEvent &  aCloseEvent)
inlineprotectedvirtualinherited

◆ ChangeUserUnits()

void EDA_BASE_FRAME::ChangeUserUnits ( EDA_UNITS  aUnits)
inherited

Definition at line 1303 of file eda_base_frame.cpp.

1304{
1305 SetUserUnits( aUnits );
1307
1308 wxCommandEvent e( UNITS_CHANGED );
1309 ProcessEventLocally( e );
1310}
virtual void unitsChangeRefresh()
Called when when the units setting has changed to allow for any derived classes to handle refreshing ...
void SetUserUnits(EDA_UNITS aUnits)

References UNITS_PROVIDER::SetUserUnits(), and EDA_BASE_FRAME::unitsChangeRefresh().

Referenced by COMMON_TOOLS::SwitchUnits(), and COMMON_TOOLS::ToggleUnits().

◆ CheckForAutoSaveFile()

void EDA_BASE_FRAME::CheckForAutoSaveFile ( const wxFileName &  aFileName)
virtualinherited

Check if an auto save file exists for aFileName and takes the appropriate action depending on the user input.

If an auto save file exists for aFileName, the user is prompted if they wish to replace file aFileName with the auto saved file. If the user chooses to replace the file, the backup file of aFileName is removed, aFileName is renamed to the backup file name, and the auto save file is renamed to aFileName. If user chooses to keep the existing version of aFileName, the auto save file is removed.

Parameters
aFileNameA wxFileName object containing the file name to check.

Reimplemented in SCH_EDIT_FRAME.

Definition at line 1191 of file eda_base_frame.cpp.

1192{
1193 wxCHECK_RET( aFileName.IsOk(), wxT( "Invalid file name!" ) );
1194
1195 wxFileName autoSaveFileName = aFileName;
1196
1197 // Check for auto save file.
1198 autoSaveFileName.SetName( GetAutoSaveFilePrefix() + aFileName.GetName() );
1199
1200 wxLogTrace( traceAutoSave,
1201 wxT( "Checking for auto save file " ) + autoSaveFileName.GetFullPath() );
1202
1203 if( !autoSaveFileName.FileExists() )
1204 return;
1205
1206 wxString msg = wxString::Format( _(
1207 "Well this is potentially embarrassing!\n"
1208 "It appears that the last time you were editing the file\n"
1209 "%s\n"
1210 "it was not saved properly. Do you wish to restore the last saved edits you made?" ),
1211 aFileName.GetFullName()
1212 );
1213
1214 int response = wxMessageBox( msg, Pgm().App().GetAppDisplayName(), wxYES_NO | wxICON_QUESTION,
1215 this );
1216
1217 // Make a backup of the current file, delete the file, and rename the auto save file to
1218 // the file name.
1219 if( response == wxYES )
1220 {
1221 if( !wxRenameFile( autoSaveFileName.GetFullPath(), aFileName.GetFullPath() ) )
1222 {
1223 wxMessageBox( _( "The auto save file could not be renamed to the board file name." ),
1224 Pgm().App().GetAppDisplayName(), wxOK | wxICON_EXCLAMATION, this );
1225 }
1226 }
1227 else
1228 {
1229 wxLogTrace( traceAutoSave,
1230 wxT( "Removing auto save file " ) + autoSaveFileName.GetFullPath() );
1231
1232 // Remove the auto save file when using the previous file as is.
1233 wxRemoveFile( autoSaveFileName.GetFullPath() );
1234 }
1235}
static wxString GetAutoSaveFilePrefix()
const wxChar *const traceAutoSave
Flag to enable auto save feature debug tracing.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:111

References _, Format(), EDA_BASE_FRAME::GetAutoSaveFilePrefix(), Pgm(), and traceAutoSave.

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

◆ ClearFileHistory()

void EDA_BASE_FRAME::ClearFileHistory ( FILE_HISTORY aFileHistory = nullptr)
inherited

Removes all files from the file history.

Parameters
aFileHistoryThe FILE_HISTORY in use. If null, the main application file history is used

Definition at line 948 of file eda_base_frame.cpp.

949{
950 if( !aFileHistory )
951 aFileHistory = m_fileHistory;
952
953 wxASSERT( aFileHistory );
954
955 aFileHistory->ClearFileHistory();
956
957 // Update the menubar to update the file history menu
958 if( GetMenuBar() )
959 {
961 GetMenuBar()->Refresh();
962 }
963}
FILE_HISTORY * m_fileHistory
virtual void ReCreateMenuBar()
Recreates the menu bar.
void ClearFileHistory()
Clear all entries from the file history.

References FILE_HISTORY::ClearFileHistory(), EDA_BASE_FRAME::m_fileHistory, and EDA_BASE_FRAME::ReCreateMenuBar().

Referenced by GERBVIEW_FRAME::OnClearDrlFileHistory(), SCH_EDIT_FRAME::OnClearFileHistory(), KICAD_MANAGER_FRAME::OnClearFileHistory(), PL_EDITOR_FRAME::OnClearFileHistory(), PCB_EDIT_FRAME::OnClearFileHistory(), GERBVIEW_FRAME::OnClearGbrFileHistory(), GERBVIEW_FRAME::OnClearJobFileHistory(), and GERBVIEW_FRAME::OnClearZipFileHistory().

◆ ClearUndoORRedoList()

virtual void EDA_BASE_FRAME::ClearUndoORRedoList ( UNDO_REDO_LIST  aList,
int  aItemCount = -1 
)
inlinevirtualinherited

Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if needed.

Because picked items must be deleted only if they are not in use, this is a virtual pure function that must be created for SCH_SCREEN and PCB_SCREEN. Commands are deleted from the older to the last.

Parameters
aList= the UNDO_REDO_CONTAINER of commands.
aItemCountnumber of old commands to delete. -1 to remove all old commands this will empty the list of commands.

Reimplemented in SCH_EDIT_FRAME, SYMBOL_EDIT_FRAME, PL_EDITOR_FRAME, and PCB_BASE_EDIT_FRAME.

Definition at line 528 of file eda_base_frame.h.

529 { }

Referenced by EDA_BASE_FRAME::ClearUndoRedoList(), EDA_BASE_FRAME::PushCommandToRedoList(), and EDA_BASE_FRAME::PushCommandToUndoList().

◆ ClearUndoRedoList()

◆ commonInit()

void EDA_BASE_FRAME::commonInit ( FRAME_T  aFrameType)
privateinherited

Collect common initialization functions used in all CTORs.

Definition at line 117 of file eda_base_frame.cpp.

118{
119 m_ident = aFrameType;
120 m_maximizeByDefault = false;
121 m_infoBar = nullptr;
122 m_settingsManager = nullptr;
123 m_fileHistory = nullptr;
124 m_supportsAutoSave = false;
125 m_autoSaveState = false;
127 m_isClosing = false;
128 m_isNonUserClose = false;
129 m_autoSaveTimer = new wxTimer( this, ID_AUTO_SAVE_TIMER );
131 m_frameSize = defaultSize( aFrameType );
132 m_displayIndex = -1;
133
134 m_auimgr.SetArtProvider( new WX_AUI_DOCK_ART() );
135
136 m_settingsManager = &Pgm().GetSettingsManager();
137
138 // Set a reasonable minimal size for the frame
139 SetSizeHints( minSize( aFrameType ).x, minSize( aFrameType ).y, -1, -1, -1, -1 );
140
141 // Store dimensions of the user area of the main window.
142 GetClientSize( &m_frameSize.x, &m_frameSize.y );
143
144 Connect( ID_AUTO_SAVE_TIMER, wxEVT_TIMER,
145 wxTimerEventHandler( EDA_BASE_FRAME::onAutoSaveTimer ) );
146
147 // hook wxEVT_CLOSE_WINDOW so we can call SaveSettings(). This function seems
148 // to be called before any other hook for wxCloseEvent, which is necessary.
149 Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_BASE_FRAME::windowClosing ) );
150
151 initExitKey();
152}
void windowClosing(wxCloseEvent &event)
(with its unexpected name so it does not collide with the real OnWindowClose() function provided in d...
void initExitKey()
Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id.
WX_INFOBAR * m_infoBar
void onAutoSaveTimer(wxTimerEvent &aEvent)
Handle the auto save timer event.
wxTimer * m_autoSaveTimer
wxAuiManager m_auimgr
SETTINGS_MANAGER * m_settingsManager
bool m_isClosing
Set by NonUserClose() to indicate that the user did not request the current close.
wxString m_mruPath
static wxString GetDefaultUserProjectsPath()
Gets the default path we point users to create projects.
Definition: paths.cpp:139
static const wxSize minSize(FRAME_T aFrameType)
static const wxSize defaultSize(FRAME_T aFrameType)
#define DEFAULT_MAX_UNDO_ITEMS
@ ID_AUTO_SAVE_TIMER
Definition: id.h:79

References DEFAULT_MAX_UNDO_ITEMS, defaultSize(), PATHS::GetDefaultUserProjectsPath(), ID_AUTO_SAVE_TIMER, minSize(), EDA_BASE_FRAME::onAutoSaveTimer(), Pgm(), and EDA_BASE_FRAME::windowClosing().

Referenced by EDA_BASE_FRAME::EDA_BASE_FRAME().

◆ CommonSettingsChanged()

void EDA_BASE_FRAME::CommonSettingsChanged ( bool  aEnvVarsChanged,
bool  aTextVarsChanged 
)
overridevirtualinherited

Notification event that some of the common (suite-wide) settings have changed.

Update menus, toolbars, local variables, etc.

Reimplemented from TOOLS_HOLDER.

Reimplemented in EDA_DRAW_FRAME, PCB_BASE_FRAME, KICAD_MANAGER_FRAME, PL_EDITOR_FRAME, FOOTPRINT_EDIT_FRAME, FOOTPRINT_VIEWER_FRAME, and PCB_EDIT_FRAME.

Definition at line 475 of file eda_base_frame.cpp.

476{
477 TOOLS_HOLDER::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged );
478
479 COMMON_SETTINGS* settings = Pgm().GetCommonSettings();
480
481 if( m_fileHistory )
482 {
483 int historySize = settings->m_System.file_history_size;
484 m_fileHistory->SetMaxFiles( (unsigned) std::max( 0, historySize ) );
485 }
486
488 ThemeChanged();
489
490 if( GetMenuBar() )
491 {
492 // For icons in menus, icon scaling & hotkeys
494 GetMenuBar()->Refresh();
495 }
496}
BITMAP_STORE * GetBitmapStore()
Definition: bitmap.cpp:93
void ThemeChanged()
Notifies the store that the icon theme has been changed by the user, so caches must be invalidated.
virtual void ThemeChanged()
Process light/dark theme change.
void SetMaxFiles(size_t aMaxFiles)
Update the number of files that will be contained inside the file history.
Definition: filehistory.cpp:85
virtual void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged)
Notification event that some of the common (suite-wide) settings have changed.

References TOOLS_HOLDER::CommonSettingsChanged(), COMMON_SETTINGS::SYSTEM::file_history_size, GetBitmapStore(), EDA_BASE_FRAME::m_fileHistory, COMMON_SETTINGS::m_System, Pgm(), EDA_BASE_FRAME::ReCreateMenuBar(), FILE_HISTORY::SetMaxFiles(), BITMAP_STORE::ThemeChanged(), and EDA_BASE_FRAME::ThemeChanged().

Referenced by KIWAY::CommonSettingsChanged(), EDA_3D_VIEWER_FRAME::CommonSettingsChanged(), EDA_DRAW_FRAME::CommonSettingsChanged(), and KICAD_MANAGER_FRAME::CommonSettingsChanged().

◆ config()

APP_SETTINGS_BASE * EDA_BASE_FRAME::config ( ) const
virtualinherited

Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.

Reimplemented in SYMBOL_EDIT_FRAME, KICAD_MANAGER_FRAME, and FOOTPRINT_EDIT_FRAME.

Definition at line 788 of file eda_base_frame.cpp.

789{
790 // KICAD_MANAGER_FRAME overrides this
791 return Kiface().KifaceSettings();
792}
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_base.h:93

References Kiface(), and KIFACE_BASE::KifaceSettings().

Referenced by GERBVIEW_FRAME::ActivateGalCanvas(), PCB_BASE_FRAME::ActivateGalCanvas(), BM2CMP_FRAME(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), SIM_PLOT_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::doCloseWindow(), SCH_BASE_FRAME::eeconfig(), GERBVIEW_FRAME::GERBVIEW_FRAME(), PCB_EDIT_FRAME::GetRotationAngle(), GRID_MENU::GRID_MENU(), COMMON_TOOLS::GridFast1(), COMMON_TOOLS::GridFast2(), GERBVIEW_FRAME::gvconfig(), EDA_DRAW_FRAME::IsGridVisible(), SCH_BASE_FRAME::libeditconfig(), EDA_DRAW_FRAME::OnUpdateSelectGrid(), EDA_DRAW_FRAME::OnUpdateSelectZoom(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), GERBVIEW_FRAME::Read_EXCELLON_File(), DIALOG_GRID_SETTINGS::RebuildGridSizes(), EDA_DRAW_FRAME::resolveCanvasType(), PCB_BASE_EDIT_FRAME::SetBoard(), EDA_DRAW_FRAME::SetGridVisibility(), CVPCB_MAINFRAME::setupTools(), SCH_EDIT_FRAME::setupTools(), SYMBOL_VIEWER_FRAME::setupTools(), GERBVIEW_FRAME::setupTools(), PL_EDITOR_FRAME::setupTools(), PCB_EDIT_FRAME::setupTools(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), DIALOG_GRID_SETTINGS::TransferDataToWindow(), GRID_MENU::update(), ZOOM_MENU::update(), EDA_DRAW_FRAME::UpdateGridSelectBox(), EDA_DRAW_FRAME::UpdateZoomSelectBox(), EDA_BASE_FRAME::windowClosing(), and ~BM2CMP_FRAME().

◆ ConfigBaseName()

wxString EDA_BASE_FRAME::ConfigBaseName ( )
inlineoverridevirtualinherited

Get the configuration base name.

This is usually the name of the frame set by CTOR, except for frames shown in multiple modes in which case the m_configName must be set to the base name so that a single configuration can be used.

Returns
a base name prefix used in Load/Save settings to build the full name of keys used in configuration.

Reimplemented from TOOLS_HOLDER.

Definition at line 341 of file eda_base_frame.h.

342 {
343 wxString baseCfgName = m_configName.IsEmpty() ? GetName() : m_configName;
344 return baseCfgName;
345 }
wxString m_configName

References EDA_BASE_FRAME::m_configName.

◆ CreateInfoBar()

void EDA_BASE_FRAME::CreateInfoBar ( )
inherited

Definition at line 813 of file eda_base_frame.cpp.

814{
815#if defined( __WXOSX_MAC__ )
817#else
818 m_infoBar = new WX_INFOBAR( this, &m_auimgr );
819
820 m_auimgr.AddPane( m_infoBar, EDA_PANE().InfoBar().Name( "InfoBar" ).Top().Layer(1) );
821#endif
822}
Specialization of the wxAuiPaneInfo class for KiCad panels.
virtual wxWindow * GetToolCanvas() const =0
Canvas access.
A modified version of the wxInfoBar class that allows us to:
Definition: infobar.h:75

References TOOLS_HOLDER::GetToolCanvas(), EDA_BASE_FRAME::m_auimgr, and EDA_BASE_FRAME::m_infoBar.

◆ CreateServer()

void KIWAY_PLAYER::CreateServer ( int  service,
bool  local = true 
)
inherited

Definition at line 43 of file eda_dde.cpp.

44{
45 wxIPV4address addr;
46
47 // Set the port number
48 addr.Service( service );
49
50 // Listen on localhost only if requested
51 if( local )
52 addr.Hostname( HOSTNAME );
53
54 if( m_socketServer )
55 {
56 // this helps prevent any events that could come in during deletion
57 m_socketServer->Notify( false );
58 delete m_socketServer;
59 }
60
61 m_socketServer = new wxSocketServer( addr );
62
63 m_socketServer->SetNotify( wxSOCKET_CONNECTION_FLAG );
64 m_socketServer->SetEventHandler( *this, ID_EDA_SOCKET_EVENT_SERV );
65 m_socketServer->Notify( true );
66}
wxSocketServer * m_socketServer
Definition: kiway_player.h:218
static const wxString HOSTNAME(wxT("localhost"))
@ ID_EDA_SOCKET_EVENT_SERV
Definition: id.h:163

References HOSTNAME(), ID_EDA_SOCKET_EVENT_SERV, and KIWAY_PLAYER::m_socketServer.

Referenced by SCH::IFACE::CreateWindow().

◆ CurrentToolName()

std::string TOOLS_HOLDER::CurrentToolName ( ) const
inherited

Definition at line 110 of file tools_holder.cpp.

111{
112 if( m_toolStack.empty() )
114 else
115 return m_toolStack.back();
116}
static TOOL_ACTION selectionTool
Definition: actions.h:156
std::vector< std::string > m_toolStack
Definition: tools_holder.h:176
const std::string & GetName() const
Return name of the action.
Definition: tool_action.h:101

References TOOL_ACTION::GetName(), TOOLS_HOLDER::m_toolStack, and ACTIONS::selectionTool.

Referenced by TOOLS_HOLDER::ShowChangedLanguage().

◆ Destroy()

◆ DismissModal()

void KIWAY_PLAYER::DismissModal ( bool  aRetVal,
const wxString &  aResult = wxEmptyString 
)
inherited

Definition at line 182 of file kiway_player.cpp.

183{
184 m_modal_ret_val = aRetVal;
185 m_modal_string = aResult;
186
187 if( m_modal_loop )
188 {
189 m_modal_loop->Exit();
190 m_modal_loop = nullptr; // this marks it as dismissed.
191 }
192
193 Show( false );
194}
wxString m_modal_string
Definition: kiway_player.h:215
WX_EVENT_LOOP * m_modal_loop
< Points to nested event_loop. NULL means not modal and dismissed.
Definition: kiway_player.h:213
bool m_modal_ret_val
Definition: kiway_player.h:216

References KIWAY_PLAYER::m_modal_loop, KIWAY_PLAYER::m_modal_ret_val, and KIWAY_PLAYER::m_modal_string.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::ExportSelectedFootprint(), and SYMBOL_VIEWER_FRAME::FinishModal().

◆ DisplayToolMsg()

virtual void TOOLS_HOLDER::DisplayToolMsg ( const wxString &  msg)
inlinevirtualinherited

Reimplemented in EDA_DRAW_FRAME.

Definition at line 133 of file tools_holder.h.

133{};

Referenced by TOOLS_HOLDER::PopTool(), TOOLS_HOLDER::PushTool(), and TOOLS_HOLDER::ShowChangedLanguage().

◆ doAutoSave()

bool EDA_BASE_FRAME::doAutoSave ( )
protectedvirtualinherited

This should be overridden by the derived class to handle the auto save feature.

Returns
true if the auto save was successful otherwise false.

Reimplemented in SCH_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 310 of file eda_base_frame.cpp.

311{
312 wxCHECK_MSG( false, true, wxT( "Auto save timer function not overridden. Bad programmer!" ) );
313}

Referenced by EDA_BASE_FRAME::onAutoSaveTimer().

◆ doCloseWindow()

◆ DoWithAcceptedFiles()

void EDA_BASE_FRAME::DoWithAcceptedFiles ( )
protectedvirtualinherited

Execute action on accepted dropped file.

Called in OnDropFiles and should be populated with the action to execute in inherited classes.

Reimplemented in GERBVIEW_FRAME, KICAD_MANAGER_FRAME, and PL_EDITOR_FRAME.

Definition at line 1138 of file eda_base_frame.cpp.

1139{
1140 for( const wxFileName& file : m_AcceptedFiles )
1141 {
1142 wxString fn = file.GetFullPath();
1143 m_toolManager->RunAction( *m_acceptedExts.at( file.GetExt() ), true, &fn );
1144 }
1145}
std::vector< wxFileName > m_AcceptedFiles
std::map< const wxString, TOOL_ACTION * > m_acceptedExts
Associates files extensions with action to execute.
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:142

References EDA_BASE_FRAME::m_acceptedExts, EDA_BASE_FRAME::m_AcceptedFiles, TOOLS_HOLDER::m_toolManager, and TOOL_MANAGER::RunAction().

Referenced by EDA_BASE_FRAME::OnDropFiles().

◆ ensureWindowIsOnScreen()

void EDA_BASE_FRAME::ensureWindowIsOnScreen ( )
protectedinherited

Definition at line 640 of file eda_base_frame.cpp.

641{
642 wxDisplay display( wxDisplay::GetFromWindow( this ) );
643 wxRect clientSize = display.GetClientArea();
644 wxPoint pos = GetPosition();
645 wxSize size = GetWindowSize();
646
647 wxLogTrace( traceDisplayLocation,
648 "ensureWindowIsOnScreen: clientArea (%d, %d) w %d h %d", clientSize.x, clientSize.y,
649 clientSize.width, clientSize.height );
650
651 if( pos.y < clientSize.y )
652 {
653 wxLogTrace( traceDisplayLocation,
654 "ensureWindowIsOnScreen: y pos %d below minimum, setting to %d", pos.y,
655 clientSize.y );
656 pos.y = clientSize.y;
657 }
658
659 if( pos.x < clientSize.x )
660 {
661 wxLogTrace( traceDisplayLocation,
662 "ensureWindowIsOnScreen: x pos %d is off the client rect, setting to %d", pos.x,
663 clientSize.x );
664 pos.x = clientSize.x;
665 }
666
667 if( pos.x + size.x - clientSize.x > clientSize.width )
668 {
669 int newWidth = clientSize.width - ( pos.x - clientSize.x );
670 wxLogTrace( traceDisplayLocation,
671 "ensureWindowIsOnScreen: effective width %d above available %d, setting to %d",
672 pos.x + size.x, clientSize.width, newWidth );
673 size.x = newWidth;
674 }
675
676 if( pos.y + size.y - clientSize.y > clientSize.height )
677 {
678 int newHeight = clientSize.height - ( pos.y - clientSize.y );
679 wxLogTrace( traceDisplayLocation,
680 "ensureWindowIsOnScreen: effective height %d above available %d, setting to %d",
681 pos.y + size.y, clientSize.height, newHeight );
682 size.y = newHeight;
683 }
684
685 wxLogTrace( traceDisplayLocation, "Updating window position (%d, %d) with size (%d, %d)",
686 pos.x, pos.y, size.x, size.y );
687
688 SetSize( pos.x, pos.y, size.x, size.y );
689}
wxSize GetWindowSize()
Get the undecorated window size that can be used for restoring the window size.
const wxChar *const traceDisplayLocation
Flag to enable debug output of display positioning logic.

References EDA_BASE_FRAME::GetWindowSize(), and traceDisplayLocation.

Referenced by EDA_BASE_FRAME::OnSize().

◆ ExecuteRemoteCommand()

virtual void KIWAY_PLAYER::ExecuteRemoteCommand ( const char *  cmdline)
inlinevirtualinherited

Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242).

Subclasses should override to implement actual command handlers.

Reimplemented in SCH_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 196 of file kiway_player.h.

196{}

Referenced by KIWAY_PLAYER::OnSockRequest().

◆ exportBitmap()

void BM2CMP_FRAME::exportBitmap ( OUTPUT_FMT_ID  aFormat)
private

Definition at line 711 of file bitmap2cmp_gui.cpp.

712{
713 switch( aFormat )
714 {
715 case EESCHEMA_FMT:
717 break;
718
719 case PCBNEW_KICAD_MOD:
721 break;
722
723 case POSTSCRIPT_FMT:
725 break;
726
727 case KICAD_WKS_LOGO:
728 OnExportLogo();
729 break;
730 }
731}
@ KICAD_WKS_LOGO
@ PCBNEW_KICAD_MOD
@ POSTSCRIPT_FMT
@ EESCHEMA_FMT
void OnExportLogo()
Generate a file suitable to be copied into a drawing sheet (.kicad_wks) file.
void exportEeschemaFormat()
Generate a schematic library which contains one component: the logo.
void exportPostScriptFormat()
Generate a postscript file.
void exportPcbnewFormat()
Generate a footprint in S expr format.

References EESCHEMA_FMT, exportEeschemaFormat(), exportPcbnewFormat(), exportPostScriptFormat(), KICAD_WKS_LOGO, OnExportLogo(), PCBNEW_KICAD_MOD, and POSTSCRIPT_FMT.

Referenced by OnExportToFile().

◆ exportEeschemaFormat()

void BM2CMP_FRAME::exportEeschemaFormat ( )
private

Generate a schematic library which contains one component: the logo.

Definition at line 811 of file bitmap2cmp_gui.cpp.

812{
813 wxFileName fn( m_ConvertedFileName );
814 wxString path = fn.GetPath();
815
816 if( path.IsEmpty() || !wxDirExists(path) )
817 path = ::wxGetCwd();
818
819 wxFileDialog fileDlg( this, _( "Create Symbol Library" ),
820 path, wxEmptyString,
822 wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
823
824 int diag = fileDlg.ShowModal();
825
826 if( diag != wxID_OK )
827 return;
828
829 fn = fileDlg.GetPath();
830 fn.SetExt( KiCadSymbolLibFileExtension );
831 m_ConvertedFileName = fn.GetFullPath();
832
833 FILE* outfile = wxFopen( m_ConvertedFileName, wxT( "w" ) );
834
835 if( outfile == nullptr )
836 {
837 wxString msg;
838 msg.Printf( _( "File '%s' could not be created." ), m_ConvertedFileName );
839 wxMessageBox( msg );
840 return;
841 }
842
843 std::string buffer;
844 ExportToBuffer( buffer, EESCHEMA_FMT );
845 fputs( buffer.c_str(), outfile );
846 fclose( outfile );
847}
wxString m_ConvertedFileName
void ExportToBuffer(std::string &aOutput, OUTPUT_FMT_ID aFormat)
generate a export data of the current bitmap.
const std::string KiCadSymbolLibFileExtension
wxString KiCadSymbolLibFileWildcard()

References _, EESCHEMA_FMT, ExportToBuffer(), KiCadSymbolLibFileExtension, KiCadSymbolLibFileWildcard(), m_ConvertedFileName, and path.

Referenced by exportBitmap().

◆ exportPcbnewFormat()

void BM2CMP_FRAME::exportPcbnewFormat ( )
private

Generate a footprint in S expr format.

Definition at line 850 of file bitmap2cmp_gui.cpp.

851{
852 wxFileName fn( m_ConvertedFileName );
853 wxString path = fn.GetPath();
854
855 if( path.IsEmpty() || !wxDirExists( path ) )
856 path = m_mruPath;
857
858 wxFileDialog fileDlg( this, _( "Create Footprint Library" ),
859 path, wxEmptyString,
861 wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
862
863 int diag = fileDlg.ShowModal();
864
865 if( diag != wxID_OK )
866 return;
867
868 fn = fileDlg.GetPath();
869 fn.SetExt( KiCadFootprintFileExtension );
870 m_ConvertedFileName = fn.GetFullPath();
871
872 FILE* outfile = wxFopen( m_ConvertedFileName, wxT( "w" ) );
873
874 if( outfile == nullptr )
875 {
876 wxString msg;
877 msg.Printf( _( "File '%s' could not be created." ), m_ConvertedFileName );
878 wxMessageBox( msg );
879 return;
880 }
881
882 std::string buffer;
884 fputs( buffer.c_str(), outfile );
885 fclose( outfile );
886 m_mruPath = fn.GetPath();
887}
const std::string KiCadFootprintFileExtension
wxString KiCadFootprintLibFileWildcard()

References _, ExportToBuffer(), KiCadFootprintFileExtension, KiCadFootprintLibFileWildcard(), m_ConvertedFileName, EDA_BASE_FRAME::m_mruPath, path, and PCBNEW_KICAD_MOD.

Referenced by exportBitmap().

◆ exportPostScriptFormat()

void BM2CMP_FRAME::exportPostScriptFormat ( )
private

Generate a postscript file.

Definition at line 771 of file bitmap2cmp_gui.cpp.

772{
773 wxFileName fn( m_ConvertedFileName );
774 wxString path = fn.GetPath();
775
776 if( path.IsEmpty() || !wxDirExists( path ) )
777 path = ::wxGetCwd();
778
779 wxFileDialog fileDlg( this, _( "Create PostScript File" ),
780 path, wxEmptyString,
782 wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
783
784 int diag = fileDlg.ShowModal();
785
786 if( diag != wxID_OK )
787 return;
788
789 fn = fileDlg.GetPath();
790 fn.SetExt( wxT( "ps" ) );
791 m_ConvertedFileName = fn.GetFullPath();
792
793 FILE* outfile;
794 outfile = wxFopen( m_ConvertedFileName, wxT( "w" ) );
795
796 if( outfile == nullptr )
797 {
798 wxString msg;
799 msg.Printf( _( "File '%s' could not be created." ), m_ConvertedFileName );
800 wxMessageBox( msg );
801 return;
802 }
803
804 std::string buffer;
806 fputs( buffer.c_str(), outfile );
807 fclose( outfile );
808}
wxString PSFileWildcard()

References _, ExportToBuffer(), m_ConvertedFileName, path, POSTSCRIPT_FMT, and PSFileWildcard().

Referenced by exportBitmap().

◆ ExportToBuffer()

void BM2CMP_FRAME::ExportToBuffer ( std::string &  aOutput,
OUTPUT_FMT_ID  aFormat 
)
private

generate a export data of the current bitmap.

Parameters
aOutputis a string buffer to fill with data
aFormatis the format to generate

Definition at line 890 of file bitmap2cmp_gui.cpp.

891{
892 // Create a potrace bitmap
893 int h = m_NB_Image.GetHeight();
894 int w = m_NB_Image.GetWidth();
895 potrace_bitmap_t* potrace_bitmap = bm_new( w, h );
896
897 if( !potrace_bitmap )
898 {
899 wxString msg;
900 msg.Printf( _( "Error allocating memory for potrace bitmap" ) );
901 wxMessageBox( msg );
902 return;
903 }
904
905 /* fill the bitmap with data */
906 for( int y = 0; y < h; y++ )
907 {
908 for( int x = 0; x < w; x++ )
909 {
910 auto pix = m_NB_Image.GetGreen( x, y );
911 BM_PUT( potrace_bitmap, x, y, pix ? 0 : 1 );
912 }
913 }
914
915 // choices of m_rbPCBLayer are expected to be in same order as
916 // BMP2CMP_MOD_LAYER. See bitmap2component.h
918
919 if( aFormat == PCBNEW_KICAD_MOD )
920 modLayer = (BMP2CMP_MOD_LAYER) m_rbPCBLayer->GetSelection();
921
922 BITMAPCONV_INFO converter( aOutput );
923 converter.ConvertBitmap( potrace_bitmap, aFormat, m_outputSizeX.GetOutputDPI(),
924 m_outputSizeY.GetOutputDPI(), modLayer );
925
926 if( !converter.GetErrorMessages().empty() )
927 wxMessageBox( converter.GetErrorMessages().c_str(), _( "Errors" ) );
928}
BMP2CMP_MOD_LAYER
@ MOD_LYR_FSILKS
wxRadioBox * m_rbPCBLayer
int GetOutputDPI()

References _, BITMAPCONV_INFO::ConvertBitmap(), BITMAPCONV_INFO::GetErrorMessages(), IMAGE_SIZE::GetOutputDPI(), m_NB_Image, m_outputSizeX, m_outputSizeY, BM2CMP_FRAME_BASE::m_rbPCBLayer, MOD_LYR_FSILKS, and PCBNEW_KICAD_MOD.

Referenced by exportEeschemaFormat(), exportPcbnewFormat(), exportPostScriptFormat(), OnExportLogo(), and OnExportToClipboard().

◆ findQuasiModalDialog()

wxWindow * EDA_BASE_FRAME::findQuasiModalDialog ( )
privateinherited

Definition at line 168 of file eda_base_frame.cpp.

169{
170 for( wxWindow* iter : GetChildren() )
171 {
172 DIALOG_SHIM* dlg = dynamic_cast<DIALOG_SHIM*>( iter );
173
174 if( dlg && dlg->IsQuasiModal() )
175 return dlg;
176 }
177
178 // FIXME: CvPcb is currently implemented on top of KIWAY_PLAYER rather than DIALOG_SHIM,
179 // so we have to look for it separately.
180 if( m_ident == FRAME_SCH )
181 {
182 wxWindow* cvpcb = wxWindow::FindWindowByName( "CvpcbFrame" );
183
184 if( cvpcb )
185 return cvpcb;
186 }
187
188 return nullptr;
189}
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Definition: dialog_shim.h:83
bool IsQuasiModal() const
Definition: dialog_shim.h:106
@ FRAME_SCH
Definition: frame_type.h:34

References FRAME_SCH, DIALOG_SHIM::IsQuasiModal(), and EDA_BASE_FRAME::m_ident.

Referenced by EDA_BASE_FRAME::ProcessEvent(), and EDA_BASE_FRAME::windowClosing().

◆ FinishAUIInitialization()

void EDA_BASE_FRAME::FinishAUIInitialization ( )
inherited

Definition at line 825 of file eda_base_frame.cpp.

826{
827#if defined( __WXOSX_MAC__ )
828 m_auimgr.Update();
829#else
830 // Call Update() to fix all pane default sizes, especially the "InfoBar" pane before
831 // hiding it.
832 m_auimgr.Update();
833
834 // We don't want the infobar displayed right away
835 m_auimgr.GetPane( "InfoBar" ).Hide();
836 m_auimgr.Update();
837#endif
838}

References EDA_BASE_FRAME::m_auimgr.

◆ FormatOutputSize()

wxString BM2CMP_FRAME::FormatOutputSize ( double  aSize)
private

Definition at line 457 of file bitmap2cmp_gui.cpp.

458{
459 wxString text;
460
462 {
463 text.Printf( "%.1f", aSize );
464 }
466 {
467 text.Printf( "%.2f", aSize );
468 }
469 else
470 {
471 text.Printf( wxT( "%d" ), KiROUND( aSize ) );
472 }
473
474 return text;
475}
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: util.h:80

References getUnitFromSelection(), INCHES, KiROUND(), MILLIMETRES, and text.

Referenced by BM2CMP_FRAME(), OnSizeChangeX(), OnSizeChangeY(), OnSizeUnitChange(), and OpenProjectFiles().

◆ GetAboutTitle()

const wxString & EDA_BASE_FRAME::GetAboutTitle ( ) const
inlineinherited

◆ GetAutoSaveFilePrefix()

static wxString EDA_BASE_FRAME::GetAutoSaveFilePrefix ( )
inlinestaticprotectedinherited

◆ GetAutoSaveInterval()

int EDA_BASE_FRAME::GetAutoSaveInterval ( ) const
inherited

Definition at line 297 of file eda_base_frame.cpp.

298{
299 return Pgm().GetCommonSettings()->m_System.autosave_interval;
300}

References Pgm().

Referenced by EDA_DRAW_FRAME::CommonSettingsChanged(), EDA_BASE_FRAME::onAutoSaveTimer(), and EDA_BASE_FRAME::ProcessEvent().

◆ GetCurrentFileName()

virtual wxString EDA_BASE_FRAME::GetCurrentFileName ( ) const
inlinevirtualinherited

Get the full filename + path of the currently opened file in the frame.

If no file is open, an empty string is returned.

Returns
the filename and full path to the open file

Reimplemented in SCH_EDIT_FRAME, KICAD_MANAGER_FRAME, PL_EDITOR_FRAME, and PCB_EDIT_FRAME.

Definition at line 422 of file eda_base_frame.h.

422{ return wxEmptyString; }

Referenced by EDA_BASE_FRAME::SaveSettings().

◆ GetCurrentSelection()

virtual SELECTION & TOOLS_HOLDER::GetCurrentSelection ( )
inlinevirtualinherited

◆ GetDoImmediateActions()

bool TOOLS_HOLDER::GetDoImmediateActions ( ) const
inlineinherited

Indicate that hotkeys should perform an immediate action even if another tool is currently active.

If false, the first hotkey should select the relevant tool.

Definition at line 141 of file tools_holder.h.

141{ return m_immediateActions; }
bool m_immediateActions
Definition: tools_holder.h:183

References TOOLS_HOLDER::m_immediateActions.

◆ GetDragAction()

MOUSE_DRAG_ACTION TOOLS_HOLDER::GetDragAction ( ) const
inlineinherited

Indicates whether a drag should draw a selection rectangle or drag selected (or unselected) objects.

Definition at line 147 of file tools_holder.h.

147{ return m_dragAction; }
MOUSE_DRAG_ACTION m_dragAction
Definition: tools_holder.h:187

References TOOLS_HOLDER::m_dragAction.

Referenced by EE_SELECTION_TOOL::Main(), PL_SELECTION_TOOL::Main(), and PCB_SELECTION_TOOL::Main().

◆ GetFileFromHistory()

wxString EDA_BASE_FRAME::GetFileFromHistory ( int  cmdId,
const wxString &  type,
FILE_HISTORY aFileHistory = nullptr 
)
inherited

Fetches the file name from the file history list.

This removes the selected file, if this file does not exist. The menu is also updated, if #FILE_HISTORY::UseMenu was called at initialization time.

Parameters
cmdIdThe command ID associated with the aFileHistory object.
typePlease document me!
aFileHistoryThe FILE_HISTORY in use. If null, the main application file history is used
Returns
a wxString containing the selected filename

Definition at line 908 of file eda_base_frame.cpp.

910{
911 if( !aFileHistory )
912 aFileHistory = m_fileHistory;
913
914 wxASSERT( aFileHistory );
915
916 int baseId = aFileHistory->GetBaseId();
917
918 wxASSERT( cmdId >= baseId && cmdId < baseId + (int) aFileHistory->GetCount() );
919
920 unsigned i = cmdId - baseId;
921
922 if( i < aFileHistory->GetCount() )
923 {
924 wxString fn = aFileHistory->GetHistoryFile( i );
925
926 if( wxFileName::FileExists( fn ) )
927 {
928 return fn;
929 }
930 else
931 {
932 DisplayErrorMessage( this, wxString::Format( _( "File '%s' was not found." ), fn ) );
933 aFileHistory->RemoveFileFromHistory( i );
934 }
935 }
936
937 // Update the menubar to update the file history menu
938 if( GetMenuBar() )
939 {
941 GetMenuBar()->Refresh();
942 }
943
944 return wxEmptyString;
945}
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:299

References _, DisplayErrorMessage(), Format(), EDA_BASE_FRAME::m_fileHistory, and EDA_BASE_FRAME::ReCreateMenuBar().

Referenced by GERBVIEW_FRAME::OnDrlFileHistory(), KICAD_MANAGER_FRAME::OnFileHistory(), PL_EDITOR_FRAME::OnFileHistory(), PCB_EDIT_FRAME::OnFileHistory(), GERBVIEW_FRAME::OnGbrFileHistory(), GERBVIEW_FRAME::OnJobFileHistory(), SCH_EDIT_FRAME::OnLoadFile(), and GERBVIEW_FRAME::OnZipFileHistory().

◆ GetFileHistory()

FILE_HISTORY & EDA_BASE_FRAME::GetFileHistory ( )
inlineinherited

Get the frame's main file history.

Returns
the main file history

Definition at line 406 of file eda_base_frame.h.

407 {
408 return *m_fileHistory;
409 }

References EDA_BASE_FRAME::m_fileHistory.

Referenced by SCH_EDIT_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), KICAD_MANAGER_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), and PCB_EDIT_FRAME::ReCreateMenuBar().

◆ GetFrameType()

FRAME_T EDA_BASE_FRAME::GetFrameType ( ) const
inlineinherited

Definition at line 198 of file eda_base_frame.h.

198{ return m_ident; }

References EDA_BASE_FRAME::m_ident.

Referenced by PCB_BASE_FRAME::GetViewerSettingsBase(), and EDA_BASE_FRAME::OnPreferences().

◆ GetInfoBar()

◆ GetIuScale()

const EDA_IU_SCALE & UNITS_PROVIDER::GetIuScale ( ) const
inlineinherited

◆ GetMaxUndoItems()

int EDA_BASE_FRAME::GetMaxUndoItems ( ) const
inlineinherited

Definition at line 565 of file eda_base_frame.h.

565{ return m_undoRedoCountMax; }

References EDA_BASE_FRAME::m_undoRedoCountMax.

Referenced by EDA_DRAW_FRAME::SaveSettings().

◆ GetMoveWarpsCursor()

bool TOOLS_HOLDER::GetMoveWarpsCursor ( ) const
inlineinherited

Indicate that a move operation should warp the mouse pointer to the origin of the move object.

This improves snapping, but some users are allergic to mouse warping.

Definition at line 153 of file tools_holder.h.

153{ return m_moveWarpsCursor; }
bool m_moveWarpsCursor
Definition: tools_holder.h:189

References TOOLS_HOLDER::m_moveWarpsCursor.

Referenced by EDIT_TOOL::doMoveSelection(), ROUTER_TOOL::InlineDrag(), SCH_MOVE_TOOL::Main(), and SYMBOL_EDITOR_MOVE_TOOL::Main().

◆ GetMruPath()

◆ GetOriginTransforms()

virtual ORIGIN_TRANSFORMS & EDA_BASE_FRAME::GetOriginTransforms ( )
inlinevirtualinherited

Return a reference to the default ORIGIN_TRANSFORMS object.

Reimplemented in PCB_BASE_FRAME.

Definition at line 130 of file eda_base_frame.h.

130{ return m_originTransforms; }
ORIGIN_TRANSFORMS m_originTransforms

References EDA_BASE_FRAME::m_originTransforms.

Referenced by PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_DIM_LEADER::GetMsgPanelInfo(), and EDA_SHAPE::ShapeGetMsgPanelInfo().

◆ GetRedoCommandCount()

virtual int EDA_BASE_FRAME::GetRedoCommandCount ( ) const
inlinevirtualinherited

◆ GetSettingsManager()

◆ GetSeverity()

virtual SEVERITY EDA_BASE_FRAME::GetSeverity ( int  aErrorCode) const
inlinevirtualinherited

Reimplemented in SCH_EDIT_FRAME, and PCB_BASE_FRAME.

Definition at line 135 of file eda_base_frame.h.

135{ return RPT_SEVERITY_UNDEFINED; }
@ RPT_SEVERITY_UNDEFINED

References RPT_SEVERITY_UNDEFINED.

Referenced by RC_TREE_MODEL::GetValue().

◆ GetToolCanvas()

wxWindow * BM2CMP_FRAME::GetToolCanvas ( ) const
overrideprivatevirtual

Canvas access.

Implements TOOLS_HOLDER.

Definition at line 213 of file bitmap2cmp_gui.cpp.

214{
215 return m_Notebook->GetCurrentPage();
216}

References BM2CMP_FRAME_BASE::m_Notebook.

◆ GetToolManager()

TOOL_MANAGER * TOOLS_HOLDER::GetToolManager ( ) const
inlineinherited

Return the MVC controller.

Definition at line 54 of file tools_holder.h.

54{ return m_toolManager; }

References TOOLS_HOLDER::m_toolManager.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), SCH_NAVIGATE_TOOL::Back(), BOARD_COMMIT::BOARD_COMMIT(), SCH_NAVIGATE_TOOL::changeSheet(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), TOOLS_HOLDER::CommonSettingsChanged(), DIALOG_FOOTPRINT_CHECKER::deleteAllMarkers(), DIALOG_ERC::deleteAllMarkers(), DIALOG_DRC::deleteAllMarkers(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_MIGRATE_BUSES::DIALOG_MIGRATE_BUSES(), PL_DRAW_PANEL_GAL::DisplayDrawingSheet(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), SIM_PLOT_FRAME::doCloseWindow(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), SCH_FIELD::DoHypertextAction(), SCH_TEXT::DoHypertextAction(), SCH_TEXTBOX::DoHypertextAction(), DRAWING_TOOL::DrawVia(), TRACK_WIDTH_MENU::eventHandler(), DIFF_PAIR_MENU::eventHandler(), SCH_EDIT_FRAME::ExecuteRemoteCommand(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), SCH_NAVIGATE_TOOL::Forward(), GERBVIEW_FRAME::GERBVIEW_FRAME(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), FP_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), PL_EDITOR_FRAME::GetLayoutFromRedoList(), PL_EDITOR_FRAME::GetLayoutFromUndoList(), DIALOG_PAD_PROPERTIES::initValues(), ROUTER_TOOL::InlineBreakTrack(), SCH_EDIT_FRAME::KiwayMailIn(), PCB_EDIT_FRAME::KiwayMailIn(), PCB_EDIT_FRAME::LoadProjectSettings(), FOOTPRINT_EDIT_FRAME::LoadSettings(), SYMBOL_EDIT_FRAME::LoadSymbol(), PROPERTIES_FRAME::OnAcceptPrms(), DIALOG_DRC::OnActivateDlg(), DIALOG_DRC::OnCancelClick(), DIALOG_FOOTPRINT_CHECKER::OnCancelClick(), DIALOG_INSPECTOR::onCellClicked(), DIALOG_ERC::OnCloseErcDialog(), DIALOG_DRC::OnDeleteOneClick(), DIALOG_ERC::OnDeleteOneClick(), DIALOG_FOOTPRINT_CHECKER::OnDeleteOneClick(), DIALOG_DRC::OnDRCItemRClick(), DIALOG_DRC::OnDRCItemSelected(), DIALOG_ERC::OnERCItemSelected(), DIALOG_CONSTRAINTS_REPORTER::OnErrorLinkClicked(), KICAD_MANAGER_FRAME::OnIdle(), FOOTPRINTS_LISTBOX::OnLeftDClick(), APPEARANCE_CONTROLS::onNetclassContextMenu(), APPEARANCE_CONTROLS::onNetContextMenu(), PCB_EDIT_FRAME::OnNetlistChanged(), GERBER_LAYER_WIDGET::onPopupSelection(), SIM_PLOT_FRAME::onProbe(), DIALOG_PLOT::onRunDRC(), DIALOG_DRC::OnRunDRCClick(), HIERARCHY_NAVIG_PANEL::onSelectSheetPath(), SCH_EDIT_FRAME::onSize(), PCB_EDIT_FRAME::onSize(), SYMBOL_TREE_PANE::onSymbolSelected(), DIALOG_SYMBOL_FIELDS_TABLE::OnTableCellClick(), SIM_PLOT_FRAME::onTune(), PANEL_KICAD_LAUNCHER::PANEL_KICAD_LAUNCHER(), PANEL_SELECTION_FILTER::PANEL_SELECTION_FILTER(), DIALOG_UPDATE_PCB::PerformUpdate(), DIALOG_PLOT::Plot(), TOOLS_HOLDER::PopTool(), SCH_EDIT_FRAME::PutDataInPreviousState(), FOOTPRINT_WIZARD_FRAME::PythonPluginsReload(), Refresh(), PL_EDITOR_FRAME::RollbackFromUndo(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), PCB_EDIT_FRAME::SaveProjectSettings(), EDA_3D_VIEWER_FRAME::SaveSettings(), FOOTPRINT_EDIT_FRAME::SaveSettings(), DIALOG_FIND::search(), FOOTPRINT_SEARCH_HANDLER::SelectItems(), ZONE_SEARCH_HANDLER::SelectItems(), TEXT_SEARCH_HANDLER::SelectItems(), CVPCB_MAINFRAME::setupEventHandlers(), APPEARANCE_CONTROLS::showNetclass(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), DIALOG_LIB_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_LIB_TEXTBOX_PROPERTIES::TransferDataFromWindow(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataToWindow(), DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_SYMBOL_FIELDS_TABLE::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataToWindow(), PCB_PROPERTIES_PANEL::UpdateData(), DIALOG_DRC::updateDisplayedCounts(), CVPCB_MAINFRAME::updateFootprintViewerOnIdle(), EDA_DRAW_FRAME::UpdateMsgPanel(), NET_GRID_TABLE::updateNetVisibility(), PCB_PROPERTIES_PANEL::valueChanged(), DIALOG_NETLIST_IMPORT::~DIALOG_NETLIST_IMPORT(), and DIALOG_UPDATE_PCB::~DIALOG_UPDATE_PCB().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 46 of file kiway_holder.h.

46{ return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:85

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUndoCommandCount()

◆ getUnitFromSelection()

EDA_UNITS BM2CMP_FRAME::getUnitFromSelection ( )
private

Definition at line 496 of file bitmap2cmp_gui.cpp.

497{
498 // return the EDA_UNITS from the m_PixelUnit choice
499 switch( m_PixelUnit->GetSelection() )
500 {
501 case 1:
502 return EDA_UNITS::INCHES;
503
504 case 2:
505 return EDA_UNITS::UNSCALED;
506
507 case 0:
508 default:
509 break;
510 }
511
513}

References INCHES, BM2CMP_FRAME_BASE::m_PixelUnit, MILLIMETRES, and UNSCALED.

Referenced by BM2CMP_FRAME(), FormatOutputSize(), OnSizeChangeX(), OnSizeChangeY(), and OnSizeUnitChange().

◆ GetUserUnits()

EDA_UNITS UNITS_PROVIDER::GetUserUnits ( ) const
inlineinherited

Definition at line 37 of file units_provider.h.

37{ return m_userUnits; }
EDA_UNITS m_userUnits

References UNITS_PROVIDER::m_userUnits.

Referenced by DIALOG_CONSTRAINTS_REPORTER::AddPage(), DIALOG_SHIM::DIALOG_SHIM(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), PL_EDITOR_FRAME::DisplayGridMsg(), EDA_DRAW_FRAME::DisplayUnitsMsg(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawSpecificationStackup(), EVT_GRID_CMD_CELL_CHANGED(), PCB_EDIT_FRAME::GenFootprintsReport(), PANEL_SETUP_TEXT_AND_GRAPHICS::getGridValue(), GERBER_DRAW_ITEM::GetMsgPanelInfo(), EDA_DRAW_FRAME::GetUnitPair(), GetUserUnits(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), UNITS_PROVIDER::MessageTextFromValue(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), PANEL_SETUP_BOARD_STACKUP::onExportToClipboard(), PANEL_SETUP_TRACKS_AND_VIAS::OnSortDiffPairsClick(), PANEL_SETUP_TRACKS_AND_VIAS::OnSortTrackWidthsClick(), PANEL_SETUP_TRACKS_AND_VIAS::OnSortViaSizesClick(), PANEL_SETUP_BOARD_STACKUP::onThicknessChange(), UNIT_BINDER::onUnitsChanged(), DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged(), DIALOG_NET_INSPECTOR::onUnitsChanged(), PANEL_FP_EDITOR_DEFAULTS::PANEL_FP_EDITOR_DEFAULTS(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), PCB_CONTROL::placeBoardItems(), POSITION_RELATIVE_TOOL::PositionRelative(), DRC_TOOL::RunTests(), SCH_EDIT_FRAME::SaveSettings(), EDA_DRAW_FRAME::SaveSettings(), PIN_TABLE_DATA_MODEL::SetValue(), FP_TEXT_GRID_TABLE::SetValue(), GERBVIEW_INSPECTION_TOOL::ShowDCodes(), UNITS_PROVIDER::StringFromValue(), COMMON_TOOLS::ToggleUnits(), EDA_DRAW_FRAME::ToggleUserUnits(), PANEL_SETUP_BOARD_STACKUP::transferDataFromUIToStackup(), PANEL_SETUP_TRACKS_AND_VIAS::TransferDataFromWindow(), UNIT_BINDER::UNIT_BINDER(), PCB_BASE_EDIT_FRAME::unitsChangeRefresh(), EDITOR_CONDITIONS::unitsFunc(), PROPERTIES_PANEL::update(), GERBVIEW_FRAME::updateDCodeSelectBox(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), PNS_TUNE_STATUS_POPUP::UpdateStatus(), PL_EDITOR_FRAME::UpdateStatusBar(), PCB_EDIT_FRAME::UpdateViaSizeSelectBox(), DRC_TOOL::userUnits(), and UNITS_PROVIDER::ValueFromString().

◆ GetWindowSettings()

WINDOW_SETTINGS * EDA_BASE_FRAME::GetWindowSettings ( APP_SETTINGS_BASE aCfg)
virtualinherited

Return a pointer to the window settings for this frame.

By default, points to aCfg->m_Window for top-level frames.

Parameters
aCfgis this frame's config object

Reimplemented in DISPLAY_FOOTPRINTS_FRAME, SIM_PLOT_FRAME, SYMBOL_VIEWER_FRAME, FOOTPRINT_VIEWER_FRAME, and FOOTPRINT_WIZARD_FRAME.

Definition at line 782 of file eda_base_frame.cpp.

783{
784 return &aCfg->m_Window;
785}
WINDOW_SETTINGS m_Window
Definition: app_settings.h:184

References APP_SETTINGS_BASE::m_Window.

Referenced by EDA_BASE_FRAME::LoadSettings(), EDA_DRAW_FRAME::LoadSettings(), EDA_BASE_FRAME::SaveSettings(), and EDA_DRAW_FRAME::SaveSettings().

◆ GetWindowSize()

wxSize EDA_BASE_FRAME::GetWindowSize ( )
inherited

Get the undecorated window size that can be used for restoring the window size.

This is needed for GTK, since the normal wxWidgets GetSize() call will return a window size that includes the window decorations added by the window manager.

Returns
the undecorated window size

Definition at line 1337 of file eda_base_frame.cpp.

1338{
1339#ifdef __WXGTK__
1340 wxSize winSize = GetSize();
1341
1342 // GTK includes the window decorations in the normal GetSize call,
1343 // so we have to use a GTK-specific sizing call that returns the
1344 // non-decorated window size.
1346 {
1347 int width = 0;
1348 int height = 0;
1349 GTKDoGetSize( &width, &height );
1350
1351 winSize.Set( width, height );
1352 }
1353#else
1354 wxSize winSize = GetSize();
1355#endif
1356
1357 return winSize;
1358}
@ KICAD_MAIN_FRAME_T
Definition: frame_type.h:64

References KICAD_MAIN_FRAME_T, and EDA_BASE_FRAME::m_ident.

Referenced by EDA_BASE_FRAME::ensureWindowIsOnScreen(), EDA_BASE_FRAME::OnMaximize(), and EDA_BASE_FRAME::SaveWindowSettings().

◆ handleIconizeEvent()

virtual void EDA_BASE_FRAME::handleIconizeEvent ( wxIconizeEvent &  aEvent)
inlineprotectedvirtualinherited

Handle a window iconize event.

Parameters
aEventis the data for the event.

Reimplemented in EDA_3D_VIEWER_FRAME, SCH_BASE_FRAME, and PCB_BASE_FRAME.

Definition at line 601 of file eda_base_frame.h.

601{}

Referenced by EDA_3D_VIEWER_FRAME::handleIconizeEvent(), SCH_BASE_FRAME::handleIconizeEvent(), PCB_BASE_FRAME::handleIconizeEvent(), and EDA_BASE_FRAME::onIconize().

◆ HandleSystemColorChange()

void EDA_BASE_FRAME::HandleSystemColorChange ( )
virtualinherited

Update the UI in response to a change in the system colors.

Definition at line 1361 of file eda_base_frame.cpp.

1362{
1363 // Update the icon theme when the system theme changes and update the toolbars
1365 ThemeChanged();
1366
1367 // This isn't handled by ThemeChanged()
1368 if( GetMenuBar() )
1369 {
1370 // For icons in menus, icon scaling & hotkeys
1372 GetMenuBar()->Refresh();
1373 }
1374}

References GetBitmapStore(), EDA_BASE_FRAME::ReCreateMenuBar(), BITMAP_STORE::ThemeChanged(), and EDA_BASE_FRAME::ThemeChanged().

Referenced by EDA_BASE_FRAME::onSystemColorChange().

◆ HandleUpdateUIEvent()

void EDA_BASE_FRAME::HandleUpdateUIEvent ( wxUpdateUIEvent &  aEvent,
EDA_BASE_FRAME aFrame,
ACTION_CONDITIONS  aCond 
)
staticinherited

Handle events generated when the UI is trying to figure out the current state of the UI controls related to TOOL_ACTIONS (e.g.

enabled, checked, etc.).

Parameters
aEventis the wxUpdateUIEvent to be processed.
aFrameis the frame to get the selection from
aCondare the #UI SELECTION_CONDITIONS used

Definition at line 359 of file eda_base_frame.cpp.

361{
362 bool checkRes = false;
363 bool enableRes = true;
364 bool showRes = true;
365 bool isCut = aEvent.GetId() == ACTIONS::cut.GetUIId();
366 bool isCopy = aEvent.GetId() == ACTIONS::copy.GetUIId();
367 bool isPaste = aEvent.GetId() == ACTIONS::paste.GetUIId();
368 SELECTION& selection = aFrame->GetCurrentSelection();
369
370 try
371 {
372 checkRes = aCond.checkCondition( selection );
373 enableRes = aCond.enableCondition( selection );
374 showRes = aCond.showCondition( selection );
375 }
376 catch( std::exception& )
377 {
378 // Something broke with the conditions, just skip the event.
379 aEvent.Skip();
380 return;
381 }
382
383 if( isCut || isCopy || isPaste )
384 {
385 wxWindow* focus = wxWindow::FindFocus();
386 wxTextEntry* textEntry = dynamic_cast<wxTextEntry*>( focus );
387
388 if( textEntry && isCut && textEntry->CanCut() )
389 enableRes = true;
390 else if( textEntry && isCopy && textEntry->CanCopy() )
391 enableRes = true;
392 else if( textEntry && isPaste && textEntry->CanPaste() )
393 enableRes = true;
394 }
395
396 aEvent.Enable( enableRes );
397 aEvent.Show( showRes );
398
399 // wxWidgets 3.1.5+ includes a field in the event that says if the event supports being
400 // checked, since wxMenuItems don't want to be checked unless they actually are checkable
401#if wxCHECK_VERSION( 3, 1, 5 )
402 if( aEvent.IsCheckable() )
403 aEvent.Check( checkRes );
404#else
405 bool canCheck = true;
406
407 // wxMenuItems don't want to be checked unless they actually are checkable, so we have to
408 // check to see if they can be and can't just universally apply a check in this event.
409 if( auto menu = dynamic_cast<wxMenu*>( aEvent.GetEventObject() ) )
410 canCheck = menu->FindItem( aEvent.GetId() )->IsCheckable();
411
412 if( canCheck )
413 aEvent.Check( checkRes );
414#endif
415}
static TOOL_ACTION paste
Definition: actions.h:69
static TOOL_ACTION copy
Definition: actions.h:68
static TOOL_ACTION cut
Definition: actions.h:67
virtual SELECTION & GetCurrentSelection()
Get the current selection from the canvas area.
Definition: tools_holder.h:101
int GetUIId() const
Definition: tool_action.h:130
SELECTION_CONDITION enableCondition
Returns true if the UI control should be enabled.
SELECTION_CONDITION checkCondition
Returns true if the UI control should be checked.
SELECTION_CONDITION showCondition
Returns true if the UI control should be shown.

References ACTION_CONDITIONS::checkCondition, ACTIONS::copy, ACTIONS::cut, ACTION_CONDITIONS::enableCondition, TOOLS_HOLDER::GetCurrentSelection(), TOOL_ACTION::GetUIId(), ACTIONS::paste, and ACTION_CONDITIONS::showCondition.

Referenced by EDA_BASE_FRAME::RegisterUIUpdateHandler().

◆ HasKiway()

bool KIWAY_HOLDER::HasKiway ( ) const
inlineinherited

Safety check before asking for the Kiway reference.

Returns
true if kiway is non-null

Definition at line 63 of file kiway_holder.h.

64 {
65 return m_kiway != nullptr;
66 }
KIWAY * m_kiway
Definition: kiway_holder.h:84

References KIWAY_HOLDER::m_kiway.

Referenced by DIALOG_SHIM::~DIALOG_SHIM().

◆ help_name()

wxString EDA_BASE_FRAME::help_name ( )
virtualinherited

Reimplemented in KICAD_MANAGER_FRAME.

Definition at line 801 of file eda_base_frame.cpp.

802{
803 return Kiface().GetHelpFileName();
804}
const wxString & GetHelpFileName() const
Return just the basename portion of the current help file.
Definition: kiface_base.h:110

References KIFACE_BASE::GetHelpFileName(), and Kiface().

Referenced by COMMON_CONTROL::ShowHelp().

◆ ImportHotkeyConfigFromFile()

void EDA_BASE_FRAME::ImportHotkeyConfigFromFile ( std::map< std::string, TOOL_ACTION * >  aActionMap,
const wxString &  aDefaultShortname 
)
inherited

Prompt the user for a hotkey file to read, and read it.

Parameters
aActionMapcurrent hotkey map (over which the imported hotkeys will be applied).
aDefaultShortnamea default short name (extension not needed) like Eeschema, KiCad...

◆ initExitKey()

void EDA_BASE_FRAME::initExitKey ( )
protectedinherited

Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id.

This is useful in sub-applications to pass the event up to a non-owning window.

Definition at line 1245 of file eda_base_frame.cpp.

1246{
1247 wxAcceleratorEntry entries[1];
1248 entries[0].Set( wxACCEL_CTRL, int( 'Q' ), wxID_EXIT );
1249 wxAcceleratorTable accel( 1, entries );
1250 SetAcceleratorTable( accel );
1251}

◆ isAutoSaveRequired()

virtual bool EDA_BASE_FRAME::isAutoSaveRequired ( ) const
inlineprotectedvirtualinherited

Return the auto save status of the application.

Override this function if your derived frame supports automatic file saving.

Reimplemented in SCH_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 609 of file eda_base_frame.h.

609{ return false; }

Referenced by EDA_BASE_FRAME::ProcessEvent().

◆ IsContentModified()

bool EDA_BASE_FRAME::IsContentModified ( ) const
virtualinherited

Get if the contents of the frame have been modified since the last save.

Returns
true if the contents of the frame have not been saved

Reimplemented in CVPCB_MAINFRAME, SCH_EDIT_FRAME, SYMBOL_EDIT_FRAME, PL_EDITOR_FRAME, FOOTPRINT_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 1238 of file eda_base_frame.cpp.

1239{
1240 // This function should be overridden in child classes
1241 return false;
1242}

Referenced by GERBVIEW_FRAME::Clear_DrawLayers(), and EDITOR_CONDITIONS::contentModifiedFunc().

◆ IsCurrentTool()

bool TOOLS_HOLDER::IsCurrentTool ( const TOOL_ACTION aAction) const
inherited

Definition at line 119 of file tools_holder.cpp.

120{
121 if( m_toolStack.empty() )
122 return &aAction == &ACTIONS::selectionTool;
123 else
124 return m_toolStack.back() == aAction.GetName();
125}

References TOOL_ACTION::GetName(), TOOLS_HOLDER::m_toolStack, and ACTIONS::selectionTool.

Referenced by SCH_EDIT_TOOL::Init(), SCH_LINE_WIRE_BUS_TOOL::Init(), BOARD_EDITOR_CONTROL::Init(), EDIT_TOOL::Init(), and EDITOR_CONDITIONS::toolFunc().

◆ IsDismissed()

bool KIWAY_PLAYER::IsDismissed ( )
inherited
Returns
false only if both the frame is acting in modal mode and it has not been dismissed yet with DismissModal(). True if the dialog is not modal or if it is modal and has been dismissed.

Definition at line 176 of file kiway_player.cpp.

177{
178 return !m_modal_loop;
179}

References KIWAY_PLAYER::m_modal_loop.

Referenced by SYMBOL_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_VIEWER_FRAME::doCloseWindow(), and FOOTPRINT_WIZARD_FRAME::doCloseWindow().

◆ IsModal()

bool KIWAY_PLAYER::IsModal ( ) const
inlineoverridevirtualinherited

Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame.

In modal mode, the caller that created the frame is responsible to Destroy() this frame after closing.

Reimplemented from EDA_BASE_FRAME.

Definition at line 173 of file kiway_player.h.

173{ return m_modal; }

References KIWAY_PLAYER::m_modal.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SYMBOL_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::doCloseWindow(), KIWAY_PLAYER::ShowModal(), and SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME().

◆ IsType()

bool EDA_BASE_FRAME::IsType ( FRAME_T  aType) const
inlineinherited

Definition at line 197 of file eda_base_frame.h.

197{ return m_ident == aType; }

References EDA_BASE_FRAME::m_ident.

Referenced by SYMBOL_EDITOR_CONTROL::AddLibrary(), PCB_CONTROL::AddLibrary(), SYMBOL_EDITOR_CONTROL::AddSymbol(), ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), BOARD_COMMIT::BOARD_COMMIT(), CONVERT_TOOL::CreatePolys(), SYMBOL_EDITOR_CONTROL::CutCopyDelete(), SYMBOL_EDITOR_CONTROL::DdAddLibrary(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), KIGFX::SCH_VIEW::DisplaySheet(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), COMMON_TOOLS::doZoomFit(), SYMBOL_EDITOR_CONTROL::DuplicateSymbol(), SYMBOL_EDITOR_CONTROL::EditSymbol(), SYMBOL_EDITOR_CONTROL::ExportSymbol(), PCB_EDITOR_CONDITIONS::get45degModeFunc(), SCH_BASE_FRAME::GetColorSettings(), FOOTPRINT::GetMsgPanelInfo(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), DIALOG_FIELD_PROPERTIES::init(), SYMBOL_EDITOR_CONTROL::Init(), CONVERT_TOOL::Init(), PCB_SELECTION_TOOL::Init(), DIALOG_PAD_PROPERTIES::initValues(), PCB_BASE_FRAME::loadFootprint(), PCB_SELECTION_TOOL::Main(), APPEARANCE_CONTROLS::OnColorSwatchChanged(), SYMBOL_EDITOR_CONTROL::OnDeMorgan(), APPEARANCE_CONTROLS::onObjectVisibilityChanged(), PCB_CONTROL::Paste(), SYMBOL_EDITOR_CONTROL::PinLibrary(), PCB_CONTROL::placeBoardItems(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), SYMBOL_EDITOR_CONTROL::RenameSymbol(), PCB_SELECTION_TOOL::Reset(), SYMBOL_EDITOR_CONTROL::Revert(), SYMBOL_EDITOR_CONTROL::Save(), APPEARANCE_CONTROLS::setVisibleObjects(), EE_INSPECTION_TOOL::ShowDatasheet(), EE_INSPECTION_TOOL::ShowERCDialog(), SYMBOL_EDITOR_CONTROL::ToggleSymbolTree(), SYMBOL_EDITOR_CONTROL::UnpinLibrary(), DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample(), and DRAWING_TOOL::UpdateStatusBar().

◆ IsWritable()

bool EDA_BASE_FRAME::IsWritable ( const wxFileName &  aFileName,
bool  aVerbose = true 
)
inherited

Checks if aFileName can be written.

The function performs a number of tests on aFileName to verify that it can be saved. If aFileName defines a path with no file name, them the path is tested for user write permission. If aFileName defines a file name that does not exist in the path, the path is tested for user write permission. If aFileName defines a file that already exits, the file name is tested for user write permissions.

Note
The file name path must be set or an assertion will be raised on debug builds and return false on release builds.
Parameters
aFileNameThe full path and/or file name of the file to test.
aVerboseIf true will show an error dialog if the file is not writable
Returns
False if aFileName cannot be written.

Definition at line 1148 of file eda_base_frame.cpp.

1149{
1150 wxString msg;
1151 wxFileName fn = aFileName;
1152
1153 // Check for absence of a file path with a file name. Unfortunately KiCad
1154 // uses paths relative to the current project path without the ./ part which
1155 // confuses wxFileName. Making the file name path absolute may be less than
1156 // elegant but it solves the problem.
1157 if( fn.GetPath().IsEmpty() && fn.HasName() )
1158 fn.MakeAbsolute();
1159
1160 wxCHECK_MSG( fn.IsOk(), false,
1161 wxT( "File name object is invalid. Bad programmer!" ) );
1162 wxCHECK_MSG( !fn.GetPath().IsEmpty(), false,
1163 wxT( "File name object path <" ) + fn.GetFullPath() +
1164 wxT( "> is not set. Bad programmer!" ) );
1165
1166 if( fn.IsDir() && !fn.IsDirWritable() )
1167 {
1168 msg.Printf( _( "Insufficient permissions to folder '%s'." ), fn.GetPath() );
1169 }
1170 else if( !fn.FileExists() && !fn.IsDirWritable() )
1171 {
1172 msg.Printf( _( "Insufficient permissions to save file '%s'." ), fn.GetFullPath() );
1173 }
1174 else if( fn.FileExists() && !fn.IsFileWritable() )
1175 {
1176 msg.Printf( _( "Insufficient permissions to save file '%s'." ), fn.GetFullPath() );
1177 }
1178
1179 if( !msg.IsEmpty() )
1180 {
1181 if( aVerbose )
1182 wxMessageBox( msg );
1183
1184 return false;
1185 }
1186
1187 return true;
1188}

References _.

Referenced by SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProjectSettings(), and SCH_EDIT_FRAME::saveSchematicFile().

◆ Kiway()

KIWAY & KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 53 of file kiway_holder.h.

54 {
55 wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
56 return *m_kiway;
57 }

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::AddLibraryFile(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AskToSaveChanges(), IMPORT_PROJ_HELPER::AssociateFileWithProj(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::CanCloseSymbolFromSchematic(), SCH_EDIT_FRAME::canCloseWindow(), PCB_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), SYMBOL_EDIT_FRAME::DdAddLibrary(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::FetchNetlistFromSchematic(), SCRIPTING_TOOL::Init(), EDA_DRAW_FRAME::IsScriptingConsoleVisible(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PGM_SINGLE_TOP::MacOpenFile(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), KIGFX::WX_VIEW_CONTROLS::onMotion(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), SIM_PLOT_FRAME::onProbe(), PCB_EDIT_FRAME::OnQuit(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_FIELD_PROPERTIES::OnTextValueSelectButtonClick(), SIM_PLOT_FRAME::onTune(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), FOOTPRINT_WIZARD_FRAME::PythonPluginsReload(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SCH_EDITOR_CONTROL::rescueProject(), PCB_EDIT_FRAME::RunEeschema(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveCurrentSymbol(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), EDA_DRAW_FRAME::ScriptingConsoleEnableDisable(), PCB_BASE_FRAME::SelectFootprintFromLibBrowser(), PCB_BASE_FRAME::SelectLibrary(), CVPCB_MAINFRAME::SendComponentSelectionToSch(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), PCB_EDIT_FRAME::SendCrossProbeItem(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SendSelectItemsToPcb(), PCB_EDIT_FRAME::SendSelectItemsToSch(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDIT_FRAME::TestStandalone(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ kiway_express()

void KIWAY_PLAYER::kiway_express ( KIWAY_EXPRESS aEvent)
protectedinherited

event handler, routes to derivative specific virtual KiwayMailIn()

Definition at line 197 of file kiway_player.cpp.

198{
199 // logging support
200 KiwayMailIn( aEvent ); // call the virtual, override in derived.
201}
virtual void KiwayMailIn(KIWAY_EXPRESS &aEvent)
Receive KIWAY_EXPRESS messages from other players.

References KIWAY_PLAYER::KiwayMailIn().

◆ KiwayMailIn()

void KIWAY_PLAYER::KiwayMailIn ( KIWAY_EXPRESS aEvent)
virtualinherited

Receive KIWAY_EXPRESS messages from other players.

Override it in derived classes.

Reimplemented in CVPCB_MAINFRAME, SCH_EDIT_FRAME, PCB_EDIT_FRAME, SYMBOL_EDIT_FRAME, FOOTPRINT_EDIT_FRAME, and FOOTPRINT_VIEWER_FRAME.

Definition at line 87 of file kiway_player.cpp.

88{
89 // override this in derived classes.
90}

Referenced by KIWAY_PLAYER::kiway_express(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), and KIWAY::ProcessEvent().

◆ language_change()

void KIWAY_PLAYER::language_change ( wxCommandEvent &  event)
protectedinherited

An event handler called on a language menu selection.

Definition at line 204 of file kiway_player.cpp.

205{
206 int id = event.GetId();
207
208 // tell all the KIWAY_PLAYERs about the language change.
209 Kiway().SetLanguage( id );
210}
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:53
virtual void SetLanguage(int aLanguage)
Change the language and then calls ShowChangedLanguage() on all #KIWAY_PLAYERs.
Definition: kiway.cpp:504

References KIWAY_HOLDER::Kiway(), and KIWAY::SetLanguage().

◆ LoadSettings()

void BM2CMP_FRAME::LoadSettings ( APP_SETTINGS_BASE aCfg)
overrideprivatevirtual

Load common frame parameters from a configuration file.

Don't forget to call the base method or your frames won't remember their positions and sizes.

Reimplemented from EDA_BASE_FRAME.

Definition at line 219 of file bitmap2cmp_gui.cpp.

220{
222
223 auto cfg = static_cast<BITMAP2CMP_SETTINGS*>( aCfg );
224
225 m_BitmapFileName = cfg->m_BitmapFileName;
226 m_ConvertedFileName = cfg->m_ConvertedFileName;
227
228 int u_select = cfg->m_Units;
229
230 if( u_select < 0 || u_select > 2 ) // Validity control
231 u_select = 0;
232
233 m_PixelUnit->SetSelection( u_select );
234
235 m_sliderThreshold->SetValue( cfg->m_Threshold );
236
237 m_Negative = cfg->m_Negative;
238 m_checkNegative->SetValue( cfg->m_Negative );
239 m_exportToClipboard = false;
240 m_AspectRatioLocked = false;
241
242 int format = cfg->m_LastFormat;
243
244 if( format < 0 || format > FINAL_FMT )
245 format = PCBNEW_KICAD_MOD;
246
247 m_rbOutputFormat->SetSelection( format );
248
249 if( format == PCBNEW_KICAD_MOD )
250 m_rbPCBLayer->Enable( true );
251 else
252 m_rbPCBLayer->Enable( false );
253
254 int last_layer = cfg->m_LastModLayer;
255
256 if( last_layer > static_cast<int>( MOD_LYR_FINAL ) ) // Out of range
257 m_rbPCBLayer->SetSelection( MOD_LYR_FSILKS );
258 else
259 m_rbPCBLayer->SetSelection( last_layer );
260}
@ MOD_LYR_FINAL
@ FINAL_FMT
wxSlider * m_sliderThreshold
wxCheckBox * m_checkNegative
wxRadioBox * m_rbOutputFormat
bool m_exportToClipboard
wxString m_BitmapFileName
virtual void LoadSettings(APP_SETTINGS_BASE *aCfg)
Load common frame parameters from a configuration file.

References FINAL_FMT, EDA_BASE_FRAME::LoadSettings(), m_AspectRatioLocked, m_BitmapFileName, BM2CMP_FRAME_BASE::m_checkNegative, m_ConvertedFileName, m_exportToClipboard, m_Negative, BM2CMP_FRAME_BASE::m_PixelUnit, BM2CMP_FRAME_BASE::m_rbOutputFormat, BM2CMP_FRAME_BASE::m_rbPCBLayer, BM2CMP_FRAME_BASE::m_sliderThreshold, MOD_LYR_FINAL, MOD_LYR_FSILKS, and PCBNEW_KICAD_MOD.

Referenced by BM2CMP_FRAME().

◆ LoadWindowSettings()

void EDA_BASE_FRAME::LoadWindowSettings ( const WINDOW_SETTINGS aCfg)
inherited

Load window settings from the given settings object.

Normally called by LoadSettings() unless the window in question is a child window that* stores its settings somewhere other than APP_SETTINGS_BASE::m_Window.

Definition at line 692 of file eda_base_frame.cpp.

693{
694 LoadWindowState( aCfg->state );
695
697 m_mruPath = aCfg->mru_path;
698
700}
void LoadWindowState(const wxString &aFileName)
wxString m_perspective
WINDOW_STATE state
Definition: app_settings.h:84
wxString mru_path
Definition: app_settings.h:85
wxString perspective
Definition: app_settings.h:86

References TOOLS_HOLDER::CommonSettingsChanged(), EDA_BASE_FRAME::LoadWindowState(), EDA_BASE_FRAME::m_mruPath, EDA_BASE_FRAME::m_perspective, WINDOW_SETTINGS::mru_path, WINDOW_SETTINGS::perspective, and WINDOW_SETTINGS::state.

Referenced by EDA_BASE_FRAME::LoadSettings().

◆ LoadWindowState() [1/2]

void EDA_BASE_FRAME::LoadWindowState ( const WINDOW_STATE aState)
virtualinherited

Load frame state info from a configuration file.

Definition at line 546 of file eda_base_frame.cpp.

547{
548 bool wasDefault = false;
549
550 m_framePos.x = aState.pos_x;
551 m_framePos.y = aState.pos_y;
552 m_frameSize.x = aState.size_x;
553 m_frameSize.y = aState.size_y;
554
555 wxLogTrace( traceDisplayLocation, "Config position (%d, %d) with size (%d, %d)",
557
558 // Ensure minimum size is set if the stored config was zero-initialized
559 if( m_frameSize.x < minSize( m_ident ).x || m_frameSize.y < minSize( m_ident ).y )
560 {
562 wasDefault = true;
563
564 wxLogTrace( traceDisplayLocation, "Using minimum size (%d, %d)",
566 }
567
568 wxLogTrace( traceDisplayLocation, "Number of displays: %d", wxDisplay::GetCount() );
569
570 if( aState.display >= wxDisplay::GetCount() )
571 {
572 wxLogTrace( traceDisplayLocation, "Previous display not found" );
573
574 // If it isn't attached, use the first display
575 // Warning wxDisplay has 2 ctor variants. the parameter needs a type:
576 const unsigned int index = 0;
577 wxDisplay display( index );
578 wxRect clientSize = display.GetGeometry();
579
580 m_framePos = wxDefaultPosition;
581
582 // Ensure the window fits on the display, since the other one could have been larger
583 if( m_frameSize.x > clientSize.width )
584 m_frameSize.x = clientSize.width;
585
586 if( m_frameSize.y > clientSize.height )
587 m_frameSize.y = clientSize.height;
588 }
589 else
590 {
591 wxPoint upperRight( m_framePos.x + m_frameSize.x, m_framePos.y );
592 wxPoint upperLeft( m_framePos.x, m_framePos.y );
593
594 wxDisplay display( aState.display );
595 wxRect clientSize = display.GetClientArea();
596
597 int yLimTop = clientSize.y;
598 int yLimBottom = clientSize.y + clientSize.height;
599 int xLimLeft = clientSize.x;
600 int xLimRight = clientSize.x + clientSize.width;
601
602 if( upperLeft.x > xLimRight || // Upper left corner too close to right edge of screen
603 upperRight.x < xLimLeft || // Upper right corner too close to left edge of screen
604 upperLeft.y < yLimTop || // Upper corner too close to the bottom of the screen
605 upperLeft.y > yLimBottom )
606 {
607 m_framePos = wxDefaultPosition;
608 wxLogTrace( traceDisplayLocation, "Resetting to default position" );
609 }
610 }
611
612 wxLogTrace( traceDisplayLocation, "Final window position (%d, %d) with size (%d, %d)",
614
615 SetSize( m_framePos.x, m_framePos.y, m_frameSize.x, m_frameSize.y );
616
617 // Center the window if we reset to default
618 if( m_framePos.x == -1 )
619 {
620 wxLogTrace( traceDisplayLocation, "Centering window" );
621 Center();
622 m_framePos = GetPosition();
623 }
624
625 // Record the frame sizes in an un-maximized state
628
629 // Maximize if we were maximized before
630 if( aState.maximized || ( wasDefault && m_maximizeByDefault ) )
631 {
632 wxLogTrace( traceDisplayLocation, "Maximizing window" );
633 Maximize();
634 }
635
636 m_displayIndex = wxDisplay::GetFromWindow( this );
637}
wxSize m_normalFrameSize
wxPoint m_normalFramePos
unsigned int display
Definition: app_settings.h:76

References PCAD2KICAD::Center, defaultSize(), WINDOW_STATE::display, EDA_BASE_FRAME::m_displayIndex, EDA_BASE_FRAME::m_framePos, EDA_BASE_FRAME::m_frameSize, EDA_BASE_FRAME::m_ident, EDA_BASE_FRAME::m_maximizeByDefault, EDA_BASE_FRAME::m_normalFramePos, EDA_BASE_FRAME::m_normalFrameSize, WINDOW_STATE::maximized, minSize(), WINDOW_STATE::pos_x, WINDOW_STATE::pos_y, WINDOW_STATE::size_x, WINDOW_STATE::size_y, and traceDisplayLocation.

◆ LoadWindowState() [2/2]

void EDA_BASE_FRAME::LoadWindowState ( const wxString &  aFileName)
inherited

Definition at line 532 of file eda_base_frame.cpp.

533{
534 if( !Pgm().GetCommonSettings()->m_Session.remember_open_files )
535 return;
536
537 const PROJECT_FILE_STATE* state = Prj().GetLocalSettings().GetFileState( aFileName );
538
539 if( state != nullptr )
540 {
541 LoadWindowState( state->window );
542 }
543}
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
const PROJECT_FILE_STATE * GetFileState(const wxString &aFileName)
virtual PROJECT_LOCAL_SETTINGS & GetLocalSettings() const
Definition: project.h:154
struct WINDOW_STATE window

References PROJECT_LOCAL_SETTINGS::GetFileState(), PROJECT::GetLocalSettings(), EDA_BASE_FRAME::LoadWindowState(), Pgm(), KIWAY_HOLDER::Prj(), and PROJECT_FILE_STATE::window.

Referenced by KICAD_MANAGER_FRAME::LoadProject(), PCB_EDIT_FRAME::LoadProjectSettings(), EDA_BASE_FRAME::LoadWindowSettings(), EDA_BASE_FRAME::LoadWindowState(), and SCH_EDIT_FRAME::OpenProjectFiles().

◆ MessageTextFromValue() [1/2]

wxString UNITS_PROVIDER::MessageTextFromValue ( const EDA_ANGLE aValue,
bool  aAddUnitLabel = true 
)
inlineinherited

Definition at line 82 of file units_provider.h.

83 {
85 aValue.AsDegrees(), aAddUnitLabel,
87 }
constexpr EDA_IU_SCALE unityScale
Definition: base_units.h:112
double AsDegrees() const
Definition: eda_angle.h:149
wxString MessageTextFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
A helper to convert the double length aValue to a string in inches, millimeters, or unscaled units.
Definition: eda_units.cpp:323

References EDA_ANGLE::AsDegrees(), DEGREES, DISTANCE, EDA_UNIT_UTILS::UI::MessageTextFromValue(), and unityScale.

◆ MessageTextFromValue() [2/2]

wxString UNITS_PROVIDER::MessageTextFromValue ( double  aValue,
bool  aAddUnitLabel = true,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

A lower-precision version of StringFromValue().

Should ONLY be used for status text and messages. Not suitable for dialogs, files, etc. where the loss of precision matters.

Definition at line 75 of file units_provider.h.

77 {
79 aAddUnitLabel, aType );
80 }
const EDA_IU_SCALE & GetIuScale() const
EDA_UNITS GetUserUnits() const

References UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), and EDA_UNIT_UTILS::UI::MessageTextFromValue().

Referenced by DRC_TEST_PROVIDER_MATCHED_LENGTH::checkLengths(), CheckLibSymbol(), DRC_TEST_PROVIDER_HOLE_SIZE::checkPadHole(), DRC_TEST_PROVIDER_MATCHED_LENGTH::checkSkews(), DRC_TEST_PROVIDER_HOLE_SIZE::checkViaHole(), DIALOG_BOARD_REANNOTATE::CoordTowxString(), EDA_DRAW_FRAME::DisplayGridMsg(), GERBVIEW_FRAME::DisplayGridMsg(), PCB_BASE_FRAME::DisplayGridMsg(), GERBER_FILE_IMAGE::DisplayImageInfo(), DRAWING_TOOL::DrawBoardCharacteristics(), DRC_ENGINE::EvalRules(), DIALOG_NET_INSPECTOR::formatLength(), LIB_FIELD::GetMsgPanelInfo(), LIB_PIN::GetMsgPanelInfo(), LIB_TEXT::GetMsgPanelInfo(), LIB_TEXTBOX::GetMsgPanelInfo(), SCH_BITMAP::GetMsgPanelInfo(), SCH_FIELD::GetMsgPanelInfo(), SCH_LABEL_BASE::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), SCH_TEXT::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), DS_DRAW_ITEM_BASE::GetMsgPanelInfo(), FP_TEXT::GetMsgPanelInfo(), FP_TEXTBOX::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), PCB_BITMAP::GetMsgPanelInfo(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_DIM_ALIGNED::GetMsgPanelInfo(), PCB_DIM_LEADER::GetMsgPanelInfo(), PCB_TARGET::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), PCB_VIA::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), STROKE_PARAMS::GetMsgPanelInfo(), FOOTPRINT_SEARCH_HANDLER::GetResultCell(), ZONE_SEARCH_HANDLER::GetResultCell(), TEXT_SEARCH_HANDLER::GetResultCell(), LIB_SHAPE::GetSelectMenuText(), SCH_LINE::GetSelectMenuText(), SCH_SHAPE::GetSelectMenuText(), DS_DRAW_ITEM_LINE::GetSelectMenuText(), DS_DRAW_ITEM_RECT::GetSelectMenuText(), PCB_TRACK::GetSelectMenuText(), DIALOG_BOARD_REANNOTATE::MakeSampleText(), DRC_TEST_PROVIDER_ANNULAR_WIDTH::Run(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), DRC_TEST_PROVIDER_TEXT_DIMS::Run(), DRC_TEST_PROVIDER_TRACK_WIDTH::Run(), DRC_TEST_PROVIDER_VIA_DIAMETER::Run(), DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal(), DIALOG_BOARD_STATISTICS::saveReportClicked(), EDA_SHAPE::ShapeGetMsgPanelInfo(), showCoord(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::testHoleAgainstHole(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testZoneLayer(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), TRACK_WIDTH_MENU::update(), DIFF_PAIR_MENU::update(), VIA_SIZE_MENU::update(), BOARD_NETLIST_UPDATER::updateCopperZoneNets(), DIALOG_BOARD_STATISTICS::updateDrillGrid(), PCB_CONTROL::UpdateMessagePanel(), PL_EDITOR_FRAME::UpdateMsgPanelInfo(), SCH_BASE_FRAME::UpdateStatusBar(), GERBVIEW_FRAME::UpdateStatusBar(), PCB_BASE_FRAME::UpdateStatusBar(), and DIALOG_BOARD_STATISTICS::updateWidets().

◆ NegateGreyscaleImage()

void BM2CMP_FRAME::NegateGreyscaleImage ( )
private

Definition at line 633 of file bitmap2cmp_gui.cpp.

634{
635 unsigned char pix;
636 int h = m_Greyscale_Image.GetHeight();
637 int w = m_Greyscale_Image.GetWidth();
638
639 for( int y = 0; y < h; y++ )
640 for( int x = 0; x < w; x++ )
641 {
642 pix = m_Greyscale_Image.GetGreen( x, y );
643 pix = ~pix;
644 m_Greyscale_Image.SetRGB( x, y, pix, pix, pix );
645 }
646}

References m_Greyscale_Image.

Referenced by OnNegativeClicked(), and OpenProjectFiles().

◆ NonUserClose()

bool EDA_BASE_FRAME::NonUserClose ( bool  aForce)
inlineinherited

Definition at line 567 of file eda_base_frame.h.

568 {
569 m_isNonUserClose = true;
570 return Close( aForce );
571 }

References EDA_BASE_FRAME::m_isNonUserClose.

Referenced by KIWAY::PlayerClose().

◆ onAutoSaveTimer()

void EDA_BASE_FRAME::onAutoSaveTimer ( wxTimerEvent &  aEvent)
protectedinherited

Handle the auto save timer event.

Definition at line 303 of file eda_base_frame.cpp.

304{
305 if( !doAutoSave() )
306 m_autoSaveTimer->Start( GetAutoSaveInterval() * 1000, wxTIMER_ONE_SHOT );
307}
virtual bool doAutoSave()
This should be overridden by the derived class to handle the auto save feature.
int GetAutoSaveInterval() const

References EDA_BASE_FRAME::doAutoSave(), EDA_BASE_FRAME::GetAutoSaveInterval(), and EDA_BASE_FRAME::m_autoSaveTimer.

Referenced by EDA_BASE_FRAME::commonInit().

◆ OnCharHook()

void EDA_BASE_FRAME::OnCharHook ( wxKeyEvent &  aKeyEvent)
virtualinherited

Capture the key event before it is sent to the GUI.

The basic frame does not capture this event. Editor frames should override this event function to capture and filter these keys when they are used as hotkeys, and skip it if the key is not used as hotkey (otherwise the key events will be not sent to menus).

Reimplemented in SYMBOL_VIEWER_FRAME, and FOOTPRINT_VIEWER_FRAME.

Definition at line 316 of file eda_base_frame.cpp.

317{
318 wxLogTrace( kicadTraceKeyEvent, "EDA_BASE_FRAME::OnCharHook %s", dump( aKeyEvent ) );
319
320 // Key events can be filtered here.
321 // Currently no filtering is made.
322 aKeyEvent.Skip();
323}
const wxChar *const kicadTraceKeyEvent
Flag to enable wxKeyEvent debug tracing.
wxString dump(const wxArrayString &aArray)
Debug helper for printing wxArrayString contents.

References dump(), and kicadTraceKeyEvent.

◆ OnDropFiles()

void EDA_BASE_FRAME::OnDropFiles ( wxDropFilesEvent &  aEvent)
protectedvirtualinherited

Handles event fired when a file is dropped to the window.

In this base class, stores the path of files accepted. Calls DoWithAcceptedFiles() to execute actions on files.

Definition at line 1118 of file eda_base_frame.cpp.

1119{
1120 wxString* files = aEvent.GetFiles();
1121 for( int nb = 0; nb < aEvent.GetNumberOfFiles(); nb++ )
1122 {
1123 const wxFileName fn = wxFileName( files[nb] );
1124 for( const auto& [ext, tool] : m_acceptedExts )
1125 {
1126 if( IsExtensionAccepted( fn.GetExt(), { ext.ToStdString() } ) )
1127 {
1128 m_AcceptedFiles.emplace( m_AcceptedFiles.end(), fn );
1129 break;
1130 }
1131 }
1132 }
1134 m_AcceptedFiles.clear();
1135}
virtual void DoWithAcceptedFiles()
Execute action on accepted dropped file.
bool IsExtensionAccepted(const wxString &aExt, const std::vector< std::string > acceptedExts)
Checks if the file extension is in accepted extensions.

References EDA_BASE_FRAME::DoWithAcceptedFiles(), IsExtensionAccepted(), EDA_BASE_FRAME::m_acceptedExts, and EDA_BASE_FRAME::m_AcceptedFiles.

◆ OnExportLogo()

void BM2CMP_FRAME::OnExportLogo ( )
private

Generate a file suitable to be copied into a drawing sheet (.kicad_wks) file.

Definition at line 734 of file bitmap2cmp_gui.cpp.

735{
736 wxFileName fn( m_ConvertedFileName );
737 wxString path = fn.GetPath();
738
739 if( path.IsEmpty() || !wxDirExists(path) )
740 path = ::wxGetCwd();
741
742 wxFileDialog fileDlg( this, _( "Create Logo File" ), path, wxEmptyString,
743 DrawingSheetFileWildcard(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
744 int diag = fileDlg.ShowModal();
745
746 if( diag != wxID_OK )
747 return;
748
749 fn = fileDlg.GetPath();
750 fn.SetExt( DrawingSheetFileExtension );
751 m_ConvertedFileName = fn.GetFullPath();
752
753 FILE* outfile;
754 outfile = wxFopen( m_ConvertedFileName, wxT( "w" ) );
755
756 if( outfile == nullptr )
757 {
758 wxString msg;
759 msg.Printf( _( "File '%s' could not be created." ), m_ConvertedFileName );
760 wxMessageBox( msg );
761 return;
762 }
763
764 std::string buffer;
766 fputs( buffer.c_str(), outfile );
767 fclose( outfile );
768}
const std::string DrawingSheetFileExtension
wxString DrawingSheetFileWildcard()

References _, DrawingSheetFileExtension, DrawingSheetFileWildcard(), ExportToBuffer(), KICAD_WKS_LOGO, m_ConvertedFileName, and path.

Referenced by exportBitmap().

◆ OnExportToClipboard()

void BM2CMP_FRAME::OnExportToClipboard ( wxCommandEvent &  event)
overrideprivatevirtual
Returns
the EDA_UNITS from the m_PixelUnit choice

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 682 of file bitmap2cmp_gui.cpp.

683{
684 m_exportToClipboard = true;
685
686 // choices of m_rbOutputFormat are expected to be in same order as
687 // OUTPUT_FMT_ID. See bitmap2component.h
688 OUTPUT_FMT_ID format = (OUTPUT_FMT_ID) m_rbOutputFormat->GetSelection();
689
690 std::string buffer;
691 ExportToBuffer( buffer, format );
692
693 wxLogNull doNotLog; // disable logging of failed clipboard actions
694
695 // Write buffer to the clipboard
696 if( wxTheClipboard->Open() )
697 {
698 // This data objects are held by the clipboard,
699 // so do not delete them in the app.
700 wxTheClipboard->SetData( new wxTextDataObject( buffer.c_str() ) );
701 wxTheClipboard->Flush(); // Allow data to be available after closing KiCad
702 wxTheClipboard->Close();
703 }
704 else
705 {
706 wxMessageBox( _( "Unable to export to the Clipboard") );
707 }
708}
OUTPUT_FMT_ID

References _, ExportToBuffer(), m_exportToClipboard, and BM2CMP_FRAME_BASE::m_rbOutputFormat.

◆ OnExportToFile()

void BM2CMP_FRAME::OnExportToFile ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 671 of file bitmap2cmp_gui.cpp.

672{
673 m_exportToClipboard = false;
674
675 // choices of m_rbOutputFormat are expected to be in same order as
676 // OUTPUT_FMT_ID. See bitmap2component.h
677 OUTPUT_FMT_ID format = (OUTPUT_FMT_ID) m_rbOutputFormat->GetSelection();
678 exportBitmap( format );
679}
void exportBitmap(OUTPUT_FMT_ID aFormat)

References exportBitmap(), m_exportToClipboard, and BM2CMP_FRAME_BASE::m_rbOutputFormat.

◆ OnFormatChange()

void BM2CMP_FRAME::OnFormatChange ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 931 of file bitmap2cmp_gui.cpp.

932{
933 if( m_rbOutputFormat->GetSelection() == PCBNEW_KICAD_MOD )
934 m_rbPCBLayer->Enable( true );
935 else
936 m_rbPCBLayer->Enable( false );
937}

References BM2CMP_FRAME_BASE::m_rbOutputFormat, BM2CMP_FRAME_BASE::m_rbPCBLayer, and PCBNEW_KICAD_MOD.

◆ onIconize()

void EDA_BASE_FRAME::onIconize ( wxIconizeEvent &  aEvent)
protectedinherited

Definition at line 1387 of file eda_base_frame.cpp.

1388{
1389 // Call the handler
1390 handleIconizeEvent( aEvent );
1391
1392 // Skip the event.
1393 aEvent.Skip();
1394}
virtual void handleIconizeEvent(wxIconizeEvent &aEvent)
Handle a window iconize event.

References EDA_BASE_FRAME::handleIconizeEvent().

◆ OnKicadAbout()

void EDA_BASE_FRAME::OnKicadAbout ( wxCommandEvent &  event)
inherited

Definition at line 966 of file eda_base_frame.cpp.

967{
968 void ShowAboutDialog( EDA_BASE_FRAME * aParent ); // See AboutDialog_main.cpp
969 ShowAboutDialog( this );
970}
void ShowAboutDialog(EDA_BASE_FRAME *aParent)
The base frame for deriving all KiCad main window classes.

References ShowAboutDialog().

◆ OnLoadFile()

void BM2CMP_FRAME::OnLoadFile ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 335 of file bitmap2cmp_gui.cpp.

336{
337 wxFileName fn( m_BitmapFileName );
338 wxString path = fn.GetPath();
339
340 if( path.IsEmpty() || !wxDirExists( path ) )
341 path = m_mruPath;
342
343 wxFileDialog fileDlg( this, _( "Choose Image" ), path, wxEmptyString,
344 _( "Image Files" ) + wxS( " " )+ wxImage::GetImageExtWildcard(),
345 wxFD_OPEN | wxFD_FILE_MUST_EXIST );
346
347 int diag = fileDlg.ShowModal();
348
349 if( diag != wxID_OK )
350 return;
351
352 wxString fullFilename = fileDlg.GetPath();
353
354 if( !OpenProjectFiles( std::vector<wxString>( 1, fullFilename ) ) )
355 return;
356
357 fn = fullFilename;
358 m_mruPath = fn.GetPath();
359 SetStatusText( fullFilename );
360 Refresh();
361}
bool OpenProjectFiles(const std::vector< wxString > &aFilenames, int aCtl=0) override
Open a project or set of files given by aFileList.
void Refresh()
Update the board display after modifying it by a python script (note: it is automatically called by a...

References _, m_BitmapFileName, EDA_BASE_FRAME::m_mruPath, OpenProjectFiles(), path, and Refresh().

◆ OnMaximize()

void EDA_BASE_FRAME::OnMaximize ( wxMaximizeEvent &  aEvent)
inherited

Definition at line 1313 of file eda_base_frame.cpp.

1314{
1315 // When we maximize the window, we want to save the old information
1316 // so that we can add it to the settings on next window load.
1317 // Contrary to the documentation, this event seems to be generated
1318 // when the window is also being unmaximized on OSX, so we only
1319 // capture the size information when we maximize the window when on OSX.
1320#ifdef __WXOSX__
1321 if( !IsMaximized() )
1322#endif
1323 {
1325 m_normalFramePos = GetPosition();
1326 wxLogTrace( traceDisplayLocation,
1327 "Maximizing window - Saving position (%d, %d) with size (%d, %d)",
1330 }
1331
1332 // Skip event to actually maximize the window
1333 aEvent.Skip();
1334}

References EDA_BASE_FRAME::GetWindowSize(), EDA_BASE_FRAME::m_normalFramePos, EDA_BASE_FRAME::m_normalFrameSize, and traceDisplayLocation.

◆ OnMenuEvent()

void EDA_BASE_FRAME::OnMenuEvent ( wxMenuEvent &  event)
inherited

The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't captured by the menus themselves.

Definition at line 326 of file eda_base_frame.cpp.

327{
328 if( !m_toolDispatcher )
329 aEvent.Skip();
330 else
332}
TOOL_DISPATCHER * m_toolDispatcher
Definition: tools_holder.h:172
virtual void DispatchWxEvent(wxEvent &aEvent)
Process wxEvents (mostly UI events), translate them to TOOL_EVENTs, and make tools handle those.

References TOOL_DISPATCHER::DispatchWxEvent(), and TOOLS_HOLDER::m_toolDispatcher.

◆ OnMove()

virtual void EDA_BASE_FRAME::OnMove ( wxMoveEvent &  aEvent)
inlinevirtualinherited

Reimplemented in EDA_DRAW_FRAME.

Definition at line 186 of file eda_base_frame.h.

187 {
188 aEvent.Skip();
189 }

◆ OnNegativeClicked()

void BM2CMP_FRAME::OnNegativeClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 649 of file bitmap2cmp_gui.cpp.

650{
651 if( m_checkNegative->GetValue() != m_Negative )
652 {
654
656 Binarize( (double)m_sliderThreshold->GetValue()/m_sliderThreshold->GetMax() );
657 m_Negative = m_checkNegative->GetValue();
658
659 Refresh();
660 }
661}
wxBitmap m_Greyscale_Bitmap
void NegateGreyscaleImage()
void Binarize(double aThreshold)

References Binarize(), BM2CMP_FRAME_BASE::m_checkNegative, m_Greyscale_Bitmap, m_Greyscale_Image, m_Negative, BM2CMP_FRAME_BASE::m_sliderThreshold, NegateGreyscaleImage(), and Refresh().

◆ OnPaintBW()

void BM2CMP_FRAME::OnPaintBW ( wxPaintEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 317 of file bitmap2cmp_gui.cpp.

318{
319#ifdef __WXMAC__
320 // Otherwise fails due: using wxPaintDC without being in a native paint event
321 wxClientDC nb_dc( m_BNPicturePanel );
322#else
323 wxPaintDC nb_dc( m_BNPicturePanel );
324#endif
325
326 m_BNPicturePanel->PrepareDC( nb_dc );
327
328 if( m_BN_Bitmap.IsOk() )
329 nb_dc.DrawBitmap( m_BN_Bitmap, 0, 0, !!m_BN_Bitmap.GetMask() );
330
331 event.Skip();
332}
wxScrolledWindow * m_BNPicturePanel

References m_BN_Bitmap, and BM2CMP_FRAME_BASE::m_BNPicturePanel.

◆ OnPaintGreyscale()

void BM2CMP_FRAME::OnPaintGreyscale ( wxPaintEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 298 of file bitmap2cmp_gui.cpp.

299{
300#ifdef __WXMAC__
301 // Otherwise fails due: using wxPaintDC without being in a native paint event
302 wxClientDC greyscale_dc( m_GreyscalePicturePanel );
303#else
304 wxPaintDC greyscale_dc( m_GreyscalePicturePanel );
305#endif
306
307 m_GreyscalePicturePanel->PrepareDC( greyscale_dc );
308
309 // OSX crashes with empty bitmaps (on initial refreshes)
310 if( m_Greyscale_Bitmap.IsOk() )
311 greyscale_dc.DrawBitmap( m_Greyscale_Bitmap, 0, 0, !!m_Greyscale_Bitmap.GetMask() );
312
313 event.Skip();
314}
wxScrolledWindow * m_GreyscalePicturePanel

References m_Greyscale_Bitmap, and BM2CMP_FRAME_BASE::m_GreyscalePicturePanel.

◆ OnPaintInit()

void BM2CMP_FRAME::OnPaintInit ( wxPaintEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 279 of file bitmap2cmp_gui.cpp.

280{
281#ifdef __WXMAC__
282 // Otherwise fails due: using wxPaintDC without being in a native paint event
283 wxClientDC pict_dc( m_InitialPicturePanel );
284#else
285 wxPaintDC pict_dc( m_InitialPicturePanel );
286#endif
287
288 m_InitialPicturePanel->PrepareDC( pict_dc );
289
290 // OSX crashes with empty bitmaps (on initial refreshes)
291 if( m_Pict_Bitmap.IsOk() )
292 pict_dc.DrawBitmap( m_Pict_Bitmap, 0, 0, !!m_Pict_Bitmap.GetMask() );
293
294 event.Skip();
295}
wxScrolledWindow * m_InitialPicturePanel
wxBitmap m_Pict_Bitmap

References BM2CMP_FRAME_BASE::m_InitialPicturePanel, and m_Pict_Bitmap.

◆ OnPreferences()

void EDA_BASE_FRAME::OnPreferences ( wxCommandEvent &  event)
inherited

Displays the preferences and settings of all opened editors paged dialog.

Definition at line 973 of file eda_base_frame.cpp.

974{
975 PAGED_DIALOG dlg( this, _( "Preferences" ), true );
976 wxTreebook* book = dlg.GetTreebook();
977
978 PANEL_HOTKEYS_EDITOR* hotkeysPanel = new PANEL_HOTKEYS_EDITOR( this, book, false );
979 KIFACE* kiface = nullptr;
980 std::vector<int> expand;
981
982 Kiway().GetActions( hotkeysPanel->ActionsList() );
983
984 book->AddPage( new PANEL_COMMON_SETTINGS( &dlg, book ), _( "Common" ) );
985 book->AddPage( new PANEL_MOUSE_SETTINGS( &dlg, book ), _( "Mouse and Touchpad" ) );
986 book->AddPage( hotkeysPanel, _( "Hotkeys" ) );
987
988#ifdef KICAD_USE_SENTRY
989 book->AddPage( new PANEL_DATA_COLLECTION( &dlg, book ), _( "Data Collection" ) );
990#endif
991
992#define CREATE_PANEL( key ) kiface->CreateWindow( book, key, &Kiway() )
993
994 // If a dll is not loaded, the loader will show an error message.
995
996 try
997 {
999
1000 kiface->GetActions( hotkeysPanel->ActionsList() );
1001
1003 expand.push_back( book->GetPageCount() );
1004
1005 book->AddPage( new wxPanel( book ), _( "Symbol Editor" ) );
1006 book->AddSubPage( CREATE_PANEL( PANEL_SYM_DISP_OPTIONS ), _( "Display Options" ) );
1007 book->AddSubPage( CREATE_PANEL( PANEL_SYM_EDIT_OPTIONS ), _( "Editing Options" ) );
1008 book->AddSubPage( CREATE_PANEL( PANEL_SYM_COLORS ), _( "Colors" ) );
1009
1010 if( GetFrameType() == FRAME_SCH )
1011 expand.push_back( book->GetPageCount() );
1012
1013 book->AddPage( new wxPanel( book ), _( "Schematic Editor" ) );
1014 book->AddSubPage( CREATE_PANEL( PANEL_SCH_DISP_OPTIONS ), _( "Display Options" ) );
1015 book->AddSubPage( CREATE_PANEL( PANEL_SCH_EDIT_OPTIONS ), _( "Editing Options" ) );
1016 book->AddSubPage( CREATE_PANEL( PANEL_SCH_ANNO_OPTIONS ), _( "Annotation Options" ) );
1017 book->AddSubPage( CREATE_PANEL( PANEL_SCH_COLORS ), _( "Colors" ) );
1018 book->AddSubPage( CREATE_PANEL( PANEL_SCH_FIELD_NAME_TEMPLATES ), _( "Field Name Templates" ) );
1019 }
1020 catch( ... )
1021 {
1022 }
1023
1024 try
1025 {
1027
1028 kiface->GetActions( hotkeysPanel->ActionsList() );
1029
1031 expand.push_back( book->GetPageCount() );
1032
1033 book->AddPage( new wxPanel( book ), _( "Footprint Editor" ) );
1034 book->AddSubPage( CREATE_PANEL( PANEL_FP_DISPLAY_OPTIONS ), _( "Display Options" ) );
1035 book->AddSubPage( CREATE_PANEL( PANEL_FP_EDIT_OPTIONS ), _( "Editing Options" ) );
1036 book->AddSubPage( CREATE_PANEL( PANEL_FP_COLORS ), _( "Colors" ) );
1037 book->AddSubPage( CREATE_PANEL( PANEL_FP_DEFAULT_VALUES ), _( "Default Values" ) );
1038
1040 expand.push_back( book->GetPageCount() );
1041
1042 book->AddPage( new wxPanel( book ), _( "PCB Editor" ) );
1043 book->AddSubPage( CREATE_PANEL( PANEL_PCB_DISPLAY_OPTIONS ), _( "Display Options" ) );
1044 book->AddSubPage( CREATE_PANEL( PANEL_PCB_EDIT_OPTIONS ), _( "Editing Options" ) );
1045 book->AddSubPage( CREATE_PANEL( PANEL_PCB_COLORS ), _( "Colors" ) );
1046 book->AddSubPage( CREATE_PANEL( PANEL_PCB_ACTION_PLUGINS ), _( "Action Plugins" ) );
1047 book->AddSubPage( CREATE_PANEL( PANEL_PCB_ORIGINS_AXES ), _( "Origins & Axes" ) );
1048
1050 expand.push_back( book->GetPageCount() );
1051
1052 book->AddPage( new wxPanel( book ), _( "3D Viewer" ) );
1053 book->AddSubPage( CREATE_PANEL( PANEL_3DV_DISPLAY_OPTIONS ), _( "General" ) );
1054 book->AddSubPage( CREATE_PANEL( PANEL_3DV_OPENGL ), _( "Realtime Renderer" ) );
1055 book->AddSubPage( CREATE_PANEL( PANEL_3DV_RAYTRACING ), _( "Raytracing Renderer" ) );
1056 book->AddSubPage( CREATE_PANEL( PANEL_3DV_COLORS ), _( "Colors" ) );
1057 }
1058 catch( ... )
1059 {
1060 }
1061
1062 try
1063 {
1065
1066 kiface->GetActions( hotkeysPanel->ActionsList() );
1067
1068 if( GetFrameType() == FRAME_GERBER )
1069 expand.push_back( book->GetPageCount() );
1070
1071 book->AddPage( new wxPanel( book ), _( "Gerber Viewer" ) );
1072 book->AddSubPage( CREATE_PANEL( PANEL_GBR_DISPLAY_OPTIONS ), _( "Display Options" ) );
1073 book->AddSubPage( CREATE_PANEL( PANEL_GBR_COLORS ), _( "Colors" ) );
1074 book->AddSubPage( CREATE_PANEL( PANEL_GBR_EXCELLON_OPTIONS ), _( "Excellon Options" ) );
1075 }
1076 catch( ... )
1077 {
1078 }
1079
1080 try
1081 {
1083 kiface->GetActions( hotkeysPanel->ActionsList() );
1084
1085 if( GetFrameType() == FRAME_PL_EDITOR )
1086 expand.push_back( book->GetPageCount() );
1087
1088 book->AddPage( new wxPanel( book ), _( "Drawing Sheet Editor" ) );
1089 book->AddSubPage( CREATE_PANEL( PANEL_DS_DISPLAY_OPTIONS ), _( "Display Options" ) );
1090 book->AddSubPage( CREATE_PANEL( PANEL_DS_COLORS ), _( "Colors" ) );
1091
1092 book->AddPage( new PANEL_PCM_SETTINGS( book ), _( "Plugin and Content Manager" ) );
1093 }
1094 catch( ... )
1095 {
1096 }
1097
1098 // Update all of the action hotkeys. The process of loading the actions through
1099 // the KiFACE will only get us the default hotkeys
1100 ReadHotKeyConfigIntoActions( wxEmptyString, hotkeysPanel->ActionsList() );
1101
1102 for( size_t i = 0; i < book->GetPageCount(); ++i )
1103 book->GetPage( i )->Layout();
1104
1105 for( int page : expand )
1106 book->ExpandNode( page );
1107
1108 if( dlg.ShowModal() == wxID_OK )
1109 {
1110 Pgm().GetSettingsManager().Save();
1111 dlg.Kiway().CommonSettingsChanged( false, false );
1112 }
1113
1114#undef CREATE_PANEL
1115}
FRAME_T GetFrameType() const
virtual void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged)
Call CommonSettingsChanged() on all KIWAY_PLAYERs.
Definition: kiway.cpp:572
virtual KIFACE * KiFACE(FACE_T aFaceId, bool doLoad=true)
Return the KIFACE* given a FACE_T.
Definition: kiway.cpp:198
@ FACE_SCH
eeschema DSO
Definition: kiway.h:274
@ FACE_PL_EDITOR
Definition: kiway.h:278
@ FACE_PCB
pcbnew DSO
Definition: kiway.h:275
@ FACE_GERBVIEW
Definition: kiway.h:277
virtual void GetActions(std::vector< TOOL_ACTION * > &aActions) const
Append all registered actions to the given list.
Definition: kiway.cpp:497
std::vector< TOOL_ACTION * > & ActionsList()
return & kiface
Definition: cvpcb.cpp:112
#define CREATE_PANEL(key)
@ FRAME_PCB_EDITOR
Definition: frame_type.h:40
@ FRAME_SCH_SYMBOL_EDITOR
Definition: frame_type.h:35
@ PANEL_SCH_FIELD_NAME_TEMPLATES
Definition: frame_type.h:76
@ PANEL_GBR_DISPLAY_OPTIONS
Definition: frame_type.h:94
@ PANEL_3DV_COLORS
Definition: frame_type.h:92
@ PANEL_3DV_OPENGL
Definition: frame_type.h:90
@ PANEL_PCB_ORIGINS_AXES
Definition: frame_type.h:87
@ PANEL_PCB_EDIT_OPTIONS
Definition: frame_type.h:84
@ PANEL_SCH_DISP_OPTIONS
Definition: frame_type.h:72
@ PANEL_FP_DISPLAY_OPTIONS
Definition: frame_type.h:78
@ PANEL_DS_COLORS
Definition: frame_type.h:100
@ PANEL_PCB_COLORS
Definition: frame_type.h:85
@ PANEL_3DV_RAYTRACING
Definition: frame_type.h:91
@ PANEL_SYM_EDIT_OPTIONS
Definition: frame_type.h:69
@ PANEL_SCH_EDIT_OPTIONS
Definition: frame_type.h:73
@ PANEL_SYM_DISP_OPTIONS
Definition: frame_type.h:68
@ PANEL_FP_COLORS
Definition: frame_type.h:80
@ PANEL_SYM_COLORS
Definition: frame_type.h:70
@ FRAME_PL_EDITOR
Definition: frame_type.h:55
@ FRAME_FOOTPRINT_EDITOR
Definition: frame_type.h:41
@ FRAME_GERBER
Definition: frame_type.h:53
@ FRAME_PCB_DISPLAY3D
Definition: frame_type.h:45
@ PANEL_FP_EDIT_OPTIONS
Definition: frame_type.h:79
@ PANEL_SCH_ANNO_OPTIONS
Definition: frame_type.h:74
@ PANEL_PCB_ACTION_PLUGINS
Definition: frame_type.h:86
@ PANEL_FP_DEFAULT_VALUES
Definition: frame_type.h:81
@ PANEL_3DV_DISPLAY_OPTIONS
Definition: frame_type.h:89
@ PANEL_DS_DISPLAY_OPTIONS
Definition: frame_type.h:99
@ PANEL_PCB_DISPLAY_OPTIONS
Definition: frame_type.h:83
@ PANEL_SCH_COLORS
Definition: frame_type.h:75
@ PANEL_GBR_COLORS
Definition: frame_type.h:97
@ PANEL_GBR_EXCELLON_OPTIONS
Definition: frame_type.h:96
void ReadHotKeyConfigIntoActions(const wxString &aFileName, std::vector< TOOL_ACTION * > &aActions)
Reads a hotkey config file into a list of actions.
Implement a participant in the KIWAY alchemy.
Definition: kiway.h:150

References _, PANEL_HOTKEYS_EDITOR::ActionsList(), KIWAY::CommonSettingsChanged(), CREATE_PANEL, KIWAY::FACE_GERBVIEW, KIWAY::FACE_PCB, KIWAY::FACE_PL_EDITOR, KIWAY::FACE_SCH, FRAME_FOOTPRINT_EDITOR, FRAME_GERBER, FRAME_PCB_DISPLAY3D, FRAME_PCB_EDITOR, FRAME_PL_EDITOR, FRAME_SCH, FRAME_SCH_SYMBOL_EDITOR, KIWAY::GetActions(), EDA_BASE_FRAME::GetFrameType(), PAGED_DIALOG::GetTreebook(), kiface, KIWAY::KiFACE(), KIWAY_HOLDER::Kiway(), PANEL_3DV_COLORS, PANEL_3DV_DISPLAY_OPTIONS, PANEL_3DV_OPENGL, PANEL_3DV_RAYTRACING, PANEL_DS_COLORS, PANEL_DS_DISPLAY_OPTIONS, PANEL_FP_COLORS, PANEL_FP_DEFAULT_VALUES, PANEL_FP_DISPLAY_OPTIONS, PANEL_FP_EDIT_OPTIONS, PANEL_GBR_COLORS, PANEL_GBR_DISPLAY_OPTIONS, PANEL_GBR_EXCELLON_OPTIONS, PANEL_PCB_ACTION_PLUGINS, PANEL_PCB_COLORS, PANEL_PCB_DISPLAY_OPTIONS, PANEL_PCB_EDIT_OPTIONS, PANEL_PCB_ORIGINS_AXES, PANEL_SCH_ANNO_OPTIONS, PANEL_SCH_COLORS, PANEL_SCH_DISP_OPTIONS, PANEL_SCH_EDIT_OPTIONS, PANEL_SCH_FIELD_NAME_TEMPLATES, PANEL_SYM_COLORS, PANEL_SYM_DISP_OPTIONS, PANEL_SYM_EDIT_OPTIONS, Pgm(), and ReadHotKeyConfigIntoActions().

Referenced by APPEARANCE_CONTROLS::onReadOnlySwatch(), and COMMON_CONTROL::OpenPreferences().

◆ OnSize()

void EDA_BASE_FRAME::OnSize ( wxSizeEvent &  aEvent)
virtualinherited

Reimplemented in SYMBOL_VIEWER_FRAME, EDA_DRAW_FRAME, KICAD_MANAGER_FRAME, FOOTPRINT_VIEWER_FRAME, and FOOTPRINT_WIZARD_FRAME.

Definition at line 514 of file eda_base_frame.cpp.

515{
516#ifdef __WXMAC__
517 int currentDisplay = wxDisplay::GetFromWindow( this );
518
519 if( m_displayIndex >= 0 && currentDisplay >= 0 && currentDisplay != m_displayIndex )
520 {
521 wxLogTrace( traceDisplayLocation, "OnSize: current display changed %d to %d",
522 m_displayIndex, currentDisplay );
523 m_displayIndex = currentDisplay;
525 }
526#endif
527
528 aEvent.Skip();
529}
void ensureWindowIsOnScreen()

References EDA_BASE_FRAME::ensureWindowIsOnScreen(), EDA_BASE_FRAME::m_displayIndex, and traceDisplayLocation.

Referenced by EDA_DRAW_FRAME::OnSize().

◆ OnSizeChangeX()

void BM2CMP_FRAME::OnSizeChangeX ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 516 of file bitmap2cmp_gui.cpp.

517{
518 double new_size;
519
520 if( m_UnitSizeX->GetValue().ToDouble( &new_size ) )
521 {
523 {
524 double calculatedY = new_size / m_AspectRatio;
525
527 {
528 // for units in DPI, keeping aspect ratio cannot use m_AspectRatioLocked.
529 // just re-scale the other dpi
530 double ratio = new_size / m_outputSizeX.GetOutputSize();
531 calculatedY = m_outputSizeY.GetOutputSize() * ratio;
532 }
533
536 }
537
539 }
540
542}
void updateImageInfo()

References FormatOutputSize(), IMAGE_SIZE::GetOutputSize(), getUnitFromSelection(), m_AspectRatio, m_AspectRatioLocked, m_outputSizeX, m_outputSizeY, BM2CMP_FRAME_BASE::m_UnitSizeX, BM2CMP_FRAME_BASE::m_UnitSizeY, IMAGE_SIZE::SetOutputSize(), UNSCALED, and updateImageInfo().

Referenced by OpenProjectFiles(), and ToggleAspectRatioLock().

◆ OnSizeChangeY()

void BM2CMP_FRAME::OnSizeChangeY ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 545 of file bitmap2cmp_gui.cpp.

546{
547 double new_size;
548
549 if( m_UnitSizeY->GetValue().ToDouble( &new_size ) )
550 {
552 {
553 double calculatedX = new_size * m_AspectRatio;
554
556 {
557 // for units in DPI, keeping aspect ratio cannot use m_AspectRatioLocked.
558 // just re-scale the other dpi
559 double ratio = new_size / m_outputSizeX.GetOutputSize();
560 calculatedX = m_outputSizeX.GetOutputSize() * ratio;
561 }
562
565 }
566
568 }
569
571}

References FormatOutputSize(), IMAGE_SIZE::GetOutputSize(), getUnitFromSelection(), m_AspectRatio, m_AspectRatioLocked, m_outputSizeX, m_outputSizeY, BM2CMP_FRAME_BASE::m_UnitSizeX, BM2CMP_FRAME_BASE::m_UnitSizeY, IMAGE_SIZE::SetOutputSize(), UNSCALED, and updateImageInfo().

◆ OnSizeUnitChange()

◆ OnSockRequest()

void KIWAY_PLAYER::OnSockRequest ( wxSocketEvent &  evt)
inherited

Definition at line 69 of file eda_dde.cpp.

70{
71 size_t len;
72 wxSocketBase* sock = evt.GetSocket();
73
74 switch( evt.GetSocketEvent() )
75 {
76 case wxSOCKET_INPUT:
77 sock->Read( client_ipc_buffer, 1 );
78
79 if( sock->LastCount() == 0 )
80 break; // No data, occurs on opening connection
81
82 sock->Read( client_ipc_buffer + 1, IPC_BUF_SIZE - 2 );
83 len = 1 + sock->LastCount();
84 client_ipc_buffer[len] = 0;
86 break;
87
88 case wxSOCKET_LOST:
89 return;
90 break;
91
92 default:
93 wxPrintf( wxT( "EDA_DRAW_FRAME::OnSockRequest() error: Invalid event !" ) );
94 break;
95 }
96}
virtual void ExecuteRemoteCommand(const char *cmdline)
Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242).
Definition: kiway_player.h:196
#define IPC_BUF_SIZE
Definition: eda_dde.cpp:39
static char client_ipc_buffer[IPC_BUF_SIZE]
Definition: eda_dde.cpp:40

References client_ipc_buffer, KIWAY_PLAYER::ExecuteRemoteCommand(), and IPC_BUF_SIZE.

◆ OnSockRequestServer()

void KIWAY_PLAYER::OnSockRequestServer ( wxSocketEvent &  evt)
inherited

Definition at line 99 of file eda_dde.cpp.

100{
101 wxSocketBase* socket;
102 wxSocketServer* server = (wxSocketServer*) evt.GetSocket();
103
104 socket = server->Accept();
105
106 if( socket == nullptr )
107 return;
108
109 m_sockets.push_back( socket );
110
111 socket->Notify( true );
112 socket->SetEventHandler( *this, ID_EDA_SOCKET_EVENT );
113 socket->SetNotify( wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG );
114}
std::vector< wxSocketBase * > m_sockets
interprocess communication
Definition: kiway_player.h:219
@ ID_EDA_SOCKET_EVENT
Definition: id.h:164

References ID_EDA_SOCKET_EVENT, and KIWAY_PLAYER::m_sockets.

◆ onSystemColorChange()

void EDA_BASE_FRAME::onSystemColorChange ( wxSysColourChangedEvent &  aEvent)
protectedinherited

Definition at line 1377 of file eda_base_frame.cpp.

1378{
1379 // Call the handler to update the colors used in the frame
1381
1382 // Skip the change event to ensure the rest of the window controls get it
1383 aEvent.Skip();
1384}
virtual void HandleSystemColorChange()
Update the UI in response to a change in the system colors.

References EDA_BASE_FRAME::HandleSystemColorChange().

◆ OnThresholdChange()

void BM2CMP_FRAME::OnThresholdChange ( wxScrollEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 664 of file bitmap2cmp_gui.cpp.

665{
666 Binarize( (double)m_sliderThreshold->GetValue()/m_sliderThreshold->GetMax() );
667 Refresh();
668}

References Binarize(), BM2CMP_FRAME_BASE::m_sliderThreshold, and Refresh().

◆ OpenProjectFiles()

bool BM2CMP_FRAME::OpenProjectFiles ( const std::vector< wxString > &  aFileList,
int  aCtl = 0 
)
overridevirtual

Open a project or set of files given by aFileList.

This is generalized in the direction of worst case. In a typical case aFileList will only hold a single file, like "myboard.kicad_pcb" because any KIWAY_PLAYER is only in one KIWAY and the KIWAY owns the PROJECT. Therefore opening files from multiple projects into the same KIWAY_PLAYER is precluded.

Each derived class should handle this in a way specific to its needs. No filename prompting is done inside here for any file or project. There should be no need to call this with aFileList which is empty. However, calling it with a single filename which does not exist should indicate to the implementer that a new session is being started and that the given name is the desired name for the data file at time of save.

This function does not support "appending". Use a different function for that. Any prior project data tree should be cleared before loading the new stuff. Therefore, one of the first things an implementation should do is test for existence of the first file in the list, and if it does not exist, treat it as a new session, possibly with a UI notification to that effect.

After loading the window should update its Title as part of this operation. If the KIWAY_PLAYER needs to, it can load the *.pro file as part of this operation.

If the KIWAY_PLAYER cannot load any of the file(s) in the list, then it should say why through some GUI interface, and return false.

Parameters
aFileListincludes files that this frame should open according to the knowledge in the derived wxFrame. In almost every case, the list will have only a single file in it.
aCtlis a set of bit flags ORed together from the set of KICTL_* #defined above.
Returns
true if all requested files were opened OK, else false.

Reimplemented from KIWAY_PLAYER.

Definition at line 364 of file bitmap2cmp_gui.cpp.

365{
366 m_Pict_Image.Destroy();
367 m_BitmapFileName = aFileSet[0];
368
369 if( !m_Pict_Image.LoadFile( m_BitmapFileName ) )
370 {
371 // LoadFile has its own UI, no need for further failure notification here
372 return false;
373 }
374
375 m_Pict_Bitmap = wxBitmap( m_Pict_Image );
376
377 // Determine image resolution in DPI (does not existing in all formats).
378 // the resolution can be given in bit per inches or bit per cm in file
379
380 int imageDPIx = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONX );
381 int imageDPIy = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONY );
382
383 if( imageDPIx > 1 && imageDPIy > 1 )
384 {
385 if( m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONUNIT ) == wxIMAGE_RESOLUTION_CM )
386 {
387 imageDPIx = KiROUND( imageDPIx * 2.54 );
388 imageDPIy = KiROUND( imageDPIy * 2.54 );
389 }
390 }
391 else // fallback to a default value (DEFAULT_DPI)
392 {
393 imageDPIx = imageDPIy = DEFAULT_DPI;
394 }
395
396 m_InputXValueDPI->SetLabel( wxString::Format( wxT( "%d" ), imageDPIx ) );
397 m_InputYValueDPI->SetLabel( wxString::Format( wxT( "%d" ), imageDPIy ) );
398
399 int h = m_Pict_Bitmap.GetHeight();
400 int w = m_Pict_Bitmap.GetWidth();
401 m_AspectRatio = (double) w / h;
402
403 m_outputSizeX.SetOriginalDPI( imageDPIx );
405 m_outputSizeY.SetOriginalDPI( imageDPIy );
407
408 // Update display to keep aspect ratio
409 auto fakeEvent = wxCommandEvent();
410 OnSizeChangeX( fakeEvent );
411
413
414 m_InitialPicturePanel->SetVirtualSize( w, h );
415 m_GreyscalePicturePanel->SetVirtualSize( w, h );
416 m_BNPicturePanel->SetVirtualSize( w, h );
417
418 m_Greyscale_Image.Destroy();
419 m_Greyscale_Image = m_Pict_Image.ConvertToGreyscale( );
420
421 if( m_Pict_Bitmap.GetMask() )
422 {
423 for( int x = 0; x < m_Pict_Bitmap.GetWidth(); x++ )
424 {
425 for( int y = 0; y < m_Pict_Bitmap.GetHeight(); y++ )
426 {
427 if( m_Pict_Image.GetRed( x, y ) == m_Pict_Image.GetMaskRed() &&
428 m_Pict_Image.GetGreen( x, y ) == m_Pict_Image.GetMaskGreen() &&
429 m_Pict_Image.GetBlue( x, y ) == m_Pict_Image.GetMaskBlue() )
430 {
431 m_Greyscale_Image.SetRGB( x, y, 255, 255, 255 );
432 }
433 }
434 }
435 }
436
437 if( m_Negative )
439
442 Binarize( (double) m_sliderThreshold->GetValue() / m_sliderThreshold->GetMax() );
443
444 m_buttonExportFile->Enable( true );
445 m_buttonExportClipboard->Enable( true );
446
451
452 return true;
453}
#define DEFAULT_DPI
wxStaticText * m_InputYValueDPI
wxStaticText * m_InputXValueDPI
void OnSizeChangeX(wxCommandEvent &event) override
wxImage m_Pict_Image
void SetOriginalDPI(int aDPI)
void SetOutputSizeFromInitialImageSize()
void SetOriginalSizePixels(int aPixels)

References Binarize(), DEFAULT_DPI, Format(), FormatOutputSize(), IMAGE_SIZE::GetOutputSize(), KiROUND(), m_AspectRatio, m_BitmapFileName, BM2CMP_FRAME_BASE::m_BNPicturePanel, BM2CMP_FRAME_BASE::m_buttonExportClipboard, BM2CMP_FRAME_BASE::m_buttonExportFile, m_Greyscale_Bitmap, m_Greyscale_Image, BM2CMP_FRAME_BASE::m_GreyscalePicturePanel, BM2CMP_FRAME_BASE::m_InitialPicturePanel, BM2CMP_FRAME_BASE::m_InputXValueDPI, BM2CMP_FRAME_BASE::m_InputYValueDPI, m_NB_Image, m_Negative, m_outputSizeX, m_outputSizeY, m_Pict_Bitmap, m_Pict_Image, BM2CMP_FRAME_BASE::m_sliderThreshold, BM2CMP_FRAME_BASE::m_UnitSizeX, BM2CMP_FRAME_BASE::m_UnitSizeY, NegateGreyscaleImage(), OnSizeChangeX(), IMAGE_SIZE::SetOriginalDPI(), IMAGE_SIZE::SetOriginalSizePixels(), IMAGE_SIZE::SetOutputSizeFromInitialImageSize(), and updateImageInfo().

Referenced by OnLoadFile().

◆ ParseArgs()

virtual void KIWAY_PLAYER::ParseArgs ( wxCmdLineParser &  aParser)
inlinevirtualinherited

Handle command-line arguments in a frame-specific way.

The given argument parser has already been initialized with the command line and any options/switches that are handled by the top-level launcher before passing control to the child frame.

Parameters
aParseris the argument parser created by the top-level launcher.

Definition at line 139 of file kiway_player.h.

140 {
141 WXUNUSED( aParser );
142 }

Referenced by PGM_SINGLE_TOP::OnPgmInit().

◆ PopCommandFromRedoList()

PICKED_ITEMS_LIST * EDA_BASE_FRAME::PopCommandFromRedoList ( )
virtualinherited

Return the last command to undo and remove it from list, nothing is deleted.

Definition at line 1297 of file eda_base_frame.cpp.

1298{
1299 return m_redoList.PopCommand();
1300}
PICKED_ITEMS_LIST * PopCommand()

References EDA_BASE_FRAME::m_redoList, and UNDO_REDO_CONTAINER::PopCommand().

Referenced by PL_EDITOR_FRAME::GetLayoutFromRedoList(), SYMBOL_EDIT_FRAME::GetSymbolFromRedoList(), SCH_EDITOR_CONTROL::Redo(), and PCB_BASE_EDIT_FRAME::RestoreCopyFromRedoList().

◆ PopCommandFromUndoList()

◆ PopTool()

void TOOLS_HOLDER::PopTool ( const TOOL_EVENT aEvent)
virtualinherited

Pops a tool from the stack.

Parameters
aEventThe event that started the tool that was pushed to the stack.

Definition at line 65 of file tools_holder.cpp.

66{
67 const std::string& actionName = aEvent.getCommandStr();
68
69 wxASSERT_MSG( !aEvent.getCommandStr().empty(), "Popped Empty Tool Name!" );
70
71 // Push/pop events can get out of order (such as when they're generated by the Simulator
72 // frame but not processed until the mouse is back in the Schematic frame), so make sure
73 // we're popping the right stack frame.
74
75 for( int i = (int) m_toolStack.size() - 1; i >= 0; --i )
76 {
77 if( m_toolStack[ i ] == actionName )
78 {
79 m_toolStack.erase( m_toolStack.begin() + i );
80
81 // If there's something underneath us, and it's now the top of the stack, then
82 // re-activate it
83 if( ( --i ) >= 0 && i == (int)m_toolStack.size() - 1 )
84 {
85 std::string back = m_toolStack[ i ];
87
88 if( action )
89 {
90 // Pop the action as running it will push it back onto the stack
91 m_toolStack.pop_back();
92
93 TOOL_EVENT evt = action->MakeEvent();
94 evt.SetHasPosition( false );
95 evt.SetReactivate( true );
96 GetToolManager()->PostEvent( evt );
97 }
98 }
99 else
101
102 return;
103 }
104 }
105
106 wxASSERT_MSG( false, "Popped a Tool Not on the Tool Stack!" );
107}
TOOL_ACTION * FindAction(const std::string &aActionName) const
Find an action with a given name (if there is one available).
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:54
virtual void DisplayToolMsg(const wxString &msg)
Definition: tools_holder.h:133
Represent a single user action.
Definition: tool_action.h:68
TOOL_EVENT MakeEvent() const
Return the event associated with the action (i.e.
Definition: tool_action.cpp:72
Generic, UI-independent tool event.
Definition: tool_event.h:156
void SetReactivate(bool aReactivate=true)
Returns information about difference between current mouse cursor position and the place where draggi...
Definition: tool_event.h:256
void SetHasPosition(bool aHasPosition)
Returns if the action associated with this event should be treated as immediate regardless of the cur...
Definition: tool_event.h:244
const std::string & getCommandStr() const
Definition: tool_event.h:482
void PostEvent(const TOOL_EVENT &aEvent)
Put an event to the event queue to be processed at the end of event processing cycle.
ACTION_MANAGER * GetActionManager() const
Definition: tool_manager.h:196
wxString GetLabel(EDA_UNITS aUnits, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Get the units string for a given units type.
Definition: eda_units.cpp:129

References TOOLS_HOLDER::DisplayToolMsg(), ACTION_MANAGER::FindAction(), TOOL_MANAGER::GetActionManager(), TOOL_EVENT::getCommandStr(), EDA_UNIT_UTILS::GetLabel(), TOOLS_HOLDER::GetToolManager(), TOOLS_HOLDER::m_toolManager, TOOLS_HOLDER::m_toolStack, TOOL_ACTION::MakeEvent(), TOOL_MANAGER::PostEvent(), ACTIONS::selectionTool, TOOL_EVENT::SetHasPosition(), and TOOL_EVENT::SetReactivate().

Referenced by EDIT_TOOL::copyToClipboard(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), MICROWAVE_TOOL::drawMicrowaveInductor(), SCH_DRAWING_TOOLS::DrawShape(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), SCH_DRAWING_TOOLS::DrawSheet(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), DRAWING_TOOL::InteractivePlaceWithPreview(), SCH_MOVE_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), PICKER_TOOL::Main(), ZOOM_TOOL::Main(), PL_EDIT_TOOL::Main(), PCB_PICKER_TOOL::Main(), LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor(), BOARD_EDITOR_CONTROL::PlaceFootprint(), SCH_DRAWING_TOOLS::PlaceImage(), DRAWING_TOOL::PlaceImage(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), SCH_DRAWING_TOOLS::PlaceSymbol(), DRAWING_TOOL::PlaceText(), EDIT_TOOL::Remove(), ROUTER_TOOL::RouteSelected(), DRAWING_TOOL::SetAnchor(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_DRAWING_TOOLS::TwoClickPlace(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), and SCH_LINE_WIRE_BUS_TOOL::UnfoldBus().

◆ PrintMsg()

void EDA_BASE_FRAME::PrintMsg ( const wxString &  text)
inherited

Definition at line 807 of file eda_base_frame.cpp.

808{
809 SetStatusText( text );
810}

References text.

Referenced by KICAD_MANAGER_FRAME::OnUnarchiveFiles().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return a reference to the PROJECT associated with this KIWAY.

Definition at line 36 of file kiway_holder.cpp.

37{
38 return Kiway().Prj();
39}
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:192

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by SYMBOL_TREE_MODEL_ADAPTER::AddLibraries(), FP_TREE_MODEL_ADAPTER::AddLibraries(), SYMBOL_LIBRARY_MANAGER::addLibrary(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), SIM_PLOT_FRAME::canCloseWindow(), PANEL_FP_PROPERTIES_3D_MODEL::Cfg3DPath(), KICAD_MANAGER_FRAME::CloseProject(), PCB_BASE_EDIT_FRAME::createNewLibrary(), PCB_BASE_EDIT_FRAME::CreateNewProjectLibrary(), DIALOG_PLOT_SCHEMATIC::createPDFFile(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_NETLIST_IMPORT::DIALOG_NETLIST_IMPORT(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PL_DRAW_PANEL_GAL::DisplayDrawingSheet(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), FOOTPRINT_EDIT_FRAME::DuplicateFootprint(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), BOARD_EDITOR_CONTROL::ExportNetlist(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SIM_PLOT_FRAME::getDefaultFilename(), SIM_PLOT_FRAME::getDefaultPath(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), PCB_EDIT_FRAME::GetLastPath(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), SCH_BASE_FRAME::GetLibSymbol(), DIALOG_PLOT_SCHEMATIC::getOutputPath(), KICAD_MANAGER_FRAME::GetProjectFileName(), SCH_EDIT_FRAME::GetSchematicJunctionSize(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_NAVIGATE_TOOL::HypertextCommand(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FIELDS_GRID_TABLE< T >::initGrid(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SYMBOL_EDIT_FRAME::KiwayMailIn(), FOOTPRINT_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), PCB_BASE_FRAME::loadFootprint(), CVPCB_MAINFRAME::LoadFootprintFiles(), PCB_EDIT_FRAME::LoadFootprints(), SCH_EDIT_FRAME::LoadProject(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SIM_PLOT_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), SIM_PLOT_FRAME::loadWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbookAs(), PANEL_FP_PROPERTIES_3D_MODEL::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), PANEL_FP_PROPERTIES_3D_MODEL::OnAdd3DModel(), DIALOG_BOARD_SETUP::onAuxiliaryAction(), PCB_EDIT_FRAME::onBoardLoaded(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_NETLIST_IMPORT::onBrowseNetlistFiles(), WX_HTML_REPORT_PANEL::onBtnSaveToFile(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_SYMBOLS_LIBID::onClickOrphansButton(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), DIALOG_EXPORT_STEP::onExportButton(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_SCHEMATIC_SETUP::onPageChanged(), DIALOG_BOARD_SETUP::onPageChanged(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_SCH_FIELD_PROPERTIES::onScintillaCharAdded(), DIALOG_TEXT_PROPERTIES::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), SYMBOL_EDITOR_CONTROL::PinLibrary(), FOOTPRINT_EDITOR_CONTROL::PinLibrary(), LIB_TREE_MODEL_ADAPTER::PinLibrary(), DIALOG_PLOT_SCHEMATIC::plotOneSheetDXF(), DIALOG_PLOT_SCHEMATIC::plotOneSheetHpgl(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::readNetListAndFpFiles(), APPEARANCE_CONTROLS::rebuildNets(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), PANEL_FP_PROPERTIES_3D_MODEL::ReloadModelsFromFootprint(), EDA_3D_VIEWER_FRAME::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), PCB_EDIT_FRAME::RunEeschema(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_EDIT_FRAME::saveSchematicFile(), EDA_BASE_FRAME::SaveSettings(), SIM_PLOT_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), SIM_PLOT_FRAME::saveWorkbook(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SCH_BASE_FRAME::SelectSymLibTable(), PCB_EDIT_FRAME::SetBoard(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::SetLastPath(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SYMBOL_VIEWER_FRAME::ShowModal(), APPEARANCE_CONTROLS::showNetclass(), SYMBOL_LIBRARY_MANAGER::symTable(), FP_TREE_SYNCHRONIZING_ADAPTER::Sync(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER_FRAME::takeScreenshot(), PCB_EDIT_FRAME::TestStandalone(), DIALOG_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_SHEET_PROPERTIES::TransferDataFromWindow(), DIALOG_ASSIGN_NETCLASS::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), SYMBOL_EDITOR_CONTROL::UnpinLibrary(), FOOTPRINT_EDITOR_CONTROL::UnpinLibrary(), LIB_TREE_MODEL_ADAPTER::UnpinLibrary(), SCH_EDIT_FRAME::updateAutoSaveFile(), DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample(), SCH_EDIT_FRAME::UpdateTitle(), SIM_PLOT_FRAME::updateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), PANEL_FP_PROPERTIES_3D_MODEL::validateModelExists(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), EDA_3D_VIEWER_FRAME::~EDA_3D_VIEWER_FRAME(), PANEL_FP_PROPERTIES_3D_MODEL::~PANEL_FP_PROPERTIES_3D_MODEL(), and SCH_EDIT_FRAME::~SCH_EDIT_FRAME().

◆ ProcessEvent()

bool EDA_BASE_FRAME::ProcessEvent ( wxEvent &  aEvent)
overrideinherited

Override the default process event handler to implement the auto save feature.

Warning
If you override this function in a derived class, make sure you call down to this or the auto save feature will be disabled.

Definition at line 254 of file eda_base_frame.cpp.

255{
256#ifdef __WXMAC__
257 // Apple in its infinite wisdom will raise a disabled window before even passing
258 // us the event, so we have no way to stop it. Instead, we have to catch an
259 // improperly ordered disabled window and quasi-modal dialog here and reorder
260 // them.
261 if( !IsEnabled() && IsActive() )
262 {
263 wxWindow* dlg = findQuasiModalDialog();
264 if( dlg )
265 dlg->Raise();
266 }
267#endif
268
269 if( !wxFrame::ProcessEvent( aEvent ) )
270 return false;
271
272 if( Pgm().m_Quitting )
273 return true;
274
275 if( !m_isClosing && m_supportsAutoSave && IsShown() && IsActive()
277 && GetAutoSaveInterval() > 0 )
278 {
279 if( !m_autoSaveState )
280 {
281 wxLogTrace( traceAutoSave, wxT( "Starting auto save timer." ) );
282 m_autoSaveTimer->Start( GetAutoSaveInterval() * 1000, wxTIMER_ONE_SHOT );
283 m_autoSaveState = true;
284 }
285 else if( m_autoSaveTimer->IsRunning() )
286 {
287 wxLogTrace( traceAutoSave, wxT( "Stopping auto save timer." ) );
288 m_autoSaveTimer->Stop();
289 m_autoSaveState = false;
290 }
291 }
292
293 return true;
294}
virtual bool isAutoSaveRequired() const
Return the auto save status of the application.
wxWindow * findQuasiModalDialog()

References EDA_BASE_FRAME::findQuasiModalDialog(), EDA_BASE_FRAME::GetAutoSaveInterval(), EDA_BASE_FRAME::isAutoSaveRequired(), EDA_BASE_FRAME::m_autoSaveState, EDA_BASE_FRAME::m_autoSaveTimer, EDA_BASE_FRAME::m_isClosing, EDA_BASE_FRAME::m_supportsAutoSave, Pgm(), and traceAutoSave.

Referenced by COMMON_TOOLS::GridProperties(), SYMBOL_VIEWER_FRAME::onSelectNextSymbol(), SYMBOL_VIEWER_FRAME::onSelectPreviousSymbol(), and KIWAY::ProcessEvent().

◆ ProjectChanged()

virtual void EDA_BASE_FRAME::ProjectChanged ( )
inlinevirtualinherited

Notification event that the project has changed.

Reimplemented in KICAD_MANAGER_FRAME, and PCB_EDIT_FRAME.

Definition at line 495 of file eda_base_frame.h.

495{}

Referenced by KIWAY::ProjectChanged().

◆ PushCommandToRedoList()

void EDA_BASE_FRAME::PushCommandToRedoList ( PICKED_ITEMS_LIST aItem)
virtualinherited

Add a command to redo in the redo list.

Delete the very old commands when the max count of redo commands is reached.

Definition at line 1276 of file eda_base_frame.cpp.

1277{
1278 m_redoList.PushCommand( aNewitem );
1279
1280 // Delete the extra items, if count max reached
1281 if( m_undoRedoCountMax > 0 )
1282 {
1283 int extraitems = GetRedoCommandCount() - m_undoRedoCountMax;
1284
1285 if( extraitems > 0 )
1286 ClearUndoORRedoList( REDO_LIST, extraitems );
1287 }
1288}
virtual int GetRedoCommandCount() const
void PushCommand(PICKED_ITEMS_LIST *aCommand)

References EDA_BASE_FRAME::ClearUndoORRedoList(), EDA_BASE_FRAME::GetRedoCommandCount(), EDA_BASE_FRAME::m_redoList, EDA_BASE_FRAME::m_undoRedoCountMax, UNDO_REDO_CONTAINER::PushCommand(), and EDA_BASE_FRAME::REDO_LIST.

Referenced by PL_EDITOR_FRAME::GetLayoutFromUndoList(), SYMBOL_EDIT_FRAME::GetSymbolFromUndoList(), PCB_BASE_EDIT_FRAME::RestoreCopyFromUndoList(), and SCH_EDITOR_CONTROL::Undo().

◆ PushCommandToUndoList()

void EDA_BASE_FRAME::PushCommandToUndoList ( PICKED_ITEMS_LIST aItem)
virtualinherited

◆ PushTool()

void TOOLS_HOLDER::PushTool ( const TOOL_EVENT aEvent)
virtualinherited

NB: the definition of "tool" is different at the user level.

The implementation uses a single TOOL_BASE derived class to implement several user "tools", such as rectangle and circle, or wire and bus. So each user-level tool is actually a TOOL_ACTION.

Pushes a tool to the stack.

Parameters
aEventThe event that is starting the tool to be pushed to the stack.

Definition at line 44 of file tools_holder.cpp.

45{
46 const std::string& actionName = aEvent.getCommandStr();
47
48 wxASSERT_MSG( !actionName.empty(), "Pushed Empty Tool Name!" );
49
50 m_toolStack.push_back( actionName );
51
52 // Human cognitive stacking is very shallow; deeper tool stacks just get annoying
53 if( m_toolStack.size() > 3 )
54 m_toolStack.erase( m_toolStack.begin() );
55
56 TOOL_ACTION* action = m_toolManager->GetActionManager()->FindAction( actionName );
57
58 if( action )
59 DisplayToolMsg( action->GetLabel() );
60 else
61 DisplayToolMsg( actionName );
62}
wxString GetLabel() const
Definition: tool_action.cpp:83

References TOOLS_HOLDER::DisplayToolMsg(), ACTION_MANAGER::FindAction(), TOOL_MANAGER::GetActionManager(), TOOL_EVENT::getCommandStr(), TOOL_ACTION::GetLabel(), TOOLS_HOLDER::m_toolManager, and TOOLS_HOLDER::m_toolStack.

Referenced by EDIT_TOOL::copyToClipboard(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawCircle(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), SCH_LINE_WIRE_BUS_TOOL::DrawSegments(), SCH_DRAWING_TOOLS::DrawShape(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), PL_DRAWING_TOOLS::DrawShape(), SCH_DRAWING_TOOLS::DrawSheet(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), DRAWING_TOOL::InteractivePlaceWithPreview(), SCH_MOVE_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), PICKER_TOOL::Main(), ZOOM_TOOL::Main(), PL_EDIT_TOOL::Main(), PCB_PICKER_TOOL::Main(), LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor(), BOARD_EDITOR_CONTROL::PlaceFootprint(), SCH_DRAWING_TOOLS::PlaceImage(), DRAWING_TOOL::PlaceImage(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), SCH_DRAWING_TOOLS::PlaceSymbol(), DRAWING_TOOL::PlaceText(), EDIT_TOOL::Remove(), ROUTER_TOOL::RouteSelected(), DRAWING_TOOL::SetAnchor(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_DRAWING_TOOLS::TwoClickPlace(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), and SCH_LINE_WIRE_BUS_TOOL::UnfoldBus().

◆ ReCreateMenuBar()

◆ RefreshCanvas()

virtual void TOOLS_HOLDER::RefreshCanvas ( )
inlinevirtualinherited

Reimplemented in EDA_DRAW_FRAME.

Definition at line 165 of file tools_holder.h.

165{ }

Referenced by ACTION_TOOLBAR::onPaletteEvent(), ACTION_TOOLBAR::onToolEvent(), and TOOL_MANAGER::ProcessEvent().

◆ RegisterUIUpdateHandler() [1/2]

virtual void TOOLS_HOLDER::RegisterUIUpdateHandler ( const TOOL_ACTION aAction,
const ACTION_CONDITIONS aConditions 
)
inlinevirtualinherited

Register an action's update conditions with the UI layer to allow the UI to appropriately display the state of its controls.

Parameters
aActionis the action to register.
aConditionsare the UI conditions to use for the control states.

Definition at line 63 of file tools_holder.h.

65 {
66 RegisterUIUpdateHandler( aAction.GetUIId(), aConditions );
67 }
virtual void RegisterUIUpdateHandler(const TOOL_ACTION &aAction, const ACTION_CONDITIONS &aConditions)
Register an action's update conditions with the UI layer to allow the UI to appropriately display the...
Definition: tools_holder.h:63

References TOOL_ACTION::GetUIId(), and TOOLS_HOLDER::RegisterUIUpdateHandler().

Referenced by ACTION_TOOLBAR::doSelectAction(), TOOLS_HOLDER::RegisterUIUpdateHandler(), and ACTION_MANAGER::SetConditions().

◆ RegisterUIUpdateHandler() [2/2]

void EDA_BASE_FRAME::RegisterUIUpdateHandler ( int  aID,
const ACTION_CONDITIONS aConditions 
)
overridevirtualinherited

Register a UI update handler for the control with ID aID.

Parameters
aIDis the control ID to register the handler for
aConditionsare the UI conditions to use for the control states

Reimplemented from TOOLS_HOLDER.

Definition at line 335 of file eda_base_frame.cpp.

336{
338 std::placeholders::_1,
339 this,
340 aConditions );
341
342 m_uiUpdateMap[aID] = evtFunc;
343
344 Bind( wxEVT_UPDATE_UI, evtFunc, aID );
345}
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...
std::map< int, UIUpdateHandler > m_uiUpdateMap
< Map containing the UI update handlers registered with wx for each action.
std::function< void(wxUpdateUIEvent &) > UIUpdateHandler
This is the handler functor for the update UI events.

References EDA_BASE_FRAME::HandleUpdateUIEvent(), and EDA_BASE_FRAME::m_uiUpdateMap.

Referenced by SCH_EDIT_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), KICAD_MANAGER_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), PCB_EDIT_FRAME::ReCreateMenuBar(), EDA_BASE_FRAME::setupUIConditions(), EDA_3D_VIEWER_FRAME::setupUIConditions(), and KICAD_MANAGER_FRAME::setupUIConditions().

◆ SaveProjectSettings()

virtual void EDA_BASE_FRAME::SaveProjectSettings ( )
inlinevirtualinherited

Save changes to the project settings to the project (.pro) file.

The method is virtual so you can override it to call the suitable save method. The base method does nothing.

Parameters
aAskForSavetrue to open a dialog before saving the settings.

Reimplemented in SCH_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 355 of file eda_base_frame.h.

355{};

Referenced by DIALOG_PAGES_SETTINGS::TransferDataFromWindow().

◆ SaveSettings()

void BM2CMP_FRAME::SaveSettings ( APP_SETTINGS_BASE aCfg)
overrideprivatevirtual

Save common frame parameters to a configuration data file.

Don't forget to call the base class's SaveSettings() from your derived SaveSettings() otherwise the frames won't remember their positions and sizes.

Reimplemented from EDA_BASE_FRAME.

Definition at line 263 of file bitmap2cmp_gui.cpp.

264{
266
267 auto cfg = static_cast<BITMAP2CMP_SETTINGS*>( aCfg );
268
270 cfg->m_ConvertedFileName = m_ConvertedFileName;
271 cfg->m_Threshold = m_sliderThreshold->GetValue();
272 cfg->m_Negative = m_checkNegative->IsChecked();
273 cfg->m_LastFormat = m_rbOutputFormat->GetSelection();
274 cfg->m_LastModLayer = m_rbPCBLayer->GetSelection();
275 cfg->m_Units = m_PixelUnit->GetSelection();
276}
virtual void SaveSettings(APP_SETTINGS_BASE *aCfg)
Save common frame parameters to a configuration data file.

References m_BitmapFileName, BITMAP2CMP_SETTINGS::m_BitmapFileName, BM2CMP_FRAME_BASE::m_checkNegative, m_ConvertedFileName, BM2CMP_FRAME_BASE::m_PixelUnit, BM2CMP_FRAME_BASE::m_rbOutputFormat, BM2CMP_FRAME_BASE::m_rbPCBLayer, BM2CMP_FRAME_BASE::m_sliderThreshold, and EDA_BASE_FRAME::SaveSettings().

Referenced by ~BM2CMP_FRAME().

◆ SaveWindowSettings()

void EDA_BASE_FRAME::SaveWindowSettings ( WINDOW_SETTINGS aCfg)
inherited

Save window settings to the given settings object.

Normally called by SaveSettings unless the window in question is a child window that stores its settings somewhere other than APP_SETTINGS_BASE::m_Window.

Definition at line 703 of file eda_base_frame.cpp.

704{
705 if( IsIconized() )
706 return;
707
708 // If the window is maximized, we use the saved window size from before it was maximized
709 if( IsMaximized() )
710 {
713 }
714 else
715 {
717 m_framePos = GetPosition();
718 }
719
720 aCfg->state.pos_x = m_framePos.x;
721 aCfg->state.pos_y = m_framePos.y;
722 aCfg->state.size_x = m_frameSize.x;
723 aCfg->state.size_y = m_frameSize.y;
724 aCfg->state.maximized = IsMaximized();
725 aCfg->state.display = wxDisplay::GetFromWindow( this );
726
727 wxLogTrace( traceDisplayLocation, "Saving window maximized: %s",
728 IsMaximized() ? "true" : "false" );
729 wxLogTrace( traceDisplayLocation, "Saving config position (%d, %d) with size (%d, %d)",
731
732 // Once this is fully implemented, wxAuiManager will be used to maintain
733 // the persistence of the main frame and all it's managed windows and
734 // all of the legacy frame persistence position code can be removed.
735 aCfg->perspective = m_auimgr.SavePerspective().ToStdString();
736
737 aCfg->mru_path = m_mruPath;
738}

References WINDOW_STATE::display, EDA_BASE_FRAME::GetWindowSize(), EDA_BASE_FRAME::m_auimgr, EDA_BASE_FRAME::m_framePos, EDA_BASE_FRAME::m_frameSize, EDA_BASE_FRAME::m_mruPath, EDA_BASE_FRAME::m_normalFramePos, EDA_BASE_FRAME::m_normalFrameSize, WINDOW_STATE::maximized, WINDOW_SETTINGS::mru_path, WINDOW_SETTINGS::perspective, WINDOW_STATE::pos_x, WINDOW_STATE::pos_y, WINDOW_STATE::size_x, WINDOW_STATE::size_y, WINDOW_SETTINGS::state, and traceDisplayLocation.

Referenced by EDA_BASE_FRAME::SaveSettings().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
aKiwayis often from a parent window or from KIFACE::CreateWindow().

Definition at line 43 of file kiway_holder.cpp.

44{
45#if defined(DEBUG)
46 // offer a trap point for debugging most any window
47 wxASSERT( aDest );
48 if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
49 {
50 int breakhere=1;
51 ignore_unused( breakhere );
52 }
53#endif
54
55 ignore_unused( aDest );
56
57 m_kiway = aKiway;
58}
const char * name
Definition: DXF_plotter.cpp:56
void ignore_unused(const T &)
Definition: ignore.h:24

References ignore_unused(), KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetModal()

void KIWAY_PLAYER::SetModal ( bool  aIsModal)
inlineinherited

Definition at line 174 of file kiway_player.h.

174{ m_modal = aIsModal; }

References KIWAY_PLAYER::m_modal.

Referenced by SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME().

◆ SetMruPath()

void EDA_BASE_FRAME::SetMruPath ( const wxString &  aPath)
inlineinherited

◆ setupUIConditions()

void EDA_BASE_FRAME::setupUIConditions ( )
protectedvirtualinherited

Setup the UI conditions for the various actions and their controls in this frame.

Reimplemented in EDA_3D_VIEWER_FRAME, CVPCB_MAINFRAME, DISPLAY_FOOTPRINTS_FRAME, SCH_EDIT_FRAME, SYMBOL_EDIT_FRAME, SYMBOL_VIEWER_FRAME, GERBVIEW_FRAME, KICAD_MANAGER_FRAME, PL_EDITOR_FRAME, FOOTPRINT_EDIT_FRAME, FOOTPRINT_VIEWER_FRAME, and PCB_EDIT_FRAME.

Definition at line 418 of file eda_base_frame.cpp.

419{
420 // Setup the conditions to check a language menu item
421 auto isCurrentLang =
422 [] ( const SELECTION& aSel, int aLangIdentifier )
423 {
424 return Pgm().GetSelectedLanguageIdentifier() == aLangIdentifier;
425 };
426
427 for( unsigned ii = 0; LanguagesList[ii].m_KI_Lang_Identifier != 0; ii++ )
428 {
430 cond.Check( std::bind( isCurrentLang, std::placeholders::_1,
431 LanguagesList[ii].m_WX_Lang_Identifier ) );
432
433 RegisterUIUpdateHandler( LanguagesList[ii].m_KI_Lang_Identifier, cond );
434 }
435}
virtual void RegisterUIUpdateHandler(int aID, const ACTION_CONDITIONS &aConditions) override
Register a UI update handler for the control with ID aID.
LANGUAGE_DESCR LanguagesList[]
An array containing all the languages that KiCad supports.
Definition: pgm_base.cpp:83
Functors that can be used to figure out how the action controls should be displayed in the UI and if ...
ACTION_CONDITIONS & Check(const SELECTION_CONDITION &aCondition)
int m_KI_Lang_Identifier
KiCad identifier used in menu selection (See id.h)
Definition: pgm_base.h:65

References ACTION_CONDITIONS::Check(), LanguagesList, LANGUAGE_DESCR::m_KI_Lang_Identifier, Pgm(), and EDA_BASE_FRAME::RegisterUIUpdateHandler().

Referenced by EDA_3D_VIEWER_FRAME::setupUIConditions(), CVPCB_MAINFRAME::setupUIConditions(), DISPLAY_FOOTPRINTS_FRAME::setupUIConditions(), SCH_EDIT_FRAME::setupUIConditions(), SYMBOL_EDIT_FRAME::setupUIConditions(), SYMBOL_VIEWER_FRAME::setupUIConditions(), GERBVIEW_FRAME::setupUIConditions(), KICAD_MANAGER_FRAME::setupUIConditions(), PL_EDITOR_FRAME::setupUIConditions(), FOOTPRINT_EDIT_FRAME::setupUIConditions(), FOOTPRINT_VIEWER_FRAME::setupUIConditions(), and PCB_EDIT_FRAME::setupUIConditions().

◆ SetUserUnits()

◆ ShowChangedLanguage()

void EDA_BASE_FRAME::ShowChangedLanguage ( )
overridevirtualinherited

Redraw the menus and what not in current language.

Reimplemented from TOOLS_HOLDER.

Reimplemented in EDA_DRAW_FRAME, PCB_BASE_FRAME, KICAD_MANAGER_FRAME, FOOTPRINT_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 463 of file eda_base_frame.cpp.

464{
466
467 if( GetMenuBar() )
468 {
470 GetMenuBar()->Refresh();
471 }
472}
virtual void ShowChangedLanguage()

References EDA_BASE_FRAME::ReCreateMenuBar(), and TOOLS_HOLDER::ShowChangedLanguage().

Referenced by KIWAY::SetLanguage(), CVPCB_MAINFRAME::ShowChangedLanguage(), EDA_DRAW_FRAME::ShowChangedLanguage(), and KICAD_MANAGER_FRAME::ShowChangedLanguage().

◆ ShowInfoBarError() [1/2]

void EDA_BASE_FRAME::ShowInfoBarError ( const wxString &  aErrorMsg,
bool  aShowCloseButton,
std::function< void(void)>  aCallback 
)
inherited

Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right.

The infobar will be closed after a timeout.

This version accepts a callback which will be called when the infobar is dismissed (either as a result of user action or a timeout). This can be useful when the caller wants to make other decorations in the canvas to highlight the error.

Parameters
aErrorMsgis the message to display.
aShowCloseButtontrue to show a close button on the right of the WX_INFOBAR.
aCallbacka callback to be called when the infobar is dismissed.

Definition at line 853 of file eda_base_frame.cpp.

855{
857
858 if( aShowCloseButton )
860
861 if( aCallback )
862 m_infoBar->SetCallback( aCallback );
863
864 GetInfoBar()->ShowMessageFor( aErrorMsg, 6000, wxICON_ERROR );
865}
WX_INFOBAR * GetInfoBar()
void RemoveAllButtons()
Remove all the buttons that have been added by the user.
Definition: infobar.cpp:286
void ShowMessageFor(const wxString &aMessage, int aTime, int aFlags=wxICON_INFORMATION, MESSAGE_TYPE aType=WX_INFOBAR::MESSAGE_TYPE::GENERIC)
Show the infobar with the provided message and icon for a specific period of time.
Definition: infobar.cpp:128
void AddCloseButton(const wxString &aTooltip=_("Hide this message."))
Add the default close button to the infobar on the right side.
Definition: infobar.cpp:276
void SetCallback(std::function< void(void)> aCallback)
Provide a callback to be called when the infobar is dismissed (either by user action or timer).
Definition: infobar.h:157

References WX_INFOBAR::AddCloseButton(), EDA_BASE_FRAME::GetInfoBar(), EDA_BASE_FRAME::m_infoBar, WX_INFOBAR::RemoveAllButtons(), WX_INFOBAR::SetCallback(), and WX_INFOBAR::ShowMessageFor().

◆ ShowInfoBarError() [2/2]

void EDA_BASE_FRAME::ShowInfoBarError ( const wxString &  aErrorMsg,
bool  aShowCloseButton = false,
WX_INFOBAR::MESSAGE_TYPE  aType = WX_INFOBAR::MESSAGE_TYPE::GENERIC 
)
inherited

Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right.

The infobar will be closed after a timeout.

Parameters
aErrorMsgis the message to display.
aShowCloseButtontrue to show a close button on the right of the WX_INFOBAR.

Definition at line 841 of file eda_base_frame.cpp.

843{
845
846 if( aShowCloseButton )
848
849 GetInfoBar()->ShowMessageFor( aErrorMsg, 8000, wxICON_ERROR, aType );
850}

References WX_INFOBAR::AddCloseButton(), EDA_BASE_FRAME::GetInfoBar(), EDA_BASE_FRAME::m_infoBar, WX_INFOBAR::RemoveAllButtons(), and WX_INFOBAR::ShowMessageFor().

Referenced by SYMBOL_EDITOR_CONTROL::AddSymbol(), SCH_EDITOR_CONTROL::AssignNetclass(), BOARD_EDITOR_CONTROL::AssignNetclass(), MICROWAVE_TOOL::createInductorBetween(), PCB_BASE_EDIT_FRAME::createNewLibrary(), MICROWAVE_TOOL::createPolygonShape(), SYMBOL_EDITOR_CONTROL::CutCopyDelete(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), EDIT_TOOL::DragArcTrack(), DRAWING_TOOL::DrawVia(), SYMBOL_EDITOR_CONTROL::DuplicateSymbol(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), SYMBOL_EDIT_FRAME::ExportSymbol(), SCH_NAVIGATE_TOOL::HypertextCommand(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), PL_EDITOR_FRAME::LoadDrawingSheetFile(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), ROUTER_TOOL::prepareInteractive(), GERBVIEW_FRAME::Read_EXCELLON_File(), GERBVIEW_FRAME::Read_GERBER_File(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SYMBOL_EDIT_FRAME::saveLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), EE_INSPECTION_TOOL::ShowDatasheet(), SCH_DRAWING_TOOLS::SingleClickPlace(), and SYMBOL_EDITOR_EDIT_TOOL::UpdateSymbolFields().

◆ ShowInfoBarMsg()

void EDA_BASE_FRAME::ShowInfoBarMsg ( const wxString &  aMsg,
bool  aShowCloseButton = false 
)
inherited

Show the WX_INFOBAR displayed on the top of the canvas with a message and an info icon on the left of the infobar.

The infobar will be closed after a timeout.

Parameters
aErrorMsgis the message to display.
aShowCloseButtontrue to show a close button on the right of the WX_INFOBAR.

Definition at line 879 of file eda_base_frame.cpp.

880{
882
883 if( aShowCloseButton )
885
886 GetInfoBar()->ShowMessageFor( aMsg, 8000, wxICON_INFORMATION );
887}

References WX_INFOBAR::AddCloseButton(), EDA_BASE_FRAME::GetInfoBar(), EDA_BASE_FRAME::m_infoBar, WX_INFOBAR::RemoveAllButtons(), and WX_INFOBAR::ShowMessageFor().

Referenced by SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SCH_DRAWING_TOOLS::DrawSheet(), EDIT_TOOL::FilletTracks(), SCH_MOVE_TOOL::Main(), PL_EDIT_TOOL::Main(), LENGTH_TUNER_TOOL::performTuning(), SCH_DRAWING_TOOLS::PlaceImage(), DRAWING_TOOL::PlaceImage(), SCH_DRAWING_TOOLS::PlaceSymbol(), DIALOG_FIND::search(), SCH_DRAWING_TOOLS::TwoClickPlace(), and SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace().

◆ ShowInfoBarWarning()

void EDA_BASE_FRAME::ShowInfoBarWarning ( const wxString &  aWarningMsg,
bool  aShowCloseButton = false 
)
inherited

Show the WX_INFOBAR displayed on the top of the canvas with a message and a warning icon on the left of the infobar.

The infobar will be closed after a timeout.

Parameters
aErrorMsgis the message to display.
aShowCloseButtontrue to show a close button on the right of the WX_INFOBAR.

Definition at line 868 of file eda_base_frame.cpp.

869{
871
872 if( aShowCloseButton )
874
875 GetInfoBar()->ShowMessageFor( aWarningMsg, 6000, wxICON_WARNING );
876}

References WX_INFOBAR::AddCloseButton(), EDA_BASE_FRAME::GetInfoBar(), EDA_BASE_FRAME::m_infoBar, WX_INFOBAR::RemoveAllButtons(), and WX_INFOBAR::ShowMessageFor().

Referenced by SCH_EDIT_TOOL::RepeatDrawItem().

◆ ShowModal()

bool KIWAY_PLAYER::ShowModal ( wxString *  aResult = nullptr,
wxWindow *  aResultantFocusWindow = nullptr 
)
virtualinherited

Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until this KIWAY_PLAYER derivative calls DismissModal().

This is behavior is similar to a modal dialog window. Not all KIWAY_PLAYERs use this interface, so don't call this unless the implementation knows how to call DismissModal() on a button click or double click or some special event which ends the modal behavior.

Parameters
aResultif not NULL, indicates a place to put a resultant string.
aResultantFocusWindowif not NULL, indicates what window to pass focus to on return.
Returns
true if frame implementation called KIWAY_PLAYER::DismissModal() with aRetVal of true.

Reimplemented in FOOTPRINT_VIEWER_FRAME, and SYMBOL_VIEWER_FRAME.

Definition at line 93 of file kiway_player.cpp.

94{
95 wxASSERT_MSG( IsModal(), wxT( "ShowModal() shouldn't be called on non-modal frame" ) );
96
97 /*
98 This function has a nice interface but a necessarily unsightly implementation.
99 Now the implementation is encapsulated, localizing future changes.
100
101 It works in tandem with DismissModal(). But only ShowModal() is in the
102 vtable and therefore cross-module capable.
103 */
104
105 // This is an exception safe way to zero a pointer before returning.
106 // Yes, even though DismissModal() clears this first normally, this is
107 // here in case there's an exception before the dialog is dismissed.
108 struct NULLER
109 {
110 void*& m_what;
111 NULLER( void*& aPtr ) : m_what( aPtr ) {}
112 ~NULLER() { m_what = nullptr; } // indeed, set it to NULL on destruction
113 } clear_this( (void*&) m_modal_loop );
114
115
116 m_modal_resultant_parent = aResultantFocusWindow;
117
118 Show( true );
119 Raise(); // Needed on some Window managers to always display the frame
120
121 SetFocus();
122
123 {
124 // We have to disable all frames but the modal one.
125 // wxWindowDisabler does that, but it also disables all top level windows
126 // We do not want to disable top level windows which are child of the modal one,
127 // if they are enabled.
128 // An example is an aui toolbar which was moved
129 // or a dialog or another frame or miniframe opened by the modal one.
130 wxWindowList wlist = GetChildren();
131 std::vector<wxWindow*> enabledTopLevelWindows;
132
133 for( unsigned ii = 0; ii < wlist.size(); ii++ )
134 {
135 if( wlist[ii]->IsTopLevel() && wlist[ii]->IsEnabled() )
136 enabledTopLevelWindows.push_back( wlist[ii] );
137 }
138
139 // exception safe way to disable all top level windows except the modal one,
140 // re-enables only those that were disabled on exit
141 wxWindowDisabler toggle( this );
142
143 for( unsigned ii = 0; ii < enabledTopLevelWindows.size(); ii++ )
144 enabledTopLevelWindows[ii]->Enable( true );
145
146 WX_EVENT_LOOP event_loop;
147 m_modal_loop = &event_loop;
148 event_loop.Run();
149
150 } // End of scope for some variables.
151 // End nesting before setting focus below.
152
153 if( aResult )
154 *aResult = m_modal_string;
155
156 if( aResultantFocusWindow )
157 {
158 aResultantFocusWindow->Raise();
159
160 // have the final say, after wxWindowDisabler reenables my parent and
161 // the events settle down, set the focus
162 wxSafeYield();
163 aResultantFocusWindow->SetFocus();
164 }
165
166 return m_modal_ret_val;
167}
wxWindow * m_modal_resultant_parent
Definition: kiway_player.h:214
bool IsModal() const override
Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame...
Definition: kiway_player.h:173
#define WX_EVENT_LOOP
Definition: kiway_player.h:41

References KIWAY_PLAYER::IsModal(), KIWAY_PLAYER::m_modal_loop, KIWAY_PLAYER::m_modal_resultant_parent, KIWAY_PLAYER::m_modal_ret_val, KIWAY_PLAYER::m_modal_string, and WX_EVENT_LOOP.

Referenced by FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), DIALOG_FIELD_PROPERTIES::OnTextValueSelectButtonClick(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SYMBOL_VIEWER_FRAME::ShowModal(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ StringFromValue() [1/2]

wxString UNITS_PROVIDER::StringFromValue ( const EDA_ANGLE aValue,
bool  aAddUnitLabel = false 
)
inlineinherited

Definition at line 62 of file units_provider.h.

63 {
65 aValue.AsDegrees(), aAddUnitLabel,
67 }
wxString StringFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Returns the string from aValue according to aUnits (inch, mm ...) for display.
Definition: eda_units.cpp:233

References EDA_ANGLE::AsDegrees(), DEGREES, DISTANCE, EDA_UNIT_UTILS::UI::StringFromValue(), and unityScale.

◆ StringFromValue() [2/2]

wxString UNITS_PROVIDER::StringFromValue ( double  aValue,
bool  aAddUnitLabel = false,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

Converts aValue in internal units into a united string.

For readability, trailing 0s are removed if the mantissa has 3 or more digits. This function should be used to display values in dialogs because a value entered in mm (for instance 2.0 mm) could need up to 8 digits mantissa if displayed in inch to avoid truncation or rounding made just by the printf function.

Parameters
aValue= value in internal units
aAddUnitLabel= true to add symbol unit to the string value
Returns
A wxString object containing value and optionally the symbol unit (like 2.000 mm)

Definition at line 55 of file units_provider.h.

57 {
59 aAddUnitLabel, aType );
60 }

References UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), and EDA_UNIT_UTILS::UI::StringFromValue().

Referenced by PANEL_SETUP_TRACKS_AND_VIAS::AppendDiffPairs(), PANEL_SETUP_TRACKS_AND_VIAS::AppendTrackWidth(), PANEL_SETUP_TRACKS_AND_VIAS::AppendViaSize(), DIALOG_PLOT::applyPlotSettings(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::buildNetclassesGrid(), PANEL_SETUP_BOARD_STACKUP::computeBoardThickness(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), PANEL_SETUP_BOARD_STACKUP::createRowData(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRAWING_TOOL::DrawSpecificationStackup(), PIN_TABLE_DATA_MODEL::GetValue(), FP_TEXT_GRID_TABLE::GetValue(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged(), reportMax(), reportMin(), reportOpt(), PANEL_SETUP_BOARD_STACKUP::setDefaultLayerWidths(), PANEL_SETUP_BOARD_STACKUP::synchronizeWithBoard(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), PANEL_SETUP_NETCLASSES::TransferDataToWindow(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::TransferDataToWindow(), and PANEL_SETUP_CONSTRAINTS::TransferDataToWindow().

◆ sys_search()

const SEARCH_STACK & EDA_BASE_FRAME::sys_search ( )
virtualinherited

Return a SEARCH_STACK pertaining to entire program.

This is overloaded in KICAD_MANAGER_FRAME

Reimplemented in KICAD_MANAGER_FRAME.

Definition at line 795 of file eda_base_frame.cpp.

796{
797 return Kiface().KifaceSearch();
798}
SEARCH_STACK & KifaceSearch()
Only for DSO specific 'non-library' files.
Definition: kiface_base.h:114

References Kiface(), and KIFACE_BASE::KifaceSearch().

◆ ThemeChanged()

void EDA_BASE_FRAME::ThemeChanged ( )
virtualinherited

Process light/dark theme change.

Reimplemented in PCB_EDIT_FRAME.

Definition at line 499 of file eda_base_frame.cpp.

500{
502
503 // Update all the toolbars to have new icons
504 wxAuiPaneInfoArray panes = m_auimgr.GetAllPanes();
505
506 for( size_t i = 0; i < panes.GetCount(); ++i )
507 {
508 if( ACTION_TOOLBAR* toolbar = dynamic_cast<ACTION_TOOLBAR*>( panes[i].window ) )
509 toolbar->RefreshBitmaps();
510 }
511}
void ClearScaledBitmapCache()
Wipes out the scaled bitmap cache so that the icon theme can be changed.
Definition: bitmap.cpp:173
Define the structure of a toolbar with buttons that invoke ACTIONs.

References ClearScaledBitmapCache(), and EDA_BASE_FRAME::m_auimgr.

Referenced by EDA_BASE_FRAME::CommonSettingsChanged(), EDA_BASE_FRAME::HandleSystemColorChange(), and PCB_EDIT_FRAME::ThemeChanged().

◆ ToggleAspectRatioLock()

void BM2CMP_FRAME::ToggleAspectRatioLock ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from BM2CMP_FRAME_BASE.

Definition at line 585 of file bitmap2cmp_gui.cpp.

586{
588
590 {
592 //Force display update when aspect ratio is locked
593 auto fakeEvent = wxCommandEvent();
594 OnSizeChangeX( fakeEvent );
595 }
596
597 else
598 {
600 }
601}

References KiBitmap(), locked, BM2CMP_FRAME_BASE::m_AspectRatioLockButton, m_AspectRatioLocked, OnSizeChangeX(), and unlocked.

◆ ToggleUserUnits()

virtual void EDA_BASE_FRAME::ToggleUserUnits ( )
inlinevirtualinherited

Reimplemented in EDA_DRAW_FRAME.

Definition at line 125 of file eda_base_frame.h.

125{ }

Referenced by DIALOG_SHIM::OnCharHook().

◆ ToolStackIsEmpty()

◆ unitsChangeRefresh()

virtual void EDA_BASE_FRAME::unitsChangeRefresh ( )
inlineprotectedvirtualinherited

Called when when the units setting has changed to allow for any derived classes to handle refreshing and controls that have units based measurements in them.

The default version only updates the status bar. Don't forget to call the default in your derived class or the status bar will not get updated properly.

Reimplemented in GERBVIEW_FRAME, EDA_DRAW_FRAME, PCB_BASE_FRAME, and PCB_BASE_EDIT_FRAME.

Definition at line 630 of file eda_base_frame.h.

630{ }

Referenced by EDA_BASE_FRAME::ChangeUserUnits().

◆ UnregisterUIUpdateHandler() [1/2]

virtual void TOOLS_HOLDER::UnregisterUIUpdateHandler ( const TOOL_ACTION aAction)
inlinevirtualinherited

Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler.

Parameters
aActionis the action to unregister the handler for.

Definition at line 83 of file tools_holder.h.

84 {
86 }
virtual void UnregisterUIUpdateHandler(const TOOL_ACTION &aAction)
Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler.
Definition: tools_holder.h:83

References TOOL_ACTION::GetUIId(), and TOOLS_HOLDER::UnregisterUIUpdateHandler().

Referenced by ACTION_TOOLBAR::doSelectAction(), ACTION_MANAGER::SetConditions(), and TOOLS_HOLDER::UnregisterUIUpdateHandler().

◆ UnregisterUIUpdateHandler() [2/2]

void EDA_BASE_FRAME::UnregisterUIUpdateHandler ( int  aID)
overridevirtualinherited

Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler.

Parameters
aIDis the control ID to unregister the handler for

Reimplemented from TOOLS_HOLDER.

Definition at line 348 of file eda_base_frame.cpp.

349{
350 const auto it = m_uiUpdateMap.find( aID );
351
352 if( it == m_uiUpdateMap.end() )
353 return;
354
355 Unbind( wxEVT_UPDATE_UI, it->second, aID );
356}

References EDA_BASE_FRAME::m_uiUpdateMap.

◆ UpdateFileHistory()

void EDA_BASE_FRAME::UpdateFileHistory ( const wxString &  FullFileName,
FILE_HISTORY aFileHistory = nullptr 
)
inherited

Update the list of recently opened files.

The menu is also updated, if FILE_HISTORY::UseMenu was called at init time.

Parameters
FullFileNameThe full file name including the path.
aFileHistoryThe FILE_HISTORY in use. If NULL, the main application file history is used.

Definition at line 890 of file eda_base_frame.cpp.

891{
892 if( !aFileHistory )
893 aFileHistory = m_fileHistory;
894
895 wxASSERT( aFileHistory );
896
897 aFileHistory->AddFileToHistory( FullFileName );
898
899 // Update the menubar to update the file history menu
900 if( !m_isClosing && GetMenuBar() )
901 {
903 GetMenuBar()->Refresh();
904 }
905}
void AddFileToHistory(const wxString &aFile) override
Adds a file to the history.
Definition: filehistory.cpp:96

References FILE_HISTORY::AddFileToHistory(), EDA_BASE_FRAME::m_fileHistory, EDA_BASE_FRAME::m_isClosing, and EDA_BASE_FRAME::ReCreateMenuBar().

Referenced by KICAD_MANAGER_FRAME::CreateNewProject(), SCH_EDIT_FRAME::doCloseWindow(), PL_EDITOR_FRAME::LoadDrawingSheetFile(), GERBVIEW_FRAME::LoadGerberJobFile(), GERBVIEW_FRAME::LoadListOfGerberAndDrillFiles(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), EDA_BASE_FRAME::SaveSettings(), and GERBVIEW_FRAME::unarchiveFiles().

◆ updateImageInfo()

void BM2CMP_FRAME::updateImageInfo ( )
private

Definition at line 477 of file bitmap2cmp_gui.cpp.

478{
479 // Note: the image resolution text controls are not modified
480 // here, to avoid a race between text change when entered by user and
481 // a text change if it is modified here.
482
483 if( m_Pict_Bitmap.IsOk() )
484 {
485 int h = m_Pict_Bitmap.GetHeight();
486 int w = m_Pict_Bitmap.GetWidth();
487 int nb = m_Pict_Bitmap.GetDepth();
488
489 m_SizeXValue->SetLabel( wxString::Format( wxT( "%d" ), w ) );
490 m_SizeYValue->SetLabel( wxString::Format( wxT( "%d" ), h ) );
491 m_BPPValue->SetLabel( wxString::Format( wxT( "%d" ), nb ) );
492 }
493}
wxStaticText * m_SizeXValue
wxStaticText * m_BPPValue
wxStaticText * m_SizeYValue

References Format(), BM2CMP_FRAME_BASE::m_BPPValue, m_Pict_Bitmap, BM2CMP_FRAME_BASE::m_SizeXValue, and BM2CMP_FRAME_BASE::m_SizeYValue.

Referenced by OnSizeChangeX(), OnSizeChangeY(), OnSizeUnitChange(), and OpenProjectFiles().

◆ UpdateStatusBar()

virtual void EDA_BASE_FRAME::UpdateStatusBar ( )
inlinevirtualinherited

Update the status bar information.

The status bar can draw itself. This is not a drawing function per se, but rather updates lines of text held by the components within the status bar which is owned by the wxFrame.

Reimplemented in SCH_BASE_FRAME, GERBVIEW_FRAME, EDA_DRAW_FRAME, PCB_BASE_FRAME, and PL_EDITOR_FRAME.

Definition at line 474 of file eda_base_frame.h.

474{ }

Referenced by TOOL_MANAGER::UpdateUI().

◆ ValueFromString()

long long int UNITS_PROVIDER::ValueFromString ( const wxString &  aTextValue,
EDA_DATA_TYPE  aType = EDA_DATA_TYPE::DISTANCE 
)
inlineinherited

Converts aTextValue in aUnits to internal units used by the frame.

Warning
This utilizes the current locale and will break if decimal formats differ
Parameters
aTextValueA reference to a wxString object containing the string to convert.
Returns
internal units value

Definition at line 96 of file units_provider.h.

98 {
100 aType );
101 }
long long int ValueFromString(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Function ValueFromString converts aTextValue in aUnits to internal units used by the application.
Definition: eda_units.cpp:530

References UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), and EDA_UNIT_UTILS::UI::ValueFromString().

Referenced by PIN_TABLE_DATA_MODEL::compare(), PANEL_SETUP_BOARD_STACKUP::computeBoardThickness(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), PANEL_SETUP_BOARD_STACKUP::onCopperLayersSelCount(), PANEL_SETUP_BOARD_STACKUP::setDefaultLayerWidths(), PANEL_SETUP_NETCLASSES::TransferDataFromWindow(), and DIALOG_GRID_SETTINGS::TransferDataToWindow().

◆ windowClosing()

void EDA_BASE_FRAME::windowClosing ( wxCloseEvent &  event)
privateinherited

(with its unexpected name so it does not collide with the real OnWindowClose() function provided in derived classes) is called just before a window closing, and is used to call a derivation specific SaveSettings().

SaveSettings() is called for all derived wxFrames in this base class overload. Calling it from a destructor is deprecated since the wxFrame's position is not available in the destructor on linux. In other words, you should not need to call SaveSettings() anywhere, except in this one function found only in this class.

Definition at line 192 of file eda_base_frame.cpp.

193{
194 // Don't allow closing when a quasi-modal is open.
195 wxWindow* quasiModal = findQuasiModalDialog();
196
197 if( quasiModal )
198 {
199 // Raise and notify; don't give the user a warning regarding "quasi-modal dialogs"
200 // when they have no idea what those are.
201 quasiModal->Raise();
202 wxBell();
203
204 if( event.CanVeto() )
205 event.Veto();
206
207 return;
208 }
209
210
211 if( event.GetId() == wxEVT_QUERY_END_SESSION
212 || event.GetId() == wxEVT_END_SESSION )
213 {
214 // End session means the OS is going to terminate us
215 m_isNonUserClose = true;
216 }
217
218 if( canCloseWindow( event ) )
219 {
220 m_isClosing = true;
221 APP_SETTINGS_BASE* cfg = config();
222
223 if( cfg )
224 SaveSettings( cfg ); // virtual, wxFrame specific
225
227
228 // Destroy (safe delete frame) this frame only in non modal mode.
229 // In modal mode, the caller will call Destroy().
230 if( !IsModal() )
231 Destroy();
232 }
233 else
234 {
235 if( event.CanVeto() )
236 event.Veto();
237 }
238}
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:101
virtual void doCloseWindow()
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...
virtual bool canCloseWindow(wxCloseEvent &aCloseEvent)

References EDA_BASE_FRAME::canCloseWindow(), EDA_BASE_FRAME::config(), EDA_BASE_FRAME::doCloseWindow(), EDA_BASE_FRAME::findQuasiModalDialog(), EDA_BASE_FRAME::IsModal(), EDA_BASE_FRAME::m_isClosing, EDA_BASE_FRAME::m_isNonUserClose, and EDA_BASE_FRAME::SaveSettings().

Referenced by EDA_BASE_FRAME::commonInit().

Member Data Documentation

◆ KICAD_AUI_TB_STYLE

◆ m_aboutTitle

wxString EDA_BASE_FRAME::m_aboutTitle
protectedinherited

◆ m_acceptedExts

std::map<const wxString, TOOL_ACTION*> EDA_BASE_FRAME::m_acceptedExts
protectedinherited

◆ m_AcceptedFiles

◆ m_actions

◆ m_AspectRatio

double BM2CMP_FRAME::m_AspectRatio
private

Definition at line 172 of file bitmap2cmp_gui.h.

Referenced by BM2CMP_FRAME(), OnSizeChangeX(), OnSizeChangeY(), and OpenProjectFiles().

◆ m_AspectRatioLockButton

wxBitmapButton* BM2CMP_FRAME_BASE::m_AspectRatioLockButton
protectedinherited

◆ m_AspectRatioLocked

bool BM2CMP_FRAME::m_AspectRatioLocked
private

◆ m_auimgr

wxAuiManager EDA_BASE_FRAME::m_auimgr
protectedinherited

Definition at line 713 of file eda_base_frame.h.

Referenced by EDA_BASE_FRAME::CreateInfoBar(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), SCH_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), PCB_EDIT_FRAME::doCloseWindow(), EDA_BASE_FRAME::FinishAUIInitialization(), GERBVIEW_FRAME::GERBVIEW_FRAME(), FOOTPRINT_EDIT_FRAME::IsSearchTreeShown(), SYMBOL_EDIT_FRAME::IsSymbolTreeShown(), PCB_EDIT_FRAME::LayerManagerShown(), SCH_EDIT_FRAME::OnResizeHierarchyNavigator(), SYMBOL_VIEWER_FRAME::OnSize(), KICAD_MANAGER_FRAME::OnSize(), FOOTPRINT_VIEWER_FRAME::OnSize(), FOOTPRINT_WIZARD_FRAME::OnSize(), SYMBOL_EDIT_FRAME::OnToggleSymbolTree(), PCB_EDIT_FRAME::PropertiesShown(), GERBVIEW_FRAME::ReCreateAuxiliaryToolbar(), PCB_EDIT_FRAME::ReCreateAuxiliaryToolbar(), KICAD_MANAGER_FRAME::RecreateBaseHToolbar(), CVPCB_MAINFRAME::ReCreateHToolbar(), DISPLAY_FOOTPRINTS_FRAME::ReCreateHToolbar(), SCH_EDIT_FRAME::ReCreateHToolbar(), SYMBOL_EDIT_FRAME::ReCreateHToolbar(), SYMBOL_VIEWER_FRAME::ReCreateHToolbar(), GERBVIEW_FRAME::ReCreateHToolbar(), PL_EDITOR_FRAME::ReCreateHToolbar(), FOOTPRINT_EDIT_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar(), FOOTPRINT_WIZARD_FRAME::ReCreateHToolbar(), PCB_EDIT_FRAME::ReCreateHToolbar(), EDA_3D_VIEWER_FRAME::ReCreateMainToolbar(), DISPLAY_FOOTPRINTS_FRAME::ReCreateOptToolbar(), SCH_EDIT_FRAME::ReCreateOptToolbar(), SYMBOL_EDIT_FRAME::ReCreateOptToolbar(), GERBVIEW_FRAME::ReCreateOptToolbar(), PL_EDITOR_FRAME::ReCreateOptToolbar(), FOOTPRINT_EDIT_FRAME::ReCreateOptToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateOptToolbar(), PCB_EDIT_FRAME::ReCreateOptToolbar(), SCH_EDIT_FRAME::ReCreateVToolbar(), SYMBOL_EDIT_FRAME::ReCreateVToolbar(), PL_EDITOR_FRAME::ReCreateVToolbar(), FOOTPRINT_EDIT_FRAME::ReCreateVToolbar(), PCB_EDIT_FRAME::ReCreateVToolbar(), GERBVIEW_FRAME::ReFillLayerWidget(), CVPCB_MAINFRAME::refreshAfterSymbolSearch(), SCH_EDIT_FRAME::SaveSettings(), FOOTPRINT_WIZARD_FRAME::SaveSettings(), PCB_EDIT_FRAME::SaveSettings(), EDA_BASE_FRAME::SaveWindowSettings(), PCB_BASE_FRAME::SetDrawBgColor(), SCH_EDIT_FRAME::setupUIConditions(), FOOTPRINT_EDIT_FRAME::setupUIConditions(), PCB_EDIT_FRAME::setupUIConditions(), GERBVIEW_FRAME::ShowChangedLanguage(), FOOTPRINT_EDIT_FRAME::ShowChangedLanguage(), PCB_EDIT_FRAME::ShowChangedLanguage(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), EDA_BASE_FRAME::ThemeChanged(), GERBVIEW_FRAME::ToggleLayerManager(), FOOTPRINT_EDIT_FRAME::ToggleLayersManager(), PCB_EDIT_FRAME::ToggleLayersManager(), PCB_EDIT_FRAME::ToggleProperties(), SCH_EDIT_FRAME::ToggleSchematicHierarchy(), PCB_EDIT_FRAME::ToggleSearch(), FOOTPRINT_EDIT_FRAME::ToggleSearchTree(), GERBVIEW_FRAME::updateDCodeSelectBox(), GERBVIEW_FRAME::UpdateTitleAndInfo(), CVPCB_MAINFRAME::~CVPCB_MAINFRAME(), EDA_3D_VIEWER_FRAME::~EDA_3D_VIEWER_FRAME(), EDA_DRAW_FRAME::~EDA_DRAW_FRAME(), and KICAD_MANAGER_FRAME::~KICAD_MANAGER_FRAME().

◆ m_autoSaveState

bool EDA_BASE_FRAME::m_autoSaveState
protectedinherited

◆ m_autoSaveTimer

wxTimer* EDA_BASE_FRAME::m_autoSaveTimer
protectedinherited

◆ m_BitmapFileName

wxString BM2CMP_FRAME::m_BitmapFileName
private

Definition at line 168 of file bitmap2cmp_gui.h.

Referenced by LoadSettings(), OnLoadFile(), OpenProjectFiles(), and SaveSettings().

◆ m_BN_Bitmap

wxBitmap BM2CMP_FRAME::m_BN_Bitmap
private

Definition at line 164 of file bitmap2cmp_gui.h.

Referenced by Binarize(), and OnPaintBW().

◆ m_BNPicturePanel

wxScrolledWindow* BM2CMP_FRAME_BASE::m_BNPicturePanel
protectedinherited

◆ m_BPPunits

wxStaticText* BM2CMP_FRAME_BASE::m_BPPunits
protectedinherited

Definition at line 65 of file bitmap2cmp_gui_base.h.

Referenced by BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE().

◆ m_BPPValue

wxStaticText* BM2CMP_FRAME_BASE::m_BPPValue
protectedinherited

Definition at line 64 of file bitmap2cmp_gui_base.h.

Referenced by BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE(), and updateImageInfo().

◆ m_buttonExportClipboard

wxButton* BM2CMP_FRAME_BASE::m_buttonExportClipboard
protectedinherited

◆ m_buttonExportFile

wxButton* BM2CMP_FRAME_BASE::m_buttonExportFile
protectedinherited

◆ m_buttonLoad

wxButton* BM2CMP_FRAME_BASE::m_buttonLoad
protectedinherited

◆ m_checkNegative

wxCheckBox* BM2CMP_FRAME_BASE::m_checkNegative
protectedinherited

Definition at line 78 of file bitmap2cmp_gui_base.h.