diff options
Diffstat (limited to 'Project/MainFrame.cpp')
-rw-r--r-- | Project/MainFrame.cpp | 130 |
1 files changed, 118 insertions, 12 deletions
diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp index e687972..ddd2247 100644 --- a/Project/MainFrame.cpp +++ b/Project/MainFrame.cpp @@ -1,33 +1,46 @@ #include "MainFrame.h" -MainFrame::MainFrame(wxWindow* parent) : MainFrameBase(parent) { Init(); } +MainFrame::MainFrame(wxWindow* parent, wxLocale* locale) : MainFrameBase(parent) +{ + m_locale = locale; + + Init(); +} MainFrame::~MainFrame() { if(!m_artMetro) delete m_artMetro; + if(!m_addElementsMenu) { + m_addElementsMenu->Disconnect(wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(MainFrame::OnAddElementsClick), NULL, this); + delete m_addElementsMenu; + } } void MainFrame::Init() { - this->SetSize(800, 600); - // carregar configs locais + this->SetSize(800, 600); + + CreateAddElementsMenu(); EnableCurrentProjectRibbon(false); m_artMetro = new wxRibbonMetroArtProvider(); m_ribbonBar->SetArtProvider(m_artMetro); - m_ribbonBar->Layout(); + m_ribbonBar->Realize(); + + this->Layout(); } void MainFrame::EnableCurrentProjectRibbon(bool enable) { m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ADDELEMENT, enable); m_ribbonButtonBarStabData->EnableButton(ID_RIBBON_CHARTS, enable); - m_ribbonButtonBarCProject->EnableButton(ID_RIBBON_CLOSE, enable); + m_ribbonButtonBarCProject->EnableButton(ID_RIBBON_CLOSE, enable); m_ribbonButtonBarClipboard->EnableButton(ID_RIBBON_COPY, enable); m_ribbonButtonBarReports->EnableButton(ID_RIBBON_DATAREPORT, enable); m_ribbonButtonBarHandling->EnableButton(ID_RIBBON_DELETE, enable); - m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_DISABLESOL, enable); + m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_DISABLESOL, enable); m_ribbonButtonBarHandling->EnableButton(ID_RIBBON_DRAG, enable); - m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ENABLESOL, enable); + m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ENABLESOL, enable); m_ribbonButtonBarCalculations->EnableButton(ID_RIBBON_FAULT, enable); m_ribbonButtonBarHandling->EnableButton(ID_RIBBON_FIT, enable); m_ribbonButtonBarHandling->EnableButton(ID_RIBBON_MOVE, enable); @@ -45,18 +58,78 @@ void MainFrame::EnableCurrentProjectRibbon(bool enable) m_ribbonButtonBarClipboard->EnableButton(ID_RIBBON_UNDO, enable); } -void MainFrame::OnNewClick(wxRibbonButtonBarEvent& event) { EnableCurrentProjectRibbon(); } +void MainFrame::CreateAddElementsMenu() +{ + m_addElementsMenu = new wxMenu(); + + wxMenuItem* busElement = + new wxMenuItem(m_addElementsMenu, ID_ADDMENU_BUS, _("&Bus\tB"), _("Adds a bus at the circuit")); + // busElement->SetBitmap(wxArtProvider::GetBitmap(wxART_WARNING)); + wxMenuItem* lineElement = + new wxMenuItem(m_addElementsMenu, ID_ADDMENU_LINE, _("&Line\tL"), _("Adds a power line at the circuit")); + wxMenuItem* transformerElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_TRANSFORMER, _("&Transformer\tT"), + _("Adds a transformer at the circuit")); + wxMenuItem* generatorElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_GENERATOR, _("&Generator\tG"), + _("Adds a generator at the circuit")); + wxMenuItem* indMotorElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDMOTOR, _("&Induction motor\tI"), + _("Adds an induction motor at the circuit")); + wxMenuItem* syncCompElement = + new wxMenuItem(m_addElementsMenu, ID_ADDMENU_SYNCCOMP, _("&Synchronous compensator \tK"), + _("Adds an induction motor at the circuit")); + wxMenuItem* loadElement = + new wxMenuItem(m_addElementsMenu, ID_ADDMENU_LOAD, _("&Load\tShift-L"), _("Adds a load at the circuit")); + wxMenuItem* capacitorElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_CAPACITOR, _("&Capacitor\tShift-C"), + _("Adds a shunt capacitor at the circuit")); + wxMenuItem* inductorElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDUCTOR, _("&Inductor\tShift-I"), + _("Adds a shunt inductor at the circuit")); + + m_addElementsMenu->Append(busElement); + m_addElementsMenu->Append(lineElement); + m_addElementsMenu->Append(transformerElement); + m_addElementsMenu->Append(generatorElement); + m_addElementsMenu->Append(indMotorElement); + m_addElementsMenu->Append(syncCompElement); + m_addElementsMenu->Append(loadElement); + m_addElementsMenu->Append(capacitorElement); + m_addElementsMenu->Append(inductorElement); + + m_addElementsMenu->Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnAddElementsClick), NULL, + this); +} + +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++; +} + void MainFrame::OnAboutClick(wxRibbonButtonBarEvent& event) {} -void MainFrame::OnAddElementDropdown(wxRibbonButtonBarEvent& event) {} +void MainFrame::OnAddElementDropdown(wxRibbonButtonBarEvent& event) { event.PopupMenu(m_addElementsMenu); } void MainFrame::OnChartsClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnCloseClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnCopyClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnDataReportClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnDeleteClick(wxRibbonButtonBarEvent& event) {} -void MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent& event) {} +void MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent& event) +{ + m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_DISABLESOL, true); + m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_ENABLESOL, false); +} + void MainFrame::OnDragClick(wxRibbonButtonBarEvent& event) {} -void MainFrame::OnEnableSolutionClick(wxRibbonButtonBarEvent& event) {} -void MainFrame::OnExitClick(wxRibbonButtonBarEvent& event) {} +void MainFrame::OnEnableSolutionClick(wxRibbonButtonBarEvent& event) +{ + m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_ENABLESOL, true); + m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_DISABLESOL, false); +} + void MainFrame::OnExpImpClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnFaultClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnFitClick(wxRibbonButtonBarEvent& event) {} @@ -75,3 +148,36 @@ void MainFrame::OnSaveClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnSnapshotClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnStabilitySettingsClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnUndoClick(wxRibbonButtonBarEvent& event) {} +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; + } +} |