61#include <wx/snglinst.h>
66#include <wx/filedlg.h>
70#include <wx/snglinst.h>
71#include <wx/fdrepdlg.h>
73#define FR_HISTORY_LIST_CNT 10
88 const wxString& aTitle, const wxPoint& aPos, const wxSize& aSize,
89 long aStyle, const wxString& aFrameName,
91 KIWAY_PLAYER( aKiway, aParent, aFrameType, aTitle, aPos, aSize, aStyle, aFrameName, aIuScale ),
92 m_socketServer(
nullptr )
94 m_mainToolBar =
nullptr;
95 m_drawToolBar =
nullptr;
96 m_optionsToolBar =
nullptr;
97 m_auxiliaryToolBar =
nullptr;
98 m_gridSelectBox =
nullptr;
99 m_zoomSelectBox =
nullptr;
100 m_searchPane =
nullptr;
105 m_toolDispatcher =
nullptr;
106 m_messagePanel =
nullptr;
107 m_currentScreen =
nullptr;
108 m_showBorderAndTitleBlock =
false;
112 m_colorSettings =
nullptr;
114 m_polarCoords =
false;
115 m_findReplaceData = std::make_unique<EDA_SEARCH_DATA>();
119 m_auimgr.SetFlags( wxAUI_MGR_DEFAULT );
121 CreateStatusBar( 8 )->SetDoubleBuffered(
true );
125 wxWindow* stsbar = GetStatusBar();
143 KIUI::GetTextSize( wxT(
"dx 1234.1234 dy 1234.1234 dist 1234.1234" ), stsbar ).x + spacer,
158 SetStatusWidths(
arrayDim( dims ), dims );
162 GetClientSize( &m_frameSize.x, &m_frameSize.y );
163 m_framePos.x = m_framePos.y = 0;
164 m_frameSize.y -= m_msgFrameHeight;
166 m_messagePanel =
new EDA_MSG_PANEL(
this, -1, wxPoint( 0, m_frameSize.y ),
167 wxSize( m_frameSize.x, m_msgFrameHeight ) );
171#if wxCHECK_VERSION( 3, 1, 3 )
172 Bind( wxEVT_DPI_CHANGED,
173 [&]( wxDPIChangedEvent& )
181 m_frameSize.y += m_msgFrameHeight;
183 m_frameSize.y -= m_msgFrameHeight;
185 m_messagePanel->SetPosition( wxPoint( 0, m_frameSize.y ) );
186 m_messagePanel->SetSize( m_frameSize.x, m_msgFrameHeight );
233 wxRect rect = GetScreenRect();
234 wxPoint center = rect.GetPosition() + rect.GetSize() / 2;
244 if( !frame->IsVisible() )
248 if( frame->IsIconized() )
249 frame->Iconize(
false );
252 frame->SetPosition( center - frame->GetSize() / 2 );
257 frame->Show( !frame->IsVisible() );
258 frame->SetPosition( center - frame->GetSize() / 2 );
265 return frame && frame->IsVisible();
290 : EDA_UNITS::INCHES );
293 wxCommandEvent e( EDA_EVT_UNITS_CHANGED );
294 ProcessEventLocally( e );
364 wxArrayString gridsList;
370 for(
const wxString&
grid : gridsList )
390 idx = std::max( 0, std::min( idx, (
int)
m_gridSelectBox->GetCount() - 1 ) );
411 int new_selection = 0;
412 double last_approx = 1e9;
415 for(
size_t jj = 0; jj < zoomList.size(); ++jj )
417 double rel_error = std::fabs( zoomList[jj] -
zoom ) /
zoom;
419 if( rel_error < last_approx )
421 last_approx = rel_error;
423 new_selection = jj+1;
427 if( curr_selection != new_selection )
439 wxCHECK_RET(
m_gridSelectBox, wxS(
"m_gridSelectBox uninitialized" ) );
447 wxUpdateUIEvent
dummy;
454 wxUpdateUIEvent
dummy;
480 if( dlg.ShowModal() == wxID_OK )
490 wxCHECK(
config(),
true );
537 if(
zoom == current )
545 wxCHECK_RET(
m_zoomSelectBox, wxS(
"m_zoomSelectBox uninitialized" ) );
569 wxSize clientSize = GetClientSize();
585 std::shared_ptr<ZOOM_MENU> zoomMenu = std::make_shared<ZOOM_MENU>(
this );
586 zoomMenu->SetTool( commonTools );
589 std::shared_ptr<GRID_MENU> gridMenu = std::make_shared<GRID_MENU>(
this );
590 gridMenu->SetTool( commonTools );
600 SetStatusText( msg, 6 );
606 SetStatusText( msg, 7 );
617 SetStatusText( msg, 4 );
627 case EDA_UNITS::INCHES: msg =
_(
"inches" );
break;
628 case EDA_UNITS::MILS: msg =
_(
"mils" );
break;
629 case EDA_UNITS::MILLIMETRES: msg =
_(
"mm" );
break;
630 default: msg =
_(
"Units" );
break;
633 SetStatusText( msg, 5 );
664 return wxString::Format( wxT(
"Z %.2f" ),
zoom );
779 wxCHECK_RET( aItem, wxT(
"Invalid EDA_ITEM pointer. Bad programmer." ) );
781 std::vector<MSG_PANEL_ITEM> items;
794 GetCanvas()->SetEvtHandlerEnabled(
true );
842 static std::vector<FRAME_T> s_allowedFrames =
861 cfg->m_Graphics.canvas_type =
static_cast<int>( aCanvasType );
872 double xOffset = fmod( gridOrigin.
x, gridSize.
x );
873 int x =
KiROUND( (aPosition.
x - xOffset) / gridSize.
x );
874 double yOffset = fmod( gridOrigin.
y, gridSize.
y );
875 int y =
KiROUND( (aPosition.
y - yOffset) / gridSize.
y );
886 double xOffset = fmod( gridOrigin.
x, gridSize.
x );
887 int x =
KiROUND( (aPosition.
x - xOffset) / gridSize.
x );
888 double yOffset = fmod( gridOrigin.
y, gridSize.
y );
889 int y =
KiROUND( (aPosition.
y - yOffset) / gridSize.
y );
916 std::vector<wxWindow*> dialogs;
918 for( wxWindow* window : GetChildren() )
921 dialogs.push_back( window );
930 bool centerView =
false;
939 std::vector<BOX2D> dialogScreenRects;
943 dialogScreenRects.emplace_back(
ToVECTOR2D(
GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ) ),
948 for(
BOX2D rect : dialogScreenRects )
950 rect.
Inflate( rect.GetWidth() / 10 );
952 if( rect.Contains(
GetCanvas()->GetView()->ToScreen( aPos ) ) )
962 catch(
const ClipperLib::clipperException& exc )
964 wxLogError( wxT(
"Clipper library error '%s' occurred centering object." ),
977 const wxString& aSheetName,
const wxString& aSheetPath,
978 const wxString& aFileName,
const TITLE_BLOCK& aTitleBlock,
979 const std::map<wxString, wxString>* aProperties,
int aSheetCount,
980 const wxString& aPageNumber,
double aMils2Iu,
const PROJECT* aProject,
981 const wxString& aSheetLayer,
bool aIsFirstPage )
1000 drawList.
Print( aSettings );
1005 const std::map<wxString, wxString>* aProperties,
1006 double aMils2Iu,
const wxString &aFilename,
1007 const wxString &aSheetLayer )
1013 wxPoint origin = DC->GetDeviceOrigin();
1017 DC->SetDeviceOrigin( 0, 0 );
1018 DC->SetAxisOrientation(
true,
false );
1028 DC->SetDeviceOrigin( origin.x, origin.y );
1029 DC->SetAxisOrientation(
true,
true );
1037 return wxEmptyString;
1044 return wxEmptyString;
1049 const wxString& wildcard,
const wxString& ext,
1050 bool isDirectory,
bool aIsGlobal,
1051 const wxString& aGlobalPath )
1053 wxString prompt = doOpen ?
_(
"Select Library" ) :
_(
"New Library" );
1054 aFilename.SetExt( ext );
1057 wxString defaultDir;
1064 defaultDir = aGlobalPath;
1071 defaultDir = projectDir;
1074 if( isDirectory && doOpen )
1076 wxDirDialog dlg(
this, prompt, defaultDir, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST );
1078 if( dlg.ShowModal() == wxID_CANCEL )
1081 aFilename = dlg.GetPath();
1082 aFilename.SetExt( ext );
1087 if( aFilename.GetName().empty() )
1088 aFilename.SetName( wxS(
"Library" ) );
1090 wxFileDialog dlg(
this, prompt, defaultDir, aFilename.GetFullName(),
1091 wildcard, doOpen ? wxFD_OPEN | wxFD_FILE_MUST_EXIST
1092 : wxFD_SAVE | wxFD_CHANGE_DIR | wxFD_OVERWRITE_PROMPT );
1094 if( dlg.ShowModal() == wxID_CANCEL )
1097 aFilename = dlg.GetPath();
1098 aFilename.SetExt( ext );
1175 aSecondaryUnits = EDA_UNITS::MILS;
1182 aSecondaryUnits = EDA_UNITS::MILLIMETRES;
1189 aSecondaryUnits = EDA_UNITS::MILS;
constexpr std::size_t arrayDim(T const (&)[N]) noexcept
Returns # of elements in an array.
BASE_SCREEN class implementation.
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
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
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
coord_type GetWidth() const
bool Contains(const Vec &aPoint) const
BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
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 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 SetMilsToIUfactor(double aMils2Iu)
Set the scalar to convert pages units (mils) to draw/plot units.
void SetProject(const PROJECT *aProject)
virtual APP_SETTINGS_BASE * config() const
Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
virtual WINDOW_SETTINGS * GetWindowSettings(APP_SETTINGS_BASE *aCfg)
Return a pointer to the window settings for this frame.
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
wxTimer * m_autoSaveTimer
int GetMaxUndoItems() const
virtual void LoadSettings(APP_SETTINGS_BASE *aCfg)
Load common frame parameters from a configuration file.
wxString GetMruPath() const
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
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 NonUserClose() to indicate that the user did not request the current close.
The base class for create windows for drawing purpose.
virtual const BOX2I GetDocumentExtents(bool aIncludeAllVisible=true) const
Returns bbox of document with option to not include some items.
wxArrayString m_replaceStringHistoryList
virtual void ClearMsgPanel()
Clear all messages from the message panel.
virtual void ReCreateOptToolbar()=0
EDA_DRAW_PANEL_GAL * m_canvas
This the frame's interface to setting GAL display options.
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.
virtual const TITLE_BLOCK & GetTitleBlock() const =0
virtual void PrintPage(const RENDER_SETTINGS *aSettings)
Print the page pointed by current screen, set by the calling print function.
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.
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
void ScriptingConsoleEnableDisable()
Toggles 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()
Gets 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.
ACTION_TOOLBAR * m_optionsToolBar
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 LibraryFileBrowser(bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration 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)
Changes 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.
void resolveCanvasType()
Determines the Canvas type to load (with prompt if required) and initializes m_canvasType.
static bool m_openGLFailureOccured
Has any failure occured when switching to OpenGL in any EDA_DRAW_FRAME?
virtual void ReCreateHToolbar()=0
void GetUnitPair(EDA_UNITS &aPrimaryUnit, EDA_UNITS &aSecondaryUnits)
Get the pair or units in current use.
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.
virtual void ReCreateAuxiliaryToolbar()
void FocusOnLocation(const VECTOR2I &aPos)
Useful to focus on a particular location, in find functions.
void RecreateToolbars()
Rebuild all toolbars, and update the checked state of check tools.
bool saveCanvasTypeSetting(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
Stores the canvas type in the application settings.
ACTION_TOOLBAR * m_mainToolBar
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.
virtual void SetGridVisibility(bool aVisible)
virtual void handleActivateEvent(wxActivateEvent &aEvent)
Handle a window activation event.
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
void UpdateStatusBar() override
Update the status bar information.
void OnGridSettings(wxCommandEvent &event)
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
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).
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
ACTION_TOOLBAR * m_drawToolBar
SEARCH_PANE * m_searchPane
The current canvas type.
virtual void ReCreateVToolbar()=0
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
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
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()
Returns the canvas type stored in the application settings.
wxArrayString m_findStringHistoryList
wxChoice * m_zoomSelectBox
std::unique_ptr< EDA_SEARCH_DATA > m_findReplaceData
void DisplayConstraintsMsg(const wxString &msg)
void AppendMsgPanel(const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
Append a message to the message panel.
bool m_showBorderAndTitleBlock
VECTOR2I GetNearestHalfGridPosition(const VECTOR2I &aPosition) const
Return the nearest aGridSize / 2 location to aPosition.
void OnUpdateSelectGrid(wxUpdateUIEvent &aEvent)
Update the checked item in the grid wxchoice.
ACTION_TOOLBAR * m_auxiliaryToolBar
KIGFX::GAL_DISPLAY_OPTIONS m_galDisplayOptions
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_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.
void AppendMessage(const wxString &aUpperText, const wxString &aLowerText, int aPadding=6)
Append a message to the message panel.
static int GetRequiredHeight(wxWindow *aWindow)
Return the required height (in pixels) of a EDA_MSG_PANEL.
APP_SETTINGS_BASE * KifaceSettings() const
A color representation with 4 components: red, green, blue, alpha.
void WriteConfig(WINDOW_SETTINGS &aCfg)
void ReadCommonConfig(COMMON_SETTINGS &aCommonSettings, wxWindow *aWindow)
Read GAL config options from the common config store.
void ReadConfig(COMMON_SETTINGS &aCommonConfig, WINDOW_SETTINGS &aWindowConfig, wxWindow *aWindow)
Read application and common configs.
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()
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.
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.
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.
Container for project specific data.
virtual const wxString GetProjectPath() const
Return the full path of the project.
virtual bool IsNullProject() const
Check if this project is a null project (i.e.
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.
wxString MessageTextFromValue(double aValue, bool aAddUnitLabel=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
A lower-precision version of StringFromValue().
EDA_UNITS GetUserUnits() const
void SetUserUnits(EDA_UNITS aUnits)
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
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.
static const wxString productName
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.
bool IsImperialUnit(EDA_UNITS aUnit)
@ TARGET_NONCACHED
Auxiliary rendering target (noncached)
wxFont GetStatusFont(wxWindow *aWindow)
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.
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
std::vector< FAB_LAYER_COLOR > dummy
std::vector< wxString > replace_history
std::vector< wxString > find_history
Stores 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.
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
VECTOR2D ToVECTOR2D(const wxPoint &aPoint)