summaryrefslogtreecommitdiffstats
path: root/Project/MainFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/MainFrame.cpp')
-rw-r--r--Project/MainFrame.cpp105
1 files changed, 65 insertions, 40 deletions
diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp
index ddd2247..7099b76 100644
--- a/Project/MainFrame.cpp
+++ b/Project/MainFrame.cpp
@@ -3,8 +3,8 @@
MainFrame::MainFrame(wxWindow* parent, wxLocale* locale) : MainFrameBase(parent)
{
m_locale = locale;
-
- Init();
+
+ Init();
}
MainFrame::~MainFrame()
{
@@ -17,8 +17,8 @@ MainFrame::~MainFrame()
}
void MainFrame::Init()
{
- this->SetSize(800, 600);
-
+ this->SetSize(800, 600);
+
CreateAddElementsMenu();
EnableCurrentProjectRibbon(false);
@@ -99,15 +99,19 @@ void MainFrame::CreateAddElementsMenu()
void MainFrame::OnNewClick(wxRibbonButtonBarEvent& event)
{
- EnableCurrentProjectRibbon();
-
- Workspace* newWorkspace = new Workspace(this, wxString::Format(_("New project %d"), m_projectNumber));
- m_workspaceList.push_back(newWorkspace);
-
- m_auiNotebook->AddPage(newWorkspace, newWorkspace->GetName());
- newWorkspace->Layout();
- newWorkspace->Redraw();
- m_projectNumber++;
+ EnableCurrentProjectRibbon();
+
+ Workspace* newWorkspace =
+ new Workspace(this, wxString::Format(_("New project %d"), m_projectNumber, m_projectNumber));
+ m_workspaceList.push_back(newWorkspace);
+
+ m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_DISABLESOL, true);
+ m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_ENABLESOL, false);
+
+ m_auiNotebook->AddPage(newWorkspace, newWorkspace->GetName(), true);
+ newWorkspace->Layout();
+ newWorkspace->Redraw();
+ m_projectNumber++;
}
void MainFrame::OnAboutClick(wxRibbonButtonBarEvent& event) {}
@@ -152,32 +156,53 @@ void MainFrame::OnAddElementsClick(wxCommandEvent& event)
{
switch(event.GetId())
{
- case ID_ADDMENU_BUS:
- // inserir barra
- break;
- case ID_ADDMENU_LINE:
- // inserir linha
- break;
- case ID_ADDMENU_TRANSFORMER:
- // inserir transformador
- break;
- case ID_ADDMENU_GENERATOR:
- // inserir gerador
- break;
- case ID_ADDMENU_LOAD:
- // inserir larga
- break;
- case ID_ADDMENU_CAPACITOR:
- // inserir capacitor
- break;
- case ID_ADDMENU_INDUCTOR:
- // inserir indutor
- break;
- case ID_ADDMENU_INDMOTOR:
- // inserir motor
- break;
- case ID_ADDMENU_SYNCCOMP:
- // inserir compensador sincrono
- break;
+ case ID_ADDMENU_BUS:
+ // inserir barra
+ break;
+ case ID_ADDMENU_LINE:
+ // inserir linha
+ break;
+ case ID_ADDMENU_TRANSFORMER:
+ // inserir transformador
+ break;
+ case ID_ADDMENU_GENERATOR:
+ // inserir gerador
+ break;
+ case ID_ADDMENU_LOAD:
+ // inserir larga
+ break;
+ case ID_ADDMENU_CAPACITOR:
+ // inserir capacitor
+ break;
+ case ID_ADDMENU_INDUCTOR:
+ // inserir indutor
+ break;
+ case ID_ADDMENU_INDMOTOR:
+ // inserir motor
+ break;
+ case ID_ADDMENU_SYNCCOMP:
+ // inserir compensador sincrono
+ break;
+ }
+}
+void MainFrame::NotebookPageClosed(wxAuiNotebookEvent& event)
+{
+ if(m_auiNotebook->GetPageCount() == 0) EnableCurrentProjectRibbon(false);
+ //Memory leak?
+}
+void MainFrame::NotebookPageClosing(wxAuiNotebookEvent& event)
+{
+ std::vector<Workspace*>::iterator it = m_workspaceList.begin();
+ while(it != m_workspaceList.end()) {
+ Workspace* workspace = *it;
+
+ if(event.GetSelection() == m_auiNotebook->GetPageIndex(workspace)) {
+ //delete workspace; //Memory leak?
+ m_workspaceList.erase(it);
+ wxMessageBox(wxString::Format("%d", m_workspaceList.size()));
+ break;
+ }
+ it++;
}
+ event.Skip();
}