KiCad PCB EDA Suite
FOOTPRINT_WIZARD_FRAME Class Reference

#include <footprint_wizard_frame.h>

Inheritance diagram for FOOTPRINT_WIZARD_FRAME:
PCB_BASE_EDIT_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_WIZARD_FRAME (KIWAY *aKiway, wxWindow *parent, FRAME_T aFrameType)
 
 ~FOOTPRINT_WIZARD_FRAME ()
 
BOARD_ITEM_CONTAINERGetModel () const override
 
FOOTPRINTGetBuiltFootprint ()
 
void PythonPluginsReload ()
 Reload the Python plugins if they are newer than the already loaded, and load new plugins if any. More...
 
COLOR_SETTINGSGetColorSettings (bool aForceRefresh=false) const override
 Helper to retrieve the current color settings. More...
 
bool TryBefore (wxEvent &aEvent) override
 
wxString CreateNewLibrary (const wxString &aLibName=wxEmptyString, const wxString &aProposedName=wxEmptyString)
 If a library name is given, creates a new footprint library in the project folder with the given name. More...
 
wxString CreateNewProjectLibrary (const wxString &aLibName=wxEmptyString, const wxString &aProposedName=wxEmptyString)
 
bool AddLibrary (const wxString &aLibName=wxEmptyString, FP_LIB_TABLE *aTable=nullptr)
 Add an existing library to either the global or project library table. More...
 
void AppendCopyToUndoList (const PICKED_ITEMS_LIST &aItemsList, UNDO_REDO aCommandType) override
 As SaveCopyInUndoList, but appends the changes to the last undo item on the stack. More...
 
void RestoreCopyFromRedoList (wxCommandEvent &aEvent)
 Redo the last edit: More...
 
void RestoreCopyFromUndoList (wxCommandEvent &aEvent)
 Undo the last edit: More...
 
void RollbackFromUndo ()
 Perform an undo of the last edit without logging a corresponding redo. More...
 
void PutDataInPreviousState (PICKED_ITEMS_LIST *aList)
 Used in undo or redo command. More...
 
bool UndoRedoBlocked () const
 Check if the undo and redo operations are currently blocked. More...
 
void UndoRedoBlock (bool aBlock=true)
 Enable/disable undo and redo operations. More...
 
void SetGridVisibility (bool aVisible) override
 Override this function in the PCB_BASE_EDIT_FRAME to refill the layer widget. More...
 
void SetObjectVisible (GAL_LAYER_ID aLayer, bool aVisible=true)
 
virtual EDA_ANGLE GetRotationAngle () const
 Return the angle used for rotate operations. More...
 
void ShowBitmapPropertiesDialog (BOARD_ITEM *aBitmap)
 Set the angle used for rotate operations. More...
 
void ShowTextPropertiesDialog (BOARD_ITEM *aText)
 
int ShowTextBoxPropertiesDialog (BOARD_ITEM *aText)
 
void ShowGraphicItemPropertiesDialog (BOARD_ITEM *aItem)
 
void ActivateGalCanvas () override
 Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD. More...
 
virtual void SetBoard (BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr) override
 Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD. More...
 
void ClearUndoORRedoList (UNDO_REDO_LIST whichList, int aItemCount=-1) override
 Free the undo or redo list from List element. More...
 
void ClearListAndDeleteItems (PICKED_ITEMS_LIST *aList)
 
wxString GetDesignRulesPath ()
 Return the absolute path to the design rules file for the currently-loaded board. More...
 
APPEARANCE_CONTROLSGetAppearancePanel ()
 
PROPERTIES_PANELGetPropertiesPanel ()
 
void UpdateProperties ()
 
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)
 
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 ReCreateOptToolbar () override
 
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
 
virtual MAGNETIC_SETTINGSGetMagneticItemsSettings ()
 
void CommonSettingsChanged (bool aEnvVarsChanged, bool aTextVarsChanged) override
 Notification event that some of the common (suite-wide) settings have changed. More...
 
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...
 
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 COLOR4D GetGridColor ()
 
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...
 
virtual bool ShowModal (wxString *aResult=nullptr, wxWindow *aResultantFocusWindow=nullptr)
 Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until this KIWAY_PLAYER derivative calls DismissModal(). More...
 
virtual void KiwayMailIn (KIWAY_EXPRESS &aEvent)
 Receive KIWAY_EXPRESS messages from other players. More...
 
bool Destroy () override
 Our version of Destroy() which is virtual from wxWidgets. More...
 
bool IsModal () const override
 Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame. More...
 
void SetModal (bool aIsModal)
 
bool IsDismissed ()
 
void DismissModal (bool aRetVal, const wxString &aResult=wxEmptyString)
 
void CreateServer (int service, bool local=true)
 
void OnSockRequest (wxSocketEvent &evt)
 
void OnSockRequestServer (wxSocketEvent &evt)
 
virtual void ExecuteRemoteCommand (const char *cmdline)
 Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242). More...
 
void ChangeUserUnits (EDA_UNITS aUnits)
 
SETTINGS_MANAGERGetSettingsManager () const
 
bool ProcessEvent (wxEvent &aEvent) override
 Override the default process event handler to implement the auto save feature. More...
 
virtual void OnCharHook (wxKeyEvent &aKeyEvent)
 Capture the key event before it is sent to the GUI. More...
 
void OnMenuEvent (wxMenuEvent &event)
 The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't captured by the menus themselves. More...
 
virtual void RegisterUIUpdateHandler (int aID, const ACTION_CONDITIONS &aConditions) override
 Register a UI update handler for the control with ID aID. More...
 
virtual void RegisterUIUpdateHandler (const TOOL_ACTION &aAction, const ACTION_CONDITIONS &aConditions)
 Register an action's update conditions with the UI layer to allow the UI to appropriately display the state of its controls. More...
 
virtual void UnregisterUIUpdateHandler (int aID) override
 Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler. More...
 
virtual void UnregisterUIUpdateHandler (const TOOL_ACTION &aAction)
 Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler. More...
 
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 ClearUndoRedoList ()
 Clear the undo and redo list using ClearUndoORRedoList() More...
 
virtual void PushCommandToUndoList (PICKED_ITEMS_LIST *aItem)
 Add a command to undo in the undo list. More...
 
virtual void PushCommandToRedoList (PICKED_ITEMS_LIST *aItem)
 Add a command to redo in the redo list. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromUndoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromRedoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual int GetUndoCommandCount () const
 
virtual int GetRedoCommandCount () const
 
int GetMaxUndoItems () const
 
bool NonUserClose (bool aForce)
 
virtual void HandleSystemColorChange ()
 Update the UI in response to a change in the system colors. More...
 
TOOL_MANAGERGetToolManager () const
 Return the MVC controller. More...
 
virtual SELECTIONGetCurrentSelection ()
 Get the current selection from the canvas area. More...
 
virtual void PushTool (const TOOL_EVENT &aEvent)
 NB: the definition of "tool" is different at the user level. More...
 
virtual void PopTool (const TOOL_EVENT &aEvent)
 Pops a tool from the stack. More...
 
bool ToolStackIsEmpty ()
 
std::string CurrentToolName () const
 
bool IsCurrentTool (const TOOL_ACTION &aAction) const
 
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

FP_LIB_TABLEselectLibTable (bool aOptional=false)
 Prompts a user to select global or project library tables. More...
 
