KiCad PCB EDA Suite
FOOTPRINT_VIEWER_FRAME Class Reference

Component library viewer main window. More...

#include <footprint_viewer_frame.h>

Inheritance diagram for FOOTPRINT_VIEWER_FRAME:
PCB_BASE_FRAME EDA_DRAW_FRAME 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

 ~FOOTPRINT_VIEWER_FRAME ()
 
BOARD_ITEM_CONTAINERGetModel () const override
 
SELECTIONGetCurrentSelection () override
 Get the current selection from the canvas area. More...
 
virtual COLOR4D GetGridColor () override
 
MAGNETIC_SETTINGSGetMagneticItemsSettings () override
 
void ReCreateLibraryList ()
 Create or recreate the list of current loaded libraries. More...
 
void OnUpdateFootprintButton (wxUpdateUIEvent &aEvent)
 Update the ID_ADD_FOOTPRINT_TO_BOARD tool state in main toolbar. More...
 
void UpdateMsgPanel () override
 Redraw the message panel. More...
 
bool ShowModal (wxString *aFootprint, wxWindow *aParent) override
 Run the footprint viewer as a modal dialog. More...
 
COLOR_SETTINGSGetColorSettings (bool aForceRefresh=false) const override
 Helper to retrieve the current color settings. More...
 
void KiwayMailIn (KIWAY_EXPRESS &mail) override
 Receive KIWAY_EXPRESS messages from other players. More...
 
EDA_3D_VIEWER_FRAMEGet3DViewerFrame ()
 
FOOTPRINTLoadFootprint (const LIB_ID &aFootprintId)
 Attempt to load aFootprintId from the footprint library table. More...
 
BOX2I GetBoardBoundingBox (bool aBoardEdgesOnly=false) const
 Calculate the bounding box containing all board items (or board edge segments). More...
 
const BOX2I GetDocumentExtents (bool aIncludeAllVisible=true) const override
 Returns bbox of document with option to not include some items. More...
 
virtual void SetPageSettings (const PAGE_INFO &aPageSettings) override
 
const PAGE_INFOGetPageSettings () const override
 
const wxSize GetPageSizeIU () const override
 Works off of GetPageSettings() to return the size of the paper page in the internal units of this particular view. More...
 
const VECTOR2IGetGridOrigin () const override
 Return the absolute coordinates of the origin of the snap grid. More...
 
void SetGridOrigin (const VECTOR2I &aPoint) override
 
const VECTOR2IGetAuxOrigin () const
 
const VECTOR2I GetUserOrigin () const
 
ORIGIN_TRANSFORMSGetOriginTransforms () override
 Return a reference to the default ORIGIN_TRANSFORMS object. More...
 
const TITLE_BLOCKGetTitleBlock () const override
 
void SetTitleBlock (const TITLE_BLOCK &aTitleBlock) override
 
virtual BOARD_DESIGN_SETTINGSGetDesignSettings () const
 Returns the BOARD_DESIGN_SETTINGS for the open project. More...
 
void SetDrawBgColor (const COLOR4D &aColor) override
 
const PCB_DISPLAY_OPTIONSGetDisplayOptions () const
 Display options control the way tracks, vias, outlines and other things are shown (for instance solid or sketch mode). More...
 
void SetDisplayOptions (const PCB_DISPLAY_OPTIONS &aOptions, bool aRefresh=true)
 Updates the current display options from the given options struct. More...
 
const ZONE_SETTINGSGetZoneSettings () const
 
void SetZoneSettings (const ZONE_SETTINGS &aSettings)
 
virtual const PCB_PLOT_PARAMSGetPlotSettings () const
 Return the PCB_PLOT_PARAMS for the BOARD owned by this frame. More...
 
virtual void SetPlotSettings (const PCB_PLOT_PARAMS &aSettings)
 
virtual void SetBoard (BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr)
 Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD. More...
 
BOARDGetBoard () const
 
void UpdateUserUnits (BOARD_ITEM *aItem, bool *aSelectedItemsModified=nullptr)
 Update any references within aItem (or its descendants) to the user units. More...
 
EDA_ITEMGetItem (const KIID &aId) const override
 Fetch an item by KIID. More...
 
