KiCad PCB EDA Suite
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
eda_draw_frame.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
5 * Copyright (C) 2011 Wayne Stambaugh <stambaughw@gmail.com>
6 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, you may find one here:
20 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21 * or you may search the http://www.gnu.org website for the version 2 license,
22 * or you may write to the Free Software Foundation, Inc.,
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26#ifndef DRAW_FRAME_H_
27#define DRAW_FRAME_H_
28
29#include <api/api_plugin.h>
30#include <eda_base_frame.h>
31#include <eda_search_data.h>
32#include <kiway_player.h>
35#include <gal/color4d.h>
37#include <kiid.h>
38#include <hotkeys_basic.h>
39#include <widgets/lib_tree.h>
40
41class EDA_ITEM;
42class wxSingleInstanceChecker;
43class ACTION_TOOLBAR;
44class GRID_HELPER;
45class COLOR_SETTINGS;
46class LOCKFILE;
47class TOOL_MENU;
49class wxFindReplaceData;
50class SEARCH_PANE;
54enum class BITMAP_TYPE;
55
56namespace KIGFX
57{
58 class GAL_DISPLAY_OPTIONS;
59 class RENDER_SETTINGS;
60}
61
62using KIGFX::COLOR4D;
64
65#define LIB_EDIT_FRAME_NAME wxT( "LibeditFrame" )
66#define LIB_VIEW_FRAME_NAME wxT( "ViewlibFrame" )
67#define SCH_EDIT_FRAME_NAME wxT( "SchematicFrame" )
68#define SYMBOL_CHOOSER_FRAME_NAME wxT( "SymbolChooserFrame" )
69#define PL_EDITOR_FRAME_NAME wxT( "PlEditorFrame" )
70#define FOOTPRINT_WIZARD_FRAME_NAME wxT( "FootprintWizard" )
71#define FOOTPRINT_CHOOSER_FRAME_NAME wxT( "FootprintChooserFrame" )
72#define FOOTPRINT_EDIT_FRAME_NAME wxT( "ModEditFrame" )
73#define FOOTPRINT_VIEWER_FRAME_NAME wxT( "ModViewFrame" )
74#define PCB_EDIT_FRAME_NAME wxT( "PcbFrame" )
75
76
84{
85public:
86 EDA_DRAW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrameType, const wxString& aTitle,
87 const wxPoint& aPos, const wxSize& aSize, long aStyle,
88 const wxString& aFrameName, const EDA_IU_SCALE& aIuScale );
89
91
100 bool LockFile( const wxString& aFileName );
101
105 void ReleaseFile();
106
111
116
118 wxArrayString& GetFindHistoryList() { return m_findStringHistoryList; }
119
120 virtual void SetPageSettings( const PAGE_INFO& aPageSettings ) = 0;
121 virtual const PAGE_INFO& GetPageSettings() const = 0;
122
127 virtual const VECTOR2I GetPageSizeIU() const = 0;
128
132 bool GetShowPolarCoords() const { return m_polarCoords; }
133 void SetShowPolarCoords( bool aShow ) { m_polarCoords = aShow; }
134
135 void ToggleUserUnits() override;
136
143 void GetUnitPair( EDA_UNITS& aPrimaryUnit, EDA_UNITS& aSecondaryUnits ) override;
144
151 virtual const VECTOR2I& GetGridOrigin() const = 0;
152 virtual void SetGridOrigin( const VECTOR2I& aPosition ) = 0;
153
154 virtual std::unique_ptr<GRID_HELPER> MakeGridHelper();
155
162 VECTOR2I GetNearestGridPosition( const VECTOR2I& aPosition ) const;
163
173 VECTOR2I GetNearestHalfGridPosition( const VECTOR2I& aPosition ) const;
174
175 virtual const TITLE_BLOCK& GetTitleBlock() const = 0;
176 virtual void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) = 0;
177
178 // the background color of the draw canvas:
179 // Virtual because some frames can have a specific way to get/set the bg color
180 virtual COLOR4D GetDrawBgColor() const { return m_drawBgColor; }
181 virtual void SetDrawBgColor( const COLOR4D& aColor) { m_drawBgColor= aColor ; }
182
184 virtual COLOR_SETTINGS* GetColorSettings( bool aForceRefresh = false ) const;
185
195 bool LibraryFileBrowser( bool doOpen, wxFileName& aFilename, const wxString& wildcard,
196 const wxString& ext, bool isDirectory = false, bool aIsGlobal = false,
197 const wxString& aGlobalPath = wxEmptyString );
198
199 void CommonSettingsChanged( int aFlags ) override;
200
201 virtual wxString GetScreenDesc() const;
202 virtual wxString GetFullScreenDesc() const;
203
209 virtual BASE_SCREEN* GetScreen() const { return m_currentScreen; }
210
211 void EraseMsgBox();
212
213 // Toolbar-related functions
214 virtual void ReCreateHToolbar() { };
215 virtual void ReCreateVToolbar() { };
216 virtual void ReCreateLeftToolbar() { };
217 virtual void ReCreateAuxiliaryToolbar() { }
218
219 /*
220 * These 4 functions provide a basic way to show/hide grid and /get/set grid color.
221 *
222 * These parameters are saved in KiCad config for each main frame.
223 */
224 bool IsGridVisible() const;
225 virtual void SetGridVisibility( bool aVisible );
226
227 bool IsGridOverridden() const;
228 virtual void SetGridOverrides( bool aOverride );
229
230 virtual COLOR4D GetGridColor() { return m_gridColor; }
231 virtual void SetGridColor( const COLOR4D& aColor ) { m_gridColor = aColor; }
232
242 void OnSelectGrid( wxCommandEvent& event );
243
248 void UpdateGridSelectBox();
249
253 void OnUpdateSelectGrid( wxUpdateUIEvent& aEvent );
254
258 void OnUpdateSelectZoom( wxUpdateUIEvent& aEvent );
259
264 void UpdateZoomSelectBox();
265
269 const wxString GetZoomLevelIndicator() const;
270
278 virtual void OnSelectZoom( wxCommandEvent& event );
279
283 virtual void OnSize( wxSizeEvent& event ) override;
284
285 void OnMove( wxMoveEvent& aEvent ) override;
286
290 virtual void HardRedraw();
291
296 virtual void Zoom_Automatique( bool aWarpPointer );
297
306 void FocusOnLocation( const VECTOR2I& aPos );
307
313 virtual void FocusOnItem( EDA_ITEM* aItem ) {}
314
315 virtual void ClearFocus() { FocusOnItem( nullptr ); }
316
321 void AddStandardSubMenus( TOOL_MENU& aMenu );
322
332 void PrintDrawingSheet( const RENDER_SETTINGS* aSettings, BASE_SCREEN* aScreen,
333 const std::map<wxString, wxString>* aProperties, double aMils2Iu,
334 const wxString& aFilename,
335 const wxString& aSheetLayer = wxEmptyString );
336
337 void DisplayToolMsg( const wxString& msg ) override;
338
339 void DisplayConstraintsMsg( const wxString& msg );
340
347 virtual void OnPageSettingsChange() {}
348
356 void UpdateStatusBar() override;
357
361 void DisplayUnitsMsg();
362
366 virtual void DisplayGridMsg();
367
368 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
369 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
370
381 void AppendMsgPanel( const wxString& aTextUpper, const wxString& aTextLower, int aPadding = 6 );
382
386 virtual void ClearMsgPanel();
387
393 void SetMsgPanel( const std::vector< MSG_PANEL_ITEM >& aList );
394 void SetMsgPanel( EDA_ITEM* aItem );
395
403 void SetMsgPanel( const wxString& aTextUpper, const wxString& aTextLower, int aPadding = 6 );
404
408 virtual void UpdateMsgPanel();
409
410 virtual LIB_TREE* GetLibTree() const { return nullptr; }
411 virtual LIB_ID GetTargetLibId() const { return LIB_ID(); }
412
413 virtual bool IsLibraryTreeShown() const { return false; }
414 virtual void ToggleLibraryTree() {};
415 virtual void FocusLibraryTreeInput() {};
416
418
419 void UpdateProperties();
420
421 virtual void ToggleProperties() {}
422
423 static const wxString PropertiesPaneName() { return wxS( "PropertiesManager" ); }
424
425 static const wxString NetInspectorPanelName() { return wxS( "NetInspector" ); }
426
427 static const wxString DesignBlocksPaneName() { return wxS( "DesignBlocks" ); }
428
429 static const wxString AppearancePanelName() { return wxS( "LayersManager" ); }
430
434 virtual EDA_ITEM* GetItem( const KIID& aId ) const { return nullptr; }
435
439 virtual void ActivateGalCanvas();
440
444 virtual void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType );
445
451 virtual EDA_DRAW_PANEL_GAL* GetCanvas() const { return m_canvas; }
452 void SetCanvas( EDA_DRAW_PANEL_GAL* aPanel ) { m_canvas = aPanel; }
453
454 wxWindow* GetToolCanvas() const override { return GetCanvas(); }
455
460
461 void RefreshCanvas() override
462 {
463 GetCanvas()->Refresh();
464 }
465
478 virtual const BOX2I GetDocumentExtents( bool aIncludeAllVisible = true ) const;
479
483 void ShowChangedLanguage() override;
484
486
487 virtual void CreateHotkeyPopup();
488
489
498 bool SaveCanvasImageToFile( const wxString& aFileName, BITMAP_TYPE aBitmapType );
499
503 virtual void OnApiPluginInvoke( wxCommandEvent& aEvent );
504
505 virtual PLUGIN_ACTION_SCOPE PluginActionScope() const { return PLUGIN_ACTION_SCOPE::INVALID; }
506
507 static bool IsPluginActionButtonVisible( const PLUGIN_ACTION& aAction,
508 APP_SETTINGS_BASE* aCfg );
509
518 static std::vector<const PLUGIN_ACTION*> GetOrderedPluginActions( PLUGIN_ACTION_SCOPE aScope,
519 APP_SETTINGS_BASE* aCfg );
520
526 virtual void AddApiPluginTools( ACTION_TOOLBAR* aToolbar );
527
528 DECLARE_EVENT_TABLE()
529
530protected:
531 void configureToolbars() override;
532
533 virtual void SetScreen( BASE_SCREEN* aScreen ) { m_currentScreen = aScreen; }
534
535 void unitsChangeRefresh() override;
536
537 void setupUnits( APP_SETTINGS_BASE* aCfg );
538
540
541 std::vector<wxWindow*> findDialogs();
542
546 virtual void resolveCanvasType();
547
555
560
564 virtual void handleActivateEvent( wxActivateEvent& aEvent );
565 void onActivate( wxActivateEvent& aEvent );
566
567 wxSocketServer* m_socketServer;
568
570 std::unique_ptr<LOCKFILE> m_file_checker;
571
572 COLOR4D m_gridColor; // Grid color
573 COLOR4D m_drawBgColor; // The background color of the draw canvas; BLACK for
574 // Pcbnew, BLACK or WHITE for Eeschema
575 int m_undoRedoCountMax; // Default Undo/Redo command Max depth, to be handed
576 // to screens
577 bool m_polarCoords; // For those frames that support polar coordinates
578
579 // Show the drawing sheet (border & title block).
581
584
585 std::unique_ptr<EDA_SEARCH_DATA> m_findReplaceData;
588
591
596
598
601
604
605private:
608
611
613};
614
615#endif // DRAW_FRAME_H_
PLUGIN_ACTION_SCOPE
Definition: api_plugin.h:56
BITMAP_TYPE
Definition: bitmap_types.h:43
Define the structure of a toolbar with buttons that invoke ACTIONs.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
Handles how to draw a screen (a board, a schematic ...)
Definition: base_screen.h:41
Color settings are a bit different than most of the settings objects in that there can be more than o...
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.
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.
virtual void ReCreateVToolbar()
void configureToolbars() override
HOTKEY_CYCLE_POPUP * GetHotkeyPopup()
EDA_DRAW_PANEL_GAL * m_canvas
virtual void ActivateGalCanvas()
Use to start up the GAL drawing canvas.
virtual void SetTitleBlock(const TITLE_BLOCK &aTitleBlock)=0
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.
static const wxString AppearancePanelName()
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
The current canvas type.
virtual BASE_SCREEN * GetScreen() const
Return a pointer to a BASE_SCREEN or one of its derivatives.
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
virtual void FocusLibraryTreeInput()
void DisplayUnitsMsg()
Display current unit pane in the status bar.
void setupUnits(APP_SETTINGS_BASE *aCfg)
virtual void ToggleLibraryTree()
void SetMsgPanel(const std::vector< MSG_PANEL_ITEM > &aList)
Clear the message panel and populates it with the contents of aList.
void RefreshCanvas() override
virtual COLOR4D GetGridColor()
void UpdateGridSelectBox()
Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes,...
virtual const VECTOR2I GetPageSizeIU() const =0
Works off of GetPageSettings() to return the size of the paper page in the internal units of this par...
bool LockFile(const wxString &aFileName)
Mark a schematic file as being in use.
virtual void HardRedraw()
Rebuild the GAL and redraws the screen.
virtual void SetGridOrigin(const VECTOR2I &aPosition)=0
bool LibraryFileBrowser(bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
virtual bool IsLibraryTreeShown() const
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 SetPageSettings(const PAGE_INFO &aPageSettings)=0
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.
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting(APP_SETTINGS_BASE *aCfg=nullptr)
Return the canvas type stored in the application settings.
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.
GAL_DISPLAY_OPTIONS_IMPL & GetGalDisplayOptions()
Return a reference to the gal rendering options used by GAL for rendering.
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?
virtual LIB_TREE * GetLibTree() const
BASE_SCREEN * m_currentScreen
current used SCREEN
virtual wxString GetScreenDesc() const
VECTOR2I GetNearestGridPosition(const VECTOR2I &aPosition) const
Return the nearest aGridSize location to aPosition.
static const wxString PropertiesPaneName()
EDA_MSG_PANEL * m_messagePanel
void SetCanvas(EDA_DRAW_PANEL_GAL *aPanel)
virtual const VECTOR2I & GetGridOrigin() const =0
Return the absolute coordinates of the origin of the snap grid.
virtual void ReCreateAuxiliaryToolbar()
void SetShowPolarCoords(bool aShow)
void FocusOnLocation(const VECTOR2I &aPos)
Useful to focus on a particular location, in find functions.
virtual void SetScreen(BASE_SCREEN *aScreen)
virtual void ReCreateHToolbar()
bool saveCanvasTypeSetting(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
Store the canvas type in the application settings.
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.
COLOR4D m_drawBgColor
NET_INSPECTOR_PANEL * m_netInspectorPanel
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 FocusOnItem(EDA_ITEM *aItem)
Focus on a particular canvas item.
virtual void OnApiPluginInvoke(wxCommandEvent &aEvent)
Handler for activating an API plugin (via toolbar or menu).
virtual void SetDrawBgColor(const COLOR4D &aColor)
virtual void UpdateMsgPanel()
Redraw the message panel.
virtual COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const
Returns a pointer to the active color theme settings.
void ToggleUserUnits() override
virtual void ReCreateLeftToolbar()
static const wxString NetInspectorPanelName()
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.
wxArrayString & GetFindHistoryList()
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
virtual EDA_ITEM * GetItem(const KIID &aId) const
Fetch an item by KIID.
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.
virtual void OnPageSettingsChange()
Called when modifying the page settings.
virtual void ClearFocus()
wxSocketServer * m_socketServer
Prevents opening same file multiple times.
SEARCH_PANE * m_searchPane
EDA_SEARCH_DATA & GetFindReplaceData()
virtual COLOR4D GetDrawBgColor() const
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.
virtual void SetGridColor(const COLOR4D &aColor)
wxArrayString m_findStringHistoryList
virtual LIB_ID GetTargetLibId() const
wxChoice * m_zoomSelectBox
PROPERTIES_PANEL * GetPropertiesPanel()
static const wxString DesignBlocksPaneName()
wxWindow * GetToolCanvas() const override
Canvas access.
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.
HOTKEY_CYCLE_POPUP * m_hotkeyPopup
void OnUpdateSelectGrid(wxUpdateUIEvent &aEvent)
Update the checked item in the grid wxchoice.
virtual void ToggleProperties()
bool GetShowPolarCoords() const
For those frames that support polar coordinates.
static bool IsPluginActionButtonVisible(const PLUGIN_ACTION &aAction, APP_SETTINGS_BASE *aCfg)
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:96
A panel to display various information messages.
Definition: msgpanel.h:101
Similar to EDA_VIEW_SWITCHER, this dialog is a popup that shows feedback when using a hotkey to cycle...
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:104
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
Definition: kiid.h:49
A wxFrame capable of the OpenProjectFiles function, meaning it can load a portion of a KiCad project.
Definition: kiway_player.h:65
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:285
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:49
Widget displaying a tree of symbols with optional search text control and description panel.
Definition: lib_tree.h:49
A base class used to implement docking net inspector panels.
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:59
Hold the information shown in the lower right corner of a plot, printout, or editing view.
Definition: title_block.h:41
Manage a CONDITIONAL_MENU and some number of CONTEXT_MENUs as sub-menus.
Definition: tool_menu.h:43
Base window classes and related definitions.
EDA_UNITS
Definition: eda_units.h:46
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:33
The Cairo implementation of the graphics abstraction layer.
Definition: eda_group.h:32
An action performed by a plugin via the IPC API (not to be confused with ACTION_PLUGIN,...
Definition: api_plugin.h:82