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 The 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
35#include <memory>
36
39class DS_DATA_ITEM;
40class wxChoice;
42
43
48{
49public:
50 PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent );
52
54
59
60 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ) override;
61
67 bool LoadDrawingSheetFile( const wxString& aFullFileName );
68
74 bool SaveDrawingSheetFile( const wxString& aFullFileName );
75
81 bool InsertDrawingSheetFile( const wxString& aFullFileName );
82
88 bool IsContentModified() const override;
89
93 void OnExit( wxCommandEvent& aEvent );
94
95 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
96 void doCloseWindow() override;
97
98 // The Tool Framework initialization
99 void setupTools();
100
101 void UpdateToolbarControlSizes() override;
102
103 void SetPageSettings(const PAGE_INFO&) override;
104 const PAGE_INFO& GetPageSettings () const override;
105 const VECTOR2I GetPageSizeIU() const override;
106
107 PL_DRAW_PANEL_GAL* GetCanvas() const override;
108 SELECTION& GetCurrentSelection() override;
109
110 const VECTOR2I& GetGridOrigin() const override { return m_grid_origin; }
111 void SetGridOrigin( const VECTOR2I& aPoint ) override { m_grid_origin = aPoint; }
112
118
119 const TITLE_BLOCK& GetTitleBlock() const override;
120 void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) override;
121
122 void CommonSettingsChanged( int aFlags ) override;
123
124 void DisplayGridMsg() override;
125
126 void UpdateStatusBar() override;
127
131 void OnNewDrawingSheet();
132
133 const PL_EDITOR_LAYOUT& GetPageLayout() const { return m_pageLayout; }
135
136 const BOX2I GetDocumentExtents( bool aIncludeAllVisible = true ) const override;
137
146 bool GetPageNumberOption() const;
147
151 void UpdateTitleAndInfo();
152
156 void UpdateMsgPanelInfo();
157
158 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
159
160 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
161
162 void OnSelectPage( wxCommandEvent& event );
163
168 void OnSelectCoordOriginCorner( wxCommandEvent& event );
169
173 void ToPrinter( bool doPreview );
174
175 void Files_io( wxCommandEvent& event );
176
177 void OnFileHistory( wxCommandEvent& event );
178 void OnClearFileHistory( wxCommandEvent& aEvent );
179
185 wxString GetCurrentFileName() const override;
186
190 void SetCurrentFileName( const wxString& aName );
191
195 void HardRedraw() override;
196
205 DS_DATA_ITEM* AddDrawingSheetItem( int aType );
206
210 void OnModify() override;
211
215 void SaveCopyInUndoList();
216
223
230
235 void RollbackFromUndo();
236
237 void ClearUndoORRedoList( UNDO_REDO_LIST whichList, int aItemCount = -1 ) override;
238
239protected:
241
242 void configureToolbars() override;
243
244 void setupUIConditions() override;
245
246 void doReCreateMenuBar() override;
247
248 void DoWithAcceptedFiles() override;
249
251
252private:
253 void handleActivateEvent( wxActivateEvent& aEvent ) override;
254 void handleIconizeEvent( wxIconizeEvent& aEvent ) override;
255
256protected:
259
260private:
262
263 int m_propertiesFrameWidth; // last width (in pixels) of m_propertiesPagelayout
264
265 wxChoice* m_originSelectBox; // Corner origin choice for coordinates
266 int m_originSelectChoice; // the last choice for m_originSelectBox
267 wxChoice* m_pageSelectBox; // The page number sel'ector (page 1 or other pages
268 // useful when there are some items which are
269 wxString m_mruImagePath; // Most recently used path for placing a new image
270 // only on page 1, not on page 1
272
273 std::unique_ptr<NL_PL_EDITOR_PLUGIN> m_spaceMouse;
274
275 wxString m_originChoiceList[5] =
276 {
277 _("Left Top paper corner"),
278 _("Right Bottom page corner"),
279 _("Left Bottom page corner"),
280 _("Right Top page corner"),
281 _("Left Top page corner")
282 };
283};
284
285#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
Specify whether we are interacting with the undo or redo stacks.
The base class for create windows for drawing purpose.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:285
The class that implements the public interface to the SpaceMouse plug-in.
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.
std::unique_ptr< NL_PL_EDITOR_PLUGIN > m_spaceMouse
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 configureToolbars() override
void ToPrinter(bool doPreview)
Open a dialog frame to print layers.
void UpdateMsgPanelInfo()
Display the size of the sheet to the message panel.
const BOX2I GetDocumentExtents(bool aIncludeAllVisible=true) const override
Return bounding box 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...
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 handleActivateEvent(wxActivateEvent &aEvent) override
Handle a window activation event.
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.
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(int aFlags) override
Notification event that some of the common (suite-wide) settings have changed.
void handleIconizeEvent(wxIconizeEvent &aEvent) override
Handle a window iconize event.
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.
wxString m_originChoiceList[5]
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...
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
#define _(s)