wxString createNewLibrary (const wxString &aLibName, const wxString &aProposedName, FP_LIB_TABLE *aTable)
 Create a new library in the given table (presumed to be either the global or project library table). More...
 
void handleActivateEvent (wxActivateEvent &aEvent) override
 Handle a window activation event. More...
 
void saveCopyInUndoList (PICKED_ITEMS_LIST *commandToUndo, const PICKED_ITEMS_LIST &aItemsList, UNDO_REDO aCommandType)
 
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...
 
virtual void onDarkModeToggle ()
 
bool canCloseWindow (wxCloseEvent &aCloseEvent) override
 
void handleIconizeEvent (wxIconizeEvent &aEvent) override
 Handle a window iconize event. More...
 
virtual void doReCreateMenuBar () override
 
FOOTPRINTloadFootprint (const LIB_ID &aFootprintId)
 Attempts to load aFootprintId from the footprint library table. 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)
 
virtual void setupUIConditions ()
 Setup the UI conditions for the various actions and their controls in this frame. More...
 
void initExitKey ()
 Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id. More...
 
void ensureWindowIsOnScreen ()
 
virtual void OnDropFiles (wxDropFilesEvent &aEvent)
 Handles event fired when a file is dropped to the window. More...
 
virtual void DoWithAcceptedFiles ()
 Execute action on accepted dropped file. More...
 

Static Protected Member Functions

static wxString GetAutoSaveFilePrefix ()
 

Protected Attributes

wxString m_wizardName
 name of the current wizard More...
 
wxString m_wizardDescription
 description of the wizard More...
 
wxString m_wizardStatus
 current wizard status More...
 
bool m_undoRedoBlocked
 
PANEL_SELECTION_FILTERm_selectionFilterPanel
 
APPEARANCE_CONTROLSm_appearancePanel
 
PROPERTIES_PANELm_propertiesPanel
 
wxAuiNotebook * m_tabbedPanel
 
bool m_darkMode
 Panel with Layers and Object Inspector tabs. More...
 
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

void OnSize (wxSizeEvent &event) override
 Recalculate the size of toolbars and display panel when the frame size changes. More...
 
void OnGridSize (wxSizeEvent &aSizeEvent)
 
void UpdateMsgPanel () override
 Redraw the message panel. More...
 
void updateView ()
 Rebuild the GAL view (reint tool manager, colors and drawings) must be run after any footprint change. More...
 
void ExportSelectedFootprint (wxCommandEvent &aEvent)
 Will let the caller exit from the wait loop, and get the built footprint. More...
 
void OnSashDrag (wxSashEvent &event)
 Resize the child windows when dragging a sash window border. More...
 
void ReCreatePageList ()
 Create or recreate the list of parameter pages for the current wizard. More...
 
void ReCreateParameterList ()
 Create the list of parameters for the current page. More...
 
void ResizeParamColumns ()
 Expand the 'Value' column to fill available. More...
 
void initParameterGrid ()
 Prepare the grid where parameters are displayed. More...
 
void SelectFootprintWizard ()
 Show the list of footprint wizards available into the system. More...
 
void ReloadFootprint ()
 Reload the current footprint. More...
 
void DisplayBuildMessage (wxString &aMessage)
 Display the message generated by the python build footprint script. More...
 
FOOTPRINT_WIZARDGetMyWizard ()
 Reloads the wizard by name. More...
 
void Process_Special_Functions (wxCommandEvent &event)
 
void DisplayWizardInfos ()
 Show all the details about the current wizard. More...
 
void doCloseWindow () override
 
void ReCreateHToolbar () override
 
void ReCreateVToolbar () override
 
void ClickOnPageList (wxCommandEvent &event)
 
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 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 SelectCurrentWizard (wxCommandEvent &event)
 
void DefaultParameters (wxCommandEvent &event)
 
void ParametersUpdated (wxGridEvent &event)
 Update the footprint python parameters values from the values in grid. 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 OnEditItemRequest (BOARD_ITEM *aItem) override
 Install the corresponding dialog editor for the given item. More...
 
void windowClosing (wxCloseEvent &event)
 (with its unexpected name so it does not collide with the real OnWindowClose() function provided in derived classes) is called just before a window closing, and is used to call a derivation specific SaveSettings(). More...
 
void commonInit (FRAME_T aFrameType)
 Collect common initialization functions used in all CTORs. More...
 
wxWindow * findQuasiModalDialog ()
 

Private Attributes

wxPanel * m_parametersPanel
 Panel for the page list and parameter grid. More...
 
wxListBox * m_pageList
 The list of pages. More...
 
WX_GRIDm_parameterGrid
 The list of parameters. More...
 
int m_parameterGridPage
 the page currently displayed by m_parameterGrid it is most of time the m_pageList selection, but can differ during transitions between pages. More...
 
wxTextCtrl * m_buildMessageBox
 
wxString m_auiPerspective
 Encoded string describing the AUI layout. More...
 
bool m_wizardListShown
 A show-once flag for the wizard list. More...
 
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
 

Detailed Description

Definition at line 52 of file footprint_wizard_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_WIZARD_FRAME()

FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME ( KIWAY aKiway,
wxWindow *  parent,
FRAME_T  aFrameType 
)

◆ ~FOOTPRINT_WIZARD_FRAME()

FOOTPRINT_WIZARD_FRAME::~FOOTPRINT_WIZARD_FRAME ( )

Returns
the primary data model.

Definition at line 220 of file footprint_wizard_frame.cpp.

221{
222 // Delete the GRID_TRICKS.
223 m_parameterGrid->PopEventHandler( true );
224
226 // Be sure any event cannot be fired after frame deletion:
227 GetCanvas()->SetEvtHandlerEnabled( false );
228
229 // Be sure a active tool (if exists) is deactivated:
230 if( m_toolManager )
232
233 EDA_3D_VIEWER_FRAME* draw3DFrame = Get3DViewerFrame();
234
235 if( draw3DFrame )
236 draw3DFrame->Destroy();
237
238 // Now this frame can be deleted
239}
Create and handle a window for the 3d viewer connected to a Kiway and a pcbboard.
void StopDrawing()
Prevent the GAL canvas from further drawing until it is recreated or StartDrawing() is called.
WX_GRID * m_parameterGrid
The list of parameters.
bool Destroy() override
Our version of Destroy() which is virtual from wxWidgets.
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
EDA_3D_VIEWER_FRAME * Get3DViewerFrame()
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:170
void DeactivateTool()
Deactivate the currently active tool.

References TOOL_MANAGER::DeactivateTool(), KIWAY_PLAYER::Destroy(), PCB_BASE_FRAME::Get3DViewerFrame(), PCB_BASE_FRAME::GetCanvas(), m_parameterGrid, TOOLS_HOLDER::m_toolManager, and EDA_DRAW_PANEL_GAL::StopDrawing().

Member Function Documentation

◆ ActivateGalCanvas()

void PCB_BASE_EDIT_FRAME::ActivateGalCanvas ( )
overridevirtualinherited

Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD.

Reimplemented from PCB_BASE_FRAME.

Reimplemented in PCB_EDIT_FRAME.

Definition at line 180 of file pcb_base_edit_frame.cpp.