void FocusOnItem (BOARD_ITEM *aItem, PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
 
void FocusOnItems (std::vector< BOARD_ITEM * > aItems, PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
 
void HideSolderMask ()
 
void ShowSolderMask ()
 
virtual void ShowChangedLanguage () override
 Redraw the menus and what not in current language. More...
 
virtual void UpdateStatusBar () override
 Update the status bar information. More...
 
PCB_SCREENGetScreen () const override
 Return a pointer to a BASE_SCREEN or one of its derivatives. More...
 
EDA_3D_VIEWER_FRAMECreateAndShow3D_Frame ()
 Shows the 3D view frame. More...
 
GENERAL_COLLECTORS_GUIDE GetCollectorsGuide ()
 
wxString SelectLibrary (const wxString &aNicknameExisting)
 Put up a dialog and allows the user to pick a library, for unspecified use. More...
 
FOOTPRINTGetFootprintFromBoardByReference ()
 
void OnModify () override
 Must be called after a change in order to set the "modify" flag and update other data structures and GUI elements. More...
 
FOOTPRINTCreateNewFootprint (const wxString &aFootprintName, bool aQuiet=false)
 Creates a new footprint, at position 0,0. More...
 
void PlaceFootprint (FOOTPRINT *aFootprint, bool aRecreateRatsnest=true)
 Places aFootprint at the current cursor position and updates footprint coordinates with the new position. More...
 
void ShowPadPropertiesDialog (PAD *aPad)
 
FOOTPRINTSelectFootprintFromLibTree (LIB_ID aPreselect=LIB_ID())
 Open a dialog to select a footprint. More...
 
virtual void AddFootprintToBoard (FOOTPRINT *aFootprint)
 Add the given footprint to the board. More...
 
wxString SelectFootprintFromLibBrowser ()
 Launch the footprint viewer to select the name of a footprint to load. More...
 
void Compile_Ratsnest (bool aDisplayStatus)
 Create the entire board ratsnest. More...
 
PCB_LAYER_ID SelectOneLayer (PCB_LAYER_ID aDefaultLayer, LSET aNotAllowedLayersMask=LSET(), wxPoint aDlgPosition=wxDefaultPosition)
 Show the dialog box for a layer selection. More...
 
virtual void SwitchLayer (PCB_LAYER_ID aLayer)
 Change the active layer in the frame. More...
 
virtual void SetActiveLayer (PCB_LAYER_ID aLayer)
 
virtual PCB_LAYER_ID GetActiveLayer () const
 
SEVERITY GetSeverity (int aErrorCode) const override
 
virtual void OnDisplayOptionsChanged ()
 
PCBNEW_SETTINGSGetPcbNewSettings () const
 
FOOTPRINT_EDITOR_SETTINGSGetFootprintEditorSettings () const
 
virtual PCB_VIEWERS_SETTINGS_BASEGetViewerSettingsBase () const
 
void DisplayGridMsg () override
 Display the current grid pane on the status bar. More...
 
PCB_DRAW_PANEL_GALGetCanvas () const override
 Return a pointer to GAL-based canvas of given EDA draw frame. More...
 
virtual void ActivateGalCanvas () override
 Use to start up the GAL drawing canvas. More...
 
bool LockFile (const wxString &aFileName)
 Mark a schematic file as being in use. More...
 
void ReleaseFile ()
 Release the current file marked in use. More...
 
void ScriptingConsoleEnableDisable ()
 Toggles the scripting console visibility. More...
 
bool IsScriptingConsoleVisible ()
 Gets the current visibility of the scripting console window. More...
 
EDA_SEARCH_DATAGetFindReplaceData ()
 
wxArrayString & GetFindHistoryList ()
 
bool GetShowPolarCoords () const
 For those frames that support polar coordinates. More...
 
void SetShowPolarCoords (bool aShow)
 
void ToggleUserUnits () override
 
void GetUnitPair (EDA_UNITS &aPrimaryUnit, EDA_UNITS &aSecondaryUnits)
 Get the pair or units in current use. More...
 
VECTOR2I GetNearestGridPosition (const VECTOR2I &aPosition) const
 Return the nearest aGridSize location to aPosition. More...
 
VECTOR2I GetNearestHalfGridPosition (const VECTOR2I &aPosition) const
 Return the nearest aGridSize / 2 location to aPosition. More...
 
virtual COLOR4D GetDrawBgColor () const
 
bool LibraryFileBrowser (bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
 
virtual wxString GetScreenDesc () const
 
void EraseMsgBox ()
 
virtual void ReCreateAuxiliaryToolbar ()
 
virtual void UpdateToolbarControlSizes ()
 Update the sizes of any controls in the toolbars of the frame. More...
 
bool IsGridVisible () const
 
virtual void SetGridVisibility (bool aVisible)
 
virtual void SetGridColor (const COLOR4D &aColor)
 
void OnSelectGrid (wxCommandEvent &event)
 Command event handler for selecting grid sizes. More...
 
void OnGridSettings (wxCommandEvent &event)
 
void UpdateGridSelectBox ()
 Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes, etc.). More...
 
void OnUpdateSelectGrid (wxUpdateUIEvent &aEvent)
 Update the checked item in the grid wxchoice. More...
 
void OnUpdateSelectZoom (wxUpdateUIEvent &aEvent)
 Update the checked item in the zoom wxchoice. More...
 
void UpdateZoomSelectBox ()
 Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes, etc.) More...
 
const wxString GetZoomLevelIndicator () const
 Return a human readable value for display in dialogs. More...
 
virtual void OnSelectZoom (wxCommandEvent &event)
 Set the zoom factor when selected by the zoom list box in the main tool bar. More...
 
void OnMove (wxMoveEvent &aEvent) override
 
virtual void HardRedraw ()
 Rebuild the GAL and redraws the screen. More...
 
virtual void Zoom_Automatique (bool aWarpPointer)
 Redraw the screen with best zoom level and the best centering that shows all the page or the board. More...
 
void FocusOnLocation (const VECTOR2I &aPos)
 Useful to focus on a particular location, in find functions. More...
 
void AddStandardSubMenus (TOOL_MENU &aMenu)
 Construct a "basic" menu for a tool, containing only items that apply to all tools (e.g. More...
 
void PrintDrawingSheet (const RENDER_SETTINGS *aSettings, BASE_SCREEN *aScreen, const std::map< wxString, wxString > *aProperties, double aMils2Iu, const wxString &aFilename, const wxString &aSheetLayer=wxEmptyString)
 Prints the drawing-sheet (frame and title block). More...
 
void DisplayToolMsg (const wxString &msg) override
 
void DisplayConstraintsMsg (const wxString &msg)
 
virtual void OnPageSettingsChange ()
 Called when modifying the page settings. More...
 
void DisplayUnitsMsg ()
 Display current unit pane in the status bar. More...
 
void AppendMsgPanel (const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
 Append a message to the message panel. More...
 
virtual void ClearMsgPanel ()
 Clear all messages from the message panel. More...
 
void SetMsgPanel (const std::vector< MSG_PANEL_ITEM > &aList)
 Clear the message panel and populates it with the contents of aList. More...
 
void SetMsgPanel (EDA_ITEM *aItem)
 
void SetMsgPanel (const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
 Helper function that erases the msg panel and then appends a single message. More...
 
virtual void PrintPage (const RENDER_SETTINGS *aSettings)
 Print the page pointed by current screen, set by the calling print function. More...
 
virtual void SwitchCanvas (EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
 Changes the current rendering backend. More...
 
void SetCanvas (EDA_DRAW_PANEL_GAL *aPanel)
 
wxWindow * GetToolCanvas () const override
 Canvas access. More...
 
KIGFX::GAL_DISPLAY_OPTIONSGetGalDisplayOptions ()
 Return a reference to the gal rendering options used by GAL for rendering. More...
 
void RefreshCanvas () override
 
void RecreateToolbars ()
 Rebuild all toolbars, and update the checked state of check tools. More...
 
virtual bool OpenProjectFiles (const std::vector< wxString > &aFileList, int aCtl=0)
 Open a project or set of files given by aFileList. 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)
 
SETTINGS_MANAGERGetSettingsManager () const
 
bool ProcessEvent (wxEvent &aEvent) override
 Override the default process event handler to implement the auto save feature. 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...
 
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 ShowPreferences (wxString aStartPage, wxString aStartParentPage)
 Displays the preferences and settings of all opened editors paged dialog, starting with a particular page. 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...
 
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...
 
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 ThemeChanged ()
 Process light/dark theme change. More...
 
virtual void ProjectChanged ()
 Notification event that the project has changed. More...
 
const wxString & GetAboutTitle () const
 
const wxString & GetUntranslatedAboutTitle () 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 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
 
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...
 
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)
 
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...
 
EDA_ANGLE AngleValueFromString (const wxString &aTextValue)
 

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

 FOOTPRINT_VIEWER_FRAME (KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType)
 
void setupUIConditions () override
 Setup the UI conditions for the various actions and their controls in this frame. More...
 
void doReCreateMenuBar () override
 
bool canCloseWindow (wxCloseEvent &aCloseEvent) override
 
void handleActivateEvent (wxActivateEvent &aEvent) override
 Handle a window activation event. More...
 
void handleIconizeEvent (wxIconizeEvent &aEvent) override
 Handle a window iconize event. More...
 
FOOTPRINTloadFootprint (const LIB_ID &aFootprintId)
 Attempts to load aFootprintId from the footprint library table. More...
 
virtual void unitsChangeRefresh () override
 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...
 
void rebuildConnectivity ()
 
virtual void SetScreen (BASE_SCREEN *aScreen)
 
void setupUnits (APP_SETTINGS_BASE *aCfg)
 
std::vector< wxWindow * > findDialogs ()
 
void resolveCanvasType ()
 Determines the Canvas type to load (with prompt if required) and initializes m_canvasType. More...
 
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting ()
 Returns the canvas type stored in the application settings. More...
 
bool saveCanvasTypeSetting (EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
 Stores the canvas type in the application settings. More...
 
void onActivate (wxActivateEvent &aEvent)
 
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...
 
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...
 
void onSystemColorChange (wxSysColourChangedEvent &aEvent)
 
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

MAGNETIC_SETTINGS m_magneticItems
 
BOARDm_pcb
 
PCB_DISPLAY_OPTIONS m_displayOptions
 
PCB_ORIGIN_TRANSFORMS m_originTransforms
 
wxSocketServer * m_socketServer
 
std::vector< wxSocketBase * > m_sockets
 interprocess communication More...
 
std::unique_ptr< wxSingleInstanceChecker > m_file_checker
 
COLOR4D m_gridColor
 
COLOR4D m_drawBgColor
 
int m_undoRedoCountMax
 
bool m_polarCoords
 
bool m_showBorderAndTitleBlock
 
wxChoice * m_gridSelectBox
 
wxChoice * m_zoomSelectBox
 
ACTION_TOOLBARm_mainToolBar
 
ACTION_TOOLBARm_auxiliaryToolBar
 
ACTION_TOOLBARm_drawToolBar
 
ACTION_TOOLBARm_optionsToolBar
 
std::unique_ptr< EDA_SEARCH_DATAm_findReplaceData
 
wxArrayString m_findStringHistoryList
 
wxArrayString m_replaceStringHistoryList
 
EDA_MSG_PANELm_messagePanel
 
int m_msgFrameHeight
 
COLOR_SETTINGSm_colorSettings
 
SEARCH_PANEm_searchPane
 The current canvas type. More...
 
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
 
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
 
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_autoSavePending
 
bool m_autoSaveRequired
 
wxTimer * m_autoSaveTimer
 
UNDO_REDO_CONTAINER m_undoList
 
UNDO_REDO_CONTAINER m_redoList
 
wxString m_mruPath
 
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 bool m_openGLFailureOccured = false
 Has any failure occured when switching to OpenGL in any EDA_DRAW_FRAME? More...
 
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

const wxString getCurNickname ()
 
void setCurNickname (const wxString &aNickname)
 
const wxString getCurFootprintName ()
 
void setCurFootprintName (const wxString &aName)
 
void OnSize (wxSizeEvent &event) override
 Recalculate the size of toolbars and display panel when the frame size changes. More...
 
void ReCreateFootprintList ()
 
void OnIterateFootprintList (wxCommandEvent &event)
 
void UpdateTitle ()
 Update the window title with current library information. More...
 
void displayFootprint (FOOTPRINT *aFootprint)
 
void doCloseWindow () override
 
void CloseFootprintViewer (wxCommandEvent &event)
 
void OnExitKiCad (wxCommandEvent &event)
 
void ReCreateHToolbar () override
 
void ReCreateVToolbar () override
 
void ReCreateOptToolbar () override
 
void OnLibFilter (wxCommandEvent &aEvent)
 
void OnFPFilter (wxCommandEvent &aEvent)
 
void OnCharHook (wxKeyEvent &aEvent) override
 Capture the key event before it is sent to the GUI. More...
 
void selectPrev (WX_LISTBOX *aListBox)
 
void selectNext (WX_LISTBOX *aListBox)
 
void ClickOnLibList (wxCommandEvent &aEvent)
 
void ClickOnFootprintList (wxCommandEvent &aEvent)
 
void DClickOnFootprintList (wxMouseEvent &aEvent)
 
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...
 
WINDOW_SETTINGSGetWindowSettings (APP_SETTINGS_BASE *aCfg) override
 Return a pointer to the window settings for this frame. More...
 
void CommonSettingsChanged (bool aEnvVarsChanged, bool aTextVarsChanged) override
 Notification event that some of the common (suite-wide) settings have changed. More...
 
void OnActivate (wxActivateEvent &event)
 Called when the frame frame is activate to reload the libraries and component lists that can be changed by the schematic editor or the library editor. More...
 
void AddFootprintToPCB (wxCommandEvent &aEvent)
 Export the current footprint name and close the library browser. More...
 
void SelectAndViewFootprint (int aMode)
 Select and load the next or the previous footprint. More...
 
void Update3DView (bool aMarkDirty, bool aRefresh, const wxString *aTitle=nullptr) override
 Update the 3D view, if the viewer is opened by this frame. More...
 
void SaveCopyInUndoList (EDA_ITEM *, UNDO_REDO) override
 Create a new entry in undo list of commands. More...
 
void SaveCopyInUndoList (const PICKED_ITEMS_LIST &, UNDO_REDO) override
 Creates a new entry in undo list of commands. More...
 
void AppendCopyToUndoList (const PICKED_ITEMS_LIST &, UNDO_REDO) override
 As SaveCopyInUndoList, but appends the changes to the last undo item on the stack. More...
 
void updateView ()
 
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

wxSearchCtrl * m_libFilter
 
WX_LISTBOXm_libList
 
int m_libListWidth
 
wxSearchCtrl * m_fpFilter
 
WX_LISTBOXm_fpList
 
int m_fpListWidth
 
COMPONENT m_comp
 
bool m_autoZoom
 
double m_lastZoom
 
NL_PCBNEW_PLUGINm_spaceMouse
 
BASE_SCREENm_currentScreen
 current used SCREEN More...
 
EDA_DRAW_PANEL_GALm_canvas
 This the frame's interface to setting GAL display options. More...
 
KIGFX::GAL_DISPLAY_OPTIONS m_galDisplayOptions
 
KIWAYm_kiway
 
HOLDER_TYPE m_type
 
const EDA_IU_SCALEm_iuScale
 
EDA_UNITS m_userUnits
 

Friends

struct PCB::IFACE
 

Detailed Description

Component library viewer main window.

Definition at line 46 of file footprint_viewer_frame.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

◆ ~FOOTPRINT_VIEWER_FRAME()

FOOTPRINT_VIEWER_FRAME::~FOOTPRINT_VIEWER_FRAME ( )

Returns
the primary data model.

Definition at line 353 of file footprint_viewer_frame.cpp.

354{
355 // Shutdown all running tools
356 if( m_toolManager )
358
360 GetCanvas()->GetView()->Clear();
361 // Be sure any event cannot be fired after frame deletion:
362 GetCanvas()->SetEvtHandlerEnabled( false );
363 m_fpList->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( FOOTPRINT_VIEWER_FRAME::DClickOnFootprintList ), nullptr, this );
364}
void StopDrawing()
Prevent the GAL canvas from further drawing until it is recreated or StartDrawing() is called.
void DClickOnFootprintList(wxMouseEvent &aEvent)
void Clear()
Remove all items from the view.
Definition: view.cpp:1099
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual KIGFX::PCB_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:170
void ShutdownAllTools()
Shutdown all tools with a currently registered event loop in this tool manager by waking them up with...

References KIGFX::VIEW::Clear(), DClickOnFootprintList(), PCB_BASE_FRAME::GetCanvas(), PCB_DRAW_PANEL_GAL::GetView(), m_fpList, TOOLS_HOLDER::m_toolManager, TOOL_MANAGER::ShutdownAllTools(), and EDA_DRAW_PANEL_GAL::StopDrawing().

◆ FOOTPRINT_VIEWER_FRAME()

FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME ( KIWAY aKiway,
wxWindow *  aParent,
FRAME_T  aFrameType 
)
protected

Definition at line 112 of file footprint_viewer_frame.cpp.

113 :
114 PCB_BASE_FRAME( aKiway, aParent, aFrameType, _( "Footprint Library Browser" ),
115 wxDefaultPosition, wxDefaultSize,
116 aFrameType == FRAME_FOOTPRINT_VIEWER_MODAL ? ( aParent ? PARENT_STYLE : MODAL_STYLE )
120 m_comp( LIB_ID(), wxEmptyString, wxEmptyString, KIID_PATH(), {} )
121{
122 wxASSERT( aFrameType == FRAME_FOOTPRINT_VIEWER_MODAL || aFrameType == FRAME_FOOTPRINT_VIEWER );
123
124 if( aFrameType == FRAME_FOOTPRINT_VIEWER_MODAL )
125 SetModal( true );
126
127 m_aboutTitle = _HKI( "KiCad Footprint Library Viewer" );
128
129 // Force the items to always snap
133
134 // Force the frame name used in config. the footprint viewer frame has a name
135 // depending on aFrameType (needed to identify the frame by wxWidgets),
136 // but only one configuration is preferable.
138
139 // Give an icon
140 wxIcon icon;
141 icon.CopyFromBitmap( KiBitmap( BITMAPS::icon_footprint_browser ) );
142 SetIcon( icon );
143
144 m_libListWidth = 200;
145 m_fpListWidth = 300;
146
147 wxPanel* libPanel = new wxPanel( this );
148 wxSizer* libSizer = new wxBoxSizer( wxVERTICAL );
149
150 m_libFilter = new wxSearchCtrl( libPanel, ID_MODVIEW_LIB_FILTER, wxEmptyString,
151 wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
152 m_libFilter->SetDescriptiveText( _( "Filter" ) );
153 libSizer->Add( m_libFilter, 0, wxEXPAND, 5 );
154
155 m_libList = new WX_LISTBOX( libPanel, ID_MODVIEW_LIB_LIST, wxDefaultPosition, wxDefaultSize,
156 0, nullptr, wxLB_HSCROLL | wxNO_BORDER );
157 libSizer->Add( m_libList, 1, wxEXPAND, 5 );
158
159 libPanel->SetSizer( libSizer );
160 libPanel->Fit();
161
162 wxPanel* fpPanel = new wxPanel( this );
163 wxSizer* fpSizer = new wxBoxSizer( wxVERTICAL );
164
165 m_fpFilter = new wxSearchCtrl( fpPanel, ID_MODVIEW_FOOTPRINT_FILTER, wxEmptyString,
166 wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
167 m_fpFilter->SetDescriptiveText( _( "Filter" ) );
168 m_fpFilter->SetToolTip(
169 _( "Filter on footprint name, keywords, description and pad count.\n"
170 "Search terms are separated by spaces. All search terms must match.\n"
171 "A term which is a number will also match against the pad count." ) );
172 fpSizer->Add( m_fpFilter, 0, wxEXPAND, 5 );
173
174#ifdef __WXGTK__
175 // wxSearchCtrl vertical height is not calculated correctly on some GTK setups
176 // See https://gitlab.com/kicad/code/kicad/-/issues/9019
177 m_libFilter->SetMinSize( wxSize( -1, GetTextExtent( wxT( "qb" ) ).y + 10 ) );
178 m_fpFilter->SetMinSize( wxSize( -1, GetTextExtent( wxT( "qb" ) ).y + 10 ) );
179#endif
180
181 m_fpList = new WX_LISTBOX( fpPanel, ID_MODVIEW_FOOTPRINT_LIST, wxDefaultPosition, wxDefaultSize,
182 0, nullptr, wxLB_HSCROLL | wxNO_BORDER );
183
184 m_fpList->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( FOOTPRINT_VIEWER_FRAME::DClickOnFootprintList ), nullptr, this );
185 fpSizer->Add( m_fpList, 1, wxEXPAND, 5 );
186
187 fpPanel->SetSizer( fpSizer );
188 fpPanel->Fit();
189
190 // Create GAL canvas
192
193 PCB_DRAW_PANEL_GAL* drawPanel = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ), m_frameSize,
195 SetCanvas( drawPanel );
196
197 SetBoard( new BOARD() );
198
199 // This board will only be used to hold a footprint for viewing
201
202 // In viewer, the default net clearance is not known (it depends on the actual board).
203 // So we do not show the default clearance, by setting it to 0
204 // The footprint or pad specific clearance will be shown
205 GetBoard()->GetDesignSettings().m_NetSettings->m_DefaultNetClass->SetClearance( 0 );
206
207 // Don't show the default board solder mask clearance in the footprint viewer. Only the
208 // footprint or pad clearance setting should be shown if it is not 0.
210
211 // Ensure all layers and items are visible:
214
215 GetScreen()->m_Center = true; // Center coordinate origins on screen.
216 LoadSettings( config() );
218
219 // Create the manager and dispatcher & route draw panel events to the dispatcher
222 drawPanel->GetViewControls(), config(), this );
223 m_actions = new PCB_ACTIONS();
226
229 m_toolManager->RegisterTool( new COMMON_TOOLS ); // for std context menus (zoom & grid)
231 m_toolManager->RegisterTool( new PCB_PICKER_TOOL ); // for setting grid origin
234
235 m_toolManager->GetTool<PCB_VIEWER_TOOLS>()->SetFootprintFrame( true );
236
238 m_toolManager->InvokeTool( "pcbnew.InteractiveSelection" );
239
245
247 UpdateTitle();
248
249 // Call resolveCanvasType after loading settings:
251
252 // If a footprint was previously loaded, reload it
253 if( getCurNickname().size() && getCurFootprintName().size() )
254 {
255 LIB_ID id;
256
258 id.SetLibItemName( getCurFootprintName() );
259
260 FOOTPRINT* footprint = loadFootprint( id );
261
262 if( footprint )
263 GetBoard()->Add( footprint );
264 }
265
266 drawPanel->DisplayBoard( m_pcb );
267
268 m_auimgr.SetManagedWindow( this );
269
270 // Horizontal items; layers 4 - 6
271 m_auimgr.AddPane( m_mainToolBar, EDA_PANE().VToolbar().Name( "MainToolbar" ).Top().Layer(6) );
272 m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
273 m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
274
275 // Vertical items; layers 1 - 3
276 m_auimgr.AddPane( libPanel, EDA_PANE().Palette().Name( "Libraries" ).Left().Layer(2)
277 .CaptionVisible( false ).MinSize( 100, -1 ).BestSize( 200, -1 ) );
278 m_auimgr.AddPane( fpPanel, EDA_PANE().Palette().Name( "Footprints" ).Left().Layer(1)
279 .CaptionVisible( false ).MinSize( 100, -1 ).BestSize( 300, -1 ) );
280
281 m_auimgr.AddPane( GetCanvas(), EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
282
283 // after changing something to the aui manager call Update() to reflect the changes
284 m_auimgr.Update();
285
286 if( m_libListWidth > 0 )
287 {
288 wxAuiPaneInfo& treePane = m_auimgr.GetPane( "Libraries" );
289
290 // wxAUI hack: force width by setting MinSize() and then Fixed()
291 // thanks to ZenJu http://trac.wxwidgets.org/ticket/13180
292 treePane.MinSize( m_libListWidth, -1 );
293 treePane.Fixed();
294 m_auimgr.Update();
295
296 // now make it resizable again
297 treePane.Resizable();
298 m_auimgr.Update();
299
300 // Note: DO NOT call m_auimgr.Update() anywhere after this; it will nuke the size
301 // back to minimum.
302 treePane.MinSize( 100, -1 );
303 }
304
305 if( m_fpListWidth > 0 )
306 {
307 wxAuiPaneInfo& treePane = m_auimgr.GetPane( "Footprints" );
308
309 // wxAUI hack: force width by setting MinSize() and then Fixed()
310 // thanks to ZenJu http://trac.wxwidgets.org/ticket/13180
311 treePane.MinSize( m_fpListWidth, -1 );
312 treePane.Fixed();
313 m_auimgr.Update();
314
315 // now make it resizable again
316 treePane.Resizable();
317 m_auimgr.Update();
318
319 // Note: DO NOT call m_auimgr.Update() anywhere after this; it will nuke the size
320 // back to minimum.
321 treePane.MinSize( 100, -1 );
322 }
323
324 // The canvas should not steal the focus from the list boxes
325 GetCanvas()->SetCanFocus( false );
326 GetCanvas()->GetGAL()->SetAxesEnabled( true );
328
329 // Restore last zoom and auto zoom option. (If auto-zooming we'll adjust when we load the footprint.)
331 wxASSERT( cfg );
333
334 wxAuiToolBarItem* toolOpt = m_mainToolBar->FindTool( ID_FPVIEWER_AUTOZOOM_TOOL );
335
337 toolOpt->SetState( wxAUI_BUTTON_STATE_CHECKED );
338 else
339 toolOpt->SetState( 0 );
340
341 updateView();
342 setupUnits( config() );
343
344 if( !IsModal() ) // For modal mode, calling ShowModal() will show this frame
345 {
347 Raise(); // On some window managers, this is needed
348 Show( true );
349 }
350}
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_footprint_browser
bool m_Center
Center on screen.
Definition: base_screen.h:96
std::shared_ptr< NET_SETTINGS > m_NetSettings
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:265
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_MODE::INSERT, bool aSkipConnectivity=false) override
Removes an item from the container.
Definition: board.cpp:750
void SetBoardUse(BOARD_USE aUse)
Set what the board is going to be used for.
Definition: board.h:277
void SetVisibleAlls()
Change the bit-mask of visible element categories and layers.
Definition: board.cpp:614
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Definition: board.cpp:682
Handle actions that are shared between different applications.
Handles action that are shared between different applications.
Definition: common_tools.h:38
virtual APP_SETTINGS_BASE * config() const
Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
wxString m_configName
wxAuiManager m_auimgr
wxString m_aboutTitle
void ReCreateMenuBar()
Recreates the menu bar.
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
void setupUnits(APP_SETTINGS_BASE *aCfg)
ACTION_TOOLBAR * m_optionsToolBar
KIGFX::GAL_DISPLAY_OPTIONS & GetGalDisplayOptions()
Return a reference to the gal rendering options used by GAL for rendering.
void resolveCanvasType()
Determines the Canvas type to load (with prompt if required) and initializes m_canvasType.
EDA_MSG_PANEL * m_messagePanel
void SetCanvas(EDA_DRAW_PANEL_GAL *aPanel)
virtual void SetScreen(BASE_SCREEN *aScreen)
ACTION_TOOLBAR * m_mainToolBar
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting()
Returns the canvas type stored in the application settings.
KIGFX::VIEW_CONTROLS * GetViewControls() const
Return a pointer to the #VIEW_CONTROLS instance used in the panel.
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
void SetEventDispatcher(TOOL_DISPATCHER *aEventDispatcher)
Set a dispatcher that processes events and forwards them to tools.
Specialization of the wxAuiPaneInfo class for KiCad panels.
void ReCreateLibraryList()
Create or recreate the list of current loaded libraries.
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
MAGNETIC_SETTINGS m_magneticItems
void UpdateTitle()
Update the window title with current library information.
bool m_axesEnabled
Fullscreen crosshair or small cross.
void SetAxesEnabled(bool aAxesEnabled)
Enable drawing the axes.
virtual void SetScale(double aScale, VECTOR2D aAnchor={ 0, 0 })
Set the scaling factor, zooming around a given anchor point.
Definition: view.cpp:551
void SetModal(bool aIsModal)
Definition: kiway_player.h:160
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:159
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:49
int SetLibNickname(const UTF8 &aNickname)
Override the logical library name portion of the LIB_ID to aNickname.
Definition: lib_id.cpp:98
double m_FootprintViewerZoom
The last zoom level used (0 for auto)
bool m_FootprintViewerAutoZoomOnSelect
true to use automatic zoom on fp selection
Gather all the actions that are shared by tools.
Definition: pcb_actions.h:49
PCBNEW_SETTINGS * GetPcbNewSettings() const
PCB_BASE_FRAME(KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aFrameName)
FOOTPRINT * loadFootprint(const LIB_ID &aFootprintId)
Attempts to load aFootprintId from the footprint library table.
virtual void ActivateGalCanvas() override
Use to start up the GAL drawing canvas.
virtual void SetBoard(BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr)
Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD.
PCB_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
BOARD * GetBoard() const
const wxSize GetPageSizeIU() const override
Works off of GetPageSettings() to return the size of the paper page in the internal units of this par...
Handle actions that are shared between different frames in PcbNew.
Definition: pcb_control.h:47
void DisplayBoard(BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr)
Add all items from the current board to the VIEW, so they can be displayed by GAL.
Generic tool for picking an item.
The selection tool: currently supports:
Tool useful for viewing footprints.
TOOL_DISPATCHER * m_toolDispatcher
Definition: tools_holder.h:172
ACTIONS * m_actions
Definition: tools_holder.h:171
Master controller class:
Definition: tool_manager.h:55
bool InvokeTool(TOOL_ID aToolId)
Call a tool by sending a tool activation event to tool of given ID.
void RegisterTool(TOOL_BASE *aTool)
Add a tool to the manager set and sets it up.
void SetEnvironment(EDA_ITEM *aModel, KIGFX::VIEW *aView, KIGFX::VIEW_CONTROLS *aViewControls, APP_SETTINGS_BASE *aSettings, TOOLS_HOLDER *aFrame)
Set the work environment (model, view, view controls and the parent window).
void InitTools()
Initializes all registered tools.
#define _HKI(x)
#define _(s)
#define FOOTPRINT_VIEWER_FRAME_NAME_MODAL
#define FOOTPRINT_VIEWER_FRAME_NAME
#define PARENT_STYLE
#define MODAL_STYLE
#define NONMODAL_STYLE
@ FRAME_FOOTPRINT_VIEWER_MODAL
Definition: frame_type.h:43
@ FRAME_FOOTPRINT_VIEWER
Definition: frame_type.h:42
@ ID_MODVIEW_FOOTPRINT_LIST
Definition: pcbnew_id.h:103
@ ID_FPVIEWER_AUTOZOOM_TOOL
Definition: pcbnew_id.h:106
@ ID_MODVIEW_FOOTPRINT_FILTER
Definition: pcbnew_id.h:102
@ ID_MODVIEW_LIB_FILTER
Definition: pcbnew_id.h:100
@ ID_MODVIEW_LIB_LIST
Definition: pcbnew_id.h:101
MAGNETIC_OPTIONS tracks
MAGNETIC_OPTIONS pads

Member Function Documentation

◆ ActivateGalCanvas()

void PCB_BASE_FRAME::ActivateGalCanvas ( )
overridevirtualinherited

Use to start up the GAL drawing canvas.

Reimplemented from EDA_DRAW_FRAME.

Reimplemented in FOOTPRINT_EDIT_FRAME, PCB_BASE_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 1065 of file pcb_base_frame.cpp.

1066{
1068
1069 EDA_DRAW_PANEL_GAL* canvas = GetCanvas();
1070 KIGFX::VIEW* view = canvas->GetView();
1071
1072 if( m_toolManager )
1073 {
1074 m_toolManager->SetEnvironment( m_pcb, view, canvas->GetViewControls(), config(), this );
1075
1077 }
1078
1079 KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( view->GetPainter() );
1080 KIGFX::PCB_RENDER_SETTINGS* settings = painter->GetSettings();
1081 const PCB_DISPLAY_OPTIONS& displ_opts = GetDisplayOptions();
1082
1083 settings->LoadDisplayOptions( displ_opts );
1084 settings->LoadColors( GetColorSettings() );
1085
1086 view->RecacheAllItems();
1088 canvas->StartDrawing();
1089
1090#if defined( KICAD_USE_3DCONNEXION )
1091 try
1092 {
1093 if( m_spaceMouse == nullptr )
1094 {
1096 }
1097 }
1098 catch( const std::system_error& e )
1099 {
1100 wxLogTrace( wxT( "KI_TRACE_NAVLIB" ), e.what() );
1101 }
1102#endif
1103}
virtual void ActivateGalCanvas()
Use to start up the GAL drawing canvas.
virtual KIGFX::VIEW * GetView() const
Return a pointer to the #VIEW instance used in the panel.
void StartDrawing()
Begin drawing if it was stopped previously.
Contains methods for drawing PCB-specific items.
Definition: pcb_painter.h:158
virtual PCB_RENDER_SETTINGS * GetSettings() override
Return a pointer to current settings that are going to be used when drawing items.
Definition: pcb_painter.h:163
PCB specific render settings.
Definition: pcb_painter.h:72
void LoadColors(const COLOR_SETTINGS *aSettings) override
void LoadDisplayOptions(const PCB_DISPLAY_OPTIONS &aOptions)
Load settings related to display options (high-contrast mode, full or outline modes for vias/pads/tra...
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
Definition: view.h:69
void RecacheAllItems()
Rebuild GAL display lists.
Definition: view.cpp:1384
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
Definition: view.h:213
The class that implements the public interface to the SpaceMouse plug-in.
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Display options control the way tracks, vias, outlines and other things are shown (for instance solid...
NL_PCBNEW_PLUGIN * m_spaceMouse
virtual COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const override
Helper to retrieve the current color settings.
@ GAL_SWITCH
Rendering engine changes.
Definition: tool_base.h:81
void ResetTools(TOOL_BASE::RESET_REASON aReason)
Reset all tools (i.e.

References EDA_DRAW_FRAME::ActivateGalCanvas(), EDA_BASE_FRAME::config(), TOOL_BASE::GAL_SWITCH, PCB_BASE_FRAME::GetCanvas(), PCB_BASE_FRAME::GetColorSettings(), PCB_BASE_FRAME::GetDisplayOptions(), KIGFX::VIEW::GetPainter(), KIGFX::PCB_PAINTER::GetSettings(), EDA_DRAW_PANEL_GAL::GetView(), EDA_DRAW_PANEL_GAL::GetViewControls(), KIGFX::PCB_RENDER_SETTINGS::LoadColors(), KIGFX::PCB_RENDER_SETTINGS::LoadDisplayOptions(), PCB_BASE_FRAME::m_pcb, PCB_BASE_FRAME::m_spaceMouse, TOOLS_HOLDER::m_toolDispatcher, TOOLS_HOLDER::m_toolManager, KIGFX::VIEW::RecacheAllItems(), TOOL_MANAGER::ResetTools(), TOOL_MANAGER::SetEnvironment(), EDA_DRAW_PANEL_GAL::SetEventDispatcher(), and EDA_DRAW_PANEL_GAL::StartDrawing().

Referenced by PCB_BASE_EDIT_FRAME::ActivateGalCanvas(), and PCB_DRAW_PANEL_GAL::OnShow().

◆ AddFootprintToBoard()

void PCB_BASE_FRAME::AddFootprintToBoard ( FOOTPRINT aFootprint)
virtualinherited

Add the given footprint to the board.

Parameters
aDCis the current Device Context, to draw the new footprint (can be NULL ).

Reimplemented in FOOTPRINT_EDIT_FRAME.

Definition at line 231 of file pcb_base_frame.cpp.

232{
233 if( aFootprint )
234 {
235 GetBoard()->Add( aFootprint, ADD_MODE::APPEND );
236
237 aFootprint->SetFlags( IS_NEW );
238 aFootprint->SetPosition( wxPoint( 0, 0 ) ); // cursor in GAL may not be initialized yet
239
240 // Put it on FRONT layer (note that it might be stored flipped if the lib is an archive
241 // built from a board)
242 if( aFootprint->IsFlipped() )
243 aFootprint->Flip( aFootprint->GetPosition(), GetPcbNewSettings()->m_FlipLeftRight );
244
245 // Place it in orientation 0 even if it is not saved with orientation 0 in lib (note that
246 // it might be stored in another orientation if the lib is an archive built from a board)
247 aFootprint->SetOrientation( ANGLE_0 );
248
249 UpdateUserUnits( aFootprint );
250 }
251}
void SetFlags(EDA_ITEM_FLAGS aMask)
Definition: eda_item.h:139
void SetPosition(const VECTOR2I &aPos) override
Definition: footprint.cpp:1670
void SetOrientation(const EDA_ANGLE &aNewAngle)
Definition: footprint.cpp:1802
bool IsFlipped() const
Definition: footprint.h:324
void Flip(const VECTOR2I &aCentre, bool aFlipLeftRight) override
Flip this object, i.e.
Definition: footprint.cpp:1586
VECTOR2I GetPosition() const override
Definition: footprint.h:188
void UpdateUserUnits(BOARD_ITEM *aItem, bool *aSelectedItemsModified=nullptr)
Update any references within aItem (or its descendants) to the user units.
static constexpr EDA_ANGLE & ANGLE_0
Definition: eda_angle.h:412
#define IS_NEW
New item, just created.

References BOARD::Add(), ANGLE_0, APPEND, FOOTPRINT::Flip(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetPcbNewSettings(), FOOTPRINT::GetPosition(), IS_NEW, FOOTPRINT::IsFlipped(), EDA_ITEM::SetFlags(), FOOTPRINT::SetOrientation(), FOOTPRINT::SetPosition(), and PCB_BASE_FRAME::UpdateUserUnits().

Referenced by FOOTPRINT_EDIT_FRAME::AddFootprintToBoard().

◆ AddFootprintToPCB()

void FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB ( wxCommandEvent &  aEvent)
private

Export the current footprint name and close the library browser.

Definition at line 820 of file footprint_viewer_frame.cpp.

821{
822 if( IsModal() )
823 {
824 if( m_fpList->GetSelection() >= 0 )
825 {
827 DismissModal( true, fpid.Format() );
828 }
829 else
830 {
831 DismissModal( false );
832 }
833 }
834 else if( GetBoard()->GetFirstFootprint() )
835 {
836 PCB_EDIT_FRAME* pcbframe = (PCB_EDIT_FRAME*) Kiway().Player( FRAME_PCB_EDITOR, false );
837 PCBNEW_SETTINGS* cfg = pcbframe->GetPcbNewSettings();
838
839 if( pcbframe == nullptr ) // happens when the board editor is not active (or closed)
840 {
841 DisplayErrorMessage( this, _( "No board currently open." ) );
842 return;
843 }
844
845 TOOL_MANAGER* toolMgr = pcbframe->GetToolManager();
846
848 {
849 DisplayError( this, _( "Previous footprint placement still in progress." ) );
850 return;
851 }
852
853 wxWindow* blocking_dialog = pcbframe->Kiway().GetBlockingDialog();
854
855 if( blocking_dialog )
856 blocking_dialog->Close( true );
857
858 toolMgr->RunAction( PCB_ACTIONS::selectionClear, true );
859 BOARD_COMMIT commit( pcbframe );
860
861 // Create the "new" footprint
862 FOOTPRINT* newFootprint = (FOOTPRINT*) GetBoard()->GetFirstFootprint()->Duplicate();
863 newFootprint->SetParent( pcbframe->GetBoard() );
864 newFootprint->SetLink( niluuid );
865 newFootprint->SetFlags(IS_NEW ); // whatever
866
867 for( PAD* pad : newFootprint->Pads() )
868 {
869 // Set the pads ratsnest settings to the global settings
870 pad->SetLocalRatsnestVisible( cfg->m_Display.m_ShowGlobalRatsnest );
871
872 // Pads in the library all have orphaned nets. Replace with Default.
873 pad->SetNetCode( 0 );
874 }
875
876 // Put it on FRONT layer,
877 // (Can be stored flipped if the lib is an archive built from a board)
878 if( newFootprint->IsFlipped() )
879 newFootprint->Flip( newFootprint->GetPosition(), cfg->m_FlipLeftRight );
880
881 KIGFX::VIEW_CONTROLS* viewControls = pcbframe->GetCanvas()->GetViewControls();
882 VECTOR2D cursorPos = viewControls->GetCursorPosition();
883
884 commit.Add( newFootprint );
885 viewControls->SetCrossHairCursorPosition( VECTOR2D( 0, 0 ), false );
886 pcbframe->PlaceFootprint( newFootprint );
887
888 newFootprint->SetPosition( wxPoint( 0, 0 ) );
889 viewControls->SetCrossHairCursorPosition( cursorPos, false );
890 commit.Push( wxT( "Insert footprint" ) );
891
892 pcbframe->Raise();
893 toolMgr->RunAction( PCB_ACTIONS::placeFootprint, false, newFootprint );
894
895 newFootprint->ClearFlags();
896 }
897}
Handle actions specific to the board editor in PcbNew.
bool PlacingFootprint() const
Re-entrancy checker for above.
FOOTPRINT * GetFirstFootprint() const
Get the first footprint on the board or nullptr.
Definition: board.h:397
void ClearFlags(EDA_ITEM_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: eda_item.h:141
virtual void SetParent(EDA_ITEM *aParent)
Definition: eda_item.h:100
void SetLink(const KIID &aLink)
Definition: footprint.h:681
BOARD_ITEM * Duplicate() const override
Create a copy of this BOARD_ITEM.
Definition: footprint.cpp:1856
PADS & Pads()
Definition: footprint.h:170
An interface for classes handling user events controlling the view behavior such as zooming,...
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
VECTOR2D GetCursorPosition() const
Return the current cursor position in world coordinates.
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:53
void DismissModal(bool aRetVal, const wxString &aResult=wxEmptyString)
virtual KIWAY_PLAYER * Player(FRAME_T aFrameType, bool doCreate=true, wxTopLevelWindow *aParent=nullptr)
Return the KIWAY_PLAYER* given a FRAME_T.
Definition: kiway.cpp:394
wxWindow * GetBlockingDialog()
Gets the window pointer to the blocking dialog (to send it signals)
Definition: kiway.cpp:620
Definition: pad.h:59
DISPLAY_OPTIONS m_Display
static TOOL_ACTION selectionClear
Clear the current selection.
Definition: pcb_actions.h:59
static TOOL_ACTION placeFootprint
Definition: pcb_actions.h:190
void PlaceFootprint(FOOTPRINT *aFootprint, bool aRecreateRatsnest=true)
Places aFootprint at the current cursor position and updates footprint coordinates with the new posit...
The main frame for Pcbnew.
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:54
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:142
wxString GetStringSelection() const override
Definition: wx_listbox.cpp:32
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:300
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:325
@ FRAME_PCB_EDITOR
Definition: frame_type.h:40
KIID niluuid(0)
VECTOR2< double > VECTOR2D
Definition: vector2d.h:617

References _, COMMIT::Add(), EDA_ITEM::ClearFlags(), KIWAY_PLAYER::DismissModal(), DisplayError(), DisplayErrorMessage(), FOOTPRINT::Duplicate(), FOOTPRINT::Flip(), LIB_ID::Format(), FRAME_PCB_EDITOR, KIWAY::GetBlockingDialog(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), getCurNickname(), KIGFX::VIEW_CONTROLS::GetCursorPosition(), BOARD::GetFirstFootprint(), PCB_BASE_FRAME::GetPcbNewSettings(), FOOTPRINT::GetPosition(), WX_LISTBOX::GetStringSelection(), TOOL_MANAGER::GetTool(), TOOLS_HOLDER::GetToolManager(), EDA_DRAW_PANEL_GAL::GetViewControls(), IS_NEW, FOOTPRINT::IsFlipped(), KIWAY_PLAYER::IsModal(), KIWAY_HOLDER::Kiway(), PCBNEW_SETTINGS::m_Display, PCBNEW_SETTINGS::m_FlipLeftRight, m_fpList, PCBNEW_SETTINGS::DISPLAY_OPTIONS::m_ShowGlobalRatsnest, niluuid, pad, FOOTPRINT::Pads(), PCB_BASE_FRAME::PlaceFootprint(), PCB_ACTIONS::placeFootprint, BOARD_EDITOR_CONTROL::PlacingFootprint(), KIWAY::Player(), BOARD_COMMIT::Push(), TOOL_MANAGER::RunAction(), PCB_ACTIONS::selectionClear, KIGFX::VIEW_CONTROLS::SetCrossHairCursorPosition(), EDA_ITEM::SetFlags(), FOOTPRINT::SetLink(), EDA_ITEM::SetParent(), and FOOTPRINT::SetPosition().

Referenced by DClickOnFootprintList(), and OnCharHook().

◆ AddStandardHelpMenu()

void EDA_BASE_FRAME::AddStandardHelpMenu ( wxMenuBar *  aMenuBar)
inherited

Adds the standard KiCad help menu to the menubar.

Definition at line 462 of file eda_base_frame.cpp.

463{
465 ACTION_MENU* helpMenu = new ACTION_MENU( false, commonControl );
466
467 helpMenu->Add( ACTIONS::help );
468 helpMenu->Add( ACTIONS::gettingStarted );
469 helpMenu->Add( ACTIONS::listHotKeys );
470 helpMenu->Add( ACTIONS::getInvolved );
471 helpMenu->Add( ACTIONS::donate );
472 helpMenu->Add( ACTIONS::reportBug );
473
474 helpMenu->AppendSeparator();
475 helpMenu->Add( _( "&About KiCad" ), "", wxID_ABOUT, BITMAPS::about );
476
477 // Trailing space keeps OSX from hijacking our menu (and disabling everything in it).
478 aMenuBar->Append( helpMenu, _( "&Help" ) + wxS( " " ) );
479}
static TOOL_ACTION reportBug
Cursor control event types.
Definition: actions.h:187
static TOOL_ACTION donate
Definition: actions.h:185
static TOOL_ACTION listHotKeys
Definition: actions.h:184
static TOOL_ACTION getInvolved
Definition: actions.h:186
static TOOL_ACTION gettingStarted
Definition: actions.h:182
static TOOL_ACTION help
Definition: actions.h:183
Defines the structure of a menu based on ACTIONs.
Definition: action_menu.h:49

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::doReCreateMenuBar(), SCH_EDIT_FRAME::doReCreateMenuBar(), SYMBOL_EDIT_FRAME::doReCreateMenuBar(), SYMBOL_VIEWER_FRAME::doReCreateMenuBar(), GERBVIEW_FRAME::doReCreateMenuBar(), KICAD_MANAGER_FRAME::doReCreateMenuBar(), PL_EDITOR_FRAME::doReCreateMenuBar(), FOOTPRINT_EDIT_FRAME::doReCreateMenuBar(), doReCreateMenuBar(), and PCB_EDIT_FRAME::doReCreateMenuBar().

◆ AddStandardSubMenus()

void EDA_DRAW_FRAME::AddStandardSubMenus ( TOOL_MENU aMenu)
inherited

Construct a "basic" menu for a tool, containing only items that apply to all tools (e.g.

zoom and grid).

Definition at line 576 of file eda_draw_frame.cpp.

577{
579 CONDITIONAL_MENU& aMenu = aToolMenu.GetMenu();
580
581 aMenu.AddSeparator( 1000 );
582
583 std::shared_ptr<ZOOM_MENU> zoomMenu = std::make_shared<ZOOM_MENU>( this );
584 zoomMenu->SetTool( commonTools );
585 aToolMenu.RegisterSubMenu( zoomMenu );
586
587 std::shared_ptr<GRID_MENU> gridMenu = std::make_shared<GRID_MENU>( this );
588 gridMenu->SetTool( commonTools );
589 aToolMenu.RegisterSubMenu( gridMenu );
590
591 aMenu.AddMenu( zoomMenu.get(), SELECTION_CONDITIONS::ShowAlways, 1000 );
592 aMenu.AddMenu( gridMenu.get(), SELECTION_CONDITIONS::ShowAlways, 1000 );
593}
void AddSeparator(int aOrder=ANY_ORDER)
Add a separator to the menu.
static bool ShowAlways(const SELECTION &aSelection)
The default condition function (always returns true).
CONDITIONAL_MENU & GetMenu()
Definition: tool_menu.cpp:44

References CONDITIONAL_MENU::AddSeparator(), TOOL_MENU::GetMenu(), TOOL_MANAGER::GetTool(), TOOLS_HOLDER::m_toolManager, TOOL_MENU::RegisterSubMenu(), and SELECTION_CONDITIONS::ShowAlways().

Referenced by EE_SELECTION_TOOL::Init(), PICKER_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_SELECTION_TOOL::Init(), ROUTER_TOOL::Init(), PCB_SELECTION_TOOL::Init(), and PCB_VIEWER_TOOLS::Init().

◆ AngleValueFromString()

EDA_ANGLE UNITS_PROVIDER::AngleValueFromString ( const wxString &  aTextValue)
inlineinherited

Definition at line 116 of file units_provider.h.

117 {
119 aTextValue );
120
121 return EDA_ANGLE( angle, DEGREES_T );
122 }
const EDA_IU_SCALE & GetIuScale() const
@ DEGREES_T
Definition: eda_angle.h:31
double DoubleValueFromString(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Function DoubleValueFromString converts aTextValue to a double.
Definition: eda_units.cpp:456
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)

References PNS::angle(), DEGREES, DEGREES_T, EDA_UNIT_UTILS::UI::DoubleValueFromString(), and UNITS_PROVIDER::GetIuScale().

Referenced by FP_TEXT_GRID_TABLE::SetValue().

◆ AppendCopyToUndoList()

void FOOTPRINT_VIEWER_FRAME::AppendCopyToUndoList ( const PICKED_ITEMS_LIST aItemsList,
UNDO_REDO  aTypeCommand 
)
inlineoverrideprivatevirtual

As SaveCopyInUndoList, but appends the changes to the last undo item on the stack.

Implements PCB_BASE_FRAME.

Definition at line 169 of file footprint_viewer_frame.h.

169{}

◆ AppendMsgPanel()

void EDA_DRAW_FRAME::AppendMsgPanel ( const wxString &  aTextUpper,
const wxString &  aTextLower,
int  aPadding = 6 
)
inherited

Append a message to the message panel.

This helper method checks to make sure the message panel exists in the frame and appends a message to it using the message panel AppendMessage() method.

Parameters
aTextUpperThe message upper text.
aTextLowerThe message lower text.
aPaddingNumber of spaces to pad between messages.

Definition at line 736 of file eda_draw_frame.cpp.

738{
739 if( m_messagePanel )
740 m_messagePanel->AppendMessage( aTextUpper, aTextLower, aPadding );
741}
void AppendMessage(const wxString &aUpperText, const wxString &aLowerText, int aPadding=6)
Append a message to the message panel.
Definition: msgpanel.cpp:93

References EDA_MSG_PANEL::AppendMessage(), and EDA_DRAW_FRAME::m_messagePanel.

Referenced by GERBER_FILE_IMAGE::DisplayImageInfo(), SYMBOL_VIEWER_FRAME::updatePreviewSymbol(), and SYMBOL_EDIT_FRAME::UpdateSymbolMsgPanelInfo().

◆ canCloseWindow()

bool PCB_BASE_FRAME::canCloseWindow ( wxCloseEvent &  aCloseEvent)
overrideprotectedvirtualinherited

Reimplemented from EDA_BASE_FRAME.

Reimplemented in PCB_EDIT_FRAME, and FOOTPRINT_EDIT_FRAME.

Definition at line 99 of file pcb_base_frame.cpp.

100{
101 // Close modeless dialogs. They're trouble when they get destroyed after the frame and/or
102 // board.
103 wxWindow* viewer3D = Get3DViewerFrame();
104
105 if( viewer3D )
106 viewer3D->Close( true );
107
108 // Similarly, wxConvBrokenFileNames uses some statically allocated variables that make it
109 // crash when run later from a d'tor.
110 Prj().Cleanup3DCache();
111
112 return true;
113}
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
EDA_3D_VIEWER_FRAME * Get3DViewerFrame()

References PCB_BASE_FRAME::Get3DViewerFrame(), and KIWAY_HOLDER::Prj().

Referenced by PCB_EDIT_FRAME::canCloseWindow(), and FOOTPRINT_EDIT_FRAME::canCloseWindow().

◆ ChangeUserUnits()

void EDA_BASE_FRAME::ChangeUserUnits ( EDA_UNITS  aUnits)
inherited

Definition at line 1352 of file eda_base_frame.cpp.

1353{
1354 SetUserUnits( aUnits );
1356
1357 wxCommandEvent e( UNITS_CHANGED );
1358 e.SetClientData( this );
1359 ProcessEventLocally( e );
1360}
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 1231 of file eda_base_frame.cpp.

1232{
1233 if( !IsGUI() )
1234 return;
1235
1236 wxCHECK_RET( aFileName.IsOk(), wxT( "Invalid file name!" ) );
1237
1238 wxFileName autoSaveFileName = aFileName;
1239
1240 // Check for auto save file.
1241 autoSaveFileName.SetName( GetAutoSaveFilePrefix() + aFileName.GetName() );
1242
1243 wxLogTrace( traceAutoSave,
1244 wxT( "Checking for auto save file " ) + autoSaveFileName.GetFullPath() );
1245
1246 if( !autoSaveFileName.FileExists() )
1247 return;
1248
1249 wxString msg = wxString::Format( _( "Well this is potentially embarrassing!\n"
1250 "It appears that the last time you were editing\n"
1251 "%s\n"
1252 "KiCad exited before saving.\n"
1253 "\n"
1254 "Do you wish to open the auto-saved file instead?" ),
1255 aFileName.GetFullName() );
1256
1257 int response = wxMessageBox( msg, Pgm().App().GetAppDisplayName(), wxYES_NO | wxICON_QUESTION,
1258 this );
1259
1260 // Make a backup of the current file, delete the file, and rename the auto save file to
1261 // the file name.
1262 if( response == wxYES )
1263 {
1264 if( !wxRenameFile( autoSaveFileName.GetFullPath(), aFileName.GetFullPath() ) )
1265 {
1266 wxMessageBox( _( "The auto save file could not be renamed to the board file name." ),
1267 Pgm().App().GetAppDisplayName(), wxOK | wxICON_EXCLAMATION, this );
1268 }
1269 }
1270 else
1271 {
1272 wxLogTrace( traceAutoSave,
1273 wxT( "Removing auto save file " ) + autoSaveFileName.GetFullPath() );
1274
1275 // Remove the auto save file when using the previous file as is.
1276 wxRemoveFile( autoSaveFileName.GetFullPath() );
1277 }
1278}
static wxString GetAutoSaveFilePrefix()
bool IsGUI()
Determine if the application is running with a GUI.
Definition: confirm.cpp:40
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(), IsGUI(), 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 969 of file eda_base_frame.cpp.

970{
971 if( !aFileHistory )
972 aFileHistory = m_fileHistory;
973
974 wxASSERT( aFileHistory );
975
976 aFileHistory->ClearFileHistory();
977
978 // Update the menubar to update the file history menu
979 if( GetMenuBar() )
980 {
982 GetMenuBar()->Refresh();
983 }
984}
FILE_HISTORY * m_fileHistory
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().

◆ ClearMsgPanel()

◆ 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 539 of file eda_base_frame.h.

540 { }

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

◆ ClearUndoRedoList()

◆ ClickOnFootprintList()

void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList ( wxCommandEvent &  aEvent)
private

Definition at line 739 of file footprint_viewer_frame.cpp.

740{
741 if( m_fpList->GetCount() == 0 )
742 return;
743
744 int ii = m_fpList->GetSelection();
745
746 if( ii < 0 )
747 return;
748
749 wxString name = m_fpList->GetBaseString( ii );
750
751 if( getCurFootprintName().CmpNoCase( name ) != 0 )
752 {
754
755 // Delete the current footprint (MUST reset tools first)
757
760
761 LIB_ID id;
763 id.SetLibItemName( getCurFootprintName() );
764
765 FOOTPRINT* footprint = nullptr;
766
767 try
768 {
769 footprint = loadFootprint( id );
770 }
771 catch( const IO_ERROR& ioe )
772 {
773 wxString msg = wxString::Format( _( "Could not load footprint '%s' from library '%s'."
774 "\n\n%s" ),
777 ioe.Problem() );
778 DisplayError( this, msg );
779 }
780
781 if( footprint )
782 displayFootprint( footprint );
783
784 UpdateTitle();
785
786 updateView();
787
788 GetCanvas()->Refresh();
789 Update3DView( true, true );
790 }
791}
const char * name
Definition: DXF_plotter.cpp:56
const NETINFO_LIST & GetNetInfo() const
Definition: board.h:765
void DeleteAllFootprints()
Remove all footprints from the deque and free the memory associated with them.
Definition: board.cpp:988
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
void displayFootprint(FOOTPRINT *aFootprint)
void Update3DView(bool aMarkDirty, bool aRefresh, const wxString *aTitle=nullptr) override
Update the 3D view, if the viewer is opened by this frame.
void setCurFootprintName(const wxString &aName)
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:76
virtual const wxString Problem() const
what was the problem?
Definition: exceptions.cpp:46
void RemoveUnusedNets()
@ MODEL_RELOAD
Model changes (required full reload)
Definition: tool_base.h:80
wxString GetBaseString(int n) const
Definition: wx_listbox.cpp:61

References _, BOARD::DeleteAllFootprints(), DisplayError(), displayFootprint(), Format(), WX_LISTBOX::GetBaseString(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), getCurFootprintName(), getCurNickname(), BOARD::GetNetInfo(), TOOLS_HOLDER::GetToolManager(), PCB_BASE_FRAME::loadFootprint(), m_fpList, TOOL_BASE::MODEL_RELOAD, name, IO_ERROR::Problem(), EDA_DRAW_PANEL_GAL::Refresh(), NETINFO_LIST::RemoveUnusedNets(), TOOL_MANAGER::ResetTools(), setCurFootprintName(), LIB_ID::SetLibNickname(), Update3DView(), UpdateTitle(), and updateView().

Referenced by ReCreateFootprintList(), selectNext(), and selectPrev().

◆ ClickOnLibList()

void FOOTPRINT_VIEWER_FRAME::ClickOnLibList ( wxCommandEvent &  aEvent)
private

Definition at line 720 of file footprint_viewer_frame.cpp.

721{
722 int ii = m_libList->GetSelection();
723
724 if( ii < 0 )
725 return;
726
727 wxString name = m_libList->GetBaseString( ii );
728
729 if( getCurNickname() == name )
730 return;
731
733
735 UpdateTitle();
736}
void setCurNickname(const wxString &aNickname)

References WX_LISTBOX::GetBaseString(), getCurNickname(), m_libList, name, ReCreateFootprintList(), setCurNickname(), and UpdateTitle().

Referenced by ReCreateLibraryList(), selectNext(), and selectPrev().

◆ CloseFootprintViewer()

void FOOTPRINT_VIEWER_FRAME::CloseFootprintViewer ( wxCommandEvent &  event)
private

Definition at line 1277 of file footprint_viewer_frame.cpp.

1278{
1279 Close( false );
1280}

◆ 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_autoSavePending = false;
127 m_isClosing = false;
128 m_isNonUserClose = false;
129 m_autoSaveTimer = new wxTimer( this, ID_AUTO_SAVE_TIMER );
130 m_autoSaveRequired = false;
132 m_frameSize = defaultSize( aFrameType );
133 m_displayIndex = -1;
134
135 m_auimgr.SetArtProvider( new WX_AUI_DOCK_ART() );
136
137 m_settingsManager = &Pgm().GetSettingsManager();
138
139 // Set a reasonable minimal size for the frame
140 SetSizeHints( minSize( aFrameType ).x, minSize( aFrameType ).y, -1, -1, -1, -1 );
141
142 // Store dimensions of the user area of the main window.
143 GetClientSize( &m_frameSize.x, &m_frameSize.y );
144
145 Connect( ID_AUTO_SAVE_TIMER, wxEVT_TIMER,
146 wxTimerEventHandler( EDA_BASE_FRAME::onAutoSaveTimer ) );
147
148 // hook wxEVT_CLOSE_WINDOW so we can call SaveSettings(). This function seems
149 // to be called before any other hook for wxCloseEvent, which is necessary.
150 Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_BASE_FRAME::windowClosing ) );
151
152 initExitKey();
153}
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
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 FOOTPRINT_VIEWER_FRAME::CommonSettingsChanged ( bool  aEnvVarsChanged,
bool  aTextVarsChanged 
)
overrideprivatevirtual

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

Update menus, toolbars, local variables, etc.

Reimplemented from PCB_BASE_FRAME.

Definition at line 976 of file footprint_viewer_frame.cpp.

977{
978 PCB_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged );
979
981
982 if( aEnvVarsChanged )
984}
void ForceRefresh()
Force a redraw.
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.

References PCB_BASE_FRAME::CommonSettingsChanged(), EDA_DRAW_PANEL_GAL::ForceRefresh(), PCB_BASE_FRAME::GetCanvas(), and ReCreateLibraryList().

◆ Compile_Ratsnest()

void PCB_BASE_FRAME::Compile_Ratsnest ( bool  aDisplayStatus)
inherited

Create the entire board ratsnest.

Function Compile_Ratsnest Create the entire board ratsnest.

This must be called after a board change (changes for pads, footprints or a read netlist ).

Parameters
aDisplayStatusif true, display the computation results.

Must be called after a board change (changes for pads, footprints or a read netlist ).

Parameters
aDisplayStatus: if true, display the computation results

Definition at line 35 of file ratsnest.cpp.

36{
37 GetBoard()->GetConnectivity()->RecalculateRatsnest();
39
40 if( aDisplayStatus )
42}
void UpdateRatsnestExclusions()
Update the visibility flags on the current unconnected ratsnest lines.
Definition: board.cpp:266
std::shared_ptr< CONNECTIVITY_DATA > GetConnectivity() const
Return a list of missing connections between components/tracks.
Definition: board.h:424
void SetMsgPanel(const std::vector< MSG_PANEL_ITEM > &aList)
Clear the message panel and populates it with the contents of aList.

References PCB_BASE_FRAME::GetBoard(), BOARD::GetConnectivity(), PCB_BASE_FRAME::m_pcb, EDA_DRAW_FRAME::SetMsgPanel(), and BOARD::UpdateRatsnestExclusions().

Referenced by DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), PCB_EDIT_FRAME::ExportToGenCAD(), PCB_EDIT_FRAME::OnNetlistChanged(), DIALOG_EXCHANGE_FOOTPRINTS::OnOKClicked(), PCB_BASE_FRAME::PlaceFootprint(), and PCB_BASE_EDIT_FRAME::PutDataInPreviousState().

◆ 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 809 of file eda_base_frame.cpp.

810{
811 // KICAD_MANAGER_FRAME overrides this
812 return Kiface().KifaceSettings();
813}
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(), 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_BASE_FRAME::SaveSettings(), 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::~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 350 of file eda_base_frame.h.

351 {
352 wxString baseCfgName = m_configName.IsEmpty() ? GetName() : m_configName;
353 return baseCfgName;
354 }

References EDA_BASE_FRAME::m_configName.

◆ CreateAndShow3D_Frame()

EDA_3D_VIEWER_FRAME * PCB_BASE_FRAME::CreateAndShow3D_Frame ( )
inherited

Shows the 3D view frame.

If it does not exist, it is created. If it exists, it is brought to the foreground.

Definition at line 721 of file pcb_base_frame.cpp.

722{
723 EDA_3D_VIEWER_FRAME* draw3DFrame = Get3DViewerFrame();
724
725 if( !draw3DFrame )
726 draw3DFrame = new EDA_3D_VIEWER_FRAME( &Kiway(), this, _( "3D Viewer" ) );
727
728 // Raising the window does not show the window on Windows if iconized. This should work
729 // on any platform.
730 if( draw3DFrame->IsIconized() )
731 draw3DFrame->Iconize( false );
732
733 draw3DFrame->Raise();
734 draw3DFrame->Show( true );
735
736 // Raising the window does not set the focus on Linux. This should work on any platform.
737 if( wxWindow::FindFocus() != draw3DFrame )
738 draw3DFrame->SetFocus();
739
740 // Allocate a slice of time to display the 3D frame
741 // a call to wxSafeYield() should be enough (and better), but on Linux we need
742 // to call wxYield()
743 // otherwise the activity messages are not displayed during the first board loading
744 wxYield();
745
746 // Note, the caller is responsible to load/update the board 3D view.
747 // after frame creation the board is not automatically created.
748
749 return draw3DFrame;
750}
Create and handle a window for the 3d viewer connected to a Kiway and a pcbboard.

References _, PCB_BASE_FRAME::Get3DViewerFrame(), and KIWAY_HOLDER::Kiway().

Referenced by PCB_VIEWER_TOOLS::Show3DViewer().

◆ CreateInfoBar()

void EDA_BASE_FRAME::CreateInfoBar ( )
inherited

Definition at line 834 of file eda_base_frame.cpp.

835{
836#if defined( __WXOSX_MAC__ )
838#else
839 m_infoBar = new WX_INFOBAR( this, &m_auimgr );
840
841 m_auimgr.AddPane( m_infoBar, EDA_PANE().InfoBar().Name( wxS( "InfoBar" ) ).Top().Layer(1) );
842#endif
843}
virtual wxWindow * GetToolCanvas() const =0
Canvas access.
A modified version of the wxInfoBar class that allows us to:
Definition: wx_infobar.h:75

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

Referenced by SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME().

◆ CreateNewFootprint()

FOOTPRINT * PCB_BASE_FRAME::CreateNewFootprint ( const wxString &  aFootprintName,
bool  aQuiet = false 
)
inherited

Creates a new footprint, at position 0,0.

The new footprint contains only 2 texts: a reference and a value: Reference = REF** Value = "VAL**" or Footprint name in lib

Note
They are dummy texts, which will be replaced by the actual texts when the footprint is placed on a board and a netlist is read.
Parameters
aFootprintNameis the name of the new footprint in library.
aQuietprevents user dialogs from being shown

Definition at line 1247 of file footprint_libraries_utils.cpp.

1248{
1249 wxString footprintName = aFootprintName;
1250
1251 // Static to store user preference for a session
1252 static int footprintType = 1;
1253 int footprintTranslated = FP_SMD;
1254
1255 // Ask for the new footprint name
1256 if( footprintName.IsEmpty() && !aQuiet )
1257 {
1258 WX_TEXT_ENTRY_DIALOG dlg( this, _( "Enter footprint name:" ), _( "New Footprint" ),
1259 footprintName, _( "Footprint type:" ),
1260 { _( "Through hole" ), _( "SMD" ), _( "Other" ) },
1261 footprintType );
1262 dlg.SetTextValidator( FOOTPRINT_NAME_VALIDATOR( &footprintName ) );
1263
1264 if( dlg.ShowModal() != wxID_OK )
1265 return nullptr; //Aborted by user
1266
1267 footprintType = dlg.GetChoice();
1268
1269 switch( footprintType )
1270 {
1271 case 0: footprintTranslated = FP_THROUGH_HOLE; break;
1272 case 1: footprintTranslated = FP_SMD; break;
1273 default: footprintTranslated = 0; break;
1274 }
1275 }
1276
1277 footprintName.Trim( true );
1278 footprintName.Trim( false );
1279
1280 if( footprintName.IsEmpty() )
1281 {
1282 if( !aQuiet )
1283 DisplayInfoMessage( this, _( "No footprint name defined." ) );
1284
1285 return nullptr;
1286 }
1287
1288 // Creates the new footprint and add it to the head of the linked list of footprints
1289 FOOTPRINT* footprint = new FOOTPRINT( GetBoard() );
1290
1291 // Update its name in lib
1292 footprint->SetFPID( LIB_ID( wxEmptyString, footprintName ) );
1293
1294 footprint->SetAttributes( footprintTranslated );
1295
1296 PCB_LAYER_ID txt_layer;
1297 wxPoint default_pos;
1299
1300 footprint->Reference().SetText( settings.m_DefaultFPTextItems[0].m_Text );
1301 footprint->Reference().SetVisible( settings.m_DefaultFPTextItems[0].m_Visible );
1302 txt_layer = (PCB_LAYER_ID) settings.m_DefaultFPTextItems[0].m_Layer;
1303 footprint->Reference().SetLayer( txt_layer );
1304 default_pos.y -= settings.GetTextSize( txt_layer ).y / 2;
1305 footprint->Reference().SetPosition( default_pos );
1306 default_pos.y += settings.GetTextSize( txt_layer ).y;
1307
1308 footprint->Value().SetText( settings.m_DefaultFPTextItems[1].m_Text );
1309 footprint->Value().SetVisible( settings.m_DefaultFPTextItems[1].m_Visible );
1310 txt_layer = (PCB_LAYER_ID) settings.m_DefaultFPTextItems[1].m_Layer;
1311 footprint->Value().SetLayer( txt_layer );
1312 default_pos.y += settings.GetTextSize( txt_layer ).y / 2;
1313 footprint->Value().SetPosition( default_pos );
1314 default_pos.y += settings.GetTextSize( txt_layer ).y;
1315
1316 for( size_t i = 2; i < settings.m_DefaultFPTextItems.size(); ++i )
1317 {
1318 FP_TEXT* textItem = new FP_TEXT( footprint );
1319 textItem->SetText( settings.m_DefaultFPTextItems[i].m_Text );
1320 textItem->SetVisible( settings.m_DefaultFPTextItems[i].m_Visible );
1321 txt_layer = (PCB_LAYER_ID) settings.m_DefaultFPTextItems[i].m_Layer;
1322 textItem->SetLayer( txt_layer );
1323 default_pos.y += settings.GetTextSize( txt_layer ).y / 2;
1324 textItem->SetPosition( default_pos );
1325 default_pos.y += settings.GetTextSize( txt_layer ).y;
1326 footprint->GraphicalItems().push_back( textItem );
1327 }
1328
1329 if( footprint->GetReference().IsEmpty() )
1330 footprint->SetReference( footprintName );
1331
1332 if( footprint->GetValue().IsEmpty() )
1333 footprint->SetValue( footprintName );
1334
1335 footprint->RunOnChildren(
1336 [&] ( BOARD_ITEM* aChild )
1337 {
1338 if( aChild->Type() == PCB_FP_TEXT_T )
1339 {
1340 FP_TEXT* textItem = static_cast<FP_TEXT*>( aChild );
1341 PCB_LAYER_ID layer = textItem->GetLayer();
1342
1343 textItem->SetTextThickness( settings.GetTextThickness( layer ) );
1344 textItem->SetTextSize( settings.GetTextSize( layer ) );
1345 textItem->SetItalic( settings.GetTextItalic( layer ) );
1346 textItem->SetKeepUpright( settings.GetTextUpright( layer ) );
1347 }
1348 } );
1349
1350 SetMsgPanel( footprint );
1351 return footprint;
1352}
Container for design settings for a BOARD object.
wxSize GetTextSize(PCB_LAYER_ID aLayer) const
Return the default text size from the layer class for the given layer.
std::vector< TEXT_ITEM_INFO > m_DefaultFPTextItems
bool GetTextUpright(PCB_LAYER_ID aLayer) const
int GetTextThickness(PCB_LAYER_ID aLayer) const
Return the default text thickness from the layer class for the given layer.
bool GetTextItalic(PCB_LAYER_ID aLayer) const
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:58
virtual PCB_LAYER_ID GetLayer() const
Return the primary layer this item is on.
Definition: board_item.h:180
virtual void SetLayer(PCB_LAYER_ID aLayer)
Set the layer this item is on.
Definition: board_item.h:214
KICAD_T Type() const
Returns the type of object.
Definition: eda_item.h:97
virtual void SetVisible(bool aVisible)
Definition: eda_text.cpp:217
void SetTextThickness(int aWidth)
The TextThickness is that set by the user.
Definition: eda_text.cpp:185
void SetKeepUpright(bool aKeepUpright)
Definition: eda_text.cpp:256
void SetTextSize(const VECTOR2I &aNewSize)
Definition: eda_text.cpp:347
virtual void SetText(const wxString &aText)
Definition: eda_text.cpp:163
void SetItalic(bool aItalic)
Definition: eda_text.cpp:201
This class provides a custom wxValidator object for limiting the allowable characters when defining f...
Definition: validators.h:64
void SetFPID(const LIB_ID &aFPID)
Definition: footprint.h:213
void SetAttributes(int aAttributes)
Definition: footprint.h:251
void SetReference(const wxString &aReference)
Definition: footprint.h:528
void SetValue(const wxString &aValue)
Definition: footprint.h:555
FP_TEXT & Value()
read/write accessors:
Definition: footprint.h:567
void RunOnChildren(const std::function< void(BOARD_ITEM *)> &aFunction) const
Invoke a function on all BOARD_ITEMs that belong to the footprint (pads, drawings,...
Definition: footprint.cpp:1379
const wxString & GetValue() const
Definition: footprint.h:547
const wxString & GetReference() const
Definition: footprint.h:519
DRAWINGS & GraphicalItems()
Definition: footprint.h:173
FP_TEXT & Reference()
Definition: footprint.h:568
virtual void SetPosition(const VECTOR2I &aPos) override
Definition: fp_text.h:92
virtual BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Returns the BOARD_DESIGN_SETTINGS for the open project.
A KICAD version of wxTextEntryDialog which supports the various improvements/work-arounds from DIALOG...
void SetTextValidator(wxTextValidatorStyle style)
void DisplayInfoMessage(wxWindow *aParent, const wxString &aMessage, const wxString &aExtraInfo)
Display an informational message box with aMessage.
Definition: confirm.cpp:352
@ FP_SMD
Definition: footprint.h:69
@ FP_THROUGH_HOLE
Definition: footprint.h:68
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:59
@ PCB_FP_TEXT_T
class FP_TEXT, text in a footprint
Definition: typeinfo.h:92

References _, DisplayInfoMessage(), FP_SMD, FP_THROUGH_HOLE, PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetDesignSettings(), BOARD_ITEM::GetLayer(), FOOTPRINT::GetReference(), BOARD_DESIGN_SETTINGS::GetTextItalic(), BOARD_DESIGN_SETTINGS::GetTextSize(), BOARD_DESIGN_SETTINGS::GetTextThickness(), BOARD_DESIGN_SETTINGS::GetTextUpright(), FOOTPRINT::GetValue(), FOOTPRINT::GraphicalItems(), BOARD_DESIGN_SETTINGS::m_DefaultFPTextItems, PCB_FP_TEXT_T, FOOTPRINT::Reference(), FOOTPRINT::RunOnChildren(), FOOTPRINT::SetAttributes(), FOOTPRINT::SetFPID(), EDA_TEXT::SetItalic(), EDA_TEXT::SetKeepUpright(), BOARD_ITEM::SetLayer(), EDA_DRAW_FRAME::SetMsgPanel(), FP_TEXT::SetPosition(), FOOTPRINT::SetReference(), EDA_TEXT::SetText(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetTextThickness(), WX_TEXT_ENTRY_DIALOG::SetTextValidator(), FOOTPRINT::SetValue(), EDA_TEXT::SetVisible(), EDA_ITEM::Type(), and FOOTPRINT::Value().

Referenced by MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), and FOOTPRINT_EDITOR_CONTROL::NewFootprint().

◆ 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:204
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 SaveFileAs().

◆ 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().

◆ DClickOnFootprintList()

void FOOTPRINT_VIEWER_FRAME::DClickOnFootprintList ( wxMouseEvent &  aEvent)
private

Definition at line 813 of file footprint_viewer_frame.cpp.

814{
815 wxCommandEvent evt;
816 AddFootprintToPCB( evt );
817}
void AddFootprintToPCB(wxCommandEvent &aEvent)
Export the current footprint name and close the library browser.

References AddFootprintToPCB().

Referenced by ~FOOTPRINT_VIEWER_FRAME().

◆ 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:201
WX_EVENT_LOOP * m_modal_loop
< Points to nested event_loop. NULL means not modal and dismissed.
Definition: kiway_player.h:199
bool m_modal_ret_val
Definition: kiway_player.h:202

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

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

◆ DisplayConstraintsMsg()

void EDA_DRAW_FRAME::DisplayConstraintsMsg ( const wxString &  msg)
inherited

Definition at line 602 of file eda_draw_frame.cpp.

603{
604 SetStatusText( msg, 7 );
605}

Referenced by EDIT_TOOL::doMoveSelection(), and DRAWING_TOOL::UpdateStatusBar().

◆ displayFootprint()

void FOOTPRINT_VIEWER_FRAME::displayFootprint ( FOOTPRINT aFootprint)
private

Definition at line 794 of file footprint_viewer_frame.cpp.

795{
796 for( PAD* pad : aFootprint->Pads() )
797 {
798 const COMPONENT_NET& net = m_comp.GetNet( pad->GetNumber() );
799
800 if( !net.GetPinFunction().IsEmpty() )
801 {
802 NETINFO_ITEM* netinfo = new NETINFO_ITEM( GetBoard() );
803 netinfo->SetNetname( net.GetPinFunction() );
804 GetBoard()->Add( netinfo );
805 pad->SetNet( netinfo );
806 }
807 }
808
809 GetBoard()->Add( aFootprint );
810}
Used to store the component pin name to net name (and pin function) associations stored in a netlist.
Definition: pcb_netlist.h:44
const wxString & GetPinFunction() const
Definition: pcb_netlist.h:59
const COMPONENT_NET & GetNet(unsigned aIndex) const
Definition: pcb_netlist.h:111
Handle the data for a net.
Definition: netinfo.h:66
void SetNetname(const wxString &aNewName)
Set the long netname to aNetName, and the short netname to the last token in the long netname's path.
Definition: netinfo.h:139

References BOARD::Add(), PCB_BASE_FRAME::GetBoard(), COMPONENT::GetNet(), COMPONENT_NET::GetPinFunction(), m_comp, pad, FOOTPRINT::Pads(), and NETINFO_ITEM::SetNetname().

Referenced by ClickOnFootprintList(), and SelectAndViewFootprint().

◆ DisplayGridMsg()

void PCB_BASE_FRAME::DisplayGridMsg ( )
overridevirtualinherited

Display the current grid pane on the status bar.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 820 of file pcb_base_frame.cpp.

821{
822 VECTOR2D gridSize = GetCanvas()->GetGAL()->GetGridSize();
823 wxString line;
824
825 line.Printf( wxT( "grid X %s Y %s" ),
826 MessageTextFromValue( gridSize.x, false ),
827 MessageTextFromValue( gridSize.y, false ) );
828
829 SetStatusText( line, 4 );
830}
const VECTOR2D & GetGridSize() const
Return the grid size.
wxString MessageTextFromValue(double aValue, bool aAddUnitLabel=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
A lower-precision version of StringFromValue().

References PCB_BASE_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetGAL(), KIGFX::GAL::GetGridSize(), UNITS_PROVIDER::MessageTextFromValue(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by PCB_BASE_FRAME::UpdateStatusBar().

◆ DisplayToolMsg()

void EDA_DRAW_FRAME::DisplayToolMsg ( const wxString &  msg)
overridevirtualinherited

Reimplemented from TOOLS_HOLDER.

Definition at line 596 of file eda_draw_frame.cpp.

597{
598 SetStatusText( msg, 6 );
599}

Referenced by EDIT_TOOL::Duplicate(), and PCB_CONTROL::Paste().

◆ DisplayUnitsMsg()

void EDA_DRAW_FRAME::DisplayUnitsMsg ( )
inherited

Display current unit pane in the status bar.

Definition at line 618 of file eda_draw_frame.cpp.

619{
620 wxString msg;
621
622 switch( GetUserUnits() )
623 {
624 case EDA_UNITS::INCHES: msg = _( "inches" ); break;
625 case EDA_UNITS::MILS: msg = _( "mils" ); break;
626 case EDA_UNITS::MILLIMETRES: msg = _( "mm" ); break;
627 default: msg = _( "Units" ); break;
628 }
629
630 SetStatusText( msg, 5 );
631}
EDA_UNITS GetUserUnits() const

References _, UNITS_PROVIDER::GetUserUnits(), INCHES, MILLIMETRES, and MILS.

Referenced by EDA_DRAW_FRAME::UpdateGridSelectBox(), SCH_BASE_FRAME::UpdateStatusBar(), and EDA_DRAW_FRAME::UpdateStatusBar().

◆ 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 318 of file eda_base_frame.cpp.

319{
320 wxCHECK_MSG( false, true, wxT( "Auto save timer function not overridden. Bad programmer!" ) );
321}

Referenced by EDA_BASE_FRAME::onAutoSaveTimer().

◆ doCloseWindow()

void FOOTPRINT_VIEWER_FRAME::doCloseWindow ( )
overrideprivatevirtual

Reimplemented from EDA_BASE_FRAME.

Definition at line 425 of file footprint_viewer_frame.cpp.

426{
427 // A workaround to avoid flicker, in modal mode when modview frame is destroyed,
428 // when the aui toolbar is not docked (i.e. shown in a miniframe)
429 // (useful on windows only)
430 m_mainToolBar->SetFocus();
431
433
434 if( IsModal() )
435 {
436 // Only dismiss a modal frame once, so that the return values set by
437 // the prior DismissModal() are not bashed for ShowModal().
438 if( !IsDismissed() )
439 DismissModal( false );
440
441 // window to be destroyed by the caller of KIWAY_PLAYER::ShowModal()
442 }
443 else
444 {
445 Destroy();
446 }
447}
bool IsDismissed()
bool Destroy() override
Our version of Destroy() which is virtual from wxWidgets.

References KIWAY_PLAYER::Destroy(), KIWAY_PLAYER::DismissModal(), PCB_BASE_FRAME::GetCanvas(), KIWAY_PLAYER::IsDismissed(), KIWAY_PLAYER::IsModal(), EDA_DRAW_FRAME::m_mainToolBar, and EDA_DRAW_PANEL_GAL::StopDrawing().

◆ doReCreateMenuBar()

void FOOTPRINT_VIEWER_FRAME::doReCreateMenuBar ( )
overrideprotectedvirtual

Reimplemented from PCB_BASE_FRAME.

Definition at line 162 of file toolbars_footprint_viewer.cpp.

163{
165
166 // wxWidgets handles the Mac Application menu behind the scenes, but that means
167 // we always have to start from scratch with a new wxMenuBar.
168 wxMenuBar* oldMenuBar = GetMenuBar();
169 WX_MENUBAR* menuBar = new WX_MENUBAR();
170
171
172 //----- File menu -----------------------------------------------------------
173 //
174 ACTION_MENU* fileMenu = new ACTION_MENU( false, selTool );
175
176 fileMenu->AddClose( _( "Footprint Viewer" ) );
177
178 //----- View menu -----------------------------------------------------------
179 //
180 ACTION_MENU* viewMenu = new ACTION_MENU( false, selTool );
181
182 viewMenu->AppendSeparator();
183 viewMenu->Add( ACTIONS::zoomInCenter );
184 viewMenu->Add( ACTIONS::zoomOutCenter );
185 viewMenu->Add( ACTIONS::zoomFitScreen );
186 viewMenu->Add( ACTIONS::zoomRedraw );
187
188 viewMenu->AppendSeparator();
189 viewMenu->Add( ACTIONS::show3DViewer );
190
191 //----- Menubar -------------------------------------------------------------
192 //
193 menuBar->Append( fileMenu, _( "&File" ) );
194 menuBar->Append( viewMenu, _( "&View" ) );
195 AddStandardHelpMenu( menuBar );
196
197 SetMenuBar( menuBar );
198 delete oldMenuBar;
199}
static TOOL_ACTION zoomRedraw
Definition: actions.h:92
static TOOL_ACTION show3DViewer
Definition: actions.h:162
static TOOL_ACTION zoomOutCenter
Definition: actions.h:96
static TOOL_ACTION zoomFitScreen
Definition: actions.h:98
static TOOL_ACTION zoomInCenter
Definition: actions.h:95
void AddClose(const wxString &aAppname="")
Add a standard close item to the menu with the accelerator key CTRL-W.
wxMenuItem * Add(const wxString &aLabel, int aId, BITMAPS aIcon)
Add a wxWidgets-style entry to the menu.
void AddStandardHelpMenu(wxMenuBar *aMenuBar)
Adds the standard KiCad help menu to the menubar.
Wrapper around a wxMenuBar object that prevents the accelerator table from being used.
Definition: wx_menubar.h:46

References _, ACTION_MENU::Add(), ACTION_MENU::AddClose(), EDA_BASE_FRAME::AddStandardHelpMenu(), TOOL_MANAGER::GetTool(), TOOLS_HOLDER::m_toolManager, ACTIONS::show3DViewer, ACTIONS::zoomFitScreen, ACTIONS::zoomInCenter, ACTIONS::zoomOutCenter, and ACTIONS::zoomRedraw.

◆ 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 1178 of file eda_base_frame.cpp.

1179{
1180 for( const wxFileName& file : m_AcceptedFiles )
1181 {
1182 wxString fn = file.GetFullPath();
1183 m_toolManager->RunAction( *m_acceptedExts.at( file.GetExt() ), true, &fn );
1184 }
1185}
std::vector< wxFileName > m_AcceptedFiles
std::map< const wxString, TOOL_ACTION * > m_acceptedExts
Associates files extensions with action to execute.

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 659 of file eda_base_frame.cpp.

660{
661 wxDisplay display( wxDisplay::GetFromWindow( this ) );
662 wxRect clientSize = display.GetClientArea();
663 wxPoint pos = GetPosition();
664 wxSize size = GetWindowSize();
665
666 wxLogTrace( traceDisplayLocation,
667 wxS( "ensureWindowIsOnScreen: clientArea (%d, %d) w %d h %d" ), clientSize.x, clientSize.y,
668 clientSize.width, clientSize.height );
669
670 if( pos.y < clientSize.y )
671 {
672 wxLogTrace( traceDisplayLocation,
673 wxS( "ensureWindowIsOnScreen: y pos %d below minimum, setting to %d" ), pos.y,
674 clientSize.y );
675 pos.y = clientSize.y;
676 }
677
678 if( pos.x < clientSize.x )
679 {
680 wxLogTrace( traceDisplayLocation,
681 wxS( "ensureWindowIsOnScreen: x pos %d is off the client rect, setting to %d" ), pos.x,
682 clientSize.x );
683 pos.x = clientSize.x;
684 }
685
686 if( pos.x + size.x - clientSize.x > clientSize.width )
687 {
688 int newWidth = clientSize.width - ( pos.x - clientSize.x );
689 wxLogTrace( traceDisplayLocation,
690 wxS( "ensureWindowIsOnScreen: effective width %d above available %d, setting to %d" ),
691 pos.x + size.x, clientSize.width, newWidth );
692 size.x = newWidth;
693 }
694
695 if( pos.y + size.y - clientSize.y > clientSize.height )
696 {
697 int newHeight = clientSize.height - ( pos.y - clientSize.y );
698 wxLogTrace( traceDisplayLocation,
699 wxS( "ensureWindowIsOnScreen: effective height %d above available %d, setting to %d" ),
700 pos.y + size.y, clientSize.height, newHeight );
701 size.y = newHeight;
702 }
703
704 wxLogTrace( traceDisplayLocation, wxS( "Updating window position (%d, %d) with size (%d, %d)" ),
705 pos.x, pos.y, size.x, size.y );
706
707 SetSize( pos.x, pos.y, size.x, size.y );
708}
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().

◆ EraseMsgBox()

void EDA_DRAW_FRAME::EraseMsgBox ( )
inherited

◆ 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 182 of file kiway_player.h.

182{}

Referenced by KIWAY_PLAYER::OnSockRequest().

◆ findDialogs()

std::vector< wxWindow * > EDA_DRAW_FRAME::findDialogs ( )
protectedinherited

Definition at line 925 of file eda_draw_frame.cpp.

926{
927 std::vector<wxWindow*> dialogs;
928
929 for( wxWindow* window : GetChildren() )
930 {
931 if( dynamic_cast<DIALOG_SHIM*>( window ) )
932 dialogs.push_back( window );
933 }
934
935 return dialogs;
936}
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Definition: dialog_shim.h:83

Referenced by PCB_BASE_FRAME::FocusOnItems(), and EDA_DRAW_FRAME::FocusOnLocation().

◆ findQuasiModalDialog()

wxWindow * EDA_BASE_FRAME::findQuasiModalDialog ( )
privateinherited

Definition at line 169 of file eda_base_frame.cpp.

170{
171 for( wxWindow* iter : GetChildren() )
172 {
173 DIALOG_SHIM* dlg = dynamic_cast<DIALOG_SHIM*>( iter );
174
175 if( dlg && dlg->IsQuasiModal() )
176 return dlg;
177 }
178
179 // FIXME: CvPcb is currently implemented on top of KIWAY_PLAYER rather than DIALOG_SHIM,
180 // so we have to look for it separately.
181 if( m_ident == FRAME_SCH )
182 {
183 wxWindow* cvpcb = wxWindow::FindWindowByName( wxS( "CvpcbFrame" ) );
184
185 if( cvpcb )
186 return cvpcb;
187 }
188
189 return nullptr;
190}
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 846 of file eda_base_frame.cpp.

847{
848#if defined( __WXOSX_MAC__ )
849 m_auimgr.Update();
850#else
851 // Call Update() to fix all pane default sizes, especially the "InfoBar" pane before
852 // hiding it.
853 m_auimgr.Update();
854
855 // We don't want the infobar displayed right away
856 m_auimgr.GetPane( wxS( "InfoBar" ) ).Hide();
857 m_auimgr.Update();
858#endif
859}

References EDA_BASE_FRAME::m_auimgr.

Referenced by SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME().

◆ FocusOnItem()

◆ FocusOnItems()

void PCB_BASE_FRAME::FocusOnItems ( std::vector< BOARD_ITEM * >  aItems,
PCB_LAYER_ID  aLayer = UNDEFINED_LAYER 
)
inherited
Todo:
The Boost entropy exception does not exist prior to 1.67. Once the minimum Boost version is raise to 1.67 or greater, this version check can be removed.

Definition at line 307 of file pcb_base_frame.cpp.

308{
309 static std::vector<KIID> lastBrightenedItemIDs;
310
311 BOARD_ITEM* lastItem = nullptr;
312
313 for( KIID lastBrightenedItemID : lastBrightenedItemIDs )
314 {
317 #if BOOST_VERSION >= 106700
318 try
319 {
320 lastItem = GetBoard()->GetItem( lastBrightenedItemID );
321 }
322 catch( const boost::uuids::entropy_error& )
323 {
324 wxLogError( wxT( "A Boost UUID entropy exception was thrown in %s:%s." ),
325 __FILE__, __FUNCTION__ );
326 }
327 #else
328 lastItem = GetBoard()->GetItem( lastBrightenedItemID );
329 #endif
330
331 if( lastItem && lastItem != DELETED_BOARD_ITEM::GetInstance() )
332 {
333 lastItem->ClearBrightened();
334
335 if( lastItem->Type() == PCB_FOOTPRINT_T )
336 {
337 static_cast<FOOTPRINT*>( lastItem )->RunOnChildren(
338 [&]( BOARD_ITEM* child )
339 {
340 child->ClearBrightened();
341 } );
342 }
343 else if( lastItem->Type() == PCB_GROUP_T )
344 {
345 static_cast<PCB_GROUP*>( lastItem )->RunOnChildren(
346 [&]( BOARD_ITEM* child )
347 {
348 child->ClearBrightened();
349 } );
350 }
351
352 GetCanvas()->GetView()->Update( lastItem );
353 lastBrightenedItemID = niluuid;
354 GetCanvas()->Refresh();
355 }
356 }
357
358 lastBrightenedItemIDs.clear();
359
360 if( aItems.empty() )
361 return;
362
363 VECTOR2I focusPt;
364 KIGFX::VIEW* view = GetCanvas()->GetView();
365 SHAPE_POLY_SET viewportPoly( view->GetViewport() );
366
367 for( wxWindow* dialog : findDialogs() )
368 {
369 wxPoint dialogPos = GetCanvas()->ScreenToClient( dialog->GetScreenPosition() );
370 SHAPE_POLY_SET dialogPoly( BOX2D( view->ToWorld( dialogPos, true ),
371 view->ToWorld( dialog->GetSize(), false ) ) );
372
373 try
374 {
375 viewportPoly.BooleanSubtract( dialogPoly, SHAPE_POLY_SET::PM_FAST );
376 }
377 catch( const ClipperLib::clipperException& exc )
378 {
379 // This may be overkill and could be an assertion but we are more likely to
380 // find any clipper errors this way.
381 wxLogError( wxT( "Clipper library exception '%s' occurred." ), exc.what() );
382 }
383 }
384
385 SHAPE_POLY_SET itemPoly, clippedPoly;
386
387 for( BOARD_ITEM* item : aItems )
388 {
389 if( item && item != DELETED_BOARD_ITEM::GetInstance() )
390 {
391 item->SetBrightened();
392
393 if( item->Type() == PCB_FOOTPRINT_T )
394 {
395 static_cast<FOOTPRINT*>( item )->RunOnChildren(
396 [&]( BOARD_ITEM* child )
397 {
398 child->SetBrightened();
399 });
400 }
401 else if( item->Type() == PCB_GROUP_T )
402 {
403 static_cast<PCB_GROUP*>( item )->RunOnChildren(
404 [&]( BOARD_ITEM* child )
405 {
406 child->SetBrightened();
407 });
408 }
409
410 GetCanvas()->GetView()->Update( item );
411 lastBrightenedItemIDs.push_back( item->m_Uuid );
412
413 // Focus on the object's location. Prefer a visible part of the object to its anchor
414 // in order to keep from scrolling around.
415
416 focusPt = item->GetPosition();
417
418 if( aLayer == UNDEFINED_LAYER )
419 aLayer = item->GetLayerSet().Seq()[0];
420
421 switch( item->Type() )
422 {
423 case PCB_FOOTPRINT_T:
424 try
425 {
426 itemPoly = static_cast<FOOTPRINT*>( item )->GetBoundingHull();
427 }
428 catch( const ClipperLib::clipperException& exc )
429 {
430 // This may be overkill and could be an assertion but we are more likely to
431 // find any clipper errors this way.
432 wxLogError( wxT( "Clipper library exception '%s' occurred." ), exc.what() );
433 }
434
435 break;
436
437 case PCB_PAD_T:
438 case PCB_MARKER_T:
439 case PCB_VIA_T:
440 FocusOnLocation( item->GetFocusPosition() );
441 GetCanvas()->Refresh();
442 return;
443
444 case PCB_SHAPE_T:
445 case PCB_TEXT_T:
446 case PCB_TEXTBOX_T:
447 case PCB_FP_TEXT_T:
448 case PCB_FP_TEXTBOX_T:
449 case PCB_FP_SHAPE_T:
450 case PCB_FP_ZONE_T:
451 case PCB_TRACE_T:
452 case PCB_ARC_T:
454 case PCB_DIM_LEADER_T:
455 case PCB_DIM_CENTER_T:
456 case PCB_DIM_RADIAL_T:
463 item->TransformShapeToPolygon( itemPoly, aLayer, 0, pcbIUScale.mmToIU( 0.1 ),
464 ERROR_INSIDE );
465 break;
466
467 case PCB_ZONE_T:
468 {
469 ZONE* zone = static_cast<ZONE*>( item );
470 #if 0
471 // Using the filled area shapes to find a Focus point can give good results, but
472 // unfortunately the calculations are highly time consuming, even for not very
473 // large areas (can be easily a few minutes for large areas).
474 // so we used only the zone outline that usually do not have too many vertices.
475 zone->TransformShapeToPolygon( itemPoly, aLayer, 0, pcbIUScale.mmToIU( 0.1 ),
476 ERROR_INSIDE );
477
478 if( itemPoly.IsEmpty() )
479 itemPoly = *zone->Outline();
480 #else
481 // much faster calculation time when using only the zone outlines
482 itemPoly = *zone->Outline();
483 #endif
484
485 break;
486 }
487
488 default:
489 {
490 BOX2I item_bbox = item->GetBoundingBox();
491 itemPoly.NewOutline();
492 itemPoly.Append( item_bbox.GetOrigin() );
493 itemPoly.Append( item_bbox.GetOrigin() + VECTOR2I( item_bbox.GetWidth(), 0 ) );
494 itemPoly.Append( item_bbox.GetOrigin() + VECTOR2I( 0, item_bbox.GetHeight() ) );
495 itemPoly.Append( item_bbox.GetOrigin() + VECTOR2I( item_bbox.GetWidth(),
496 item_bbox.GetHeight() ) );
497 break;
498 }
499 }
500
501 try
502 {
503 clippedPoly.BooleanIntersection( itemPoly, viewportPoly, SHAPE_POLY_SET::PM_FAST );
504 }
505 catch( const ClipperLib::clipperException& exc )
506 {
507 // This may be overkill and could be an assertion but we are more likely to
508 // find any clipper errors this way.
509 wxLogError( wxT( "Clipper library exception '%s' occurred." ), exc.what() );
510 }
511
512 if( !clippedPoly.IsEmpty() )
513 itemPoly = clippedPoly;
514 }
515 }
516
517 /*
518 * Perform a step-wise deflate to find the visual-center-of-mass
519 */
520
521 BOX2I bbox = itemPoly.BBox();
522 int step = std::min( bbox.GetWidth(), bbox.GetHeight() ) / 10;
523
524 while( !itemPoly.IsEmpty() )
525 {
526 focusPt = itemPoly.BBox().Centre();
527
528 try
529 {
531 }
532 catch( const ClipperLib::clipperException& exc )
533 {
534 // This may be overkill and could be an assertion but we are more likely to
535 // find any clipper errors this way.
536 wxLogError( wxT( "Clipper library exception '%s' occurred." ), exc.what() );
537 }
538 }
539
540 FocusOnLocation( focusPt );
541
542 GetCanvas()->Refresh();
543}
constexpr EDA_IU_SCALE pcbIUScale
Definition: base_units.h:109
BOX2< VECTOR2D > BOX2D
Definition: box2.h:848
BOARD_ITEM * GetItem(const KIID &aID) const
Definition: board.cpp:997
const Vec & GetOrigin() const
Definition: box2.h:183
coord_type GetHeight() const
Definition: box2.h:188
coord_type GetWidth() const
Definition: box2.h:187
Vec Centre() const
Definition: box2.h:70
static DELETED_BOARD_ITEM * GetInstance()
Definition: board_item.h:368
void FocusOnLocation(const VECTOR2I &aPos)
Useful to focus on a particular location, in find functions.
std::vector< wxWindow * > findDialogs()
void ClearBrightened()
Definition: eda_item.h:119
void SetBrightened()
Definition: eda_item.h:116
virtual void Update(const VIEW_ITEM *aItem, int aUpdateFlags) const override
For dynamic VIEWs, inform the associated VIEW that the graphical representation of this item has chan...
Definition: pcb_view.cpp:92
BOX2D GetViewport() const
Return the current viewport visible area rectangle.
Definition: view.cpp:511
VECTOR2D ToWorld(const VECTOR2D &aCoord, bool aAbsolute=true) const
Converts a screen space point/vector to a point/vector in world space coordinates.
Definition: view.cpp:448
Definition: kiid.h:48
A set of BOARD_ITEMs (i.e., without duplicates).
Definition: pcb_group.h:51
Represent a set of closed polygons.
@ CHAMFER_ACUTE_CORNERS
Acute angles are chamfered.
bool IsEmpty() const
void Deflate(int aAmount, int aCircleSegmentsCount, CORNER_STRATEGY aCornerStrategy=ROUND_ALL_CORNERS)
void BooleanIntersection(const SHAPE_POLY_SET &b, POLYGON_MODE aFastMode)
Perform boolean polyset union between a and b, store the result in it self For aFastMode meaning,...
int Append(int x, int y, int aOutline=-1, int aHole=-1, bool aAllowDuplication=false)
Add a new vertex to the contour indexed by aOutline and aHole (defaults to the outline of the last po...
int NewOutline()
Creates a new hole in a given outline.
const BOX2I BBox(int aClearance=0) const override
Compute a bounding box of the shape, with a margin of aClearance a collision.
Handle a list of polygons defining a copper zone.
Definition: zone.h:57
SHAPE_POLY_SET * Outline()
Definition: zone.h:312
void TransformShapeToPolygon(SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false) const override
Convert the zone shape to a closed polygon Used in filling zones calculations Circles and arcs are ap...
Definition: zone.cpp:1320
@ ERROR_INSIDE
@ UNDEFINED_LAYER
Definition: layer_ids.h:60
constexpr int mmToIU(double mm) const
Definition: base_units.h:89
@ PCB_FP_DIM_ALIGNED_T
class PCB_DIM_ALIGNED, a linear dimension (graphic item)
Definition: typeinfo.h:95
@ PCB_SHAPE_T
class PCB_SHAPE, a segment not on copper layers
Definition: typeinfo.h:88
@ PCB_DIM_ORTHOGONAL_T
class PCB_DIM_ORTHOGONAL, a linear dimension constrained to x/y
Definition: typeinfo.h:110
@ PCB_FP_SHAPE_T
class FP_SHAPE, a footprint edge
Definition: typeinfo.h:94
@ PCB_DIM_LEADER_T
class PCB_DIM_LEADER, a leader dimension (graphic item)
Definition: typeinfo.h:107
@ PCB_VIA_T
class PCB_VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:102
@ PCB_FP_TEXTBOX_T
class FP_TEXTBOX, wrapped text in a footprint
Definition: typeinfo.h:93
@ PCB_DIM_CENTER_T
class PCB_DIM_CENTER, a center point marking (graphic item)
Definition: typeinfo.h:108
@ PCB_GROUP_T
class PCB_GROUP, a set of BOARD_ITEMs
Definition: typeinfo.h:115
@ PCB_TEXTBOX_T
class PCB_TEXTBOX, wrapped text on a layer
Definition: typeinfo.h:91
@ PCB_ZONE_T
class ZONE, a copper pour area
Definition: typeinfo.h:112
@ PCB_TEXT_T
class PCB_TEXT, text on a layer
Definition: typeinfo.h:90
@ PCB_FP_DIM_CENTER_T
class PCB_DIM_CENTER, a center point marking (graphic item)
Definition: typeinfo.h:97
@ PCB_MARKER_T
class PCB_MARKER, a marker used to show something
Definition: typeinfo.h:104
@ PCB_FP_DIM_ORTHOGONAL_T
class PCB_DIM_ORTHOGONAL, a linear dimension constrained to x/y
Definition: typeinfo.h:99
@ PCB_FP_DIM_LEADER_T
class PCB_DIM_LEADER, a leader dimension (graphic item)
Definition: typeinfo.h:96
@ PCB_FOOTPRINT_T
class FOOTPRINT, a footprint
Definition: typeinfo.h:86
@ PCB_DIM_ALIGNED_T
class PCB_DIM_ALIGNED, a linear dimension (graphic item)
Definition: typeinfo.h:106
@ PCB_FP_ZONE_T
class ZONE, managed by a footprint
Definition: typeinfo.h:100
@ PCB_FP_DIM_RADIAL_T
class PCB_DIM_RADIAL, a radius or diameter dimension
Definition: typeinfo.h:98
@ PCB_PAD_T
class PAD, a pad in a footprint
Definition: typeinfo.h:87
@ PCB_ARC_T
class PCB_ARC, an arc track segment on a copper layer
Definition: typeinfo.h:103
@ PCB_TRACE_T
class PCB_TRACK, a track segment (segment on a copper layer)
Definition: typeinfo.h:101
@ PCB_DIM_RADIAL_T
class PCB_DIM_RADIAL, a radius or diameter dimension
Definition: typeinfo.h:109
VECTOR2< int > VECTOR2I
Definition: vector2d.h:618

References SHAPE_POLY_SET::Append(), SHAPE_POLY_SET::BBox(), SHAPE_POLY_SET::BooleanIntersection(), SHAPE_POLY_SET::BooleanSubtract(), BOX2< Vec >::Centre(), SHAPE_POLY_SET::CHAMFER_ACUTE_CORNERS, EDA_ITEM::ClearBrightened(), SHAPE_POLY_SET::Deflate(), ERROR_INSIDE, EDA_DRAW_FRAME::findDialogs(), EDA_DRAW_FRAME::FocusOnLocation(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), BOX2< Vec >::GetHeight(), DELETED_BOARD_ITEM::GetInstance(), BOARD::GetItem(), BOX2< Vec >::GetOrigin(), PCB_DRAW_PANEL_GAL::GetView(), KIGFX::VIEW::GetViewport(), BOX2< Vec >::GetWidth(), SHAPE_POLY_SET::IsEmpty(), EDA_IU_SCALE::mmToIU(), SHAPE_POLY_SET::NewOutline(), niluuid, ZONE::Outline(), PCB_ARC_T, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FOOTPRINT_T, PCB_FP_DIM_ALIGNED_T, PCB_FP_DIM_CENTER_T, PCB_FP_DIM_LEADER_T, PCB_FP_DIM_ORTHOGONAL_T, PCB_FP_DIM_RADIAL_T, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, PCB_FP_TEXTBOX_T, PCB_FP_ZONE_T, PCB_GROUP_T, PCB_MARKER_T, PCB_PAD_T, PCB_SHAPE_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_T, pcbIUScale, SHAPE_POLY_SET::PM_FAST, EDA_DRAW_PANEL_GAL::Refresh(), EDA_ITEM::SetBrightened(), KIGFX::VIEW::ToWorld(), ZONE::TransformShapeToPolygon(), EDA_ITEM::Type(), UNDEFINED_LAYER, and KIGFX::PCB_VIEW::Update().

Referenced by PCB_BASE_FRAME::FocusOnItem(), and DIALOG_DRC::OnDRCItemSelected().

◆ FocusOnLocation()

void EDA_DRAW_FRAME::FocusOnLocation ( const VECTOR2I aPos)
inherited

Useful to focus on a particular location, in find functions.

Move the graphic cursor (crosshair cursor) at a given coordinate and reframes the drawing if the requested point is out of view or if center on location is requested.

Parameters
aPosis the point to go to.

Definition at line 939 of file eda_draw_frame.cpp.

940{
941 bool centerView = false;
943
944 // Center if we're off the current view, or within 10% of its edge
945 r.Inflate( - (int) r.GetWidth() / 10 );
946
947 if( !r.Contains( aPos ) )
948 centerView = true;
949
950 std::vector<BOX2D> dialogScreenRects;
951
952 for( wxWindow* dialog : findDialogs() )
953 {
954 dialogScreenRects.emplace_back( GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ),
955 dialog->GetSize() );
956 }
957
958 // Center if we're behind an obscuring dialog, or within 10% of its edge
959 for( BOX2D rect : dialogScreenRects )
960 {
961 rect.Inflate( rect.GetWidth() / 10 );
962
963 if( rect.Contains( GetCanvas()->GetView()->ToScreen( aPos ) ) )
964 centerView = true;
965 }
966
967 if( centerView )
968 {
969 try
970 {
971 GetCanvas()->GetView()->SetCenter( aPos, dialogScreenRects );
972 }
973 catch( const ClipperLib::clipperException& exc )
974 {
975 wxLogError( wxT( "Clipper library error '%s' occurred centering object." ),
976 exc.what() );
977 }
978 }
979
981}
bool Contains(const Vec &aPoint) const
Definition: box2.h:141
BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
Definition: box2.h:506
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
void SetCenter(const VECTOR2D &aCenter)
Set the center point of the VIEW (i.e.
Definition: view.cpp:577

References BOX2< Vec >::Contains(), EDA_DRAW_FRAME::findDialogs(), EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetView(), EDA_DRAW_PANEL_GAL::GetViewControls(), KIGFX::VIEW::GetViewport(), BOX2< Vec >::GetWidth(), BOX2< Vec >::Inflate(), KIGFX::VIEW::SetCenter(), and KIGFX::VIEW_CONTROLS::SetCrossHairCursorPosition().

Referenced by PCB_SELECTION_TOOL::doSyncSelection(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), PCB_SELECTION_TOOL::FindItem(), SCH_FIND_REPLACE_TOOL::FindNext(), SCH_EDIT_FRAME::FocusOnItem(), PCB_BASE_FRAME::FocusOnItems(), DIALOG_DRC::OnDRCItemSelected(), and EE_SELECTION_TOOL::SyncSelection().

◆ Get3DViewerFrame()

EDA_3D_VIEWER_FRAME * PCB_BASE_FRAME::Get3DViewerFrame ( )
inherited
Returns
a reference to the child 3D viewer frame, when exists, or NULL

Definition at line 142 of file pcb_base_frame.cpp.

143{
144 wxWindow* frame = FindWindowByName( QUALIFIED_VIEWER3D_FRAMENAME( this ) );
145 return dynamic_cast<EDA_3D_VIEWER_FRAME*>( frame );
146}
#define QUALIFIED_VIEWER3D_FRAMENAME(parent)

References QUALIFIED_VIEWER3D_FRAMENAME.

Referenced by PCB_BASE_FRAME::canCloseWindow(), PCB_BASE_FRAME::CommonSettingsChanged(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), PCB_EDIT_FRAME::OpenProjectFiles(), PCB_BASE_FRAME::Update3DView(), and FOOTPRINT_WIZARD_FRAME::~FOOTPRINT_WIZARD_FRAME().

◆ GetAboutTitle()

const wxString & EDA_BASE_FRAME::GetAboutTitle ( ) const
inlineinherited

Definition at line 506 of file eda_base_frame.h.

506{ return wxGetTranslation( m_aboutTitle ); }

References EDA_BASE_FRAME::m_aboutTitle.

Referenced by DIALOG_ABOUT::DIALOG_ABOUT(), PGM_SINGLE_TOP::OnPgmInit(), and PGM_KICAD::OnPgmInit().

◆ GetActiveLayer()

virtual PCB_LAYER_ID PCB_BASE_FRAME::GetActiveLayer ( ) const
inlinevirtualinherited

Definition at line 357 of file pcb_base_frame.h.

357{ return GetScreen()->m_Active_Layer; }
PCB_LAYER_ID m_Active_Layer
Definition: pcb_screen.h:42

References PCB_BASE_FRAME::GetScreen(), and PCB_SCREEN::m_Active_Layer.

Referenced by DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::buildFilterLists(), CONVERT_TOOL::CreatePolys(), APPEARANCE_CONTROLS::doApplyLayerPreset(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), PCB_SELECTION_TOOL::GetActiveLayer(), PCB_BASE_FRAME::GetCollectorsGuide(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), PCB_CONTROL::LayerAlphaDec(), PCB_CONTROL::LayerAlphaInc(), PCB_CONTROL::LayerNext(), PCB_CONTROL::LayerPrev(), PCB_CONTROL::LayerToggle(), ROUTER_TOOL::MainLoop(), DIALOG_FOOTPRINT_PROPERTIES::OnAddField(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAddField(), APPEARANCE_CONTROLS::OnLayerChanged(), APPEARANCE_CONTROLS::OnLayerContextMenu(), DIALOG_CLEANUP_GRAPHICS::OnSelectItem(), PCB_DRAW_PANEL_GAL::OnShow(), FOOTPRINT_EDIT_FRAME::OnUpdateLayerSelectBox(), PCB_EDIT_FRAME::OnUpdateLayerSelectBox(), LENGTH_TUNER_TOOL::performTuning(), DRAWING_TOOL::PlaceCharacteristics(), DRAWING_TOOL::PlaceImage(), DRAWING_TOOL::PlaceStackup(), DRAWING_TOOL::PlaceText(), ROUTER_TOOL::prepareInteractive(), ROUTER_TOOL::RouteSelected(), PCB_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SetActiveLayer(), PCB_BASE_FRAME::SetDisplayOptions(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::SwitchLayer(), PCB_EDIT_FRAME::SwitchLayer(), ROUTER_TOOL::switchLayerOnViaPlacement(), PCB_CONTROL::UpdateMessagePanel(), and PCB_EDIT_FRAME::UpdateUserInterface().

◆ GetAutoSaveFilePrefix()

static wxString EDA_BASE_FRAME::GetAutoSaveFilePrefix ( )
inlinestaticprotectedinherited

◆ GetAutoSaveInterval()

int EDA_BASE_FRAME::GetAutoSaveInterval ( ) const
inherited

Definition at line 298 of file eda_base_frame.cpp.

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

References Pgm().

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

◆ GetAuxOrigin()

const VECTOR2I & PCB_BASE_FRAME::GetAuxOrigin ( ) const
inherited

◆ GetBoard()

BOARD * PCB_BASE_FRAME::GetBoard ( ) const
inlineinherited

Definition at line 191 of file pcb_base_frame.h.

192 {
193 wxASSERT( m_pcb );
194 return m_pcb;
195 }

References PCB_BASE_FRAME::m_pcb.

Referenced by PCB_BASE_FRAME::AddFootprintToBoard(), AddFootprintToPCB(), GRID_CELL_LAYER_SELECTOR::BeginEdit(), DIALOG_BOARD_REANNOTATE::BuildFootprintList(), FOOTPRINT_EDIT_FRAME::CanCloseFPFromBoard(), PCB_EDIT_FRAME::canCloseWindow(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), FOOTPRINT_EDIT_FRAME::Clear_Pcb(), PCB_EDIT_FRAME::Clear_Pcb(), FOOTPRINT_EDIT_FRAME::ClearModify(), ClickOnFootprintList(), FOOTPRINT_EDIT_FRAME::CommonSettingsChanged(), PCB_BASE_FRAME::Compile_Ratsnest(), DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), CreateHeaderInfoData(), PCB_BASE_FRAME::CreateNewFootprint(), ZONE_CREATE_HELPER::createNewZone(), PCB_PROPERTIES_PANEL::createPGProperty(), CONVERT_TOOL::CreatePolys(), DIALOG_PRINT_PCBNEW::createPrintout(), FOOTPRINT_EDITOR_CONTROL::CutCopyFootprint(), DIALOG_FOOTPRINT_CHECKER::deleteAllMarkers(), DIALOG_DRC::deleteAllMarkers(), PCB_CONTROL::DeleteItemCursor(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), displayFootprint(), APPEARANCE_CONTROLS::doApplyLayerPreset(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), PCB_EDIT_FRAME::doCloseWindow(), PCB_EDIT_FRAME::DoGenFootprintsPositionFile(), PCB_EDIT_FRAME::DoGenFootprintsReport(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), EDIT_TOOL::doMoveSelection(), ROUTER_TOOL::DpDimensionsDialog(), GRID_CELL_LAYER_RENDERER::Draw(), DRAWING_TOOL::DrawBoardCharacteristics(), DRAWING_TOOL::DrawSpecificationStackup(), DRAWING_TOOL::DrawVia(), EDIT_TOOL::Duplicate(), FOOTPRINT_EDITOR_CONTROL::DuplicateFootprint(), PCB_EDIT_FRAME::Edit_Zone_Params(), DIALOG_COPPER_ZONE::ensureSelectedNetIsVisible(), TRACK_WIDTH_MENU::eventHandler(), DIFF_PAIR_MENU::eventHandler(), VIA_SIZE_MENU::eventHandler(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), FOOTPRINT_EDITOR_CONTROL::ExportFootprint(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones(), BOARD_EDITOR_CONTROL::ExportSpecctraDSN(), PCB_EDIT_FRAME::ExportSpecctraFile(), PCB_EDIT_FRAME::ExportSVG(), PCB_EDIT_FRAME::ExportToGenCAD(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::FindItemsFromSyncSelection(), PCB_BASE_FRAME::FocusOnItems(), PCB_EDIT_FRAME::GenD356File(), PCB_EDIT_FRAME::GenFootprintsReport(), EDA_3D_VIEWER_FRAME::GetBoard(), GetBoard(), PCB_EDIT_FRAME::GetCurrentFileName(), DIALOG_BOARD_STATISTICS::getDataFromPCB(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), FOOTPRINT_EDIT_FRAME::GetDesignSettings(), FOOTPRINT_EDIT_FRAME::GetDocumentExtents(), PCB_LAYER_BOX_SELECTOR::getEnabledLayers(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), PCB_BASE_FRAME::GetFootprintFromBoardByReference(), PCB_BASE_FRAME::GetItem(), PCB_EDIT_FRAME::GetLastPath(), DIALOG_TRACK_VIA_PROPERTIES::getLayerDepth(), PCB_LAYER_BOX_SELECTOR::getLayerName(), PCB_LAYER_SELECTOR::getLayerName(), FOOTPRINT_EDIT_FRAME::GetLoadedFPID(), DISPLAY_FOOTPRINTS_FRAME::GetModel(), FOOTPRINT_EDIT_FRAME::GetModel(), GetModel(), FOOTPRINT_WIZARD_FRAME::GetModel(), ZONE_SEARCH_HANDLER::GetResultCell(), PCB_BASE_FRAME::GetSeverity(), GRID_CELL_LAYER_SELECTOR::GetValue(), PRIVATE_LAYERS_GRID_TABLE::GetValue(), FP_TREE_SYNCHRONIZING_ADAPTER::GetValue(), APPEARANCE_CONTROLS::getVisibleLayers(), APPEARANCE_CONTROLS::getVisibleObjects(), PCB_EDITOR_CONDITIONS::hasItemsFunc(), PCB_BASE_FRAME::HideSolderMask(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), FOOTPRINT_EDIT_FRAME::ImportFootprint(), BOARD_EDITOR_CONTROL::ImportSpecctraSession(), PCB_EDIT_FRAME::ImportSpecctraSession(), EDIT_TOOL::Init(), DIALOG_PLOT::init_Dialog(), DISPLAY_FOOTPRINTS_FRAME::InitDisplay(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), ARRAY_CREATOR::Invoke(), FOOTPRINT_EDIT_FRAME::IsContentModified(), FOOTPRINT_EDIT_FRAME::IsCurrentFPFromBoard(), PCB_EDIT_FRAME::IsElementVisible(), PCB_LAYER_SELECTOR::isLayerEnabled(), PCB_EDIT_FRAME::KiwayMailIn(), LoadBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), DIALOG_IMPORT_NETLIST::loadNetlist(), PCB_EDIT_FRAME::LoadProjectSettings(), BOARD_INSPECTION_TOOL::makeDRCEngine(), CONVERT_TOOL::makePolysFromChainedSegs(), CONVERT_TOOL::makePolysFromClosedGraphics(), CONVERT_TOOL::makePolysFromOpenGraphics(), DIALOG_DRC::OnActivateDlg(), DIALOG_BOARD_REANNOTATE::OnApplyClick(), DIALOG_BOARD_SETUP::onAuxiliaryAction(), APPEARANCE_CONTROLS::OnBoardChanged(), DIALOG_NET_INSPECTOR::onBoardChanged(), PCB_SEARCH_PANE::onBoardChanged(), PCB_EDIT_FRAME::onBoardLoaded(), DIALOG_IMPORT_SETTINGS::OnBrowseClicked(), DIALOG_DRC::OnDRCItemRClick(), DIALOG_DRC::OnDRCItemSelected(), DIALOG_EXPORT_STEP::onExportButton(), PCB_EDIT_FRAME::OnExportHyperlynx(), PCB_EDIT_FRAME::OnExportIDF3(), PCB_EDIT_FRAME::OnExportSTEP(), PCB_EDIT_FRAME::OnExportVRML(), APPEARANCE_CONTROLS::OnLayerContextMenu(), PCB_BASE_FRAME::OnModify(), APPEARANCE_CONTROLS::onNetclassContextMenu(), PCB_EDIT_FRAME::OnNetlistChanged(), APPEARANCE_CONTROLS::onObjectVisibilityChanged(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), PCB_EDIT_FRAME::OnRemoveTeardropTool(), PCB_EDIT_FRAME::OnRunTeardropTool(), PANEL_SETUP_RULES::onScintillaCharAdded(), DIALOG_CLEANUP_GRAPHICS::OnSelectItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnSelectItem(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), OnUpdateFootprintButton(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), FOOTPRINT_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_SETUP_BOARD_FINISH::PANEL_SETUP_BOARD_FINISH(), PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP(), PANEL_SETUP_CONSTRAINTS::PANEL_SETUP_CONSTRAINTS(), PANEL_SETUP_LAYERS::PANEL_SETUP_LAYERS(), PANEL_SETUP_MASK_AND_PASTE::PANEL_SETUP_MASK_AND_PASTE(), PANEL_SETUP_TEXT_AND_GRAPHICS::PANEL_SETUP_TEXT_AND_GRAPHICS(), PANEL_SETUP_TRACKS_AND_VIAS::PANEL_SETUP_TRACKS_AND_VIAS(), PCB_CONTROL::Paste(), PCB_SEARCH_PANE::PCB_SEARCH_PANE(), DIALOG_UPDATE_PCB::PerformUpdate(), DRAWING_TOOL::PlaceImportedGraphics(), DIALOG_PLOT::Plot(), ROUTER_TOOL::prepareInteractive(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), DIALOG_EXCHANGE_FOOTPRINTS::processMatchingFootprints(), EDIT_TOOL::Properties(), FOOTPRINT_EDITOR_CONTROL::Properties(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), DIALOG_COPPER_ZONE::readNetInformation(), BOARD_REANNOTATE_TOOL::ReannotateDuplicates(), NET_GRID_TABLE::Rebuild(), PCB_BASE_FRAME::rebuildConnectivity(), APPEARANCE_CONTROLS::rebuildLayerContextMenu(), APPEARANCE_CONTROLS::rebuildLayers(), APPEARANCE_CONTROLS::rebuildNets(), PCB_EDIT_FRAME::RecordDRCExclusions(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), PCB_EDIT_FRAME::redrawNetnames(), DIALOG_PLOT::reInitDialog(), FOOTPRINT_WIZARD_FRAME::ReloadFootprint(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), BOARD_INSPECTION_TOOL::reportHeader(), DRC_TOOL::Reset(), PCB_EDIT_FRAME::ResolveDRCExclusions(), ROUTER_TOOL::RouteSelected(), PCB_EDIT_FRAME::RunActionPlugin(), DIALOG_FOOTPRINT_CHECKER::runChecks(), PCB_BASE_EDIT_FRAME::saveCopyInUndoList(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), DIALOG_FIND::search(), FOOTPRINT_SEARCH_HANDLER::Search(), ZONE_SEARCH_HANDLER::Search(), TEXT_SEARCH_HANDLER::Search(), NETS_SEARCH_HANDLER::Search(), SelectAndViewFootprint(), PCB_BASE_FRAME::SelectOneLayer(), PCB_BASE_FRAME::SetBoard(), DIALOG_GLOBAL_DELETION::SetCurrentLayer(), PCB_EDIT_FRAME::SetElementVisibility(), PCB_EDIT_FRAME::SetLastPath(), APPEARANCE_CONTROLS::SetObjectVisible(), PCB_EDIT_FRAME::SetPageSettings(), DIALOG_PLOT::SetPlotFormat(), ZONE_CREATE_HELPER::setUniquePriority(), ZONE_SETTINGS::SetupLayersList(), FOOTPRINT_EDIT_FRAME::setupTools(), FOOTPRINT_EDIT_FRAME::setupUIConditions(), PCB_EDIT_FRAME::setupUIConditions(), APPEARANCE_CONTROLS::setVisibleLayers(), APPEARANCE_CONTROLS::setVisibleObjects(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), APPEARANCE_CONTROLS::showNetclass(), PCB_BASE_FRAME::ShowSolderMask(), DIALOG_COPPER_ZONE::sortNetsByPadCount(), PCB_EDIT_FRAME::SwitchLayer(), TEARDROP_DIALOG::TEARDROP_DIALOG(), DIALOG_SWAP_LAYERS::TransferDataFromWindow(), DIALOG_TEXTBOX_PROPERTIES::TransferDataFromWindow(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_UNUSED_PAD_LAYERS::TransferDataFromWindow(), PANEL_SETUP_MASK_AND_PASTE::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataFromWindow(), DIALOG_DIMENSION_PROPERTIES::TransferDataToWindow(), DIALOG_PRINT_PCBNEW::TransferDataToWindow(), DIALOG_SWAP_LAYERS::TransferDataToWindow(), DIALOG_TEXTBOX_PROPERTIES::TransferDataToWindow(), PANEL_SETUP_MASK_AND_PASTE::TransferDataToWindow(), PCB_BASE_EDIT_FRAME::unitsChangeRefresh(), TRACK_WIDTH_MENU::update(), DIFF_PAIR_MENU::update(), VIA_SIZE_MENU::update(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), DIALOG_BOARD_STATISTICS::updateDrillGrid(), PCB_CONTROL::UpdateMessagePanel(), DISPLAY_FOOTPRINTS_FRAME::UpdateMsgPanel(), FOOTPRINT_WIZARD_FRAME::UpdateMsgPanel(), DRC_TOOL::updatePointers(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), PCB_EDIT_FRAME::UpdateTitle(), PCB_EDIT_FRAME::UpdateUserInterface(), DISPLAY_FOOTPRINTS_FRAME::updateView(), FOOTPRINT_EDIT_FRAME::UpdateView(), updateView(), FOOTPRINT_WIZARD_FRAME::updateView(), DIALOG_DRC::writeReport(), DIALOG_FOOTPRINT_CHECKER::~DIALOG_FOOTPRINT_CHECKER(), DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME(), and PCB_EDIT_FRAME::~PCB_EDIT_FRAME().

◆ GetBoardBoundingBox()

BOX2I PCB_BASE_FRAME::GetBoardBoundingBox ( bool  aBoardEdgesOnly = false) const
inherited

Calculate the bounding box containing all board items (or board edge segments).

Parameters
aBoardEdgesOnlyis true if we are interested in board edge segments only.
Returns
the board's bounding box.

Definition at line 681 of file pcb_base_frame.cpp.

682{
683 BOX2I area = aBoardEdgesOnly ? m_pcb->GetBoardEdgesBoundingBox() : m_pcb->GetBoundingBox();
684
685 if( area.GetWidth() == 0 && area.GetHeight() == 0 )
686 {
687 wxSize pageSize = GetPageSizeIU();
688
690 {
691 area.SetOrigin( 0, 0 );
692 area.SetEnd( pageSize.x, pageSize.y );
693 }
694 else
695 {
696 area.SetOrigin( -pageSize.x / 2, -pageSize.y / 2 );
697 area.SetEnd( pageSize.x / 2, pageSize.y / 2 );
698 }
699 }
700
701 return area;
702}
const BOX2I GetBoardEdgesBoundingBox() const
Return the board bounding box calculated using exclusively the board edges (graphics on Edge....
Definition: board.h:823
const BOX2I GetBoundingBox() const override
Return the orthogonal bounding box of this object for display purposes.
Definition: board.h:809
void SetOrigin(const Vec &pos)
Definition: box2.h:202
void SetEnd(coord_type x, coord_type y)
Definition: box2.h:255
bool m_showBorderAndTitleBlock

References BOARD::GetBoardEdgesBoundingBox(), BOARD::GetBoundingBox(), BOX2< Vec >::GetHeight(), PCB_BASE_FRAME::GetPageSizeIU(), BOX2< Vec >::GetWidth(), PCB_BASE_FRAME::m_pcb, EDA_DRAW_FRAME::m_showBorderAndTitleBlock, BOX2< Vec >::SetEnd(), and BOX2< Vec >::SetOrigin().

Referenced by PCB_BASE_FRAME::GetDocumentExtents(), and FOOTPRINT_EDIT_FRAME::GetDocumentExtents().

◆ GetCanvas()

PCB_DRAW_PANEL_GAL * PCB_BASE_FRAME::GetCanvas ( ) const
overridevirtualinherited

Return a pointer to GAL-based canvas of given EDA draw frame.

Returns
Pointer to GAL-based canvas.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 1059 of file pcb_base_frame.cpp.

1060{
1061 return static_cast<PCB_DRAW_PANEL_GAL*>( EDA_DRAW_FRAME::GetCanvas() );
1062}

References EDA_DRAW_FRAME::GetCanvas().

Referenced by PCB_BASE_FRAME::ActivateGalCanvas(), FOOTPRINT_EDIT_FRAME::ActivateGalCanvas(), PCB_BASE_EDIT_FRAME::ActivateGalCanvas(), PCB_EDIT_FRAME::ActivateGalCanvas(), AddFootprintToPCB(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), DIALOG_NET_INSPECTOR::buildNetsList(), PCB_SELECTION_TOOL::canvas(), PCB_TOOL_BASE::canvas(), PCB_VIEWER_TOOLS::canvas(), ClickOnFootprintList(), FOOTPRINT_WIZARD_FRAME::ClickOnPageList(), PCB_BASE_FRAME::CommonSettingsChanged(), FOOTPRINT_EDIT_FRAME::CommonSettingsChanged(), CommonSettingsChanged(), PCB_EDIT_FRAME::CommonSettingsChanged(), DIALOG_PRINT_PCBNEW::createPrintout(), PCB_CONTROL::DeleteItemCursor(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), PCB_BASE_FRAME::DisplayGridMsg(), APPEARANCE_CONTROLS::doApplyLayerPreset(), APPEARANCE_CONTROLS::doApplyViewport(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), doCloseWindow(), PCB_EDIT_FRAME::doCloseWindow(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), BOARD_INSPECTION_TOOL::doHideRatsnestNet(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), PCB_SELECTION_TOOL::doSyncSelection(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), PCB_EDIT_FRAME::Edit_Zone_Params(), DIALOG_DRC::ExcludeMarker(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), PCB_SELECTION_TOOL::FindItem(), ROUTER_TOOL::finishInteractive(), PCB_CONTROL::FlipPcbView(), PCB_BASE_FRAME::FocusOnItems(), PCB_BASE_FRAME::GetCollectorsGuide(), APPEARANCE_CONTROLS::getVisibleLayers(), APPEARANCE_CONTROLS::getVisibleObjects(), ROUTER_TOOL::handleLayerSwitch(), FOOTPRINT_EDIT_FRAME::HardRedraw(), PCB_BASE_FRAME::HideSolderMask(), PCB_EDIT_FRAME::ImportSpecctraSession(), DISPLAY_FOOTPRINTS_FRAME::InitDisplay(), ROUTER_TOOL::InlineDrag(), DRAWING_TOOL::InteractivePlaceWithPreview(), PCB_CONTROL::LayerAlphaDec(), PCB_CONTROL::LayerAlphaInc(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromLibrary(), PCB_EDIT_FRAME::LoadProjectSettings(), PCB_BASE_FRAME::LoadSettings(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), PCB_VIEWER_TOOLS::MeasureTool(), DIALOG_BOARD_REANNOTATE::OnApplyClick(), PCB_EDIT_FRAME::onBoardLoaded(), APPEARANCE_CONTROLS::OnColorSwatchChanged(), DIALOG_NET_INSPECTOR::onDeleteNet(), DIALOG_DRC::OnDRCItemRClick(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_SELECTION_TOOL::OnIdle(), APPEARANCE_CONTROLS::OnLayerContextMenu(), APPEARANCE_CONTROLS::onLayerVisibilityToggled(), DIALOG_GROUP_PROPERTIES::OnMemberSelected(), APPEARANCE_CONTROLS::onNetclassColorChanged(), APPEARANCE_CONTROLS::onNetclassContextMenu(), APPEARANCE_CONTROLS::onNetColorMode(), APPEARANCE_CONTROLS::onNetContextMenu(), PCB_EDIT_FRAME::OnNetlistChanged(), APPEARANCE_CONTROLS::onObjectVisibilityChanged(), DIALOG_EXCHANGE_FOOTPRINTS::OnOKClicked(), APPEARANCE_CONTROLS::onRatsnestMode(), DIALOG_GROUP_PROPERTIES::OnRemoveMember(), PCB_EDIT_FRAME::OnRemoveTeardropTool(), DIALOG_NET_INSPECTOR::onRenameNet(), DIALOG_NET_INSPECTOR::onSelChanged(), DIALOG_CLEANUP_GRAPHICS::OnSelectItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnSelectItem(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), DIALOG_NET_INSPECTOR::onSortingChanged(), FOOTPRINT_TREE_PANE::onUpdateUI(), APPEARANCE_CONTROLS::onViewportChanged(), FOOTPRINT_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), BOARD_EDITOR_CONTROL::PageSettings(), ROUTER_TOOL::performRouting(), LENGTH_TUNER_TOOL::performTuning(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PCB_BASE_FRAME::PlaceFootprint(), DRAWING_TOOL::PlaceImage(), DRAWING_TOOL::PlaceImportedGraphics(), DRAWING_TOOL::PlaceText(), DIALOG_PAD_PROPERTIES::prepareCanvas(), ROUTER_TOOL::prepareInteractive(), PCB_EDIT_FRAME::Process_Special_Functions(), EDIT_TOOL::Properties(), FOOTPRINT_EDITOR_CONTROL::Properties(), BOARD_COMMIT::Push(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), DIALOG_BOARD_REANNOTATE::ReannotateBoard(), NET_GRID_TABLE::Rebuild(), PCB_EDIT_FRAME::RebuildAndRefresh(), PCB_BASE_FRAME::rebuildConnectivity(), APPEARANCE_CONTROLS::rebuildNets(), ReCreateLibraryList(), FOOTPRINT_WIZARD_FRAME::ReCreatePageList(), PCB_EDIT_FRAME::redrawNetnames(), refreshCallback(), DIALOG_DRC::refreshEditor(), DIALOG_FOOTPRINT_CHECKER::refreshEditor(), FOOTPRINT_WIZARD_FRAME::ReloadFootprint(), PCB_SELECTION_TOOL::RequestSelection(), PCB_EDIT_FRAME::ResolveDRCExclusions(), PCB_BASE_EDIT_FRAME::RestoreCopyFromRedoList(), PCB_BASE_EDIT_FRAME::RestoreCopyFromUndoList(), FOOTPRINT_EDIT_FRAME::RevertFootprint(), PCB_BASE_EDIT_FRAME::RollbackFromUndo(), ROUTER_TOOL::RouteSelected(), DIALOG_FOOTPRINT_CHECKER::runChecks(), DRC_TOOL::RunTests(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), PCB_EDIT_FRAME::SaveProjectSettings(), DISPLAY_FOOTPRINTS_FRAME::SaveSettings(), SaveSettings(), DIALOG_FIND::search(), PCB_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectAllConnectedTracks(), SelectAndViewFootprint(), FOOTPRINT_SEARCH_HANDLER::SelectItems(), ZONE_SEARCH_HANDLER::SelectItems(), TEXT_SEARCH_HANDLER::SelectItems(), NETS_SEARCH_HANDLER::SelectItems(), FOOTPRINT_EDIT_FRAME::SelectLayer(), PCB_SELECTION_TOOL::selectMultiple(), FOOTPRINT_EDIT_FRAME::SetActiveLayer(), PCB_EDIT_FRAME::SetActiveLayer(), DRAWING_TOOL::SetAnchor(), PCB_BASE_FRAME::SetBoard(), PCB_BASE_EDIT_FRAME::SetBoard(), PCB_BASE_FRAME::SetDisplayOptions(), PCB_POINT_EDITOR::setEditedPoint(), PCB_EDIT_FRAME::SetElementVisibility(), PCB_EDIT_FRAME::SetGridColor(), APPEARANCE_CONTROLS::SetLayerVisible(), APPEARANCE_CONTROLS::SetObjectVisible(), PCB_EDIT_FRAME::SetPageSettings(), FOOTPRINT_EDIT_FRAME::setupTools(), PCB_EDIT_FRAME::setupTools(), FOOTPRINT_EDIT_FRAME::setupUIConditions(), PCB_EDIT_FRAME::setupUIConditions(), APPEARANCE_CONTROLS::setVisibleLayers(), APPEARANCE_CONTROLS::setVisibleObjects(), PCB_BASE_EDIT_FRAME::ShowBitmapPropertiesDialog(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), PCB_BASE_FRAME::ShowSolderMask(), GLOBAL_EDIT_TOOL::swapBoardItem(), GLOBAL_EDIT_TOOL::SwapLayers(), FOOTPRINT_EDIT_FRAME::SwitchCanvas(), PCB_BASE_FRAME::SwitchLayer(), PCB_EDIT_FRAME::SwitchLayer(), PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), APPEARANCE_CONTROLS::UpdateDisplayOptions(), NET_GRID_TABLE::updateNetColor(), PCB_BASE_FRAME::UpdateStatusBar(), PCB_EDIT_FRAME::UpdateUserInterface(), PCB_BASE_FRAME::UpdateUserUnits(), DISPLAY_FOOTPRINTS_FRAME::updateView(), FOOTPRINT_EDIT_FRAME::UpdateView(), updateView(), FOOTPRINT_WIZARD_FRAME::updateView(), PCB_SELECTION_TOOL::ZoomFitCrossProbeBBox(), PCB_SELECTION_TOOL::zoomFitSelection(), DIALOG_GROUP_PROPERTIES::~DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_NETLIST::~DIALOG_IMPORT_NETLIST(), DIALOG_NET_INSPECTOR::~DIALOG_NET_INSPECTOR(), DIALOG_UPDATE_PCB::~DIALOG_UPDATE_PCB(), DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME(), ~FOOTPRINT_VIEWER_FRAME(), FOOTPRINT_WIZARD_FRAME::~FOOTPRINT_WIZARD_FRAME(), PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME(), and PCB_BASE_FRAME::~PCB_BASE_FRAME().

◆ GetCollectorsGuide()

GENERAL_COLLECTORS_GUIDE PCB_BASE_FRAME::GetCollectorsGuide ( )
inherited
Returns
global configuration options.

Definition at line 795 of file pcb_base_frame.cpp.

796{
798 GetCanvas()->GetView() );
799
800 // account for the globals
801 guide.SetIgnoreMTextsMarkedNoShow( ! m_pcb->IsElementVisible( LAYER_MOD_TEXT_INVISIBLE ) );
802 guide.SetIgnoreMTextsOnBack( ! m_pcb->IsElementVisible( LAYER_MOD_TEXT ) );
803 guide.SetIgnoreMTextsOnFront( ! m_pcb->IsElementVisible( LAYER_MOD_TEXT ) );
804 guide.SetIgnoreModulesOnBack( ! m_pcb->IsElementVisible( LAYER_MOD_BK ) );
805 guide.SetIgnoreModulesOnFront( ! m_pcb->IsElementVisible( LAYER_MOD_FR ) );
806 guide.SetIgnorePadsOnBack( ! m_pcb->IsElementVisible( LAYER_PAD_BK ) );
807 guide.SetIgnorePadsOnFront( ! m_pcb->IsElementVisible( LAYER_PAD_FR ) );
808 guide.SetIgnoreThroughHolePads( ! m_pcb->IsElementVisible( LAYER_PADS_TH ) );
809 guide.SetIgnoreModulesVals( ! m_pcb->IsElementVisible( LAYER_MOD_VALUES ) );
810 guide.SetIgnoreModulesRefs( ! m_pcb->IsElementVisible( LAYER_MOD_REFERENCES ) );
811 guide.SetIgnoreThroughVias( ! m_pcb->IsElementVisible( LAYER_VIAS ) );
812 guide.SetIgnoreBlindBuriedVias( ! m_pcb->IsElementVisible( LAYER_VIAS ) );
813 guide.SetIgnoreMicroVias( ! m_pcb->IsElementVisible( LAYER_VIAS ) );
814 guide.SetIgnoreTracks( ! m_pcb->IsElementVisible( LAYER_TRACKS ) );
815
816 return guide;
817}
LSET GetVisibleLayers() const
A proxy function that calls the correspondent function in m_BoardSettings.
Definition: board.cpp:579
bool IsElementVisible(GAL_LAYER_ID aLayer) const
Test whether a given element category is visible.
Definition: board.cpp:631
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:326
virtual PCB_LAYER_ID GetActiveLayer() const
@ LAYER_MOD_TEXT_INVISIBLE
text marked as invisible
Definition: layer_ids.h:200
@ LAYER_PAD_FR
smd pads, front layer
Definition: layer_ids.h:202
@ LAYER_MOD_TEXT
Definition: layer_ids.h:198
@ LAYER_TRACKS
Definition: layer_ids.h:212
@ LAYER_MOD_FR
show footprints on front
Definition: layer_ids.h:208
@ LAYER_PAD_BK
smd pads, back layer
Definition: layer_ids.h:203
@ LAYER_MOD_VALUES
show footprints values (when texts are visible)
Definition: layer_ids.h:210
@ LAYER_PADS_TH
multilayer pads, usually with holes
Definition: layer_ids.h:213
@ LAYER_VIAS
Meta control for all vias opacity/visibility.
Definition: layer_ids.h:193
@ LAYER_MOD_BK
show footprints on back
Definition: layer_ids.h:209
@ LAYER_MOD_REFERENCES
show footprints references (when texts are visible)
Definition: layer_ids.h:211

References PCB_BASE_FRAME::GetActiveLayer(), PCB_BASE_FRAME::GetCanvas(), BOARD::GetVisibleLayers(), BOARD::IsElementVisible(), LAYER_MOD_BK, LAYER_MOD_FR, LAYER_MOD_REFERENCES, LAYER_MOD_TEXT, LAYER_MOD_TEXT_INVISIBLE, LAYER_MOD_VALUES, LAYER_PAD_BK, LAYER_PAD_FR, LAYER_PADS_TH, LAYER_TRACKS, LAYER_VIAS, PCB_BASE_FRAME::m_pcb, GENERAL_COLLECTORS_GUIDE::SetIgnoreBlindBuriedVias(), GENERAL_COLLECTORS_GUIDE::SetIgnoreMicroVias(), GENERAL_COLLECTORS_GUIDE::SetIgnoreModulesOnBack(), GENERAL_COLLECTORS_GUIDE::SetIgnoreModulesOnFront(), GENERAL_COLLECTORS_GUIDE::SetIgnoreModulesRefs(), GENERAL_COLLECTORS_GUIDE::SetIgnoreModulesVals(), GENERAL_COLLECTORS_GUIDE::SetIgnoreMTextsMarkedNoShow(), GENERAL_COLLECTORS_GUIDE::SetIgnoreMTextsOnBack(), GENERAL_COLLECTORS_GUIDE::SetIgnoreMTextsOnFront(), GENERAL_COLLECTORS_GUIDE::SetIgnorePadsOnBack(), GENERAL_COLLECTORS_GUIDE::SetIgnorePadsOnFront(), GENERAL_COLLECTORS_GUIDE::SetIgnoreThroughHolePads(), GENERAL_COLLECTORS_GUIDE::SetIgnoreThroughVias(), and GENERAL_COLLECTORS_GUIDE::SetIgnoreTracks().

Referenced by PCB_CONTROL::DeleteItemCursor(), PAD_TOOL::EnumeratePads(), and BOARD_INSPECTION_TOOL::highlightNet().

◆ GetColorSettings()

COLOR_SETTINGS * FOOTPRINT_VIEWER_FRAME::GetColorSettings ( bool  aForceRefresh = false) const
overridevirtual

Helper to retrieve the current color settings.

Reimplemented from PCB_BASE_FRAME.

Definition at line 965 of file footprint_viewer_frame.cpp.

966{
967 auto* settings = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>();
968
969 if( settings )
970 return Pgm().GetSettingsManager().GetColorSettings( settings->m_ColorTheme );
971 else
972 return Pgm().GetSettingsManager().GetColorSettings();
973}

References Pgm().

Referenced by GetGridColor().

◆ getCurFootprintName()

const wxString FOOTPRINT_VIEWER_FRAME::getCurFootprintName ( )
private

Definition at line 999 of file footprint_viewer_frame.cpp.

1000{
1002}
@ PCB_FOOTPRINT_VIEWER_FP_NAME
Definition: project.h:177
virtual const wxString & GetRString(RSTRING_T aStringId)
Return a "retained string", which is any session and project specific string identified in enum RSTRI...
Definition: project.cpp:265

References PROJECT::GetRString(), PROJECT::PCB_FOOTPRINT_VIEWER_FP_NAME, and KIWAY_HOLDER::Prj().

Referenced by ClickOnFootprintList(), ReCreateFootprintList(), SelectAndViewFootprint(), and Update3DView().

◆ getCurNickname()

◆ 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 431 of file eda_base_frame.h.

431{ return wxEmptyString; }

Referenced by EDA_BASE_FRAME::SaveSettings().

◆ GetCurrentSelection()

SELECTION & FOOTPRINT_VIEWER_FRAME::GetCurrentSelection ( )
overridevirtual

Get the current selection from the canvas area.

Returns
the current selection.

Reimplemented from TOOLS_HOLDER.

Definition at line 367 of file footprint_viewer_frame.cpp.

368{
369 return m_toolManager->GetTool<PCB_SELECTION_TOOL>()->GetSelection();
370}

References TOOL_MANAGER::GetTool(), and TOOLS_HOLDER::m_toolManager.

◆ GetDesignSettings()

◆ GetDisplayOptions()

const PCB_DISPLAY_OPTIONS & PCB_BASE_FRAME::GetDisplayOptions ( ) const
inlineinherited

◆ GetDocumentExtents()

const BOX2I PCB_BASE_FRAME::GetDocumentExtents ( bool  aIncludeAllVisible = true) const
inlineoverridevirtualinherited

Returns bbox of document with option to not include some items.

Used most commonly by "Zoom to Fit" and "Zoom to Objects". In Eeschema for "Zoom to Fit" it's passed "true" to include drawing sheet border, and "false" by "Zoom To Objects" to ignore drawing sheet border. In Pcbnew, false makes it ignore any items outside the PCB edge such as fabrication notes.

Parameters
aIncludeAllVisibleTrue to include everything visible in bbox calculations, false to ignore some visible items (program dependent).
Returns
Bounding box of the document (ignoring some items as requested).

Reimplemented from EDA_DRAW_FRAME.

Reimplemented in FOOTPRINT_EDIT_FRAME.

Definition at line 109 of file pcb_base_frame.h.

110 {
111 /* "Zoom to Fit" calls this with "aIncludeAllVisible" as true. Since that feature
112 * always ignored the page and border, this function returns a bbox without them
113 * as well when passed true. This technically is not all things visible, but it
114 * keeps behavior consistent.
115 *
116 * When passed false, this function returns a bbox of just the board edge. This
117 * allows things like fabrication text or anything else outside the board edge to
118 * be ignored, and just zooms up to the board itself.
119 *
120 * Calling "GetBoardBoundingBox(true)" when edge cuts are turned off will return
121 * the entire page and border, so we call "GetBoardBoundingBox(false)" instead.
122 */
123 if( aIncludeAllVisible || !m_pcb->IsLayerVisible( Edge_Cuts ) )
124 return GetBoardBoundingBox( false );
125 else
126 return GetBoardBoundingBox( true );
127 }
bool IsLayerVisible(PCB_LAYER_ID aLayer) const
A proxy function that calls the correspondent function in m_BoardSettings tests whether a given layer...
Definition: board.cpp:571
BOX2I GetBoardBoundingBox(bool aBoardEdgesOnly=false) const
Calculate the bounding box containing all board items (or board edge segments).
@ Edge_Cuts
Definition: layer_ids.h:113

References Edge_Cuts, PCB_BASE_FRAME::GetBoardBoundingBox(), BOARD::IsLayerVisible(), and PCB_BASE_FRAME::m_pcb.

◆ 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().

◆ GetDrawBgColor()

virtual COLOR4D EDA_DRAW_FRAME::GetDrawBgColor ( ) const
inlinevirtualinherited

◆ 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 929 of file eda_base_frame.cpp.

931{
932 if( !aFileHistory )
933 aFileHistory = m_fileHistory;
934
935 wxASSERT( aFileHistory );
936
937 int baseId = aFileHistory->GetBaseId();
938
939 wxASSERT( cmdId >= baseId && cmdId < baseId + (int) aFileHistory->GetCount() );
940
941 unsigned i = cmdId - baseId;
942
943 if( i < aFileHistory->GetCount() )
944 {
945 wxString fn = aFileHistory->GetHistoryFile( i );
946
947 if( wxFileName::FileExists( fn ) )
948 {
949 return fn;
950 }
951 else
952 {
953 DisplayErrorMessage( this, wxString::Format( _( "File '%s' was not found." ), fn ) );
954 aFileHistory->RemoveFileFromHistory( i );
955 }
956 }
957
958 // Update the menubar to update the file history menu
959 if( GetMenuBar() )
960 {
962 GetMenuBar()->Refresh();
963 }
964
965 return wxEmptyString;
966}

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 415 of file eda_base_frame.h.

416 {
417 return *m_fileHistory;
418 }

References EDA_BASE_FRAME::m_fileHistory.

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

◆ GetFindHistoryList()

wxArrayString & EDA_DRAW_FRAME::GetFindHistoryList ( )
inlineinherited

◆ GetFindReplaceData()

◆ GetFootprintEditorSettings()

FOOTPRINT_EDITOR_SETTINGS * PCB_BASE_FRAME::GetFootprintEditorSettings ( ) const
inherited

◆ GetFootprintFromBoardByReference()

FOOTPRINT * PCB_BASE_FRAME::GetFootprintFromBoardByReference ( )
inherited
Returns
a reference to the footprint found by its reference on the current board. The reference is entered by the user from a dialog (by awxTextCtlr, or a list of available references)

Definition at line 463 of file load_select_footprint.cpp.

464{
465 wxString footprintName;
466 wxArrayString fplist;
467
468 // Build list of available fp references, to display them in dialog
469 for( FOOTPRINT* fp : GetBoard()->Footprints() )
470 fplist.Add( fp->GetReference() + wxT( " ( " ) + fp->GetValue() + wxT( " )" ) );
471
472 fplist.Sort();
473
474 DIALOG_GET_FOOTPRINT_BY_NAME dlg( this, fplist );
475
476 if( dlg.ShowModal() != wxID_OK ) //Aborted by user
477 return nullptr;
478
479 footprintName = dlg.GetValue();
480 footprintName.Trim( true );
481 footprintName.Trim( false );
482
483 if( !footprintName.IsEmpty() )
484 {
485 for( FOOTPRINT* fp : GetBoard()->Footprints() )
486 {
487 if( fp->GetReference().CmpNoCase( footprintName ) == 0 )
488 return fp;
489 }
490 }
491
492 return nullptr;
493}
DIALOG_GET_FOOTPRINT_BY_NAME is a helper dialog to select a footprint by its reference One can enter ...

References FOOTPRINT::Add(), PCB_BASE_FRAME::GetBoard(), and DIALOG_GET_FOOTPRINT_BY_NAME::GetValue().

◆ GetFrameType()

FRAME_T EDA_BASE_FRAME::GetFrameType ( ) const
inlineinherited

Definition at line 201 of file eda_base_frame.h.

201{ return m_ident; }

References EDA_BASE_FRAME::m_ident.

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

◆ GetGalDisplayOptions()

◆ GetGridColor()

COLOR4D FOOTPRINT_VIEWER_FRAME::GetGridColor ( )
overridevirtual

Reimplemented from EDA_DRAW_FRAME.

Definition at line 1153 of file footprint_viewer_frame.cpp.

1154{
1156}
COLOR4D GetColor(int aLayer) const
COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const override
Helper to retrieve the current color settings.
@ LAYER_GRID
Definition: layer_ids.h:205

References COLOR_SETTINGS::GetColor(), GetColorSettings(), and LAYER_GRID.

◆ GetGridOrigin()

const VECTOR2I & PCB_BASE_FRAME::GetGridOrigin ( ) const
overridevirtualinherited

Return the absolute coordinates of the origin of the snap grid.

This is treated as a relative offset and snapping will occur at multiples of the grid size relative to this point.

Implements EDA_DRAW_FRAME.

Definition at line 593 of file pcb_base_frame.cpp.

594{
596}
const VECTOR2I & GetGridOrigin()

References BOARD::GetDesignSettings(), BOARD_DESIGN_SETTINGS::GetGridOrigin(), and PCB_BASE_FRAME::m_pcb.

Referenced by PCB_BASE_FRAME::GetUserOrigin().

◆ GetInfoBar()

◆ GetItem()

EDA_ITEM * PCB_BASE_FRAME::GetItem ( const KIID aId) const
overridevirtualinherited

Fetch an item by KIID.

Frame-type-specific implementation.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 290 of file pcb_base_frame.cpp.

291{
292 return GetBoard()->GetItem( aId );
293}

References PCB_BASE_FRAME::GetBoard(), and BOARD::GetItem().

Referenced by PAD_TOOL::EditPad().

◆ GetIuScale()

◆ GetMagneticItemsSettings()

MAGNETIC_SETTINGS * FOOTPRINT_VIEWER_FRAME::GetMagneticItemsSettings ( )
inlineoverridevirtual

Reimplemented from PCB_BASE_FRAME.

Definition at line 58 of file footprint_viewer_frame.h.

59 {
60 return &m_magneticItems;
61 }

References m_magneticItems.

◆ GetMaxUndoItems()

int EDA_BASE_FRAME::GetMaxUndoItems ( ) const
inlineinherited

Definition at line 576 of file eda_base_frame.h.

576{ return m_undoRedoCountMax; }

References EDA_BASE_FRAME::m_undoRedoCountMax.

Referenced by EDA_DRAW_FRAME::SaveSettings().

◆ GetModel()

BOARD_ITEM_CONTAINER * FOOTPRINT_VIEWER_FRAME::GetModel ( ) const
overridevirtual
Returns
the primary data model.

Implements PCB_BASE_FRAME.

Definition at line 1283 of file footprint_viewer_frame.cpp.

1284{
1285 return GetBoard()->GetFirstFootprint();
1286}

References PCB_BASE_FRAME::GetBoard(), and BOARD::GetFirstFootprint().

Referenced by UpdateMsgPanel().

◆ 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()

◆ GetNearestGridPosition()

VECTOR2I EDA_DRAW_FRAME::GetNearestGridPosition ( const VECTOR2I aPosition) const
inherited

Return the nearest aGridSize location to aPosition.

Parameters
aPositionThe position to check.
Returns
The nearest grid position.

Definition at line 878 of file eda_draw_frame.cpp.

879{
880 const VECTOR2I& gridOrigin = GetGridOrigin();
881 VECTOR2D gridSize = GetCanvas()->GetGAL()->GetGridSize();
882
883 double xOffset = fmod( gridOrigin.x, gridSize.x );
884 int x = KiROUND( (aPosition.x - xOffset) / gridSize.x );
885 double yOffset = fmod( gridOrigin.y, gridSize.y );
886 int y = KiROUND( (aPosition.y - yOffset) / gridSize.y );
887
888 return VECTOR2I( KiROUND( x * gridSize.x + xOffset ), KiROUND( y * gridSize.y + yOffset ) );
889}
virtual const VECTOR2I & GetGridOrigin() const =0
Return the absolute coordinates of the origin of the snap grid.
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:85

References EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetGAL(), EDA_DRAW_FRAME::GetGridOrigin(), KIGFX::GAL::GetGridSize(), KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by SCH_EDIT_TOOL::ChangeTextType(), and SCH_DRAWING_TOOLS::sizeSheet().

◆ GetNearestHalfGridPosition()

VECTOR2I EDA_DRAW_FRAME::GetNearestHalfGridPosition ( const VECTOR2I aPosition) const
inherited

Return the nearest aGridSize / 2 location to aPosition.

This is useful when attempting for keep outer points on grid but not the middle point.

Parameters
aPositionThe position to check.
Returns
The nearest half-grid position.

Definition at line 892 of file eda_draw_frame.cpp.

893{
894 const VECTOR2I& gridOrigin = GetGridOrigin();
895 VECTOR2D gridSize = GetCanvas()->GetGAL()->GetGridSize() / 2.0;
896
897 double xOffset = fmod( gridOrigin.x, gridSize.x );
898 int x = KiROUND( (aPosition.x - xOffset) / gridSize.x );
899 double yOffset = fmod( gridOrigin.y, gridSize.y );
900 int y = KiROUND( (aPosition.y - yOffset) / gridSize.y );
901
902 return VECTOR2I( KiROUND( x * gridSize.x + xOffset ), KiROUND( y * gridSize.y + yOffset ) );
903}

References EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetGAL(), EDA_DRAW_FRAME::GetGridOrigin(), KIGFX::GAL::GetGridSize(), KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by SCH_EDIT_TOOL::Mirror(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), SCH_EDIT_TOOL::Rotate(), and SYMBOL_EDITOR_EDIT_TOOL::Rotate().

◆ GetOriginTransforms()

ORIGIN_TRANSFORMS & PCB_BASE_FRAME::GetOriginTransforms ( )
overridevirtualinherited

Return a reference to the default ORIGIN_TRANSFORMS object.

Reimplemented from EDA_BASE_FRAME.

Definition at line 626 of file pcb_base_frame.cpp.

627{
628 return m_originTransforms;
629}
PCB_ORIGIN_TRANSFORMS m_originTransforms

References PCB_BASE_FRAME::m_originTransforms.

◆ GetPageSettings()

const PAGE_INFO & PCB_BASE_FRAME::GetPageSettings ( ) const
overridevirtualinherited

Implements EDA_DRAW_FRAME.

Definition at line 578 of file pcb_base_frame.cpp.

579{
580 return m_pcb->GetPageSettings();
581}
const PAGE_INFO & GetPageSettings() const
Definition: board.h:626

References BOARD::GetPageSettings(), and PCB_BASE_FRAME::m_pcb.

Referenced by PCB_CONTROL::Print().

◆ GetPageSizeIU()

const wxSize PCB_BASE_FRAME::GetPageSizeIU ( ) const
overridevirtualinherited

Works off of GetPageSettings() to return the size of the paper page in the internal units of this particular view.

Implements EDA_DRAW_FRAME.

Definition at line 584 of file pcb_base_frame.cpp.

585{
586 // this function is only needed because EDA_DRAW_FRAME is not compiled
587 // with either -DPCBNEW or -DEESCHEMA, so the virtual is used to route
588 // into an application specific source file.
590}
const wxSize GetSizeIU(double aIUScale) const
Gets the page size in internal units.
Definition: page_info.h:162
const double IU_PER_MILS
Definition: base_units.h:78

References BOARD::GetPageSettings(), PAGE_INFO::GetSizeIU(), EDA_IU_SCALE::IU_PER_MILS, PCB_BASE_FRAME::m_pcb, and pcbIUScale.

Referenced by PCB_CONTROL::AppendBoard(), FOOTPRINT_EDIT_FRAME::Clear_Pcb(), PCB_EDIT_FRAME::Clear_Pcb(), PCB_BASE_FRAME::GetBoardBoundingBox(), and PCB_EDIT_FRAME::OpenProjectFiles().

◆ GetPcbNewSettings()

PCBNEW_SETTINGS * PCB_BASE_FRAME::GetPcbNewSettings ( ) const
inherited

Definition at line 955 of file pcb_base_frame.cpp.

956{
957 return Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>();
958}

References Pgm().

Referenced by PCB_BASE_FRAME::AddFootprintToBoard(), AddFootprintToPCB(), BOARD_NETLIST_UPDATER::addNewFootprint(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), DIALOG_PLOT::applyPlotSettings(), PCB_POINT_EDITOR::changeArcEditMode(), PCB_EDIT_FRAME::CommonSettingsChanged(), DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_SELECTION_TOOL::ctrlClickHighlights(), EDIT_TOOL::DeleteItems(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_IMPORT_NETLIST::DIALOG_IMPORT_NETLIST(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PCB_TOOL_BASE::displayOptions(), PCB_VIEWER_TOOLS::displayOptions(), BOARD_EDITOR_CONTROL::doCrossProbePcbToSch(), EDIT_TOOL::doMoveSelection(), PCB_SELECTION_TOOL::doSyncSelection(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), EDIT_TOOL::Flip(), PCB_BASE_EDIT_FRAME::GetColorSettings(), PCB_BASE_FRAME::GetMagneticItemsSettings(), PCB_BASE_FRAME::GetUserOrigin(), BOARD_INSPECTION_TOOL::HighlightItem(), DIALOG_PLOT::init_Dialog(), DIALOG_EXPORT_SVG::initDialog(), DIALOG_GEN_FOOTPRINT_POSITION::initDialog(), DIALOG_GENDRILL::initDialog(), DIALOG_BOARD_REANNOTATE::InitValues(), ROUTER_TOOL::InlineDrag(), PCB_ORIGIN_TRANSFORMS::invertXAxis(), PCB_ORIGIN_TRANSFORMS::invertYAxis(), PCB_EDIT_FRAME::KiwayMailIn(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), DIALOG_COPPER_ZONE::loadPersistentNetSortConfigurations(), PCB_SELECTION_TOOL::Main(), PCB_EDIT_FRAME::onBoardLoaded(), DIALOG_PRINT_PCBNEW::onColorModeClicked(), DIALOG_DRC::OnDRCItemSelected(), DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate(), PCB_EDIT_FRAME::OnModify(), PCB_EDIT_FRAME::OnNetlistChanged(), APPEARANCE_CONTROLS::onObjectVisibilityChanged(), DIALOG_EXPORT_SVG::onPagePerLayerClicked(), APPEARANCE_CONTROLS::onRatsnestMode(), PCB_POINT_EDITOR::OnSelectionChange(), BOARD_EDITOR_CONTROL::PlaceFootprint(), BOARD_COMMIT::Push(), PNS::TOOL_BASE::Reset(), EDIT_TOOL::Rotate(), DIALOG_PRINT_PCBNEW::saveSettings(), PCB_EDIT_FRAME::SetActiveLayer(), PCB_EDIT_FRAME::setupUIConditions(), APPEARANCE_CONTROLS::setVisibleObjects(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), DIALOG_COPPER_ZONE::storePersistentNetSortConfigurations(), PCB_EDIT_FRAME::ToggleLayersManager(), PCB_EDIT_FRAME::ToggleProperties(), PCB_EDIT_FRAME::ToggleSearch(), PCB_EDITOR_CONDITIONS::trackFillDisplayFunc(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_IMPORT_GFX::TransferDataFromWindow(), DIALOG_PRINT_PCBNEW::TransferDataToWindow(), DIALOG_GENDRILL::UpdateConfig(), APPEARANCE_CONTROLS::UpdateDisplayOptions(), PCB_EDITOR_CONDITIONS::viaFillDisplayFunc(), APPEARANCE_CONTROLS::~APPEARANCE_CONTROLS(), DIALOG_BOARD_REANNOTATE::~DIALOG_BOARD_REANNOTATE(), DIALOG_CLEANUP_TRACKS_AND_VIAS::~DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_DRC::~DIALOG_DRC(), DIALOG_EXPORT_3DFILE::~DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::~DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::~DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::~DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_IMPORT_GFX::~DIALOG_IMPORT_GFX(), DIALOG_IMPORT_NETLIST::~DIALOG_IMPORT_NETLIST(), and DIALOG_UPDATE_PCB::~DIALOG_UPDATE_PCB().

◆ GetPlotSettings()

const PCB_PLOT_PARAMS & PCB_BASE_FRAME::GetPlotSettings ( ) const
virtualinherited

Return the PCB_PLOT_PARAMS for the BOARD owned by this frame.

Reimplemented in FOOTPRINT_EDIT_FRAME.

Definition at line 669 of file pcb_base_frame.cpp.

670{
671 return m_pcb->GetPlotOptions();
672}
const PCB_PLOT_PARAMS & GetPlotOptions() const
Definition: board.h:629

References BOARD::GetPlotOptions(), and PCB_BASE_FRAME::m_pcb.

Referenced by DIALOG_PLOT::CreateDrillFile(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_PLOT::DIALOG_PLOT(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), and PCB_EDIT_FRAME::ToPlotter().

◆ GetRedoCommandCount()

virtual int EDA_BASE_FRAME::GetRedoCommandCount ( ) const
inlinevirtualinherited

◆ GetScreen()

PCB_SCREEN * PCB_BASE_FRAME::GetScreen ( ) const
inlineoverridevirtualinherited

Return a pointer to a BASE_SCREEN or one of its derivatives.

It is overloaded by derived classes to return SCH_SCREEN or PCB_SCREEN.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 221 of file pcb_base_frame.h.

virtual BASE_SCREEN * GetScreen() const
Return a pointer to a BASE_SCREEN or one of its derivatives.

References EDA_DRAW_FRAME::GetScreen().

Referenced by FOOTPRINT_EDIT_FRAME::Clear_Pcb(), PCB_EDIT_FRAME::Clear_Pcb(), FOOTPRINT_EDIT_FRAME::ClearModify(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), PCB_EDIT_FRAME::doAutoSave(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::ExportSpecctraFile(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_BASE_FRAME::GetActiveLayer(), FP_TREE_SYNCHRONIZING_ADAPTER::GetAttr(), FP_TREE_SYNCHRONIZING_ADAPTER::GetValue(), ROUTER_TOOL::handleLayerSwitch(), FOOTPRINT_EDIT_FRAME::IsContentModified(), PCB_EDIT_FRAME::IsContentModified(), PCB_CONTROL::LayerToggle(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromLibrary(), EDIT_TOOL::MoveExact(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), PCB_EDIT_FRAME::OnExportSTEP(), PCB_BASE_FRAME::OnModify(), FOOTPRINT_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::PrepareLayerIndicator(), FOOTPRINT_EDIT_FRAME::RevertFootprint(), PCB_EDIT_FRAME::SavePcbFile(), DIALOG_FIND::search(), ROUTER_TOOL::SelectCopperLayerPair(), PCB_BASE_FRAME::SetActiveLayer(), PCB_BASE_FRAME::SetPageSettings(), PCB_EDIT_FRAME::SetPageSettings(), PCB_BASE_FRAME::UpdateStatusBar(), and DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME().

◆ GetScreenDesc()

wxString EDA_DRAW_FRAME::GetScreenDesc ( ) const
virtualinherited

Reimplemented in SCH_EDIT_FRAME.

Definition at line 1043 of file eda_draw_frame.cpp.

1044{
1045 // Virtual function. Base class implementation returns an empty string.
1046 return wxEmptyString;
1047}

Referenced by EDA_DRAW_FRAME::PrintDrawingSheet(), and PCB_EDIT_FRAME::SetPageSettings().

◆ GetSettingsManager()

◆ GetSeverity()

SEVERITY PCB_BASE_FRAME::GetSeverity ( int  aErrorCode) const
overridevirtualinherited

Reimplemented from EDA_BASE_FRAME.

Definition at line 932 of file pcb_base_frame.cpp.

933{
934 if( aErrorCode >= CLEANUP_FIRST )
935 return RPT_SEVERITY_ACTION;
936
938
939 return bds.m_DRCSeverities[ aErrorCode ];
940}
std::map< int, SEVERITY > m_DRCSeverities
@ CLEANUP_FIRST
Definition: cleanup_item.h:33
@ RPT_SEVERITY_ACTION

References CLEANUP_FIRST, PCB_BASE_FRAME::GetBoard(), BOARD::GetDesignSettings(), BOARD_DESIGN_SETTINGS::m_DRCSeverities, and RPT_SEVERITY_ACTION.

◆ GetShowPolarCoords()

bool EDA_DRAW_FRAME::GetShowPolarCoords ( ) const
inlineinherited

For those frames that support polar coordinates.

Definition at line 120 of file eda_draw_frame.h.

120{ return m_polarCoords; }

References EDA_DRAW_FRAME::m_polarCoords.

Referenced by EDITOR_CONDITIONS::polarCoordFunc(), COMMON_TOOLS::TogglePolarCoords(), GERBVIEW_FRAME::UpdateStatusBar(), and PCB_BASE_FRAME::UpdateStatusBar().

◆ GetTitleBlock()

const TITLE_BLOCK & PCB_BASE_FRAME::GetTitleBlock ( ) const
overridevirtualinherited

Implements EDA_DRAW_FRAME.

Definition at line 632 of file pcb_base_frame.cpp.

633{
634 return m_pcb->GetTitleBlock();
635}
TITLE_BLOCK & GetTitleBlock()
Definition: board.h:632

References BOARD::GetTitleBlock(), and PCB_BASE_FRAME::m_pcb.

◆ GetToolCanvas()

wxWindow * EDA_DRAW_FRAME::GetToolCanvas ( ) const
inlineoverridevirtualinherited

Canvas access.

Implements TOOLS_HOLDER.

Definition at line 417 of file eda_draw_frame.h.

417{ return GetCanvas(); }

References EDA_DRAW_FRAME::GetCanvas().

◆ 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(), AddFootprintToPCB(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), PCB_PROPERTIES_PANEL::AfterCommit(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), SCH_NAVIGATE_TOOL::Back(), BOARD_COMMIT::BOARD_COMMIT(), SCH_NAVIGATE_TOOL::changeSheet(), 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(), SYMBOL_EDIT_FRAME::LoadSymbolFromSchematic(), 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(), PCB_EDIT_FRAME::OnRemoveTeardropTool(), DIALOG_PLOT::onRunDRC(), DIALOG_DRC::OnRunDRCClick(), PCB_EDIT_FRAME::OnRunTeardropTool(), HIERARCHY_PANE::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(), PCB_BASE_FRAME::rebuildConnectivity(), 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(), TOOLS_HOLDER::ShowChangedLanguage(), 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(), NET_GRID_TABLE::updateNetVisibility(), PCB_PROPERTIES_PANEL::valueChanged(), DIALOG_IMPORT_NETLIST::~DIALOG_IMPORT_NETLIST(), 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()

◆ GetUnitPair()

void EDA_DRAW_FRAME::GetUnitPair ( EDA_UNITS aPrimaryUnit,
EDA_UNITS aSecondaryUnits 
)
inherited

Get the pair or units in current use.

The primary unit is the main unit of the frame, and the secondary unit is the unit of the other system that was used most recently.

Definition at line 1172 of file eda_draw_frame.cpp.

1173{
1175
1176 aPrimaryUnit = GetUserUnits();
1177 aSecondaryUnits = EDA_UNITS::MILS;
1178
1179 if( EDA_UNIT_UTILS::IsImperialUnit( aPrimaryUnit ) )
1180 {
1181 if( cmnTool )
1182 aSecondaryUnits = cmnTool->GetLastMetricUnits();
1183 else
1184 aSecondaryUnits = EDA_UNITS::MILLIMETRES;
1185 }
1186 else
1187 {
1188 if( cmnTool )
1189 aSecondaryUnits = cmnTool->GetLastImperialUnits();
1190 else
1191 aSecondaryUnits = EDA_UNITS::MILS;
1192 }
1193}
EDA_UNITS GetLastImperialUnits()
Definition: common_tools.h:77
EDA_UNITS GetLastMetricUnits()
Definition: common_tools.h:76
bool IsImperialUnit(EDA_UNITS aUnit)
Definition: eda_units.cpp:29

References COMMON_TOOLS::GetLastImperialUnits(), COMMON_TOOLS::GetLastMetricUnits(), TOOL_MANAGER::GetTool(), UNITS_PROVIDER::GetUserUnits(), EDA_UNIT_UTILS::IsImperialUnit(), TOOLS_HOLDER::m_toolManager, MILLIMETRES, and MILS.

Referenced by GRID_MENU::BuildChoiceList(), and PCB_EDIT_FRAME::UpdateTrackWidthSelectBox().

◆ GetUntranslatedAboutTitle()

const wxString & EDA_BASE_FRAME::GetUntranslatedAboutTitle ( ) const
inlineinherited

Definition at line 508 of file eda_base_frame.h.

508{ return m_aboutTitle; }

References EDA_BASE_FRAME::m_aboutTitle.

Referenced by DIALOG_ABOUT::DIALOG_ABOUT(), and COMMON_CONTROL::ReportBug().

◆ GetUserOrigin()

const VECTOR2I PCB_BASE_FRAME::GetUserOrigin ( ) const
inherited

Definition at line 611 of file pcb_base_frame.cpp.

612{
613 VECTOR2I origin( 0, 0 );
614
615 switch( GetPcbNewSettings()->m_Display.m_DisplayOrigin )
616 {
618 case PCB_DISPLAY_ORIGIN::PCB_ORIGIN_AUX: origin = GetAuxOrigin(); break;
620 default: wxASSERT( false ); break;
621 }
622
623 return origin;
624}
const VECTOR2I & GetAuxOrigin() const
const VECTOR2I & GetGridOrigin() const override
Return the absolute coordinates of the origin of the snap grid.
@ PCB_ORIGIN_AUX
@ PCB_ORIGIN_GRID
@ PCB_ORIGIN_PAGE

References PCB_BASE_FRAME::GetAuxOrigin(), PCB_BASE_FRAME::GetGridOrigin(), PCB_BASE_FRAME::GetPcbNewSettings(), PCB_ORIGIN_AUX, PCB_ORIGIN_GRID, and PCB_ORIGIN_PAGE.

Referenced by PCB_ORIGIN_TRANSFORMS::getUserXOrigin(), and PCB_ORIGIN_TRANSFORMS::getUserYOrigin().

◆ GetUserUnits()

EDA_UNITS UNITS_PROVIDER::GetUserUnits ( ) const
inlineinherited

Definition at line 42 of file units_provider.h.

42{ return m_userUnits; }
EDA_UNITS m_userUnits

References UNITS_PROVIDER::m_userUnits.

Referenced by DIALOG_CONSTRAINTS_REPORTER::AddPage(), PG_UNIT_EDITOR::CreateControls(), 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(), PROPERTIES_PANEL::extractValueAndWritability(), FP_TEXT_GRID_TABLE::FP_TEXT_GRID_TABLE(), PCB_EDIT_FRAME::GenFootprintsReport(), GERBER_DRAW_ITEM::GetMsgPanelInfo(), EDA_DRAW_FRAME::GetUnitPair(), WX_GRID::GetUnitValue(), GetUserUnits(), UNIT_BINDER::init(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), UNITS_PROVIDER::MessageTextFromValue(), PANEL_SETUP_BOARD_STACKUP::onAdjustDielectricThickness(), WX_GRID::onCellEditorHidden(), PANEL_SETUP_BOARD_STACKUP::onExportToClipboard(), PANEL_SETUP_NETCLASSES::onUnitsChanged(), UNIT_BINDER::onUnitsChanged(), DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged(), DIALOG_NET_INSPECTOR::onUnitsChanged(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES(), PG_UNIT_EDITOR::PG_UNIT_EDITOR(), PIN_TABLE_DATA_MODEL::PIN_TABLE_DATA_MODEL(), PCB_CONTROL::placeBoardItems(), POSITION_RELATIVE_TOOL::PositionRelative(), PROPERTIES_PANEL::rebuildProperties(), DRC_TOOL::RunTests(), SCH_EDIT_FRAME::SaveSettings(), EDA_DRAW_FRAME::SaveSettings(), WX_GRID::SetUnitsProvider(), PIN_TABLE_DATA_MODEL::SetValue(), FP_TEXT_GRID_TABLE::SetValue(), GERBVIEW_INSPECTION_TOOL::ShowDCodes(), UNITS_PROVIDER::StringFromValue(), COMMON_TOOLS::ToggleUnits(), EDA_DRAW_FRAME::ToggleUserUnits(), EDITOR_CONDITIONS::unitsFunc(), GERBVIEW_FRAME::updateDCodeSelectBox(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), PG_UNIT_EDITOR::UpdateFrame(), PNS_TUNE_STATUS_POPUP::UpdateStatus(), PL_EDITOR_FRAME::UpdateStatusBar(), PCB_BASE_FRAME::UpdateUserUnits(), PCB_EDIT_FRAME::UpdateViaSizeSelectBox(), DRC_TOOL::userUnits(), and UNITS_PROVIDER::ValueFromString().

◆ GetViewerSettingsBase()

PCB_VIEWERS_SETTINGS_BASE * PCB_BASE_FRAME::GetViewerSettingsBase ( ) const
virtualinherited

Reimplemented in DISPLAY_FOOTPRINTS_FRAME.

Definition at line 967 of file pcb_base_frame.cpp.

968{
969 switch( GetFrameType() )
970 {
971 case FRAME_PCB_EDITOR:
975 default:
976 return Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>();
977
981 case FRAME_CVPCB:
983 return Pgm().GetSettingsManager().GetAppSettings<CVPCB_SETTINGS>();
984 }
985}
FRAME_T GetFrameType() const
@ FRAME_CVPCB_DISPLAY
Definition: frame_type.h:49
@ FRAME_FOOTPRINT_WIZARD
Definition: frame_type.h:44
@ FRAME_FOOTPRINT_PREVIEW
Definition: frame_type.h:46
@ FRAME_FOOTPRINT_EDITOR
Definition: frame_type.h:41
@ FRAME_PCB_DISPLAY3D
Definition: frame_type.h:45
@ FRAME_CVPCB
Definition: frame_type.h:48

References FRAME_CVPCB, FRAME_CVPCB_DISPLAY, FRAME_FOOTPRINT_EDITOR, FRAME_FOOTPRINT_PREVIEW, FRAME_FOOTPRINT_VIEWER, FRAME_FOOTPRINT_VIEWER_MODAL, FRAME_FOOTPRINT_WIZARD, FRAME_PCB_DISPLAY3D, FRAME_PCB_EDITOR, EDA_BASE_FRAME::GetFrameType(), and Pgm().

Referenced by PCB_VIEWER_TOOLS::GraphicOutlines(), PCB_EDITOR_CONDITIONS::graphicsFillDisplayFunc(), PCB_VIEWER_TOOLS::PadDisplayMode(), PCB_EDITOR_CONDITIONS::padFillDisplayFunc(), PCB_EDITOR_CONDITIONS::padNumberDisplayFunc(), PCB_VIEWER_TOOLS::ShowPadNumbers(), PCB_EDITOR_CONDITIONS::textFillDisplayFunc(), and PCB_VIEWER_TOOLS::TextOutlines().

◆ GetWindowSettings()

WINDOW_SETTINGS * FOOTPRINT_VIEWER_FRAME::GetWindowSettings ( APP_SETTINGS_BASE aCfg)
overrideprivatevirtual

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 from EDA_BASE_FRAME.

Definition at line 956 of file footprint_viewer_frame.cpp.

957{
958 PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
959 wxCHECK_MSG( cfg, nullptr, wxT( "config not existing" ) );
960
961 return &cfg->m_FootprintViewer;
962}
WINDOW_SETTINGS m_FootprintViewer

References PCBNEW_SETTINGS::m_FootprintViewer.

Referenced by LoadSettings().

◆ 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 1387 of file eda_base_frame.cpp.

1388{
1389#ifdef __WXGTK__
1390 wxSize winSize = GetSize();
1391
1392 // GTK includes the window decorations in the normal GetSize call,
1393 // so we have to use a GTK-specific sizing call that returns the
1394 // non-decorated window size.
1396 {
1397 int width = 0;
1398 int height = 0;
1399 GTKDoGetSize( &width, &height );
1400
1401 winSize.Set( width, height );
1402 }
1403#else
1404 wxSize winSize = GetSize();
1405#endif
1406
1407 return winSize;
1408}
@ 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().

◆ GetZoneSettings()

◆ GetZoomLevelIndicator()

const wxString EDA_DRAW_FRAME::GetZoomLevelIndicator ( ) const
inherited

Return a human readable value for display in dialogs.

Definition at line 656 of file eda_draw_frame.cpp.

657{
658 // returns a human readable value which can be displayed as zoom
659 // level indicator in dialogs.
660 double zoom = m_canvas->GetGAL()->GetZoomFactor();
661 return wxString::Format( wxT( "Z %.2f" ), zoom );
662}
EDA_DRAW_PANEL_GAL * m_canvas
This the frame's interface to setting GAL display options.
double GetZoomFactor() const

References Format(), EDA_DRAW_PANEL_GAL::GetGAL(), KIGFX::GAL::GetZoomFactor(), EDA_DRAW_FRAME::m_canvas, and zoom.

Referenced by EDA_DRAW_FRAME::UpdateStatusBar(), and PL_EDITOR_FRAME::UpdateStatusBar().

◆ handleActivateEvent()

void PCB_BASE_FRAME::handleActivateEvent ( wxActivateEvent &  aEvent)
overrideprotectedvirtualinherited

Handle a window activation event.

Reimplemented from EDA_DRAW_FRAME.

Reimplemented in PCB_BASE_EDIT_FRAME.

Definition at line 116 of file pcb_base_frame.cpp.

117{
119
120#if defined( KICAD_USE_3DCONNEXION )
121 if( m_spaceMouse != nullptr )
122 {
123 m_spaceMouse->SetFocus( aEvent.GetActive() );
124 }
125#endif
126}
virtual void handleActivateEvent(wxActivateEvent &aEvent)
Handle a window activation event.
void SetFocus(bool aFocus)
Set the connection to the 3Dconnexion driver to the focus state so that 3DMouse data is routed to thi...

References EDA_DRAW_FRAME::handleActivateEvent(), PCB_BASE_FRAME::m_spaceMouse, and NL_PCBNEW_PLUGIN::SetFocus().

Referenced by PCB_BASE_EDIT_FRAME::handleActivateEvent().

◆ handleIconizeEvent()

void PCB_BASE_FRAME::handleIconizeEvent ( wxIconizeEvent &  aEvent)
overrideprotectedvirtualinherited

Handle a window iconize event.

Parameters
aEventis the data for the event.

Reimplemented from EDA_BASE_FRAME.

Definition at line 129 of file pcb_base_frame.cpp.

130{
132
133#if defined( KICAD_USE_3DCONNEXION )
134 if( m_spaceMouse != nullptr && aEvent.IsIconized() )
135 {
136 m_spaceMouse->SetFocus( false );
137 }
138#endif
139}
virtual void handleIconizeEvent(wxIconizeEvent &aEvent)
Handle a window iconize event.

References EDA_BASE_FRAME::handleIconizeEvent(), PCB_BASE_FRAME::m_spaceMouse, and NL_PCBNEW_PLUGIN::SetFocus().

◆ HandleSystemColorChange()

void EDA_BASE_FRAME::HandleSystemColorChange ( )
virtualinherited

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

Definition at line 1411 of file eda_base_frame.cpp.

1412{
1413 // Update the icon theme when the system theme changes and update the toolbars
1415 ThemeChanged();
1416
1417 // This isn't handled by ThemeChanged()
1418 if( GetMenuBar() )
1419 {
1420 // For icons in menus, icon scaling & hotkeys
1422 GetMenuBar()->Refresh();
1423 }
1424}
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.

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 367 of file eda_base_frame.cpp.

369{
370 bool checkRes = false;
371 bool enableRes = true;
372 bool showRes =