7#include "MainFrameBase.h"
11extern void wxC9ED9InitBitmapResources();
17wxBorder get_border_simple_theme_aware_bit() {
18#if wxVERSION_NUMBER >= 3300 && defined(__WXMSW__)
19 return wxSystemSettings::GetAppearance().IsDark() ? wxBORDER_SIMPLE : wxBORDER_DEFAULT;
21 return wxBORDER_DEFAULT;
24bool bBitmapLoaded =
false;
27MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style)
28 : wxFrame(parent, id, title, pos, size, style)
30 if ( !bBitmapLoaded ) {
32 wxXmlResource::Get()->AddHandler(
new wxBitmapXmlHandler);
33 wxC9ED9InitBitmapResources();
37 wxIconBundle app_icons;
39 wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT(
"logo16"));
41 icn.CopyFromBitmap(iconBmp);
42 app_icons.AddIcon( icn );
45 wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT(
"logo32"));
47 icn.CopyFromBitmap(iconBmp);
48 app_icons.AddIcon( icn );
51 wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT(
"logo64"));
53 icn.CopyFromBitmap(iconBmp);
54 app_icons.AddIcon( icn );
57 wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT(
"logo128"));
59 icn.CopyFromBitmap(iconBmp);
60 app_icons.AddIcon( icn );
63 wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT(
"logo256"));
65 icn.CopyFromBitmap(iconBmp);
66 app_icons.AddIcon( icn );
68 SetIcons( app_icons );
71 wxBoxSizer* boxSizer_lvl_1_1 =
new wxBoxSizer(wxVERTICAL);
72 this->SetSizer(boxSizer_lvl_1_1);
74 wxBoxSizer* boxSizer_lvl_2_1 =
new wxBoxSizer(wxVERTICAL);
76 boxSizer_lvl_1_1->Add(boxSizer_lvl_2_1, 0, wxEXPAND, WXC_FROM_DIP(5));
78 m_ribbonBar =
new wxRibbonBar(
this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(
this, wxSize(-1,-1)), wxRIBBON_BAR_DEFAULT_STYLE);
79 m_ribbonBar->SetArtProvider(
new wxRibbonDefaultArtProvider);
81 boxSizer_lvl_2_1->Add(m_ribbonBar, 0, wxEXPAND, WXC_FROM_DIP(5));
83 m_ribbonPageFile =
new wxRibbonPage(m_ribbonBar, wxID_ANY, _(
"File"), wxNullBitmap, 0);
84 m_ribbonPageFile->SetToolTip(_(
"File"));
85 m_ribbonBar->SetActivePage( m_ribbonPageFile );
87 m_ribbonPanelProjects =
new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _(
"Projects"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
88 m_ribbonPanelProjects->SetToolTip(_(
"Projects"));
90 m_ribbonButtonBarProjects =
new wxRibbonButtonBar(m_ribbonPanelProjects, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelProjects, wxSize(-1,-1)), 0);
91 m_ribbonButtonBarProjects->SetToolTip(_(
"Projects"));
93 m_ribbonButtonBarProjects->AddButton(ID_RIBBON_NEW, _(
"New"), wxXmlResource::Get()->LoadBitmap(wxT(
"new32")), _(
"Create new project"), wxRIBBON_BUTTON_NORMAL);
95 m_ribbonButtonBarProjects->AddButton(ID_RIBBON_OPEN, _(
"Open"), wxXmlResource::Get()->LoadBitmap(wxT(
"open32")), _(
"Open saved project"), wxRIBBON_BUTTON_NORMAL);
97 m_ribbonButtonBarProjects->AddButton(ID_RIBBON_IMPORT, _(
"Import"), wxXmlResource::Get()->LoadBitmap(wxT(
"imp32")), _(
"Open saved project"), wxRIBBON_BUTTON_NORMAL);
99 m_ribbonButtonBarProjects->AddButton(ID_RIBBON_GENSETTINGS, _(
"General Settings"), wxXmlResource::Get()->LoadBitmap(wxT(
"settings32")), _(
"Opens a dialog to set the main settings of the program"), wxRIBBON_BUTTON_NORMAL);
101 m_ribbonButtonBarProjects->AddButton(ID_RIBBON_EXIT, _(
"Exit"), wxXmlResource::Get()->LoadBitmap(wxT(
"exit32")), _(
"Closes the application"), wxRIBBON_BUTTON_NORMAL);
102 m_ribbonButtonBarProjects->Realize();
104 m_ribbonPanelCProject =
new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _(
"Current project"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
105 m_ribbonPanelCProject->SetToolTip(_(
"Current project"));
107 m_ribbonButtonBarCProject =
new wxRibbonButtonBar(m_ribbonPanelCProject, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCProject, wxSize(-1,-1)), 0);
109 m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVE, _(
"Save"), wxXmlResource::Get()->LoadBitmap(wxT(
"save32")), _(
"Save the current project"), wxRIBBON_BUTTON_NORMAL);
111 m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVEAS, _(
"Save As..."), wxXmlResource::Get()->LoadBitmap(wxT(
"saveAs32")), _(
"Save as the current project"), wxRIBBON_BUTTON_NORMAL);
113 m_ribbonButtonBarCProject->AddButton(ID_RIBBON_CLOSE, _(
"Close"), wxXmlResource::Get()->LoadBitmap(wxT(
"close32")), _(
"Close the current project"), wxRIBBON_BUTTON_NORMAL);
114 m_ribbonButtonBarCProject->Realize();
116 m_ribbonPanelHelp =
new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _(
"Help"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
117 m_ribbonPanelHelp->SetToolTip(_(
"Help"));
119 m_ribbonButtonBarHelp =
new wxRibbonButtonBar(m_ribbonPanelHelp, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelHelp, wxSize(-1,-1)), 0);
120 m_ribbonButtonBarHelp->SetToolTip(_(
"Help"));
122 m_ribbonButtonBarHelp->AddButton(ID_RIBBON_GUIDE, _(
"PSP-UFU Guide"), wxXmlResource::Get()->LoadBitmap(wxT(
"guide32")), _(
"Open PSP-UFU Guide"), wxRIBBON_BUTTON_NORMAL);
124 m_ribbonButtonBarHelp->AddButton(ID_RIBBON_ABOUT, _(
"About..."), wxXmlResource::Get()->LoadBitmap(wxT(
"about32")), _(
"About PSP-UFU"), wxRIBBON_BUTTON_NORMAL);
125 m_ribbonButtonBarHelp->Realize();
127 m_ribbonPageTools =
new wxRibbonPage(m_ribbonBar, wxID_ANY, _(
"Tools"), wxNullBitmap, 0);
128 m_ribbonPageTools->SetToolTip(_(
"Tools"));
130 m_ribbonPanelClipboard =
new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _(
"Clipboard"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
131 m_ribbonPanelClipboard->SetToolTip(_(
"Clipboard"));
133 m_ribbonButtonBarClipboard =
new wxRibbonButtonBar(m_ribbonPanelClipboard, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelClipboard, wxSize(-1,-1)), 0);
134 m_ribbonButtonBarClipboard->SetToolTip(_(
"Clipboard"));
136 m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_COPY, _(
"Copy"), wxXmlResource::Get()->LoadBitmap(wxT(
"copy32")), _(
"Copies the selected elements"), wxRIBBON_BUTTON_NORMAL);
138 m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_PASTE, _(
"Paste"), wxXmlResource::Get()->LoadBitmap(wxT(
"paste32")), _(
"Pastes the elements from clipboard"), wxRIBBON_BUTTON_NORMAL);
140 m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_UNDO, _(
"Undo"), wxXmlResource::Get()->LoadBitmap(wxT(
"undo32")), _(
"Undoes the last action"), wxRIBBON_BUTTON_NORMAL);
142 m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_REDO, _(
"Redo"), wxXmlResource::Get()->LoadBitmap(wxT(
"redo32")), _(
"Redoes the last undo action"), wxRIBBON_BUTTON_NORMAL);
143 m_ribbonButtonBarClipboard->Realize();
145 m_ribbonPanelCircuit =
new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _(
"Circuit"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
146 m_ribbonPanelCircuit->SetToolTip(_(
"Circuit"));
148 m_ribbonButtonBarCircuit =
new wxRibbonButtonBar(m_ribbonPanelCircuit, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCircuit, wxSize(-1,-1)), 0);
149 m_ribbonButtonBarCircuit->SetToolTip(_(
"Circuit"));
151 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ADDELEMENT, _(
"Add Element"), wxXmlResource::Get()->LoadBitmap(wxT(
"add32")), _(
"Add a new element in the project"), wxRIBBON_BUTTON_DROPDOWN);
153 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DRAG, _(
"Drag"), wxXmlResource::Get()->LoadBitmap(wxT(
"drag32")), _(
"Drag all the elements"), wxRIBBON_BUTTON_NORMAL);
155 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_MOVE, _(
"Move"), wxXmlResource::Get()->LoadBitmap(wxT(
"move32")), _(
"Move the selected elements"), wxRIBBON_BUTTON_NORMAL);
157 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DELETE, _(
"Delete"), wxXmlResource::Get()->LoadBitmap(wxT(
"delete32")), _(
"Removes all selected elements"), wxRIBBON_BUTTON_NORMAL);
159 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_FIT, _(
"Fit"), wxXmlResource::Get()->LoadBitmap(wxT(
"fit32")), _(
"Applies the drag and zoom tools to show all elements in workspace"), wxRIBBON_BUTTON_NORMAL);
161 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATEC, _(
"Rotate Clockwise"), wxXmlResource::Get()->LoadBitmap(wxT(
"rotateClock32")), _(
"Rotate clockwise"), wxRIBBON_BUTTON_NORMAL);
163 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATECC, _(
"Rotate Counter-clockwise"), wxXmlResource::Get()->LoadBitmap(wxT(
"rotateCounterClock32")), _(
"Rotate the selected elements counter-clockwise"), wxRIBBON_BUTTON_NORMAL);
165 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_GRID, _(
"Grid & Snap"), wxXmlResource::Get()->LoadBitmap(wxT(
"grid32")), _(
"Show grid and snap element positions"), wxRIBBON_BUTTON_TOGGLE);
167 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ALIGN, _(
"Align"), wxXmlResource::Get()->LoadBitmap(wxT(
"align32")), _(
"Align selected elements"), wxRIBBON_BUTTON_NORMAL);
169 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_LABELMNGR, _(
"Label Manager"), wxXmlResource::Get()->LoadBitmap(wxT(
"labelMngr32")), _(
"Automatically insert labels into multiple elements at once"), wxRIBBON_BUTTON_NORMAL);
171 m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_PROJSETTINGS, _(
"Project Settings"), wxXmlResource::Get()->LoadBitmap(wxT(
"settings32")), _(
"Opens a dialog to set the main settings of the current project"), wxRIBBON_BUTTON_NORMAL);
172 m_ribbonButtonBarCircuit->Realize();
174 m_ribbonPanelReports =
new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _(
"Data Visualization"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
175 m_ribbonPanelReports->SetToolTip(_(
"Reports"));
177 m_ribbonButtonBarReports =
new wxRibbonButtonBar(m_ribbonPanelReports, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelReports, wxSize(-1,-1)), 0);
179 m_ribbonButtonBarReports->AddButton(ID_RIBBON_DATAREPORT, _(
"Data Report"), wxXmlResource::Get()->LoadBitmap(wxT(
"dataReport32")), _(
"Opens a data report"), wxRIBBON_BUTTON_NORMAL);
181 m_ribbonButtonBarReports->AddButton(ID_RIBBON_CHARTS, _(
"Charts"), wxXmlResource::Get()->LoadBitmap(wxT(
"chart32")), _(
"Open the charts"), wxRIBBON_BUTTON_NORMAL);
183 m_ribbonButtonBarReports->AddButton(ID_RIBBON_HEATMAP, _(
"Voltage Heatmap"), wxXmlResource::Get()->LoadBitmap(wxT(
"heatmap32")), _(
"Enable/disable the voltage heatmap visualization"), wxRIBBON_BUTTON_TOGGLE);
185 m_ribbonButtonBarReports->AddButton(ID_RIBBON_SNAPSHOT, _(
"Snapshot"), wxXmlResource::Get()->LoadBitmap(wxT(
"snap32")), _(
"Capture a snapshot of the circuit"), wxRIBBON_BUTTON_HYBRID);
186 m_ribbonButtonBarReports->Realize();
188 m_ribbonPageSimulation =
new wxRibbonPage(m_ribbonBar, wxID_ANY, _(
"Simulation"), wxNullBitmap, 0);
189 m_ribbonPageSimulation->SetToolTip(_(
"Simulation"));
191 m_ribbonPanelContinuous =
new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _(
"Continuous"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_DEFAULT_STYLE);
192 m_ribbonPanelContinuous->SetToolTip(_(
"Continuous"));
194 m_ribbonButtonBarContinuous =
new wxRibbonButtonBar(m_ribbonPanelContinuous, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelContinuous, wxSize(-1,-1)), 0);
196 m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_ENABLESOL, _(
"Enable Solution"), wxXmlResource::Get()->LoadBitmap(wxT(
"playStopped32")), _(
"Enables the power flow and fault (if exists) calculations after any circuit change"), wxRIBBON_BUTTON_TOGGLE);
198 m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_DISABLESOL, _(
"Disable Solution"), wxXmlResource::Get()->LoadBitmap(wxT(
"pauseStopped32")), _(
"Disables the power flow and fault calculations after any circuit changes"), wxRIBBON_BUTTON_TOGGLE);
200 m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_RESETVOLT, _(
"Reset Voltages"), wxXmlResource::Get()->LoadBitmap(wxT(
"reset32")), _(
"Reset all voltages to initial state"), wxRIBBON_BUTTON_NORMAL);
201 m_ribbonButtonBarContinuous->Realize();
203 m_ribbonPanelSimulations =
new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _(
"Simulations"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE);
204 m_ribbonPanelSimulations->SetToolTip(_(
"Simulations"));
206 m_ribbonButtonBarSimulations =
new wxRibbonButtonBar(m_ribbonPanelSimulations, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelSimulations, wxSize(-1,-1)), 0);
207 m_ribbonButtonBarSimulations->SetToolTip(_(
"Simulations"));
209 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_POWERFLOW, _(
"Power Flow"), wxXmlResource::Get()->LoadBitmap(wxT(
"powerFLow32")), _(
"Calculate the circuit power flow"), wxRIBBON_BUTTON_NORMAL);
211 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_RUNSTAB, _(
"Run Stability"), wxXmlResource::Get()->LoadBitmap(wxT(
"playStopped32")), _(
"Run the stability calculations"), wxRIBBON_BUTTON_HYBRID);
213 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_FAULT, _(
"Fault"), wxXmlResource::Get()->LoadBitmap(wxT(
"fault32")), _(
"Calculate the circuit fault (if exists)"), wxRIBBON_BUTTON_NORMAL);
215 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SCPOWER, _(
"Short-Circuit Power"), wxXmlResource::Get()->LoadBitmap(wxT(
"faultPower32")), _(
"Calculate the short-circuit power in all buses"), wxRIBBON_BUTTON_NORMAL);
217 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_HARMDIST, _(
"Harmonic Distortions"), wxXmlResource::Get()->LoadBitmap(wxT(
"harmDist32")), _(
"Calculate the voltage distortions on all buses due to harmonic current sources"), wxRIBBON_BUTTON_NORMAL);
219 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_FREQRESP, _(
"Frequency response"), wxXmlResource::Get()->LoadBitmap(wxT(
"freqResp32")), _(
"Calculate the impedance seen in a bus for varies frequencies"), wxRIBBON_BUTTON_NORMAL);
221 m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SIMULSETTINGS, _(
"Simulation Settings"), wxXmlResource::Get()->LoadBitmap(wxT(
"settings32")), _(
"Opens a dialog to set the settings of the simulations"), wxRIBBON_BUTTON_NORMAL);
222 m_ribbonButtonBarSimulations->Realize();
223 m_ribbonBar->Realize();
224 wxBoxSizer* boxSizer_lvl_2_2 =
new wxBoxSizer(wxVERTICAL);
226 boxSizer_lvl_1_1->Add(boxSizer_lvl_2_2, 1, wxEXPAND, WXC_FROM_DIP(5));
228 m_auiNotebook =
new wxAuiNotebook(
this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(
this, wxSize(-1,-1)), wxAUI_NB_DEFAULT_STYLE|wxBK_DEFAULT);
229 m_auiNotebook->SetName(wxT(
"m_auiNotebook"));
231 boxSizer_lvl_2_2->Add(m_auiNotebook, 1, wxEXPAND, WXC_FROM_DIP(5));
233 m_statusBar =
new wxStatusBar(
this, wxID_ANY, wxSTB_DEFAULT_STYLE);
234 m_statusBar->SetFieldsCount(4);
235 this->SetStatusBar(m_statusBar);
238 #if wxVERSION_NUMBER >= 2900
239 if(!wxPersistenceManager::Get().Find(m_auiNotebook)){
240 wxPersistenceManager::Get().RegisterAndRestore(m_auiNotebook);
242 wxPersistenceManager::Get().Restore(m_auiNotebook);
246 SetName(wxT(
"MainFrameBase"));
247 SetSize(wxDLG_UNIT(
this, wxSize(800,600)));
249 GetSizer()->Fit(
this);
252 CentreOnParent(wxBOTH);
254 CentreOnScreen(wxBOTH);
256 if(!wxPersistenceManager::Get().Find(
this)) {
257 wxPersistenceManager::Get().RegisterAndRestore(
this);
259 wxPersistenceManager::Get().Restore(
this);
262 this->Bind(wxEVT_CLOSE_WINDOW, &MainFrameBase::OnClose,
this);
263 m_ribbonButtonBarProjects->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnNewClick,
this, ID_RIBBON_NEW);
264 m_ribbonButtonBarProjects->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnOpenClick,
this, ID_RIBBON_OPEN);
265 m_ribbonButtonBarProjects->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnImportClick,
this, ID_RIBBON_IMPORT);
266 m_ribbonButtonBarProjects->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnGeneralSettingsClick,
this, ID_RIBBON_GENSETTINGS);
267 m_ribbonButtonBarProjects->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnExitClick,
this, ID_RIBBON_EXIT);
268 m_ribbonButtonBarCProject->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSaveClick,
this, ID_RIBBON_SAVE);
269 m_ribbonButtonBarCProject->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSaveAsClick,
this, ID_RIBBON_SAVEAS);
270 m_ribbonButtonBarCProject->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnCloseClick,
this, ID_RIBBON_CLOSE);
271 m_ribbonButtonBarHelp->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPSPGuideClick,
this, ID_RIBBON_GUIDE);
272 m_ribbonButtonBarHelp->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnAboutClick,
this, ID_RIBBON_ABOUT);
273 m_ribbonButtonBarClipboard->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnCopyClick,
this, ID_RIBBON_COPY);
274 m_ribbonButtonBarClipboard->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPasteClick,
this, ID_RIBBON_PASTE);
275 m_ribbonButtonBarClipboard->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnUndoClick,
this, ID_RIBBON_UNDO);
276 m_ribbonButtonBarClipboard->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRedoClick,
this, ID_RIBBON_REDO);
277 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnAddElementDropdown,
this, ID_RIBBON_ADDELEMENT);
278 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDragClick,
this, ID_RIBBON_DRAG);
279 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnMoveClick,
this, ID_RIBBON_MOVE);
280 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDeleteClick,
this, ID_RIBBON_DELETE);
281 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFitClick,
this, ID_RIBBON_FIT);
282 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRotClockClick,
this, ID_RIBBON_ROTATEC);
283 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRotCounterClockClick,
this, ID_RIBBON_ROTATECC);
284 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnGridClick,
this, ID_RIBBON_GRID);
285 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnAlignClick,
this, ID_RIBBON_ALIGN);
286 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnLabelMngrClick,
this, ID_RIBBON_LABELMNGR);
287 m_ribbonButtonBarCircuit->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnProjectSettingsClick,
this, ID_RIBBON_PROJSETTINGS);
288 m_ribbonButtonBarReports->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDataReportClick,
this, ID_RIBBON_DATAREPORT);
289 m_ribbonButtonBarReports->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnChartsClick,
this, ID_RIBBON_CHARTS);
290 m_ribbonButtonBarReports->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnHeatmapClick,
this, ID_RIBBON_HEATMAP);
291 m_ribbonButtonBarReports->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSnapshotClick,
this, ID_RIBBON_SNAPSHOT);
292 m_ribbonButtonBarReports->Bind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnSnapshotDropdown,
this, ID_RIBBON_SNAPSHOT);
293 m_ribbonButtonBarContinuous->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnEnableSolutionClick,
this, ID_RIBBON_ENABLESOL);
294 m_ribbonButtonBarContinuous->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDisableSolutionClick,
this, ID_RIBBON_DISABLESOL);
295 m_ribbonButtonBarContinuous->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnResetVoltagesClick,
this, ID_RIBBON_RESETVOLT);
296 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPowerFlowClick,
this, ID_RIBBON_POWERFLOW);
297 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRunStabilityClick,
this, ID_RIBBON_RUNSTAB);
298 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnStabilityDropdown,
this, ID_RIBBON_RUNSTAB);
299 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFaultClick,
this, ID_RIBBON_FAULT);
300 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSCPowerClick,
this, ID_RIBBON_SCPOWER);
301 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnHarmDistortionsClick,
this, ID_RIBBON_HARMDIST);
302 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFreqResponseClick,
this, ID_RIBBON_FREQRESP);
303 m_ribbonButtonBarSimulations->Bind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSimulationSettingsClick,
this, ID_RIBBON_SIMULSETTINGS);
304 m_auiNotebook->Bind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, &MainFrameBase::NotebookPageClosing,
this);
305 m_auiNotebook->Bind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, &MainFrameBase::NotebookPageClosed,
this);
306 m_auiNotebook->Bind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, &MainFrameBase::OnNotebookPageChanged,
this);
310MainFrameBase::~MainFrameBase()
312 this->Unbind(wxEVT_CLOSE_WINDOW, &MainFrameBase::OnClose,
this);
313 m_ribbonButtonBarProjects->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnNewClick,
this, ID_RIBBON_NEW);
314 m_ribbonButtonBarProjects->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnOpenClick,
this, ID_RIBBON_OPEN);
315 m_ribbonButtonBarProjects->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnImportClick,
this, ID_RIBBON_IMPORT);
316 m_ribbonButtonBarProjects->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnGeneralSettingsClick,
this, ID_RIBBON_GENSETTINGS);
317 m_ribbonButtonBarProjects->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnExitClick,
this, ID_RIBBON_EXIT);
318 m_ribbonButtonBarCProject->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSaveClick,
this, ID_RIBBON_SAVE);
319 m_ribbonButtonBarCProject->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSaveAsClick,
this, ID_RIBBON_SAVEAS);
320 m_ribbonButtonBarCProject->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnCloseClick,
this, ID_RIBBON_CLOSE);
321 m_ribbonButtonBarHelp->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPSPGuideClick,
this, ID_RIBBON_GUIDE);
322 m_ribbonButtonBarHelp->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnAboutClick,
this, ID_RIBBON_ABOUT);
323 m_ribbonButtonBarClipboard->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnCopyClick,
this, ID_RIBBON_COPY);
324 m_ribbonButtonBarClipboard->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPasteClick,
this, ID_RIBBON_PASTE);
325 m_ribbonButtonBarClipboard->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnUndoClick,
this, ID_RIBBON_UNDO);
326 m_ribbonButtonBarClipboard->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRedoClick,
this, ID_RIBBON_REDO);
327 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnAddElementDropdown,
this, ID_RIBBON_ADDELEMENT);
328 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDragClick,
this, ID_RIBBON_DRAG);
329 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnMoveClick,
this, ID_RIBBON_MOVE);
330 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDeleteClick,
this, ID_RIBBON_DELETE);
331 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFitClick,
this, ID_RIBBON_FIT);
332 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRotClockClick,
this, ID_RIBBON_ROTATEC);
333 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRotCounterClockClick,
this, ID_RIBBON_ROTATECC);
334 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnGridClick,
this, ID_RIBBON_GRID);
335 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnAlignClick,
this, ID_RIBBON_ALIGN);
336 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnLabelMngrClick,
this, ID_RIBBON_LABELMNGR);
337 m_ribbonButtonBarCircuit->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnProjectSettingsClick,
this, ID_RIBBON_PROJSETTINGS);
338 m_ribbonButtonBarReports->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDataReportClick,
this, ID_RIBBON_DATAREPORT);
339 m_ribbonButtonBarReports->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnChartsClick,
this, ID_RIBBON_CHARTS);
340 m_ribbonButtonBarReports->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnHeatmapClick,
this, ID_RIBBON_HEATMAP);
341 m_ribbonButtonBarReports->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSnapshotClick,
this, ID_RIBBON_SNAPSHOT);
342 m_ribbonButtonBarReports->Unbind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnSnapshotDropdown,
this, ID_RIBBON_SNAPSHOT);
343 m_ribbonButtonBarContinuous->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnEnableSolutionClick,
this, ID_RIBBON_ENABLESOL);
344 m_ribbonButtonBarContinuous->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnDisableSolutionClick,
this, ID_RIBBON_DISABLESOL);
345 m_ribbonButtonBarContinuous->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnResetVoltagesClick,
this, ID_RIBBON_RESETVOLT);
346 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnPowerFlowClick,
this, ID_RIBBON_POWERFLOW);
347 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnRunStabilityClick,
this, ID_RIBBON_RUNSTAB);
348 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, &MainFrameBase::OnStabilityDropdown,
this, ID_RIBBON_RUNSTAB);
349 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFaultClick,
this, ID_RIBBON_FAULT);
350 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSCPowerClick,
this, ID_RIBBON_SCPOWER);
351 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnHarmDistortionsClick,
this, ID_RIBBON_HARMDIST);
352 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnFreqResponseClick,
this, ID_RIBBON_FREQRESP);
353 m_ribbonButtonBarSimulations->Unbind(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, &MainFrameBase::OnSimulationSettingsClick,
this, ID_RIBBON_SIMULSETTINGS);
354 m_auiNotebook->Unbind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, &MainFrameBase::NotebookPageClosing,
this);
355 m_auiNotebook->Unbind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, &MainFrameBase::NotebookPageClosed,
this);
356 m_auiNotebook->Unbind(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, &MainFrameBase::OnNotebookPageChanged,
this);