181{
183
185}
virtual void ActivateGalCanvas() override
Use to start up the GAL drawing canvas.
void SyncLayersVisibility(const BOARD *aBoard)
Update "visibility" property of each layer of a given BOARD.

References PCB_BASE_FRAME::ActivateGalCanvas(), PCB_BASE_FRAME::GetCanvas(), PCB_BASE_FRAME::m_pcb, and PCB_DRAW_PANEL_GAL::SyncLayersVisibility().

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

◆ 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 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 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
PCBNEW_SETTINGS * GetPcbNewSettings() const
void UpdateUserUnits(BOARD_ITEM *aItem, bool *aSelectedItemsModified=nullptr)
Update any references within aItem (or its descendants) to the user units.
BOARD * GetBoard() const
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().

◆ AddLibrary()

bool PCB_BASE_EDIT_FRAME::AddLibrary ( const wxString &  aLibName = wxEmptyString,
FP_LIB_TABLE aTable = nullptr 
)
inherited

Add an existing library to either the global or project library table.

Parameters
aFileNamethe library to add; a file open dialog will be displayed if empty.
Returns
true if successfully added.

Definition at line 547 of file footprint_libraries_utils.cpp.

548{
549 if( aTable == nullptr )
550 aTable = selectLibTable();
551
552 if( aTable == nullptr )
553 return wxEmptyString;
554
555 bool isGlobal = ( aTable == &GFootprintTable );
556
557 wxFileName fn( aFilename );
558
559 if( aFilename.IsEmpty() )
560 {
562 KiCadFootprintLibPathExtension, true, isGlobal,
564 {
565 return false;
566 }
567 }
568
569 wxString libPath = fn.GetFullPath();
570 wxString libName = fn.GetName();
571
572 if( libName.IsEmpty() )
573 return false;
575
576 wxString type = IO_MGR::ShowType( lib_type );
577
578 // KiCad lib is our default guess. So it might not have the .pretty extension
579 // In this case, the extension is part of the library name
580 if( lib_type == IO_MGR::KICAD_SEXP && fn.GetExt() != KiCadFootprintLibPathExtension )
581 libName = fn.GetFullName();
582
583 // try to use path normalized to an environmental variable or project path
584 wxString normalizedPath = NormalizePath( libPath, &Pgm().GetLocalEnvVariables(), &Prj() );
585
586 try
587 {
588 FP_LIB_TABLE_ROW* row = new FP_LIB_TABLE_ROW( libName, normalizedPath, type, wxEmptyString );
589 aTable->InsertRow( row );
590
591 if( isGlobal )
593 else
594 Prj().PcbFootprintLibs()->Save( Prj().FootprintLibTblName() );
595 }
596 catch( const IO_ERROR& ioe )
597 {
598 DisplayError( this, ioe.What() );
599 return false;
600 }
601
603
604 if( editor )
605 {
606 LIB_ID libID( libName, wxEmptyString );
607 editor->SyncLibraryTree( true );
608 editor->FocusOnLibID( libID );
609 }
610
611 auto viewer = (FOOTPRINT_VIEWER_FRAME*) Kiway().Player( FRAME_FOOTPRINT_VIEWER, false );
612
613 if( viewer )
614 viewer->ReCreateLibraryList();
615
616 return true;
617}
bool LibraryFileBrowser(bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
Component library viewer main window.
Hold a record identifying a library accessed by the appropriate footprint library PLUGIN object in th...
Definition: fp_lib_table.h:41
static wxString GetGlobalTableFileName()
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:76
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:30
static const wxString ShowType(PCB_FILE_T aFileType)
Return a brief name for a plugin given aFileType enum.
Definition: io_mgr.cpp:77
static PCB_FILE_T GuessPluginTypeFromLibPath(const wxString &aLibPath)
Return a plugin type given a footprint library's libPath.
Definition: io_mgr.cpp:124
PCB_FILE_T
The set of file types that the IO_MGR knows about, and for which there has been a plugin written.
Definition: io_mgr.h:54
@ KICAD_SEXP
S-expression Pcbnew file format.
Definition: io_mgr.h:56
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:53
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
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:49
bool InsertRow(LIB_TABLE_ROW *aRow, bool doReplace=false)
Adds aRow if it does not already exist or if doReplace is true.
void Save(const wxString &aFileName) const
Write this library table to aFileName in s-expression form.
static wxString GetDefaultUserFootprintsPath()
Gets the default path we point users to create projects.
Definition: paths.cpp:108
FP_LIB_TABLE * selectLibTable(bool aOptional=false)
Prompts a user to select global or project library tables.
virtual FP_LIB_TABLE * PcbFootprintLibs(KIWAY &aKiway)
Return the table of footprint libraries.
Definition: project.cpp:324
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:300
FP_LIB_TABLE GFootprintTable
The global footprint library table.
Definition: cvpcb.cpp:134
wxString NormalizePath(const wxFileName &aFilePath, const ENV_VAR_MAP *aEnvVars, const wxString &aProjectPath)
Normalize a file path to an environmental variable, if possible.
Definition: env_paths.cpp:71
@ FRAME_FOOTPRINT_VIEWER
Definition: frame_type.h:42
@ FRAME_FOOTPRINT_EDITOR
Definition: frame_type.h:41
const std::string KiCadFootprintLibPathExtension
wxString KiCadFootprintLibPathWildcard()
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:111

References DisplayError(), editor, FRAME_FOOTPRINT_EDITOR, FRAME_FOOTPRINT_VIEWER, PATHS::GetDefaultUserFootprintsPath(), FP_LIB_TABLE::GetGlobalTableFileName(), GFootprintTable, IO_MGR::GuessPluginTypeFromLibPath(), LIB_TABLE::InsertRow(), IO_MGR::KICAD_SEXP, KiCadFootprintLibPathExtension, KiCadFootprintLibPathWildcard(), KIWAY_HOLDER::Kiway(), EDA_DRAW_FRAME::LibraryFileBrowser(), NormalizePath(), PROJECT::PcbFootprintLibs(), Pgm(), KIWAY::Player(), KIWAY_HOLDER::Prj(), LIB_TABLE::Save(), PCB_BASE_EDIT_FRAME::selectLibTable(), IO_MGR::ShowType(), and IO_ERROR::What().

Referenced by PCB_CONTROL::AddLibrary(), and PCB_BASE_EDIT_FRAME::createNewLibrary().

◆ 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
Handle actions that are shared between different applications.
#define _(s)

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(), FOOTPRINT_VIEWER_FRAME::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}
Handles action that are shared between different applications.
Definition: common_tools.h:38
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 PCB_BASE_EDIT_FRAME::AppendCopyToUndoList ( const PICKED_ITEMS_LIST aItemsList,
UNDO_REDO  aCommandType 
)
overridevirtualinherited

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

Implements PCB_BASE_FRAME.

Definition at line 301 of file undo_redo.cpp.

303{
304 PICKED_ITEMS_LIST* commandToUndo = PopCommandFromUndoList();
305
306 if( !commandToUndo )
307 commandToUndo = new PICKED_ITEMS_LIST();
308
309 saveCopyInUndoList( commandToUndo, aItemsList, aCommandType );
310}
virtual PICKED_ITEMS_LIST * PopCommandFromUndoList()
Return the last command to undo and remove it from list, nothing is deleted.
void saveCopyInUndoList(PICKED_ITEMS_LIST *commandToUndo, const PICKED_ITEMS_LIST &aItemsList, UNDO_REDO aCommandType)
Definition: undo_redo.cpp:155
A holder to handle information on schematic or board items.

