KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pl_editor_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) 2013 CERN
5 * Copyright (C) 2016-2023 KiCad Developers, see AUTHORS.txt for contributors.
6 * @author Jean-Pierre Charras, jp.charras at wanadoo.fr
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 _PL_EDITOR_FRAME_H
27#define _PL_EDITOR_FRAME_H
28
29
30#include <eda_draw_frame.h>
31#include <base_screen.h>
32#include "pl_editor_layout.h"
33#include "pl_draw_panel_gal.h"
34
37class DS_DATA_ITEM;
38class wxChoice;
39
40
45{
46public:
47 PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent );
49
51
56
57 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ) override;
58
64 bool LoadDrawingSheetFile( const wxString& aFullFileName );
65
71 bool SaveDrawingSheetFile( const wxString& aFullFileName );
72
78 bool InsertDrawingSheetFile( const wxString& aFullFileName );
79
85 bool IsContentModified() const override;
86
90 void OnExit( wxCommandEvent& aEvent );
91
92 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
93 void doCloseWindow() override;
94
95 // The Tool Framework initialization
96 void setupTools();
97
98 // Virtual basic functions:
99 void ReCreateHToolbar() override;
100 void UpdateToolbarControlSizes() override;
101
102 void SetPageSettings(const PAGE_INFO&) override;
103 const PAGE_INFO& GetPageSettings () const override;
104 const VECTOR2I GetPageSizeIU() const override;
105
106 PL_DRAW_PANEL_GAL* GetCanvas() const override;
107 SELECTION& GetCurrentSelection() override;
108
109 const VECTOR2I& GetGridOrigin() const override { return m_grid_origin; }
110 void SetGridOrigin( const VECTOR2I& aPoint ) override { m_grid_origin = aPoint; }
111
117
118 const TITLE_BLOCK& GetTitleBlock() const override;
119 void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) override;
120
121 void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
122
123 void DisplayGridMsg() override;
124
125 void UpdateStatusBar() override;
126
130 void OnNewDrawingSheet();
131
135 void ReCreateVToolbar() override;
136
142 void ReCreateOptToolbar() override;
143
144 const PL_EDITOR_LAYOUT& GetPageLayout() const { return m_pageLayout; }
146
147 const BOX2I GetDocumentExtents( bool aIncludeAllVisible = true ) const override;
148
157 bool GetPageNumberOption() const;
158
162 void UpdateTitleAndInfo();
163
167 void UpdateMsgPanelInfo();
168
169 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
170
171 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
172
173 void OnSelectPage( wxCommandEvent& event );
174
179 void OnSelectCoordOriginCorner( wxCommandEvent& event );
180
184 void ToPrinter( bool doPreview );
185
186 void Files_io( wxCommandEvent& event );
187
193 virtual void PrintPage( const RENDER_SETTINGS* aSettings ) override;
194
195 void OnFileHistory( wxCommandEvent& event );
196 void OnClearFileHistory( wxCommandEvent& aEvent );
197
203 wxString GetCurrentFileName() const override;
204
208 void SetCurrentFileName( const wxString& aName );
209
213 void HardRedraw() override;
214
223 DS_DATA_ITEM* AddDrawingSheetItem( int aType );
224
228 void OnModify() override;
229
233 void SaveCopyInUndoList();
234
241
248
253 void RollbackFromUndo();
254
255 void ClearUndoORRedoList( UNDO_REDO_LIST whichList, int aItemCount = -1 ) override;
256
257protected:
259
260 void setupUIConditions() override;
261
262 void doReCreateMenuBar() override;
263
264 void DoWithAcceptedFiles() override;
265
267
268protected:
271
272private:
274
275 int m_propertiesFrameWidth; // last width (in pixels) of m_propertiesPagelayout
276
277 wxChoice* m_originSelectBox; // Corner origin choice for coordinates
278 int m_originSelectChoice; // the last choice for m_originSelectBox
279 wxChoice* m_pageSelectBox; // The page number sel'ector (page 1 or other pages
280 // useful when there are some items which are
281 wxString m_mruImagePath; // Most recently used path for placing a new image
282 // only on page 1, not on page 1
284};
285
286#endif /* _PL_EDITOR_FRAME_H */
BASE_SCREEN class implementation.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
Drawing sheet structure type definitions.
Definition: ds_data_item.h:96
UNDO_REDO_LIST
Specifies whether we are interacting with the undo or redo stacks.
The base class for create windows for drawing purpose.
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:279
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:59
The main window used in the drawing sheet editor.
void ShowDesignInspector()
Show the dialog displaying the list of DS_DATA_ITEM items in the page layout.
bool OpenProjectFiles(const std::vector< wxString > &aFileSet, int aCtl) override
Open a project or set of files given by aFileList.
void OnNewDrawingSheet()
Must be called to initialize parameters when a new drawing sheet is loaded.
void OnModify() override
Must be called after a change in order to set the "modify" flag.
void SetCurrentFileName(const wxString &aName)
Store the current layout description file filename.
bool IsContentModified() const override
Get if the drawing sheet has been modified but not saved.
void Files_io(wxCommandEvent &event)
void GetLayoutFromRedoList()
Redo the last edit:
PL_EDITOR_LAYOUT & GetPageLayout()
void ToPrinter(bool doPreview)
Open a dialog frame to print layers.
void ReCreateOptToolbar() override
Create or update the left vertical toolbar.
void UpdateMsgPanelInfo()
Display the size of the sheet to the message panel.
const BOX2I GetDocumentExtents(bool aIncludeAllVisible=true) const override
Returns bbox of document with option to not include some items.
wxString m_mruImagePath
void doCloseWindow() override
VECTOR2I ReturnCoordOriginCorner() const
Calculate the position (in page, in iu) of the corner used as coordinate origin of items.
void OnClearFileHistory(wxCommandEvent &aEvent)
void SetPageSettings(const PAGE_INFO &) override
DS_DATA_ITEM * AddDrawingSheetItem(int aType)
Add a new item to the drawing sheet item list.
wxString GetCurrentFileName() const override
void GetLayoutFromUndoList()
Undo the last edit:
void doReCreateMenuBar() override
bool canCloseWindow(wxCloseEvent &aCloseEvent) override
void OnFileHistory(wxCommandEvent &event)
VECTOR2I m_grid_origin
void UpdateStatusBar() override
Update the status bar information.
void SetGridOrigin(const VECTOR2I &aPoint) override
void OnSelectPage(wxCommandEvent &event)
void RollbackFromUndo()
Apply the last command in Undo List without stacking a Redo.
const TITLE_BLOCK & GetTitleBlock() const override
void DoWithAcceptedFiles() override
Execute action on accepted dropped file.
void UpdateTitleAndInfo()
Display the short filename (if exists) loaded file on the caption of the main window.
const VECTOR2I GetPageSizeIU() const override
Works off of GetPageSettings() to return the size of the paper page in the internal units of this par...
virtual void PrintPage(const RENDER_SETTINGS *aSettings) override
Print a page.
void OnSelectCoordOriginCorner(wxCommandEvent &event)
Called when the user select one of the 4 page corner as corner reference (or the left top paper corne...
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
bool SaveDrawingSheetFile(const wxString &aFullFileName)
Save the current layout in a .kicad_wks drawing sheet file.
void ReCreateHToolbar() override
SELECTION & GetCurrentSelection() override
Get the current selection from the canvas area.
PL_EDITOR_LAYOUT m_pageLayout
bool InsertDrawingSheetFile(const wxString &aFullFileName)
Load a .kicad_wks drawing sheet file, and add items to the current layout list.
void SaveCopyInUndoList()
Save a copy of the description (in a S expr string) for Undo/redo commands.
bool GetPageNumberOption() const
Drawing sheet editor can show the title block using a page number 1 or another number.
void UpdateToolbarControlSizes() override
Update the sizes of any controls in the toolbars of the frame.
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
void HardRedraw() override
Refresh the library tree and redraw the window.
void DisplayGridMsg() override
Display current grid size in the status bar.
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
PROPERTIES_FRAME * GetPropertiesFrame()
wxChoice * m_originSelectBox
const PAGE_INFO & GetPageSettings() const override
const PL_EDITOR_LAYOUT & GetPageLayout() const
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
PROPERTIES_FRAME * m_propertiesPagelayout
The last filename chosen to be proposed to the user.
wxChoice * m_pageSelectBox
PL_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void ClearUndoORRedoList(UNDO_REDO_LIST whichList, int aItemCount=-1) override
Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if nee...
void ReCreateVToolbar() override
Create or update the right vertical toolbar.
const VECTOR2I & GetGridOrigin() const override
Return the absolute coordinates of the origin of the snap grid.
void SetTitleBlock(const TITLE_BLOCK &aTitleBlock) override
void OnExit(wxCommandEvent &aEvent)
Event handler for the wxID_EXIT and wxID_CLOSE events.
bool LoadDrawingSheetFile(const wxString &aFullFileName)
Load a .kicad_wks drawing sheet file.
PROPERTIES_FRAME display properties of the current item.
Hold the information shown in the lower right corner of a plot, printout, or editing view.
Definition: title_block.h:41