72#include <wx/snglinst.h> 
   76#include <wx/filedlg.h> 
   80#include <wx/snglinst.h> 
   81#include <wx/fdrepdlg.h> 
   83#define FR_HISTORY_LIST_CNT     10    
   98                                const wxString& aTitle, const wxPoint& aPos, const wxSize& aSize,
 
   99                                long aStyle, const wxString& aFrameName, const 
EDA_IU_SCALE& aIuScale ) :
 
  100        KIWAY_PLAYER( aKiway, aParent, aFrameType, aTitle, aPos, aSize, aStyle, aFrameName, aIuScale ),
 
  128    m_auimgr.SetFlags( wxAUI_MGR_DEFAULT );
 
  130    if( ( aStyle & wxFRAME_NO_TASKBAR ) == 0 )
 
  132        CreateStatusBar( 8 )->SetDoubleBuffered( 
true );
 
  151    Bind( wxEVT_DPI_CHANGED,
 
  152          [&]( wxDPIChangedEvent& )
 
  154              if( ( GetWindowStyle() & wxFRAME_NO_TASKBAR ) == 0 )
 
 
  199    auto gridSelectorFactory =
 
  213    auto zoomSelectorFactory =
 
  225    auto overrideLocksFactory =
 
 
  258        if( !
Pgm().SingleInstance()->IsAnotherRunning() )
 
 
  272    wxRect  rect = GetScreenRect();
 
  273    wxPoint 
center = rect.GetPosition() + rect.GetSize() / 2;
 
  283        if( !frame->IsVisible() )
 
  287        if( frame->IsIconized() )
 
  288            frame->Iconize( 
false );
 
  291        frame->SetPosition( 
center - frame->GetSize() / 2 );
 
  296    frame->Show( !frame->IsVisible() );
 
  297    frame->SetPosition( 
center - frame->GetSize() / 2 );
 
 
  304    return frame && frame->IsVisible();
 
 
  332        wxCommandEvent e( EDA_EVT_UNITS_CHANGED );
 
  333        ProcessEventLocally( e );
 
 
  413    wxArrayString gridsList;
 
  419    for( 
const wxString& 
grid : gridsList )
 
 
  460    int                        new_selection = 0;      
 
  461    double                     last_approx = 1e9;      
 
  464    for( 
size_t jj = 0; jj < zoomList.size(); ++jj )
 
  466        double rel_error = std::fabs( zoomList[jj] - 
zoom ) / 
zoom;
 
  468        if( rel_error < last_approx )
 
  470            last_approx = rel_error;
 
  473            new_selection = (int) jj + 1;
 
  477    if( curr_selection != new_selection )
 
 
  484    wxCHECK_RET( 
m_gridSelectBox, wxS( 
"m_gridSelectBox uninitialized" ) );
 
  492        wxUpdateUIEvent 
dummy;
 
  499        wxUpdateUIEvent 
dummy;
 
 
  533    wxCHECK( 
config(), 
true );
 
 
  563    wxCHECK( 
config(), 
false );
 
 
  602        if( 
zoom == current )
 
 
  610    wxCHECK_RET( 
m_zoomSelectBox, wxS( 
"m_zoomSelectBox uninitialized" ) );
 
 
  634        wxSize clientSize = GetClientSize();
 
 
  650    std::shared_ptr<ZOOM_MENU> zoomMenu = std::make_shared<ZOOM_MENU>( 
this );
 
  651    zoomMenu->SetTool( commonTools );
 
  654    std::shared_ptr<GRID_MENU> gridMenu = std::make_shared<GRID_MENU>( 
this );
 
  655    gridMenu->SetTool( commonTools );
 
 
  668    SetStatusText( msg, 6 );
 
 
  677    SetStatusText( msg, 7 );
 
 
  689    int            currentIdx = 
m_toolManager->GetSettings()->m_Window.grid.last_size_idx;
 
  691    msg.Printf( 
_( 
"grid %s" ), gridSettings.
grids[currentIdx].UserUnitsMessageText( 
this, 
false ) );
 
  693    SetStatusText( msg, 4 );
 
 
  709    default:              msg = 
_( 
"Units" );  
break;
 
  712    SetStatusText( msg, 5 );
 
 
  728    constexpr int numLocalFields = 8;
 
  730    wxStatusBar* stsbar = GetStatusBar();
 
  734    int totalFields = stsbar->GetFieldsCount();
 
  736    std::vector<int> dims = {
 
  750        KIUI::GetTextSize( wxT( 
"dx 1234.1234  dy 1234.1234  dist 1234.1234" ), stsbar ).x,
 
  765    for( 
int& dim : dims )
 
  768    for( 
int idx = numLocalFields; idx < totalFields; ++idx )
 
  769        dims.emplace_back( stsbar->GetStatusWidth( idx ) );
 
  771    SetStatusWidths( dims.size(), dims.data() );
 
 
  776                                                const wxString& 
name )
 
 
  802    return wxString::Format( wxT( 
"Z %.2f" ), 
zoom );
 
 
  877        m_messagePanel->AppendMessage( aTextUpper, aTextLower, aPadding );
 
 
  906        m_messagePanel->AppendMessage( aTextUpper, aTextLower, aPadding );
 
 
  913    wxCHECK_RET( aItem, wxT( 
"Invalid EDA_ITEM pointer.  Bad programmer." ) );
 
  915    std::vector<MSG_PANEL_ITEM> items;
 
 
  928    GetCanvas()->SetEvtHandlerEnabled( 
true );
 
 
  967    wxString envCanvasType;
 
  969    if( wxGetEnv( 
"KICAD_SOFTWARE_RENDERING", &envCanvasType ) )
 
  971        if( envCanvasType.CmpNoCase( 
"1" ) == 0
 
  972            || envCanvasType.CmpNoCase( 
"true" ) == 0
 
  973            || envCanvasType.CmpNoCase( 
"yes" ) == 0 )
 
 
  989    static std::vector<FRAME_T> s_allowedFrames = { 
FRAME_SCH,
 
  999    if( wxGetEnv( 
"KICAD_SOFTWARE_RENDERING", 
nullptr ) )
 
 1012        cfg->m_Graphics.canvas_type = 
static_cast<int>( aCanvasType );
 
 
 1023    double xOffset = fmod( gridOrigin.
x, gridSize.
x );
 
 1024    int    x = 
KiROUND( (aPosition.
x - xOffset) / gridSize.
x );
 
 1025    double yOffset = fmod( gridOrigin.
y, gridSize.
y );
 
 1026    int    y = 
KiROUND( (aPosition.
y - yOffset) / gridSize.
y );
 
 
 1037    double xOffset = fmod( gridOrigin.
x, gridSize.
x );
 
 1038    int    x = 
KiROUND( (aPosition.
x - xOffset) / gridSize.
x );
 
 1039    double yOffset = fmod( gridOrigin.
y, gridSize.
y );
 
 1040    int    y = 
KiROUND( (aPosition.
y - yOffset) / gridSize.
y );
 
 
 1066    std::vector<wxWindow*> dialogs;
 
 1068    for( wxWindow* window : GetChildren() )
 
 1071            dialogs.push_back( window );
 
 
 1080    bool               centerView = 
false;
 
 1081    std::vector<BOX2D> dialogScreenRects;
 
 1095            dialogScreenRects.emplace_back( 
ToVECTOR2D( 
GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ) ),
 
 1100        for( 
BOX2D rect : dialogScreenRects )
 
 1102            rect.Inflate( rect.GetWidth() / 10 );
 
 1104            if( rect.Contains( 
GetCanvas()->GetView()->ToScreen( aPos ) ) )
 
 1115        catch( 
const Clipper2Lib::Clipper2Exception& e )
 
 1117            wxFAIL_MSG( wxString::Format( wxT( 
"Clipper2 exception occurred centering object: %s" ), e.what() ) );
 
 
 1126                        const wxString& aSheetName, 
const wxString& aSheetPath,
 
 1127                        const wxString& aFileName, 
const TITLE_BLOCK& aTitleBlock,
 
 1128                        const std::map<wxString, wxString>* aProperties, 
int aSheetCount,
 
 1129                        const wxString& aPageNumber, 
double aMils2Iu, 
const PROJECT* aProject,
 
 1130                        const wxString& aSheetLayer, 
bool aIsFirstPage )
 
 1149    drawList.
Print( aSettings );
 
 
 1154                                        const std::map<wxString, wxString>* aProperties,
 
 1155                                        double aMils2Iu, 
const wxString &aFilename,
 
 1156                                        const wxString &aSheetLayer )
 
 1162    wxPoint origin = DC->GetDeviceOrigin();
 
 1166        DC->SetDeviceOrigin( 0, 0 );
 
 1167        DC->SetAxisOrientation( 
true, 
false );
 
 1177        DC->SetDeviceOrigin( origin.x, origin.y );
 
 1178        DC->SetAxisOrientation( 
true, 
true );
 
 
 1186    return wxEmptyString;
 
 
 1193    return wxEmptyString;
 
 
 1198                                         const wxString& wildcard, 