References EDA_BASE_FRAME::PopCommandFromUndoList(), and PCB_BASE_EDIT_FRAME::saveCopyInUndoList().

◆ 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}
EDA_MSG_PANEL * m_messagePanel
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}

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

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 ReCreateMenuBar()
Recreates the menu bar.
void ClearFileHistory()
Clear all entries from the file history.

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

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

◆ ClearListAndDeleteItems()

void PCB_BASE_EDIT_FRAME::ClearListAndDeleteItems ( PICKED_ITEMS_LIST aList)
inherited

Definition at line 587 of file undo_redo.cpp.

588{
589 aList->ClearListAndDeleteItems( []( EDA_ITEM* item )
590 {
591 static_cast<BOARD_ITEM*>( item )->SetParentGroup( nullptr );
592 delete item;
593 } );
594}
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:58
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:85
void ClearListAndDeleteItems(std::function< void(EDA_ITEM *)> aItemDeleter)
Delete the list of pickers AND the data pointed by #m_PickedItem or #m_PickedItemLink according to th...

References PICKED_ITEMS_LIST::ClearListAndDeleteItems().

Referenced by PCB_BASE_EDIT_FRAME::ClearUndoORRedoList(), PCB_EDIT_FRAME::Edit_Zone_Params(), BOARD_EDITOR_CONTROL::PlaceFootprint(), and PCB_BASE_EDIT_FRAME::RollbackFromUndo().

◆ ClearMsgPanel()

◆ ClearUndoORRedoList()

void PCB_BASE_EDIT_FRAME::ClearUndoORRedoList ( UNDO_REDO_LIST  whichList,
int  aItemCount = -1 
)
overridevirtualinherited

Free the undo or redo list from List element.

Wrappers are deleted. Data pointed by wrappers are deleted if not in use in schematic i.e. when they are copy of a schematic item or they are no more in use (DELETED). Items are removed from the beginning of the list so this function can be called to remove old commands.

Parameters
whichListthe UNDO_REDO_CONTAINER to clear.
aItemCountthe count of items to remove. < 0 for all items.

Reimplemented from EDA_BASE_FRAME.

Definition at line 563 of file undo_redo.cpp.

564{
565 if( aItemCount == 0 )
566 return;
567
568 UNDO_REDO_CONTAINER& list = whichList == UNDO_LIST ? m_undoList : m_redoList;
569 unsigned icnt = list.m_CommandsList.size();
570
571 if( aItemCount > 0 )
572 icnt = aItemCount;
573
574 for( unsigned ii = 0; ii < icnt; ii++ )
575 {
576 if( list.m_CommandsList.size() == 0 )
577 break;
578
579 PICKED_ITEMS_LIST* curr_cmd = list.m_CommandsList[0];
580 list.m_CommandsList.erase( list.m_CommandsList.begin() );
581 ClearListAndDeleteItems( curr_cmd );
582 delete curr_cmd; // Delete command
583 }
584}
UNDO_REDO_CONTAINER m_undoList
UNDO_REDO_CONTAINER m_redoList
void ClearListAndDeleteItems(PICKED_ITEMS_LIST *aList)
Definition: undo_redo.cpp:587
A holder to handle a list of undo (or redo) commands.
std::vector< PICKED_ITEMS_LIST * > m_CommandsList

References PCB_BASE_EDIT_FRAME::ClearListAndDeleteItems(), UNDO_REDO_CONTAINER::m_CommandsList, EDA_BASE_FRAME::m_redoList, EDA_BASE_FRAME::m_undoList, and EDA_BASE_FRAME::UNDO_LIST.

Referenced by PCB_BASE_EDIT_FRAME::saveCopyInUndoList().

◆ ClearUndoRedoList()

◆ ClickOnPageList()

void FOOTPRINT_WIZARD_FRAME::ClickOnPageList ( wxCommandEvent &  event)
private

Definition at line 495 of file footprint_wizard_frame.cpp.

496{
497 if( m_pageList->GetSelection() >= 0 )
498 {
500 GetCanvas()->Refresh();
502 }
503}
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...
wxListBox * m_pageList
The list of pages.
void ReCreateParameterList()
Create the list of parameters for the current page.
void DisplayWizardInfos()
Show all the details about the current wizard.

References DisplayWizardInfos(), PCB_BASE_FRAME::GetCanvas(), m_pageList, ReCreateParameterList(), and EDA_DRAW_PANEL_GAL::Refresh().

Referenced by Process_Special_Functions().

◆ 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
wxAuiManager m_auimgr
SETTINGS_MANAGER * m_settingsManager
bool m_isClosing
Set by NonUserClose() to indicate that the user did not request the current close.
wxString m_mruPath
static wxString GetDefaultUserProjectsPath()
Gets the default path we point users to create projects.
Definition: paths.cpp:139
static const wxSize minSize(FRAME_T aFrameType)
static const wxSize defaultSize(FRAME_T aFrameType)
#define DEFAULT_MAX_UNDO_ITEMS
@ ID_AUTO_SAVE_TIMER
Definition: id.h:79

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

Referenced by EDA_BASE_FRAME::EDA_BASE_FRAME().

◆ CommonSettingsChanged()

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

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

Update menus, toolbars, local variables, etc.

Reimplemented from EDA_DRAW_FRAME.

Reimplemented in FOOTPRINT_EDIT_FRAME, FOOTPRINT_VIEWER_FRAME, and PCB_EDIT_FRAME.

Definition at line 994 of file pcb_base_frame.cpp.

