Power System Platform  2026w34a-beta
Loading...
Searching...
No Matches
MainFrame.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Thales Lima Oliveira <thales@ufu.br>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17
18#ifndef MAINFRAME_H
19#define MAINFRAME_H
20
21#include <wx/menu.h>
22#include <wx/msgdlg.h>
23#include <wx/filedlg.h>
24#include <wx/msgout.h>
25//#include <wx/glcanvas.h>
26
27#include "MainFrameBase.h"
28#include "utils/CommomTypes.h"
29
30class MainFrameBase;
31class wxRibbonMetroArtProvider;
32class Workspace;
33class FileHanding;
36class PropertiesData;
37class ChartView;
38class DataReport;
39class AboutForm;
40class ImportForm;
42class ElementsToolBar;
43
44enum {
45 ID_ADDMENU_BUS = 20000,
46 ID_ADDMENU_LINE,
47 ID_ADDMENU_TRANSFORMER,
48 ID_ADDMENU_GENERATOR,
49 ID_ADDMENU_LOAD,
50 ID_ADDMENU_CAPACITOR,
51 ID_ADDMENU_INDUCTOR,
52 ID_ADDMENU_INDMOTOR,
53 ID_ADDMENU_SYNCCOMP,
54 ID_ADDMENU_HARMCURRENT,
55 ID_ADDMENU_EMTELEMENT,
56 ID_ADDMENU_TEXT,
57
58 ID_STABMENU_LIST,
59
60 ID_SNAPSHOTMENU_LIST
61};
62
71{
72 public:
77 MainFrame();
84 MainFrame(wxWindow* parent, wxLocale* locale, PropertiesData* initProperties, wxString openPath = "");
85
89 ~MainFrame();
90
91 int RunPSPTest();
92
93 void OnAddElementsClick(wxCommandEvent& event);
94 void BuildElementsToolBar(ElementsToolbar style);
95 void OnElementsToolBarClosed();
96 ElementsToolBar* GetElementsToolBar() { return m_elementsToolBar; }
97
98 protected:
99 virtual void OnGridClick(wxRibbonButtonBarEvent& event) override;
100 virtual void OnAlignClick(wxRibbonButtonBarEvent& event) override;
101 virtual void OnLabelMngrClick(wxRibbonButtonBarEvent& event);
102 virtual void OnSnapshotDropdown(wxRibbonButtonBarEvent& event);
103 virtual void OnProjectSettingsClick(wxRibbonButtonBarEvent& event);
104 virtual void OnNotebookPageChanged(wxAuiNotebookEvent& event);
105 virtual void OnHeatmapClick(wxRibbonButtonBarEvent& event);
106 virtual void OnClose(wxCloseEvent& event);
107 virtual void OnStabilityDropdown(wxRibbonButtonBarEvent& event);
108 virtual void OnFreqResponseClick(wxRibbonButtonBarEvent& event);
109 virtual void OnHarmDistortionsClick(wxRibbonButtonBarEvent& event);
110 virtual void OnGeneralSettingsClick(wxRibbonButtonBarEvent& event);
111 virtual void OnSimulationSettingsClick(wxRibbonButtonBarEvent& event);
112 virtual void OnRotClockClick(wxRibbonButtonBarEvent& event);
113 virtual void OnRotCounterClockClick(wxRibbonButtonBarEvent& event);
114 virtual void NotebookPageClosed(wxAuiNotebookEvent& event);
115 virtual void NotebookPageClosing(wxAuiNotebookEvent& event);
116 virtual void OnAboutClick(wxRibbonButtonBarEvent& event);
117 virtual void OnAddElementDropdown(wxRibbonButtonBarEvent& event);
118 virtual void OnChartsClick(wxRibbonButtonBarEvent& event);
119 virtual void OnCloseClick(wxRibbonButtonBarEvent& event);
120 virtual void OnCopyClick(wxRibbonButtonBarEvent& event);
121 virtual void OnDataReportClick(wxRibbonButtonBarEvent& event);
122 virtual void OnDeleteClick(wxRibbonButtonBarEvent& event);
123 virtual void OnDisableSolutionClick(wxRibbonButtonBarEvent& event);
124 virtual void OnDragClick(wxRibbonButtonBarEvent& event);
125 virtual void OnEnableSolutionClick(wxRibbonButtonBarEvent& event);
126 virtual void OnExitClick(wxRibbonButtonBarEvent& event) { this->Close(); };
127 //virtual void OnExpImpClick(wxRibbonButtonBarEvent& event);
128 virtual void OnFaultClick(wxRibbonButtonBarEvent& event);
129 virtual void OnFitClick(wxRibbonButtonBarEvent& event);
130 virtual void OnMoveClick(wxRibbonButtonBarEvent& event);
131 virtual void OnOpenClick(wxRibbonButtonBarEvent& event);
132 virtual void OnPSPGuideClick(wxRibbonButtonBarEvent& event);
133 virtual void OnPasteClick(wxRibbonButtonBarEvent& event);
134 virtual void OnPowerFlowClick(wxRibbonButtonBarEvent& event);
135 virtual void OnRedoClick(wxRibbonButtonBarEvent& event);
136 virtual void OnResetVoltagesClick(wxRibbonButtonBarEvent& event);
137 virtual void OnRunStabilityClick(wxRibbonButtonBarEvent& event);
138 virtual void OnSCPowerClick(wxRibbonButtonBarEvent& event);
139 virtual void OnSaveAsClick(wxRibbonButtonBarEvent& event);
140 virtual void OnSaveClick(wxRibbonButtonBarEvent& event);
141 virtual void OnSnapshotClick(wxRibbonButtonBarEvent& event);
142 virtual void OnUndoClick(wxRibbonButtonBarEvent& event);
143 virtual void OnNewClick(wxRibbonButtonBarEvent& event);
144 virtual void OnImportClick(wxRibbonButtonBarEvent& event);
145
146 std::vector<Workspace*> m_workspaceList;
147 int m_projectNumber = 1;
148
149 wxRibbonMetroArtProvider* m_artMetro = nullptr;
150 wxMenu* m_addElementsMenu = nullptr;
151 wxMenu* m_stabilityMenu = nullptr;
152 wxMenu* m_snapshotMenu = nullptr;
153 wxLocale* m_locale = nullptr;
154 PropertiesData* m_generalProperties = nullptr;
155 ElementsToolBar* m_elementsToolBar = nullptr;
156 bool m_elementsToolBarPositioned = false;
157 void PositionElementsToolBar();
158
159 void Init();
160 void EnableCurrentProjectRibbon(bool enable = true);
161 void CreateDropdownMenus();
162
163 void OnStabilityMenuClick(wxCommandEvent& event);
164 void OnSnapshotMenuClick(wxCommandEvent& event);
165};
166
167#endif // MAINFRAME_H
Form to show some informations.
Definition AboutForm.h:33
This class is responsible to manage the charts generated in the transient electromechanical studies.
Definition ChartView.h:49
Form that shows the results of power flow and fault calculations.
Definition DataReport.h:34
Floating vertical toolbar for inserting circuit elements.
Save and opens the projects created on disk.
Definition FileHanding.h:43
Form to edit the software's general data.
Form to import other programs files to PSP.
Definition ImportForm.h:53
Main frame of the program. This class manage the ribbon menu and the notebook behavior.
Definition MainFrame.h:71
~MainFrame()
Default destructor.
Definition MainFrame.cpp:86
MainFrame()
Default constructor.
Definition MainFrame.cpp:53
General and simulation data manager.
Form to edit the simulation data.
This class manages the graphical and power elements. It is responsible for handling the user's intera...
Definition Workspace.h:105