const wxString& ext,
 
 1201    aFilename.SetExt( ext );
 
 1203    wxString defaultDir = aFilename.GetPath();
 
 1205    if( defaultDir.IsEmpty() )
 
 1208    if( isDirectory && doOpen )
 
 1210        wxDirDialog dlg( 
this, aTitle, defaultDir, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST );
 
 1212        if( dlg.ShowModal() == wxID_CANCEL )
 
 1215        aFilename = dlg.GetPath();
 
 1216        aFilename.SetExt( ext );
 
 1221        if( aFilename.GetName().empty() )
 
 1222            aFilename.SetName( wxS( 
"Library" ) );
 
 1224        wxFileDialog dlg( 
this, aTitle, defaultDir, aFilename.GetFullName(), wildcard,
 
 1225                          doOpen ? wxFD_OPEN | wxFD_FILE_MUST_EXIST
 
 1226                                 : wxFD_SAVE | wxFD_CHANGE_DIR | wxFD_OVERWRITE_PROMPT );
 
 1229            dlg.SetCustomizeHook( *aFileDlgHook );
 
 1231        if( dlg.ShowModal() == wxID_CANCEL )
 
 1234        aFilename = dlg.GetPath();
 
 1235        aFilename.SetExt( ext );
 
 
 1251        search_pane_info.Caption( 
_( 
"Search" ) );
 
 1257        properties_pane_info.Caption( 
_( 
"Properties" ) );
 
 1263        net_inspector_panel_info.Caption( 
_( 
"Net Inspector" ) );
 
 
 1376    wxSize image_size = 