995{
996 EDA_DRAW_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged );
997
999 PCB_RENDER_SETTINGS* renderSettings = static_cast<KIGFX::PCB_RENDER_SETTINGS*>( settings );
1000
1001 renderSettings->LoadColors( GetColorSettings( true ) );
1002 renderSettings->LoadDisplayOptions( GetDisplayOptions() );
1003
1004 // Note: KIGFX::REPAINT isn't enough for things that go from invisible to visible as
1005 // they won't be found in the view layer's itemset for re-painting.
1007 [&]( KIGFX::VIEW_ITEM* aItem ) -> int
1008 {
1009 if( dynamic_cast<RATSNEST_VIEW_ITEM*>( aItem ) )
1010 {
1011 return KIGFX::ALL; // ratsnest display
1012 }
1013 else if( dynamic_cast<PCB_TRACK*>( aItem ) )
1014 {
1015 return KIGFX::REPAINT; // track, arc & via clearance display
1016 }
1017 else if( dynamic_cast<PAD*>( aItem ) )
1018 {
1019 return KIGFX::REPAINT; // pad clearance display
1020 }
1021
1022 return 0;
1023 } );
1024
1026
1028
1029 // The 3D viewer isn't in the Kiway, so send its update manually
1031
1032 if( viewer )
1033 viewer->CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged );
1034}
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification that common settings are updated.
void RecreateToolbars()
Rebuild all toolbars, and update the checked state of check tools.
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
virtual RENDER_SETTINGS * GetSettings()=0
Return a pointer to current settings that are going to be used when drawing items.
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...
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
An abstract base class for deriving all objects that can be added to a VIEW.
Definition: view_item.h:77
void UpdateAllItems(int aUpdateFlags)
Update all items in the view according to the given flags.
Definition: view.cpp:1484
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
Definition: view.h:213
void UpdateAllItemsConditionally(int aUpdateFlags, std::function< bool(VIEW_ITEM *)> aCondition)
Update items in the view according to the given flags and condition.
Definition: view.cpp:1494
Definition: pad.h:59
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Display options control the way tracks, vias, outlines and other things are shown (for instance solid...
virtual COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const override
Helper to retrieve the current color settings.
virtual KIGFX::PCB_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
@ COLOR
Color has changed.
Definition: view_item.h:48
@ REPAINT
Item needs to be redrawn.
Definition: view_item.h:52
@ ALL
All except INITIAL_ADD.
Definition: view_item.h:53

References KIGFX::ALL, KIGFX::COLOR, EDA_3D_VIEWER_FRAME::CommonSettingsChanged(), EDA_DRAW_FRAME::CommonSettingsChanged(), PCB_BASE_FRAME::Get3DViewerFrame(), PCB_BASE_FRAME::GetCanvas(), PCB_BASE_FRAME::GetColorSettings(), PCB_BASE_FRAME::GetDisplayOptions(), KIGFX::VIEW::GetPainter(), KIGFX::PAINTER::GetSettings(), PCB_DRAW_PANEL_GAL::GetView(), KIGFX::PCB_RENDER_SETTINGS::LoadColors(), KIGFX::PCB_RENDER_SETTINGS::LoadDisplayOptions(), EDA_DRAW_FRAME::RecreateToolbars(), KIGFX::REPAINT, KIGFX::VIEW::UpdateAllItems(), and KIGFX::VIEW::UpdateAllItemsConditionally().

Referenced by FOOTPRINT_EDIT_FRAME::CommonSettingsChanged(), FOOTPRINT_VIEWER_FRAME::CommonSettingsChanged(), and PCB_EDIT_FRAME::CommonSettingsChanged().

◆ 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(), 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 }
wxString m_configName

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}

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}
Specialization of the wxAuiPaneInfo class for KiCad panels.
virtual wxWindow * GetToolCanvas() const =0
Canvas access.
A modified version of the wxInfoBar class that allows us to:
Definition: 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
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().

◆ createNewLibrary()

wxString PCB_BASE_EDIT_FRAME::createNewLibrary ( const wxString &  aLibName,
const wxString &  aProposedName,
FP_LIB_TABLE aTable 
)
protectedinherited

Create a new library in the given table (presumed to be either the global or project library table).

Definition at line 402 of file footprint_libraries_utils.cpp.

405{
406 // Kicad cannot write legacy format libraries, only .pretty new format because the legacy
407 // format cannot handle current features.
408 // The footprint library is actually a directory.
409
410 if( aTable == nullptr )
411 return wxEmptyString;
412
413 wxString initialPath = aProposedName.IsEmpty() ? Prj().GetProjectPath() : aProposedName;
414 wxFileName fn;
415 bool doAdd = false;
416 bool isGlobal = ( aTable == &GFootprintTable );
417
418 if( aLibName.IsEmpty() )
419 {
420 fn = initialPath;
421
423 KiCadFootprintLibPathExtension, false, isGlobal,
425 {
426 return wxEmptyString;
427 }
428
429 doAdd = true;
430 }
431 else
432 {
433 fn = aLibName;
434
435 if( !fn.IsAbsolute() )
436 {
437 fn.SetName( aLibName );
438 fn.MakeAbsolute( initialPath );
439 }
440
441 // Enforce the .pretty extension:
443 }
444
445 // We can save fp libs only using IO_MGR::KICAD_SEXP format (.pretty libraries)
447 wxString libPath = fn.GetFullPath();
448
449 try
450 {
451 PLUGIN::RELEASER pi( IO_MGR::PluginFind( piType ) );
452
453 bool writable = false;
454 bool exists = false;
455
456 try
457 {
458 writable = pi->IsFootprintLibWritable( libPath );
459 exists = true; // no exception was thrown, lib must exist.
460 }
461 catch( const IO_ERROR& )
462 {
463 // best efforts....
464 }
465
466 if( exists )
467 {
468 if( !writable )
469 {
470 wxString msg = wxString::Format( _( "Library %s is read only." ), libPath );
471 ShowInfoBarError( msg );
472 return wxEmptyString;
473 }
474 else
475 {
476 wxString msg = wxString::Format( _( "Library %s already exists." ), libPath );
477 KIDIALOG dlg( this, msg, _( "Confirmation" ), wxOK | wxCANCEL | wxICON_WARNING );
478 dlg.SetOKLabel( _( "Overwrite" ) );
479 dlg.DoNotShowCheckbox( __FILE__, __LINE__ );
480
481 if( dlg.ShowModal() == wxID_CANCEL )
482 return wxEmptyString;
483
484 pi->FootprintLibDelete( libPath );
485 }
486 }
487
488 pi->FootprintLibCreate( libPath );
489 }
490 catch( const IO_ERROR& ioe )
491 {
492 DisplayError( this, ioe.What() );
493 return wxEmptyString;
494 }
495
496 if( doAdd )
497 AddLibrary( libPath, aTable );
498
499 return libPath;
500}
void ShowInfoBarError(const wxString &aErrorMsg, bool aShowCloseButton=false, WX_INFOBAR::MESSAGE_TYPE aType=WX_INFOBAR::MESSAGE_TYPE::GENERIC)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left o...
static PLUGIN * PluginFind(PCB_FILE_T aFileType)
Return a PLUGIN which the caller can use to import, export, save, or load design documents.
Definition: io_mgr.cpp:58
Helper class to create more flexible dialogs, including 'do not show again' checkbox handling.
Definition: confirm.h:46
bool AddLibrary(const wxString &aLibName=wxEmptyString, FP_LIB_TABLE *aTable=nullptr)
Add an existing library to either the global or project library table.
Releases a PLUGIN in the context of a potential thrown exception through its destructor.
Definition: io_mgr.h:564
virtual const wxString GetProjectPath() const
Return the full path of the project.
Definition: project.cpp:126

References _, PCB_BASE_EDIT_FRAME::AddLibrary(), DisplayError(), KIDIALOG::DoNotShowCheckbox(), PLUGIN::FootprintLibCreate(), PLUGIN::FootprintLibDelete(), Format(), PATHS::GetDefaultUserFootprintsPath(), PROJECT::GetProjectPath(), GFootprintTable, PLUGIN::IsFootprintLibWritable(), IO_MGR::KICAD_SEXP, KiCadFootprintLibPathExtension, KiCadFootprintLibPathWildcard(), EDA_DRAW_FRAME::LibraryFileBrowser(), IO_MGR::PluginFind(), KIWAY_HOLDER::Prj(), EDA_BASE_FRAME::ShowInfoBarError(), KIDIALOG::ShowModal(), and IO_ERROR::What().

Referenced by PCB_BASE_EDIT_FRAME::CreateNewLibrary(), and PCB_BASE_EDIT_FRAME::CreateNewProjectLibrary().

◆ CreateNewLibrary()

wxString PCB_BASE_EDIT_FRAME::CreateNewLibrary ( const wxString &  aLibName = wxEmptyString,
const wxString &  aProposedName = wxEmptyString 
)
inherited

If a library name is given, creates a new footprint library in the project folder with the given name.

If no library name is given it prompts user for a library path, then creates a new footprint library at that location. If library exists, user is warned about that, and is given a chance to abort the new creation, and in that case existing library is first deleted.

Parameters
aProposedNameis the initial path and filename shown in the file chooser dialog.
Returns
The newly created library path if library was successfully created, else wxEmptyString because user aborted or error.

Definition at line 393 of file footprint_libraries_utils.cpp.

395{
396 FP_LIB_TABLE* table = selectLibTable();
397
398 return createNewLibrary( aLibName, aProposedName, table );
399}
wxString createNewLibrary(const wxString &aLibName, const wxString &aProposedName, FP_LIB_TABLE *aTable)
Create a new library in the given table (presumed to be either the global or project library table).

References PCB_BASE_EDIT_FRAME::createNewLibrary(), and PCB_BASE_EDIT_FRAME::selectLibTable().

Referenced by PCB_EDIT_FRAME::ExportFootprintsToLibrary(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), and FOOTPRINT_EDIT_FRAME::SaveLibraryAs().

◆ CreateNewProjectLibrary()

wxString PCB_BASE_EDIT_FRAME::CreateNewProjectLibrary ( const wxString &  aLibName = wxEmptyString,
const wxString &  aProposedName = wxEmptyString 
)
inherited

Definition at line 386 of file footprint_libraries_utils.cpp.

388{
389 return createNewLibrary( aLibName, aProposedName, Prj().PcbFootprintLibs() );
390}

References PCB_BASE_EDIT_FRAME::createNewLibrary(), and KIWAY_HOLDER::Prj().

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

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

◆ DefaultParameters()

void FOOTPRINT_WIZARD_FRAME::DefaultParameters ( wxCommandEvent &  event)
private

Definition at line 201 of file footprint_wizard_frame_functions.cpp.

202{
203 FOOTPRINT_WIZARD* footprintWizard = GetMyWizard();
204
205 if ( footprintWizard == nullptr )
206 return;
207
208 footprintWizard->ResetParameters();
209
210 // Reload
214}
FOOTPRINT_WIZARD * GetMyWizard()
Reloads the wizard by name.
void ReloadFootprint()
Reload the current footprint.
The parent class from where any footprint wizard class must derive.
virtual void ResetParameters()=0
Reset all wizard parameters to default values.

References DisplayWizardInfos(), GetMyWizard(), ReCreateParameterList(), ReloadFootprint(), and FOOTPRINT_WIZARD::ResetParameters().

◆ 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 FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_VIEWER_FRAME::doCloseWindow(), doCloseWindow(), ExportSelectedFootprint(), and SYMBOL_VIEWER_FRAME::FinishModal().

◆ DisplayBuildMessage()

void FOOTPRINT_WIZARD_FRAME::DisplayBuildMessage ( wxString &  aMessage)
private

Display the message generated by the python build footprint script.

Definition at line 125 of file footprint_wizard_frame_functions.cpp.

126{
127 m_buildMessageBox->SetValue( aMessage );
128}

References m_buildMessageBox.

Referenced by GetBuiltFootprint(), and ReloadFootprint().

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

◆ 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}
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
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().

◆ DisplayWizardInfos()

void FOOTPRINT_WIZARD_FRAME::DisplayWizardInfos ( )
private

Show all the details about the current wizard.

Definition at line 78 of file footprint_wizard_frame_functions.cpp.

79{
80 wxString msg;
81
82 msg = _( "Footprint Wizard" );
83 msg << wxT( " [" );
84
85 if( !m_wizardName.IsEmpty() )
86 msg << m_wizardName;
87 else
88 msg += _( "no wizard selected" );
89
90 msg << wxT( "]" );
91
92 SetTitle( msg );
93}
wxString m_wizardName
name of the current wizard

References _, and m_wizardName.

Referenced by ClickOnPageList(), DefaultParameters(), OnActivate(), ParametersUpdated(), ReCreatePageList(), and SelectFootprintWizard().

◆ 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_WIZARD_FRAME::doCloseWindow ( )
overrideprivatevirtual

Reimplemented from EDA_BASE_FRAME.

Definition at line 242 of file footprint_wizard_frame.cpp.

243{
244 SaveSettings( config() );
245
246 if( IsModal() )
247 {
248 // Only dismiss a modal frame once, so that the return values set by
249 // the prior DismissModal() are not bashed for ShowModal().
250 if( !IsDismissed() )
251 DismissModal( false );
252 }
253}
virtual APP_SETTINGS_BASE * config() const
Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
bool IsDismissed()
void DismissModal(bool aRetVal, const wxString &aResult=wxEmptyString)
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

References EDA_BASE_FRAME::config(), KIWAY_PLAYER::DismissModal(), KIWAY_PLAYER::IsDismissed(), KIWAY_PLAYER::IsModal(), and SaveSettings().

◆ doReCreateMenuBar()

void PCB_BASE_FRAME::doReCreateMenuBar ( )
overrideprotectedvirtualinherited

Reimplemented from EDA_DRAW_FRAME.

Reimplemented in FOOTPRINT_EDIT_FRAME, FOOTPRINT_VIEWER_FRAME, and PCB_EDIT_FRAME.

Definition at line 706 of file pcb_base_frame.cpp.

707{
708}

◆ 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.
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:142

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

Referenced by EDA_BASE_FRAME::OnDropFiles().

◆ ensureWindowIsOnScreen()

void EDA_BASE_FRAME::ensureWindowIsOnScreen ( )
protectedinherited

Definition at line 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().

◆ ExportSelectedFootprint()

void FOOTPRINT_WIZARD_FRAME::ExportSelectedFootprint ( wxCommandEvent &  aEvent)
private

Will let the caller exit from the wait loop, and get the built footprint.

Definition at line 256 of file footprint_wizard_frame.cpp.

257{
258 DismissModal( true );
259 Close();
260}

References KIWAY_PLAYER::DismissModal().

◆ 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
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
Definition: view.h:69
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
KIID niluuid(0)
@ 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.
KIGFX::VIEW_CONTROLS * GetViewControls() const
Return a pointer to the #VIEW_CONTROLS instance used in the panel.
virtual KIGFX::VIEW * GetView() const
Return a pointer to the #VIEW instance used in the panel.
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
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().

◆ GetAboutTitle()

const wxString & EDA_BASE_FRAME::GetAboutTitle ( ) const
inlineinherited

Definition at line 506 of file eda_base_frame.h.

506{ return wxGetTranslation( m_aboutTitle ); }
wxString 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_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
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().

◆ GetAppearancePanel()

◆ 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

Definition at line 605 of file pcb_base_frame.cpp.

606{
608}
const VECTOR2I & GetAuxOrigin()
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Definition: board.cpp:682

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

Referenced by PCB_BASE_FRAME::GetUserOrigin().