GetCanvas()->GetClientSize();
 
 1379    wxBitmap   bitmap( image_size.x, image_size.y );
 
 1382    memdc.SelectObject( bitmap );
 
 1383    memdc.Blit( 0, 0, image_size.x, image_size.y, &dc, 0, 0 );
 
 1384    memdc.SelectObject( wxNullBitmap );
 
 1386    wxImage 
image = bitmap.ConvertToImage();
 
 1388    wxBitmapType type = wxBITMAP_TYPE_PNG;
 
 1389    switch( aBitmapType )
 
 1396    if( !
image.SaveFile( aFileName, type ) )
 
 
 1422    std::vector<const PLUGIN_ACTION*> actions;
 
 1423    wxCHECK( aCfg, actions );
 
 1429    std::map<wxString, const PLUGIN_ACTION*> actionMap;
 
 1430    std::set<const PLUGIN_ACTION*> handled;
 
 1433        actionMap[action->identifier] = action;
 
 1437        if( actionMap.contains( identifier ) )
 
 1440            actions.emplace_back( action );
 
 1441            handled.insert( action );
 
 1445    for( 
const auto& action : actionMap | std::views::values )
 
 1447        if( !handled.contains( action ) )
 
 1448            actions.emplace_back( action );
 
 
 1464    std::vector<const PLUGIN_ACTION*> actions =
 
 1474                                             : action->icon_light;
 
 1476        wxAuiToolBarItem* button = aToolbar->AddTool( wxID_ANY, wxEmptyString, icon,
 
 1479        Connect( button->GetId(), wxEVT_COMMAND_MENU_SELECTED,
 
 1482        mgr.
ButtonBindings().insert( { button->GetId(), action->identifier } );
 
 
BASE_SCREEN class implementation.
 
constexpr EDA_IU_SCALE unityScale
 
constexpr BOX2I KiROUND(const BOX2D &aBoxD)
 
static TOOL_ACTION gridProperties
 
static TOOL_ACTION millimetersUnits
 
static TOOL_ACTION updatePreferences
 
static TOOL_ACTION gridPreset
 
static TOOL_ACTION updateUnits
 
static TOOL_ACTION milsUnits
 
static TOOL_ACTION inchesUnits
 
static TOOL_ACTION zoomFitScreen
 
static TOOL_ACTION zoomPreset
 
Responsible for loading plugin definitions for API-based plugins (ones that do not run inside KiCad i...
 
std::map< int, wxString > & ButtonBindings()
 
std::vector< const PLUGIN_ACTION * > GetActionsForScope(PLUGIN_ACTION_SCOPE aScope)
 
void InvokeAction(const wxString &aIdentifier)
 
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
 
FIND_REPLACE m_FindReplace
 
Handles how to draw a screen (a board, a schematic ...)
 
int GetVirtualPageNumber() const
 
const wxString & GetPageNumber() const
 
constexpr BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
 
constexpr size_type GetWidth() const
 
constexpr bool Contains(const Vec &aPoint) const
 
Color settings are a bit different than most of the settings objects in that there can be more than o...
 
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
 
Store the list of graphic items: rect, lines, polygons and texts to draw/plot the title block and fra...
 
void SetPlotterMilsToIUfactor(double aMils2Iu)
Set the scalar to convert pages units (mils) to plot units.
 
void BuildDrawItemsList(const PAGE_INFO &aPageInfo, const TITLE_BLOCK &aTitleBlock)
Drawing or plot the drawing sheet.
 
void SetSheetPath(const wxString &aSheetPath)
Set the sheet path to draw/plot.
 
void SetFileName(const wxString &aFileName)
Set the filename to draw/plot.
 
void SetDefaultPenSize(int aPenSize)
 
void Print(const RENDER_SETTINGS *aSettings)
Draws the item list created by BuildDrawItemsList.
 
void SetSheetName(const wxString &aSheetName)
Set the sheet name to draw/plot.
 
void SetIsFirstPage(bool aIsFirstPage)
Set if the page is the first page.
 
void SetProperties(const std::map< wxString, wxString > *aProps)
Set properties used for text variable resolution.
 
void SetSheetLayer(const wxString &aSheetLayer)
Set the sheet layer to draw/plot.
 
void SetSheetCount(int aSheetCount)
Set the value of the count of sheets, for basic inscriptions.
 
void SetPageNumber(const wxString &aPageNumber)
Set the value of the sheet number.
 
void SetProject(const PROJECT *aProject)
 
virtual APP_SETTINGS_BASE * config() const
Return the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
 
void CommonSettingsChanged(int aFlags) override
Notification event that some of the common (suite-wide) settings have changed.
 
virtual WINDOW_SETTINGS * GetWindowSettings(APP_SETTINGS_BASE *aCfg)
Return a pointer to the window settings for this frame.
 
void OnToolbarSizeChanged()
Update toolbars if desired toolbar icon changed.
 
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
 
void RegisterCustomToolbarControlFactory(const ACTION_TOOLBAR_CONTROL &aControlDesc, const ACTION_TOOLBAR_CONTROL_FACTORY &aControlFactory)
Register a creation factory for toolbar controls that are present in this frame.
 
virtual void configureToolbars()
 
wxTimer * m_autoSaveTimer
 
int GetMaxUndoItems() const
 
virtual void LoadSettings(APP_SETTINGS_BASE *aCfg)
Load common frame parameters from a configuration file.
 
wxString GetMruPath() const
 
virtual void OnSize(wxSizeEvent &aEvent)
 
int GetAutoSaveInterval() const
 
virtual void SaveSettings(APP_SETTINGS_BASE *aCfg)
Save common frame parameters to a configuration data file.
 
void SetMruPath(const wxString &aPath)
 
bool m_isClosing
Set by the close window event handler after frames are asked if they can close.
 
The base class for create windows for drawing purpose.
 
virtual const BOX2I GetDocumentExtents(bool aIncludeAllVisible=true) const
Return bounding box of document with option to not include some items.
 
wxCheckBox * m_overrideLocksCb
 
wxArrayString m_replaceStringHistoryList
 
virtual void ClearMsgPanel()
Clear all messages from the message panel.
 
static std::vector< const PLUGIN_ACTION * > GetOrderedPluginActions(PLUGIN_ACTION_SCOPE aScope, APP_SETTINGS_BASE *aCfg)
Return ordered list of plugin actions for display in the toolbar.
 
void configureToolbars() override
 
EDA_DRAW_PANEL_GAL * m_canvas
 
virtual void ActivateGalCanvas()
Use to start up the GAL drawing canvas.
 
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
 
GAL_DISPLAY_OPTIONS_IMPL m_galDisplayOptions
This the frame's interface to setting GAL display options.
 
virtual const TITLE_BLOCK & GetTitleBlock() const =0
 
void onActivate(wxActivateEvent &aEvent)
 
COLOR_SETTINGS * m_colorSettings
 
wxChoice * m_gridSelectBox
 
void AddStandardSubMenus(TOOL_MENU &aMenu)
Construct a "basic" menu for a tool, containing only items that apply to all tools (e....
 
void ReleaseFile()
Release the current file marked in use.
 
int m_lastToolbarIconSize
 
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
The current canvas type.
 
void ScriptingConsoleEnableDisable()
Toggle the scripting console visibility.
 
virtual wxString GetFullScreenDesc() const
 
void OnSelectGrid(wxCommandEvent &event)
Command event handler for selecting grid sizes.
 
void DisplayToolMsg(const wxString &msg) override
 
std::unique_ptr< LOCKFILE > m_file_checker
 
bool IsScriptingConsoleVisible()
Get the current visibility of the scripting console window.
 
void OnUpdateSelectZoom(wxUpdateUIEvent &aEvent)
Update the checked item in the zoom wxchoice.
 
virtual const PAGE_INFO & GetPageSettings() const =0
 
void DisplayUnitsMsg()
Display current unit pane in the status bar.
 
void setupUnits(APP_SETTINGS_BASE *aCfg)
 
void SetMsgPanel(const std::vector< MSG_PANEL_ITEM > &aList)
Clear the message panel and populates it with the contents of aList.
 
void UpdateGridSelectBox()
Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes,...
 
bool LockFile(const wxString &aFileName)
Mark a schematic file as being in use.
 
virtual void HardRedraw()
Rebuild the GAL and redraws the screen.
 
bool IsGridOverridden() const
 
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
 
bool SaveCanvasImageToFile(const wxString &aFileName, BITMAP_TYPE aBitmapType)
Save the current view as an image file.
 
void UpdateZoomSelectBox()
Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes,...
 
virtual void SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
Change the current rendering backend.
 
virtual void OnSize(wxSizeEvent &event) override
Recalculate the size of toolbars and display panel when the frame size changes.
 
const wxString GetZoomLevelIndicator() const
Return a human readable value for display in dialogs.
 
virtual void OnSelectZoom(wxCommandEvent &event)
Set the zoom factor when selected by the zoom list box in the main tool bar.
 
virtual void resolveCanvasType()
Determine the canvas type to load (with prompt if required) and initializes m_canvasType.
 
static bool m_openGLFailureOccured
Has any failure occurred when switching to OpenGL in any EDA_DRAW_FRAME?
 
BASE_SCREEN * m_currentScreen
current used SCREEN
 
virtual wxString GetScreenDesc() const
 
VECTOR2I GetNearestGridPosition(const VECTOR2I &aPosition) const
Return the nearest aGridSize location to aPosition.
 
EDA_MSG_PANEL * m_messagePanel
 
virtual const VECTOR2I & GetGridOrigin() const =0
Return the absolute coordinates of the origin of the snap grid.
 
bool saveCanvasTypeSetting(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
Store the canvas type in the application settings.
 
EDA_DRAW_FRAME(KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aFrameName, const EDA_IU_SCALE &aIuScale)
 
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.
 
NET_INSPECTOR_PANEL * m_netInspectorPanel
 
bool LibraryFileBrowser(const wxString &aTitle, bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory, FILEDLG_HOOK_NEW_LIBRARY *aFileDlgHook=nullptr)
 
virtual void SetGridVisibility(bool aVisible)
 
virtual void handleActivateEvent(wxActivateEvent &aEvent)
Handle a window activation event.
 
virtual void AddApiPluginTools(ACTION_TOOLBAR *aToolbar)
Append actions from API plugins to the given toolbar.
 
virtual void OnApiPluginInvoke(wxCommandEvent &aEvent)
Handler for activating an API plugin (via toolbar or menu).
 
virtual void UpdateMsgPanel()
Redraw the message panel.
 
wxStatusBar * OnCreateStatusBar(int number, long style, wxWindowID id, const wxString &name) override
Create the status line (like a wxStatusBar).
 
virtual COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const
Returns a pointer to the active color theme settings.
 
void ToggleUserUnits() override
 
void FocusOnLocation(const VECTOR2I &aPos, bool aAllowScroll=true)
Useful to focus on a particular location, in find functions.
 
virtual void CreateHotkeyPopup()
 
void UpdateStatusBar() override
Update the status bar information.
 
void GetUnitPair(EDA_UNITS &aPrimaryUnit, EDA_UNITS &aSecondaryUnits) override
Get the pair or units in current use.
 
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
 
void updateStatusBarWidths()
 
void PrintDrawingSheet(const RENDER_SETTINGS *aSettings, BASE_SCREEN *aScreen, const std::map< wxString, wxString > *aProperties, double aMils2Iu, const wxString &aFilename, const wxString &aSheetLayer=wxEmptyString)
Print the drawing-sheet (frame and title block).
 
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
 
wxSocketServer * m_socketServer
Prevents opening same file multiple times.
 
SEARCH_PANE * m_searchPane
 
void unitsChangeRefresh() override
Called when when the units setting has changed to allow for any derived classes to handle refreshing ...
 
void OnMove(wxMoveEvent &aEvent) override
 
bool IsGridVisible() const
 
std::vector< wxWindow * > findDialogs()
 
virtual void DisplayGridMsg()
Display current grid size in the status bar.
 
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting()
Return the canvas type stored in the application settings.
 
wxArrayString m_findStringHistoryList
 
wxChoice * m_zoomSelectBox
 
virtual std::unique_ptr< GRID_HELPER > MakeGridHelper()
 
virtual PLUGIN_ACTION_SCOPE PluginActionScope() const
 
std::unique_ptr< EDA_SEARCH_DATA > m_findReplaceData
 
void CommonSettingsChanged(int aFlags) override
Notification event that some of the common (suite-wide) settings have changed.
 
void DisplayConstraintsMsg(const wxString &msg)
 
void AppendMsgPanel(const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
Append a message to the message panel.
 
virtual void SetGridOverrides(bool aOverride)
 
PROPERTIES_PANEL * m_propertiesPanel
 
bool m_showBorderAndTitleBlock
 
VECTOR2I GetNearestHalfGridPosition(const VECTOR2I &aPosition) const
Return the nearest aGridSize / 2 location to aPosition.
 
bool GetOverrideLocks() const
 
HOTKEY_CYCLE_POPUP * m_hotkeyPopup
 
void OnUpdateSelectGrid(wxUpdateUIEvent &aEvent)
Update the checked item in the grid wxchoice.
 
static bool IsPluginActionButtonVisible(const PLUGIN_ACTION &aAction, APP_SETTINGS_BASE *aCfg)
 
static constexpr GAL_TYPE GAL_FALLBACK
 
GAL_TYPE GetBackend() const
Return the type of backend currently used by GAL canvas.
 
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 Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
 
@ GAL_TYPE_LAST
Sentinel, do not use as a parameter.
 
@ GAL_TYPE_OPENGL
OpenGL implementation.
 
@ GAL_TYPE_CAIRO
Cairo implementation.
 
@ GAL_TYPE_NONE
GAL not used (the legacy wxDC engine is used)
 
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
 
virtual bool SwitchBackend(GAL_TYPE aGalType)
Switch method of rendering graphics.
 
void StartDrawing()
Begin drawing if it was stopped previously.
 
A base class for most all the KiCad significant classes used in schematics and boards.
 
virtual void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList)
Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
 
A panel to display various information messages.
 
A color representation with 4 components: red, green, blue, alpha.
 
virtual void ResizeScreen(int aWidth, int aHeight)
Resize the canvas.
 
double GetZoomFactor() const
 
const VECTOR2D & GetGridSize() const
Return the grid size.
 
void SetGridVisibility(bool aVisibility)
Set the visibility setting of the grid.
 
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
 
int GetDefaultPenWidth() const
 
wxDC * GetPrintDC() const
 
An interface for classes handling user events controlling the view behavior such as zooming,...
 
virtual void LoadSettings()
Load new settings from program common settings.
 
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
 
BOX2D GetViewport() const
Return the current viewport visible area rectangle.
 
void MarkDirty()
Force redraw of view on the next rendering.
 
void SetCenter(const VECTOR2D &aCenter)
Set the center point of the VIEW (i.e.
 
void MarkTargetDirty(int aTarget)
Set or clear target 'dirty' flag.
 
KISTATUSBAR is a wxStatusBar suitable for Kicad manager.
 
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.
 
A wxFrame capable of the OpenProjectFiles function, meaning it can load a portion of a KiCad project.
 
KIWAY_PLAYER(KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aFrameName, const EDA_IU_SCALE &aIuScale)
 
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
 
virtual KIWAY_PLAYER * Player(FRAME_T aFrameType, bool doCreate=true, wxTopLevelWindow *aParent=nullptr)
Return the KIWAY_PLAYER* given a FRAME_T.
 
EDA_MSG_PANEL items for displaying messages.
 
Describe the page size and margins of a paper page on which to eventually print or plot.
 
virtual COMMON_SETTINGS * GetCommonSettings() const
 
Container for project specific data.
 
static bool ShowAlways(const SELECTION &aSelection)
The default condition function (always returns true).
 
Hold the information shown in the lower right corner of a plot, printout, or editing view.
 
EDA_UNITS GetUserUnits() const
 
void SetUserUnits(EDA_UNITS aUnits)
 
This file is part of the common library.
 
#define DEFAULT_MAX_UNDO_ITEMS
 
#define FR_HISTORY_LIST_CNT
Maximum size of the find/replace history stacks.
 
void PrintDrawingSheet(const RENDER_SETTINGS *aSettings, const PAGE_INFO &aPageInfo, const wxString &aSheetName, const wxString &aSheetPath, const wxString &aFileName, const TITLE_BLOCK &aTitleBlock, const std::map< wxString, wxString > *aProperties, int aSheetCount, const wxString &aPageNumber, double aMils2Iu, const PROJECT *aProject, const wxString &aSheetLayer, bool aIsFirstPage)
Print the border and title block.
 
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
 
@ FRAME_SCH_SYMBOL_EDITOR
 
This file contains miscellaneous commonly used macros and functions.
 
Message panel definition file.
 
KICOMMON_API bool IsImperialUnit(EDA_UNITS aUnit)
 
@ TARGET_NONCACHED
Auxiliary rendering target (noncached)
 
KICOMMON_API wxFont GetStatusFont(wxWindow *aWindow)
 
KICOMMON_API wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...
 
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
 
PGM_BASE & Pgm()
The global program "get" accessor.
 
std::vector< FAB_LAYER_COLOR > dummy
 
std::vector< wxString > replace_history
 
std::vector< wxString > find_history
 
std::vector< std::pair< wxString, bool > > actions
Ordered list of plugin actions mapped to whether or not they are shown in the toolbar.
 
int canvas_type
EDA_DRAW_PANEL_GAL::GAL_TYPE_* value, see gal_options_panel.cpp.
 
std::vector< GRID > grids
 
An action performed by a plugin via the IPC API (not to be confused with ACTION_PLUGIN,...
 
Store the common settings that are saved and loaded for each window / frame.
 
std::vector< double > zoom_factors
 
wxLogTrace helper definitions.
 
Functions to provide common constants and other functions to assist in making a consistent UI.
 
VECTOR2< int32_t > VECTOR2I
 
VECTOR2< double > VECTOR2D
 
VECTOR2D ToVECTOR2D(const wxPoint &aPoint)