◆ 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(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::GetModel(), 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(), FOOTPRINT_VIEWER_FRAME::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(), 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(), FOOTPRINT_VIEWER_FRAME::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(), UpdateMsgPanel(), DRC_TOOL::updatePointers(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), PCB_EDIT_FRAME::UpdateTitle(), PCB_EDIT_FRAME::UpdateUserInterface(), DISPLAY_FOOTPRINTS_FRAME::updateView(), FOOTPRINT_EDIT_FRAME::UpdateView(), FOOTPRINT_VIEWER_FRAME::updateView(), 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
const wxSize GetPageSizeIU() const override
Works off of GetPageSettings() to return the size of the paper page in the internal units of this par...

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

◆ GetBuiltFootprint()

FOOTPRINT * FOOTPRINT_WIZARD_FRAME::GetBuiltFootprint ( )

Definition at line 148 of file footprint_wizard_frame_functions.cpp.

149{
151
152 if( footprintWizard && m_modal_ret_val )
153 {
154 wxString msg;
155 FOOTPRINT* footprint = footprintWizard->GetFootprint( &msg );
156 DisplayBuildMessage( msg );
157
158 return footprint;
159 }
160
161 return nullptr;
162}
void DisplayBuildMessage(wxString &aMessage)
Display the message generated by the python build footprint script.
static FOOTPRINT_WIZARD * GetWizard(const wxString &aName)
virtual FOOTPRINT * GetFootprint(wxString *aMessage)=0
Build the footprint itself and returns it to the caller function.

References DisplayBuildMessage(), FOOTPRINT_WIZARD::GetFootprint(), FOOTPRINT_WIZARD_LIST::GetWizard(), KIWAY_PLAYER::m_modal_ret_val, and m_wizardName.

◆ 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(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), DIALOG_NET_INSPECTOR::buildNetsList(), PCB_SELECTION_TOOL::canvas(), PCB_TOOL_BASE::canvas(), PCB_VIEWER_TOOLS::canvas(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), ClickOnPageList(), PCB_BASE_FRAME::CommonSettingsChanged(), FOOTPRINT_EDIT_FRAME::CommonSettingsChanged(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::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(), 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(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), ReCreatePageList(), PCB_EDIT_FRAME::redrawNetnames(), refreshCallback(), DIALOG_DRC::refreshEditor(), DIALOG_FOOTPRINT_CHECKER::refreshEditor(), 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(), FOOTPRINT_VIEWER_FRAME::SaveSettings(), DIALOG_FIND::search(), PCB_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectAllConnectedTracks(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::updateView(), 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_VIEWER_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_WIZARD_FRAME::GetColorSettings ( bool  aForceRefresh = false) const
overridevirtual

Helper to retrieve the current color settings.

Reimplemented from PCB_BASE_FRAME.

Definition at line 281 of file footprint_wizard_frame.cpp.

282{
283 wxString currentTheme = GetFootprintEditorSettings()->m_ColorTheme;
284
285 return Pgm().GetSettingsManager().GetColorSettings( currentTheme );
286}
wxString m_ColorTheme
Active color theme name.
Definition: app_settings.h:190
FOOTPRINT_EDITOR_SETTINGS * GetFootprintEditorSettings() const

References PCB_BASE_FRAME::GetFootprintEditorSettings(), APP_SETTINGS_BASE::m_ColorTheme, and Pgm().

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

virtual SELECTION & TOOLS_HOLDER::GetCurrentSelection ( )
inlinevirtualinherited

◆ GetDesignRulesPath()

wxString PCB_BASE_EDIT_FRAME::GetDesignRulesPath ( )
inherited

Return the absolute path to the design rules file for the currently-loaded board.

Note
There is no guarantee that this file actually exists and can be opened! It only makes sense from PcbNew but is needed in PCB_BASE_EDIT_FRAME::SetBoard.

Definition at line 268 of file pcb_base_edit_frame.cpp.

269{
270 if( !GetBoard() )
271 return wxEmptyString;
272
273 wxFileName fn = GetBoard()->GetFileName();
274 fn.SetExt( DesignRulesFileExtension );
275 return Prj().AbsolutePath( fn.GetFullName() );
276}
const wxString & GetFileName() const
Definition: board.h:302
virtual const wxString AbsolutePath(const wxString &aFileName) const
Fix up aFileName if it is relative to the project's directory to be an absolute path and filename.
Definition: project.cpp:305
const std::string DesignRulesFileExtension

References PROJECT::AbsolutePath(), DesignRulesFileExtension, PCB_BASE_FRAME::GetBoard(), BOARD::GetFileName(), and KIWAY_HOLDER::Prj().

Referenced by PCB_EDIT_FRAME::CommonSettingsChanged(), DRAWING_TOOL::DrawVia(), BOARD_INSPECTION_TOOL::makeDRCEngine(), PCB_EDIT_FRAME::onBoardLoaded(), DIALOG_DRC::OnRunDRCClick(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), PANEL_SETUP_RULES::TransferDataFromWindow(), and PANEL_SETUP_RULES::TransferDataToWindow().

◆ 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}
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:325

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

virtual COLOR4D EDA_DRAW_FRAME::GetGridColor ( )
inlinevirtualinherited

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

◆ 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_WIZARD_FRAME::GetModel ( ) const
overridevirtual
Returns
the primary data model.

Implements PCB_BASE_FRAME.

Definition at line 626 of file footprint_wizard_frame.cpp.

627{
628 return GetBoard()->GetFirstFootprint();
629}
FOOTPRINT * GetFirstFootprint() const
Get the first footprint on the board or nullptr.
Definition: board.h:397

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

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

◆ GetMyWizard()

FOOTPRINT_WIZARD * FOOTPRINT_WIZARD_FRAME::GetMyWizard ( )
private

Reloads the wizard by name.

Definition at line 131 of file footprint_wizard_frame_functions.cpp.

132{
133 if( m_wizardName.Length() == 0 )
134 return nullptr;
135
137
138 if( !footprintWizard )
139 {
140 wxMessageBox( _( "Couldn't reload footprint wizard" ) );
141 return nullptr;
142 }
143
144 return footprintWizard;
145}

References _, FOOTPRINT_WIZARD_LIST::GetWizard(), and m_wizardName.

Referenced by DefaultParameters(), ParametersUpdated(), ReCreatePageList(), ReCreateParameterList(), and ReloadFootprint().

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

◆ GetPropertiesPanel()

PROPERTIES_PANEL * PCB_BASE_EDIT_FRAME::GetPropertiesPanel ( )
inlineinherited

Definition at line 220 of file pcb_base_edit_frame.h.

220{ return m_propertiesPanel; }
PROPERTIES_PANEL * m_propertiesPanel

References PCB_BASE_EDIT_FRAME::m_propertiesPanel.

◆ GetRedoCommandCount()

◆ GetRotationAngle()

EDA_ANGLE PCB_BASE_EDIT_FRAME::GetRotationAngle ( ) const
virtualinherited

Return the angle used for rotate operations.

Reimplemented in FOOTPRINT_EDIT_FRAME, and PCB_EDIT_FRAME.

Definition at line 173 of file pcb_base_edit_frame.cpp.

174{
175 // Return a default angle (90 degrees) used for rotate operations.
176 return ANGLE_90;
177}
static constexpr EDA_ANGLE & ANGLE_90
Definition: eda_angle.h:414

References ANGLE_90.

Referenced by TOOL_EVT_UTILS::GetEventRotationAngle().

◆ 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(), FOOTPRINT_VIEWER_FRAME::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(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), TOOLS_HOLDER::CommonSettingsChanged(), DIALOG_FOOTPRINT_CHECKER::deleteAllMarkers(), DIALOG_ERC::deleteAllMarkers(), DIALOG_DRC::deleteAllMarkers(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_MIGRATE_BUSES::DIALOG_MIGRATE_BUSES(), PL_DRAW_PANEL_GAL::DisplayDrawingSheet(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), SIM_PLOT_FRAME::doCloseWindow(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), SCH_FIELD::DoHypertextAction(), SCH_TEXT::DoHypertextAction(), SCH_TEXTBOX::DoHypertextAction(), DRAWING_TOOL::DrawVia(), TRACK_WIDTH_MENU::eventHandler(), DIFF_PAIR_MENU::eventHandler(), SCH_EDIT_FRAME::ExecuteRemoteCommand(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), SCH_NAVIGATE_TOOL::Forward(), GERBVIEW_FRAME::GERBVIEW_FRAME(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), FP_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), PL_EDITOR_FRAME::GetLayoutFromRedoList(), PL_EDITOR_FRAME::GetLayoutFromUndoList(), DIALOG_PAD_PROPERTIES::initValues(), ROUTER_TOOL::InlineBreakTrack(), SCH_EDIT_FRAME::KiwayMailIn(), PCB_EDIT_FRAME::KiwayMailIn(), PCB_EDIT_FRAME::LoadProjectSettings(), FOOTPRINT_EDIT_FRAME::LoadSettings(), SYMBOL_EDIT_FRAME::LoadSymbol(), 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::OnTableRangeSelected(), 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(), 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_PCB_EDITOR
Definition: frame_type.h:40
@ FRAME_FOOTPRINT_VIEWER_MODAL
Definition: frame_type.h:43
@ 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_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_WIZARD_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 528 of file footprint_wizard_frame.cpp.

529{
530 auto cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
531 wxASSERT( cfg );
532
533 return cfg ? &cfg->m_FootprintWizard : nullptr;
534}

◆ 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_EDIT_FRAME::handleActivateEvent ( wxActivateEvent &  aEvent)
overrideprotectedvirtualinherited

Handle a window activation event.

Reimplemented from PCB_BASE_FRAME.

Definition at line 279 of file pcb_base_edit_frame.cpp.

280{
282
283 // The text in the collapsible pane headers need to be updated
286}
void RefreshCollapsiblePanes()
Function to force a redraw of the collapsible panes in this control.
void handleActivateEvent(wxActivateEvent &aEvent) override
Handle a window activation event.

References PCB_BASE_FRAME::handleActivateEvent(), PCB_BASE_EDIT_FRAME::m_appearancePanel, and APPEARANCE_CONTROLS::RefreshCollapsiblePanes().

◆ 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.
void SetFocus(bool aFocus)
Set the connection to the 3Dconnexion driver to the focus state so that 3DMouse data is routed to thi...
NL_PCBNEW_PLUGIN * m_spaceMouse

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

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

Referenced by EDA_BASE_FRAME::RegisterUIUpdateHandler().

◆ HardRedraw()

void EDA_DRAW_FRAME::HardRedraw ( )
virtualinherited

Rebuild the GAL and redraws the screen.

Call when something went wrong.

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

Definition at line 912 of file eda_draw_frame.cpp.

913{
914 // To be implemented by subclasses.
915}

Referenced by COMMON_TOOLS::ZoomRedraw().

◆ HasKiway()

bool KIWAY_HOLDER::HasKiway ( ) const
inlineinherited

Safety check before asking for the Kiway reference.

Returns
true if kiway is non-null

Definition at line 63 of file kiway_holder.h.

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

References KIWAY_HOLDER::m_kiway.

Referenced by DIALOG_SHIM::~DIALOG_SHIM().

◆ help_name()

wxString EDA_BASE_FRAME::help_name ( )
virtualinherited

Reimplemented in KICAD_MANAGER_FRAME.

Definition at line 822 of file eda_base_frame.cpp.

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

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

Referenced by COMMON_CONTROL::ShowHelp().

◆ HideSolderMask()

void PCB_BASE_FRAME::HideSolderMask ( )
inherited

Definition at line 546 of file pcb_base_frame.cpp.

547{
548 KIGFX::PCB_VIEW* view = GetCanvas()->GetView();
549
550 if( view && GetBoard()->m_SolderMask && view->HasItem( GetBoard()->m_SolderMask ) )
551 view->Remove( GetBoard()->m_SolderMask );
552}
virtual void Remove(VIEW_ITEM *aItem) override
Remove a VIEW_ITEM from the view.
Definition: pcb_view.cpp:75
bool HasItem(const VIEW_ITEM *aItem) const
Indicates whether or not the given item has been added to the view.
Definition: view.cpp:1577

References PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), PCB_DRAW_PANEL_GAL::GetView(), KIGFX::VIEW::HasItem(), and KIGFX::PCB_VIEW::Remove().

Referenced by EDIT_TOOL::doMoveSelection(), and BOARD_COMMIT::Push().

◆ ImportHotkeyConfigFromFile()

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

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

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

◆ initExitKey()

void EDA_BASE_FRAME::initExitKey ( )
protectedinherited

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

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

Definition at line 1288 of file eda_base_frame.cpp.

1289{
1290 wxAcceleratorEntry entries[1];
1291 entries[0].Set( wxACCEL_CTRL, int( 'Q' ), wxID_EXIT );
1292 wxAcceleratorTable accel( 1, entries );
1293 SetAcceleratorTable( accel );
1294}

◆ initParameterGrid()

void FOOTPRINT_WIZARD_FRAME::initParameterGrid ( )
private

Prepare the grid where parameters are displayed.

Definition at line 317 of file footprint_wizard_frame.cpp.

318{
320
321 // Prepare the grid where parameters are displayed
322
323 m_parameterGrid->CreateGrid( 0, 3 );
324
325 m_parameterGrid->SetColLabelValue( WIZ_COL_NAME, _( "Parameter" ) );
326 m_parameterGrid->SetColLabelValue( WIZ_COL_VALUE, _( "Value" ) );
327 m_parameterGrid->SetColLabelValue( WIZ_COL_UNITS, _( "Units" ) );
328
330 m_parameterGrid->SetColLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
331 m_parameterGrid->AutoSizeColumns();
332
333 m_parameterGrid->AutoSizeRows();
334 m_parameterGrid->SetRowLabelSize( 0 );
335
336 m_parameterGrid->DisableDragGridSize();
337 m_parameterGrid->DisableDragColSize();
338
339 m_parameterGrid->Connect( wxEVT_SIZE,
340 wxSizeEventHandler( FOOTPRINT_WIZARD_FRAME::OnGridSize ),
341 nullptr, this );
342}
int m_parameterGridPage
the page currently displayed by m_parameterGrid it is most of time the m_pageList selection,...
void OnGridSize(wxSizeEvent &aSizeEvent)
void SetColLabelSize(int aHeight)
Hide wxGrid's SetColLabelSize() method with one which makes sure the size is tall enough for the syst...
Definition: wx_grid.cpp:144
@ WIZ_COL_VALUE
@ WIZ_COL_NAME
@ WIZ_COL_UNITS

References _, m_parameterGrid, m_parameterGridPage, OnGridSize(), WX_GRID::SetColLabelSize(), WIZ_COL_NAME, WIZ_COL_UNITS, and WIZ_COL_VALUE.

◆ isAutoSaveRequired()

virtual bool EDA_