diff options
Diffstat (limited to 'Project')
40 files changed, 632 insertions, 195 deletions
diff --git a/Project/Bus.cpp b/Project/Bus.cpp index 927d6c8..a2391f8 100644 --- a/Project/Bus.cpp +++ b/Project/Bus.cpp @@ -162,8 +162,6 @@ void Bus::Rotate(bool clockwise) bool Bus::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_BUS, _("Edit bus")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/Capacitor.cpp b/Project/Capacitor.cpp index 46193f5..2f15e3f 100644 --- a/Project/Capacitor.cpp +++ b/Project/Capacitor.cpp @@ -103,9 +103,7 @@ void Capacitor::Rotate(bool clockwise) bool Capacitor::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_CAPACITOR, _("Edit Capacitor")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/Element.cpp b/Project/Element.cpp index 88f764a..bd04944 100644 --- a/Project/Element.cpp +++ b/Project/Element.cpp @@ -295,4 +295,15 @@ void Element::SetOnline(bool online) void Element::GeneralMenuItens(wxMenu& menu) { + wxMenuItem* clockItem = new wxMenuItem(&menu, ID_ROTATE_CLOCK, _("Rotate clockwise")); + clockItem->SetBitmap(wxImage("data\\images\\menu\\rotateClock16.png")); + menu.Append(clockItem); + + wxMenuItem* counterClockItem = new wxMenuItem(&menu, ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); + counterClockItem->SetBitmap(wxImage("data\\images\\menu\\rotateCounterClock16.png")); + menu.Append(counterClockItem); + + wxMenuItem* deleteItem = new wxMenuItem(&menu, ID_DELETE, _("Delete")); + deleteItem->SetBitmap(wxImage("data\\images\\menu\\delete16.png")); + menu.Append(deleteItem); } diff --git a/Project/IndMotor.cpp b/Project/IndMotor.cpp index 2880cc1..b84e585 100644 --- a/Project/IndMotor.cpp +++ b/Project/IndMotor.cpp @@ -22,8 +22,6 @@ void IndMotor::DrawSymbol() const bool IndMotor::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_INDMOTOR, _("Edit induction motor")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/Inductor.cpp b/Project/Inductor.cpp index 03e67ef..e7c2491 100644 --- a/Project/Inductor.cpp +++ b/Project/Inductor.cpp @@ -95,9 +95,7 @@ void Inductor::Rotate(bool clockwise) bool Inductor::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_INDUCTOR, _("Edit Inductor")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/Load.cpp b/Project/Load.cpp index 92a98d3..96b03d9 100644 --- a/Project/Load.cpp +++ b/Project/Load.cpp @@ -101,8 +101,6 @@ void Load::Rotate(bool clockwise) bool Load::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_LOAD, _("Edit Load")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp index cb64736..d7eb329 100644 --- a/Project/MainFrame.cpp +++ b/Project/MainFrame.cpp @@ -1,11 +1,17 @@ #include "MainFrame.h" #include "ArtMetro.h" #include "Workspace.h" +#include "Bus.h" +#include "Line.h" +#include "Transformer.h" +#include "SyncGenerator.h" +#include "IndMotor.h" +#include "SyncMotor.h" +#include "Load.h" +#include "Inductor.h" +#include "Capacitor.h" -MainFrame::MainFrame() : MainFrameBase(NULL) -{ -} - +MainFrame::MainFrame() : MainFrameBase(NULL) {} MainFrame::MainFrame(wxWindow* parent, wxLocale* locale) : MainFrameBase(parent) { m_locale = locale; @@ -14,7 +20,7 @@ MainFrame::MainFrame(wxWindow* parent, wxLocale* locale) : MainFrameBase(parent) } MainFrame::~MainFrame() { - //if(m_artMetro) delete m_artMetro; + // if(m_artMetro) delete m_artMetro; if(m_addElementsMenu) { m_addElementsMenu->Disconnect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnAddElementsClick), NULL, this); @@ -62,6 +68,8 @@ void MainFrame::EnableCurrentProjectRibbon(bool enable) m_ribbonButtonBarReports->EnableButton(ID_RIBBON_SNAPSHOT, enable); m_ribbonButtonBarSimulations->EnableButton(ID_RIBBON_SIMULSETTINGS, enable); m_ribbonButtonBarClipboard->EnableButton(ID_RIBBON_UNDO, enable); + m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ROTATEC, enable); + m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ROTATECC, enable); } void MainFrame::CreateAddElementsMenu() @@ -160,54 +168,127 @@ 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 carga - 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; + Workspace* workspace = (Workspace*)m_auiNotebook->GetCurrentPage(); + + if(workspace) { + if(workspace->GetWorkspaceMode() != MODE_INSERT) { + auto elementList = workspace->GetElementList(); + wxString statusBarText = ""; + bool newElement = false; + + switch(event.GetId()) + { + case ID_ADDMENU_BUS: + { + Bus* newBus = new Bus(wxPoint2DDouble(0, 0)); + elementList.push_back(newBus); + statusBarText = _("Insert Bus: Click to insert, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_LINE: + { + Line* newLine = new Line(); + elementList.push_back(newLine); + statusBarText = _("Insert Line: Click on two buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_TRANSFORMER: + { + Transformer* newTransformer = new Transformer(); + elementList.push_back(newTransformer); + statusBarText = _("Insert Transformer: Click on two buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_GENERATOR: + { + SyncGenerator* newGenerator = new SyncGenerator(); + elementList.push_back(newGenerator); + statusBarText = _("Insert Generator: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_LOAD: + { + Load* newLoad = new Load(); + elementList.push_back(newLoad); + statusBarText = _("Insert Load: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_CAPACITOR: + { + Capacitor* newCapacitor = new Capacitor(); + elementList.push_back(newCapacitor); + statusBarText = _("Insert Capacitor: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_INDUCTOR: + { + Inductor* newInductor = new Inductor(); + elementList.push_back(newInductor); + statusBarText = _("Insert Inductor: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_INDMOTOR: + { + IndMotor* newIndMotor = new IndMotor(); + elementList.push_back(newIndMotor); + statusBarText = _("Insert Induction Motor: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + case ID_ADDMENU_SYNCCOMP: + { + SyncMotor* newSyncCondenser = new SyncMotor(); + elementList.push_back(newSyncCondenser); + statusBarText = _("Insert Synchronous Condenser: Click on a buses, ESC to cancel."); + newElement = true; + } + break; + } + if(newElement) { + workspace->SetElementList(elementList); + workspace->SetWorkspaceMode(MODE_INSERT); + workspace->SetStatusBarText(statusBarText); + workspace->Redraw(); + } + } } } void MainFrame::NotebookPageClosed(wxAuiNotebookEvent& event) -{ +{ if(m_auiNotebook->GetPageCount() == 0) EnableCurrentProjectRibbon(false); - //Memory leak? + // Memory leak? } void MainFrame::NotebookPageClosing(wxAuiNotebookEvent& event) { - std::vector<Workspace*>::iterator it = m_workspaceList.begin(); + auto 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); + if(*it == m_auiNotebook->GetCurrentPage()) { + //delete *it; //Memory leak? + m_workspaceList.erase(it); break; } it++; } - event.Skip(); + event.Skip(); +} +void MainFrame::OnRotClockClick(wxRibbonButtonBarEvent& event) +{ + Workspace* workspace = (Workspace*)m_auiNotebook->GetCurrentPage(); + if(workspace) { + workspace->RotateSelectedElements(); + } +} +void MainFrame::OnRotCounterClockClick(wxRibbonButtonBarEvent& event) +{ + Workspace* workspace = (Workspace*)m_auiNotebook->GetCurrentPage(); + if(workspace) { + workspace->RotateSelectedElements(false); + } } diff --git a/Project/MainFrame.h b/Project/MainFrame.h index 241551f..057864b 100644 --- a/Project/MainFrame.h +++ b/Project/MainFrame.h @@ -31,6 +31,8 @@ class MainFrame : public MainFrameBase ~MainFrame(); protected: + virtual void OnRotClockClick(wxRibbonButtonBarEvent& event); + virtual void OnRotCounterClockClick(wxRibbonButtonBarEvent& event); virtual void NotebookPageClosed(wxAuiNotebookEvent& event); virtual void NotebookPageClosing(wxAuiNotebookEvent& event); virtual void OnAboutClick(wxRibbonButtonBarEvent& event); diff --git a/Project/MainFrame.wxcp b/Project/MainFrame.wxcp index d905715..6e21d5f 100644 --- a/Project/MainFrame.wxcp +++ b/Project/MainFrame.wxcp @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 146, + "m_objCounter": 150, "m_includeFiles": [], "m_bitmapFunction": "wxC9ED9InitBitmapResources", "m_bitmapsFile": "MainFrameBitmaps.cpp", @@ -2859,6 +2859,188 @@ "m_properties": [{ "type": "winid", "m_label": "ID:", + "m_winid": "ID_RIBBON_ROTATEC" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_ribbonButtonRotClock" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Rotate clockwise" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Rotate Clockwise" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "data/images/ribbon/rotateClock32.png" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Rotate clockwise" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxRIBBON_BUTTON_NORMAL", "wxRIBBON_BUTTON_DROPDOWN", "wxRIBBON_BUTTON_HYBRID", "wxRIBBON_BUTTON_TOGGLE"] + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_RIBBONBUTTON_CLICKED", + "m_eventClass": "wxRibbonButtonBarEvent", + "m_eventHandler": "wxRibbonButtonBarEventHandler", + "m_functionNameAndSignature": "OnRotClockClick(wxRibbonButtonBarEvent& event)", + "m_description": "Triggered when the normal (non-dropdown) region of a button on the button bar is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4492, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_RIBBON_ROTATECC" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_ribbonButtonRotCounterClock" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Rotate the selected elements counter-clockwise" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Rotate Counter-clockwise" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "data/images/ribbon/rotateCounterClock32.png" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Rotate the selected elements counter-clockwise" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxRIBBON_BUTTON_NORMAL", "wxRIBBON_BUTTON_DROPDOWN", "wxRIBBON_BUTTON_HYBRID", "wxRIBBON_BUTTON_TOGGLE"] + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_RIBBONBUTTON_CLICKED", + "m_eventClass": "wxRibbonButtonBarEvent", + "m_eventHandler": "wxRibbonButtonBarEventHandler", + "m_functionNameAndSignature": "OnRotCounterClockClick(wxRibbonButtonBarEvent& event)", + "m_description": "Triggered when the normal (non-dropdown) region of a button on the button bar is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4492, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", "m_winid": "ID_RIBBON_PROJSETTINGS" }, { "type": "string", diff --git a/Project/MainFrameBase.cpp b/Project/MainFrameBase.cpp index 4662d5a..90d1ab3 100644 --- a/Project/MainFrameBase.cpp +++ b/Project/MainFrameBase.cpp @@ -147,6 +147,10 @@ MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& ti 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); + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATEC, _("Rotate Clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateClock32")), _("Rotate clockwise"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATECC, _("Rotate Counter-clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateCounterClock32")), _("Rotate the selected elements counter-clockwise"), wxRIBBON_BUTTON_NORMAL); + 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); m_ribbonButtonBarCircuit->Realize(); @@ -253,6 +257,8 @@ MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& ti m_ribbonButtonBarCircuit->Connect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); m_ribbonButtonBarCircuit->Connect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this); m_ribbonButtonBarReports->Connect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); m_ribbonButtonBarReports->Connect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); m_ribbonButtonBarReports->Connect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); @@ -290,6 +296,8 @@ MainFrameBase::~MainFrameBase() m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this); m_ribbonButtonBarReports->Disconnect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); m_ribbonButtonBarReports->Disconnect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); m_ribbonButtonBarReports->Disconnect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); diff --git a/Project/MainFrameBase.h b/Project/MainFrameBase.h index 5bba2c4..6f98718 100644 --- a/Project/MainFrameBase.h +++ b/Project/MainFrameBase.h @@ -66,13 +66,15 @@ public: ID_RIBBON_PROJSETTINGS = 10022, ID_RIBBON_REDO = 10023, ID_RIBBON_RESETVOLT = 10024, - ID_RIBBON_RUNSTAB = 10025, - ID_RIBBON_SAVE = 10026, - ID_RIBBON_SAVEAS = 10027, - ID_RIBBON_SCPOWER = 10028, - ID_RIBBON_SIMULSETTINGS = 10029, - ID_RIBBON_SNAPSHOT = 10030, - ID_RIBBON_UNDO = 10031, + ID_RIBBON_ROTATEC = 10025, + ID_RIBBON_ROTATECC = 10026, + ID_RIBBON_RUNSTAB = 10027, + ID_RIBBON_SAVE = 10028, + ID_RIBBON_SAVEAS = 10029, + ID_RIBBON_SCPOWER = 10030, + ID_RIBBON_SIMULSETTINGS = 10031, + ID_RIBBON_SNAPSHOT = 10032, + ID_RIBBON_UNDO = 10033, }; protected: wxRibbonBar* m_ribbonBar; @@ -118,6 +120,8 @@ protected: virtual void OnMoveClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnDeleteClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnFitClick(wxRibbonButtonBarEvent& event) { event.Skip(); } + virtual void OnRotClockClick(wxRibbonButtonBarEvent& event) { event.Skip(); } + virtual void OnRotCounterClockClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnDataReportClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnChartsClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnSnapshotClick(wxRibbonButtonBarEvent& event) { event.Skip(); } diff --git a/Project/MainFrameBitmaps.cpp b/Project/MainFrameBitmaps.cpp index 96dd305..bfd669f 100644 --- a/Project/MainFrameBitmaps.cpp +++ b/Project/MainFrameBitmaps.cpp @@ -2059,10 +2059,124 @@ static unsigned char xml_res_file_27[] = { 239,136,213,133,111,102,88,205,181,31,221,164,248,13,195,123,60,251,33, 106,248,255,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_28 = 555; +static size_t xml_res_size_28 = 1139; static unsigned char xml_res_file_28[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,5,63,0,0,5,63,1,19,100,100,172,0,0,0,25,116,69,88,116,83, +111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,3,240,73,68,65,84,88,133,197,151,105,104, +92,85,20,199,127,231,189,89,226,130,173,68,91,148,182,81,16,23,90,16,67, +6,53,16,237,88,63,196,74,49,69,237,7,23,4,69,106,5,133,32,196,36,109,153, +219,44,141,130,40,42,162,45,8,34,181,197,20,75,145,10,130,202,196,170,165, +38,197,5,219,88,233,7,169,180,136,138,154,72,200,100,250,150,227,135,201, +50,153,119,103,156,73,90,60,48,204,155,179,253,255,247,222,243,206,153, +11,139,145,151,143,92,68,207,72,247,98,82,56,139,34,240,207,18,23,165,159, +158,99,157,255,15,129,186,156,11,128,234,0,61,35,29,11,73,33,53,121,155, +99,171,112,194,187,80,167,25,209,6,84,150,131,222,60,109,85,224,25,50,169, +55,206,63,1,51,220,138,35,237,40,119,83,121,215,20,216,66,38,181,235,252, +16,232,251,166,129,32,120,19,184,167,218,132,192,36,49,185,142,173,77,191, +86,227,28,43,107,49,195,173,4,193,30,160,190,6,240,28,208,86,45,56,128, +107,213,118,14,109,36,56,119,0,213,75,113,203,115,44,145,60,200,3,100,82, +31,87,27,0,182,243,220,62,212,130,232,62,32,78,224,129,151,47,182,250,8, +7,129,135,112,221,107,208,96,229,180,62,7,108,32,211,244,81,45,224,80,122, +4,38,187,148,60,123,128,228,172,46,240,10,223,241,228,97,52,216,66,230, +182,209,89,91,255,209,229,248,228,128,251,200,164,62,169,21,28,74,119,32, +79,31,232,170,136,87,224,237,66,39,214,97,138,192,1,188,208,91,12,56,20, +191,5,29,217,21,196,56,133,82,55,223,69,247,178,51,253,8,34,186,80,144, +74,50,183,3,46,155,163,224,252,76,82,54,95,40,112,40,174,1,145,251,209, +18,28,113,123,48,119,76,92,40,240,57,2,29,217,21,168,222,84,98,27,35,81, +191,215,22,164,6,103,210,231,201,139,147,172,3,38,9,217,47,25,106,126,3, +96,230,8,28,214,68,44,226,124,134,89,125,206,22,52,238,243,129,23,242,214, +148,199,131,40,143,33,28,210,94,186,22,78,64,194,107,163,166,96,52,170, +131,241,110,238,37,164,13,32,239,195,148,63,109,80,118,104,63,87,213,74, +160,112,4,110,44,65,16,206,183,132,50,110,11,8,225,214,226,1,146,159,38, +80,23,35,142,79,35,88,142,194,140,172,193,161,185,36,209,17,76,234,120, +129,64,168,97,36,72,244,18,27,1,81,206,150,142,176,34,18,103,108,49,136, +108,68,181,167,36,209,227,192,241,194,17,168,156,182,68,93,111,203,165, +73,222,135,40,80,222,231,40,33,63,88,9,192,13,209,68,250,7,204,212,128, +203,143,22,214,107,81,141,140,235,203,13,99,161,203,122,148,17,20,5,60, +28,14,198,160,77,12,209,157,52,234,0,107,35,250,152,124,15,197,157,176, +107,232,180,165,13,111,96,32,125,168,204,170,248,219,176,116,98,156,252, +202,87,200,149,243,193,140,172,71,34,117,241,11,153,84,3,20,119,66,13,163, +64,34,59,24,28,180,143,108,10,187,81,25,92,29,132,190,136,94,101,112,230, +113,142,128,200,235,80,82,140,170,141,124,187,108,126,241,212,34,193,87, +189,192,45,37,218,16,120,59,74,96,32,125,18,113,14,68,217,106,23,219,14, +183,215,12,222,153,125,14,207,235,194,143,244,178,247,48,77,39,103,126, +204,47,50,243,229,213,228,189,81,96,73,36,161,56,239,146,136,183,99,154, +255,170,8,220,245,105,61,184,175,2,15,207,234,98,137,194,7,198,113,189, +213,108,107,62,107,39,0,208,253,249,38,52,216,7,98,251,247,59,6,206,59, +56,236,39,30,14,99,210,133,14,96,78,36,240,126,111,68,101,19,202,19,160, +151,69,34,221,132,18,75,180,97,82,31,206,91,151,117,21,157,217,231,17,94, +168,184,82,193,7,249,13,21,129,240,74,32,94,214,87,81,92,167,131,254,59, +95,138,166,41,39,91,179,79,17,242,90,197,196,213,137,135,208,206,206,180, +245,194,82,249,94,176,125,168,5,95,119,3,55,46,8,90,57,69,60,246,40,189, +45,95,151,115,249,239,155,145,57,145,192,251,243,105,194,224,89,192,50, +53,173,114,6,135,23,137,47,219,93,110,164,87,79,96,150,136,58,76,102,211, +184,210,138,112,59,42,13,136,94,129,50,133,72,14,229,39,144,239,32,56,72, +50,253,5,70,162,109,217,34,255,2,107,225,84,76,2,118,23,86,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_29 = 1110; +static unsigned char xml_res_file_29[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,5,59,0,0,5,59,1,236,153,227,190,0,0,0,25,116,69,88,116,83, +111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,3,211,73,68,65,84,88,133,181,150,93,104, +28,101,20,134,159,51,59,217,38,43,24,69,80,10,181,84,173,10,70,208,182, +201,38,254,180,106,164,244,34,96,197,84,47,68,208,155,18,84,42,161,23,109, +211,84,246,219,68,13,8,182,66,105,139,138,94,216,171,70,80,227,47,166,13, +93,107,253,205,106,81,27,68,40,177,180,197,54,68,109,137,198,164,153,157, +57,94,52,147,205,206,204,102,179,27,123,96,96,230,61,231,61,231,253,206, +247,55,176,16,235,202,110,102,231,87,53,11,73,97,85,94,124,176,29,213,87, +112,175,168,60,71,197,2,186,178,207,161,236,2,96,124,34,182,16,1,82,54, +35,61,248,44,176,59,207,149,31,17,29,193,227,36,150,126,141,197,0,59,146, +167,47,143,128,244,96,27,176,175,4,207,67,232,199,147,93,152,250,254,255, +79,192,139,217,197,228,244,4,144,152,55,7,62,70,229,25,76,253,169,98,1, +243,95,3,157,245,103,129,135,129,137,50,4,180,32,250,61,233,193,181,197, +2,42,89,3,107,129,62,160,156,237,231,128,182,146,74,126,24,116,148,191, +11,82,13,7,129,245,248,157,80,247,122,98,177,101,192,227,8,31,0,110,4,171, +10,164,151,174,111,239,10,58,202,239,128,111,126,39,108,247,6,58,155,70, +102,112,51,120,59,162,123,65,86,71,176,134,81,119,5,166,105,204,7,42,63, +68,252,78,56,158,83,128,155,134,227,232,120,51,232,190,8,214,141,72,204, +204,6,42,239,64,41,83,21,210,217,183,17,158,8,120,38,208,216,114,204,202, +223,97,33,29,40,101,34,10,137,167,129,223,2,158,26,196,221,232,127,92,62, +1,0,166,238,31,4,19,225,105,245,95,42,158,130,113,195,67,137,24,143,0,9, +148,126,60,222,18,131,23,22,49,20,71,254,29,1,174,42,192,85,23,99,146,231, +42,234,192,249,237,164,156,41,250,38,29,158,68,121,20,120,3,139,222,200, +96,83,55,5,12,132,112,161,14,42,152,130,63,183,176,68,96,7,192,197,28,76, +230,102,92,173,154,102,93,17,218,241,48,36,203,0,108,0,158,255,226,14,60, +231,158,2,191,218,71,121,105,205,79,65,154,37,172,154,225,77,139,0,168, +182,1,161,17,248,44,162,216,223,160,1,72,23,229,5,120,78,35,158,236,41, +12,112,211,64,72,128,196,57,19,60,235,102,137,56,19,46,14,68,93,96,42,46, +248,83,224,90,163,225,0,189,37,42,83,109,140,99,34,28,13,226,147,46,103, +199,60,222,143,174,175,55,71,128,167,242,2,208,99,97,191,181,26,163,161, +53,34,6,47,166,108,16,161,15,200,161,40,240,157,90,172,171,53,252,21,49, +16,1,30,12,227,252,10,179,183,97,71,230,52,232,146,128,136,22,122,238,251, +36,122,84,160,134,234,11,80,125,181,225,66,177,24,210,217,22,208,143,2, +232,48,169,134,155,160,96,23,120,239,134,217,222,11,81,93,240,77,12,147, +115,22,55,135,109,208,174,8,79,159,255,146,79,110,199,95,159,110,231,108, +91,193,197,207,187,139,22,40,101,110,85,26,88,25,64,61,212,218,27,22,208, +125,239,16,194,129,80,18,213,14,58,143,180,151,93,188,51,179,25,199,233, +32,55,21,244,28,192,172,58,225,127,20,30,197,91,15,46,197,170,250,25,244, +202,112,198,216,126,22,217,237,152,187,195,11,109,182,117,28,186,6,177, +95,69,53,127,11,218,241,75,15,156,71,245,54,76,242,92,180,0,128,109,71, +90,193,125,7,137,186,39,100,12,225,77,68,123,169,186,246,135,233,99,246, +210,92,59,86,18,245,30,67,121,10,168,13,81,237,184,135,109,111,32,213,248, +94,65,198,232,81,12,108,3,171,103,206,145,130,3,214,40,162,10,122,29,154, +63,29,163,77,182,210,115,255,203,33,180,104,252,246,204,38,208,157,165, +19,151,52,7,216,68,207,3,175,69,202,154,147,218,121,184,9,143,253,192,242, +138,74,139,252,66,204,219,72,119,243,151,69,67,74,38,49,67,113,166,70,219, +80,182,132,15,170,98,166,195,88,246,110,150,38,246,208,86,239,204,21,57, +255,31,18,163,22,185,204,26,92,107,61,232,157,8,183,162,90,131,80,141,242, +7,194,73,148,111,80,239,83,170,155,51,24,9,255,156,68,216,127,65,255,70, +162,172,242,156,128,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_30 = 555; +static unsigned char xml_res_file_30[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,137,0,0,5,137,1,109,104,157,250,0,0,0,25,116,69,88,116, 83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112, 101,46,111,114,103,155,238,60,26,0,0,1,168,73,68,65,84,88,133,197,214,49, @@ -2088,8 +2202,8 @@ static unsigned char xml_res_file_28[] = { 208,3,244,74,121,255,72,134,71,142,100,14,25,147,66,98,227,246,202,248, 15,58,85,192,175,251,92,135,114,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_29 = 743; -static unsigned char xml_res_file_29[] = { +static size_t xml_res_size_31 = 743; +static unsigned char xml_res_file_31[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,186,0,0,5,186,1,27,237,141,201,0,0,0,25,116,69,88,116,83, @@ -2127,8 +2241,8 @@ static unsigned char xml_res_file_29[] = { 127,199,126,1,226,42,223,28,85,35,230,39,0,0,0,0,73,69,78,68,174,66,96, 130}; -static size_t xml_res_size_30 = 1110; -static unsigned char xml_res_file_30[] = { +static size_t xml_res_size_32 = 1110; +static unsigned char xml_res_file_32[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,198,0,0,4,198,1,67,50,23,10,0,0,0,25,116,69,88,116,83,111, @@ -2184,8 +2298,8 @@ static unsigned char xml_res_file_30[] = { 86,95,47,99,128,127,0,231,244,140,94,3,164,35,138,0,0,0,0,73,69,78,68,174, 66,96,130}; -static size_t xml_res_size_31 = 914; -static unsigned char xml_res_file_31[] = { +static size_t xml_res_size_33 = 914; +static unsigned char xml_res_file_33[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,7,0,0,5,7,1,236,210,93,151,0,0,0,25,116,69,88,116,83,111, @@ -2231,8 +2345,8 @@ static unsigned char xml_res_file_31[] = { 132,196,232,127,195,255,30,224,55,133,61,15,69,51,241,172,123,0,0,0,0,73, 69,78,68,174,66,96,130}; -static size_t xml_res_size_32 = 759; -static unsigned char xml_res_file_32[] = { +static size_t xml_res_size_34 = 759; +static unsigned char xml_res_file_34[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83, @@ -2270,8 +2384,8 @@ static unsigned char xml_res_file_32[] = { 125,92,181,157,226,96,91,87,53,118,180,232,47,234,15,114,76,236,98,147, 84,227,24,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_33 = 3531; -static unsigned char xml_res_file_33[] = { +static size_t xml_res_size_35 = 3775; +static unsigned char xml_res_file_35[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, @@ -2420,6 +2534,18 @@ static unsigned char xml_res_file_33[] = { 112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110, 95,114,101,115,101,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116, 62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,111,116,97,116,101, +67,108,111,99,107,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116, +109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115, +95,114,105,98,98,111,110,95,114,111,116,97,116,101,67,108,111,99,107,51, +50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,114,111,116,97,116,101,67,111,117,110,116,101,114, +67,108,111,99,107,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116, +109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115, +95,114,105,98,98,111,110,95,114,111,116,97,116,101,67,111,117,110,116,101, +114,67,108,111,99,107,51,50,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, 66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,97,118,101,51,50,34, 62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112, 112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110, @@ -2487,11 +2613,13 @@ void wxC9ED9InitBitmapResources() XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_powerFLow32.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_redo32.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_reset32.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_save32.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_saveAs32.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_settings32.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_snap32.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$C__Users_Thales_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"), xml_res_file_33, xml_res_size_33, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateClock32.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateCounterClock32.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_save32.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_saveAs32.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_settings32.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_snap32.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$C__Users_Thales_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"), xml_res_file_35, xml_res_size_35, wxT("text/xml")); wxXmlResource::Get()->Load(wxT("memory:XRC_resource/MainFrameBitmaps.cpp$C__Users_Thales_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc")); } diff --git a/Project/MainFrameBitmaps.xrc b/Project/MainFrameBitmaps.xrc index 9702e54..13496c9 100644 --- a/Project/MainFrameBitmaps.xrc +++ b/Project/MainFrameBitmaps.xrc @@ -29,6 +29,8 @@ <object class="wxBitmap" name="powerFLow32">data\images\ribbon\powerFLow32.png</object> <object class="wxBitmap" name="redo32">data\images\ribbon\redo32.png</object> <object class="wxBitmap" name="reset32">data\images\ribbon\reset32.png</object> + <object class="wxBitmap" name="rotateClock32">data\images\ribbon\rotateClock32.png</object> + <object class="wxBitmap" name="rotateCounterClock32">data\images\ribbon\rotateCounterClock32.png</object> <object class="wxBitmap" name="save32">data\images\ribbon\save32.png</object> <object class="wxBitmap" name="saveAs32">data\images\ribbon\saveAs32.png</object> <object class="wxBitmap" name="settings32">data\images\ribbon\settings32.png</object> diff --git a/Project/Project.mk b/Project/Project.mk index c7b67ad..e7aa817 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,8 +13,8 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=Thales -Date :=06/09/2016 -CodeLitePath :="C:/Program Files/CodeLite" +Date :=07/09/2016 +CodeLitePath :="C:/Program Files (x86)/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC ObjectSuffix :=.o @@ -61,7 +61,8 @@ AS := C:/TDM-GCC-64/bin/as.exe ## ## User defined environment variables ## -CodeLiteDir:=C:\Program Files\CodeLite +CodeLiteDir:=C:\Program Files (x86)\CodeLite +UNIT_TEST_PP_SRC_DIR:=C:\UnitTest++-1.3 WXWIN:=C:\wxWidgets-3.1.0 WXCFG:=gcc_dll\mswu Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) \ diff --git a/Project/Release/Branch.cpp.o b/Project/Release/Branch.cpp.o Binary files differindex 4f4f76a..7b22814 100644 --- a/Project/Release/Branch.cpp.o +++ b/Project/Release/Branch.cpp.o diff --git a/Project/Release/Bus.cpp.o b/Project/Release/Bus.cpp.o Binary files differindex c4810a9..c661451 100644 --- a/Project/Release/Bus.cpp.o +++ b/Project/Release/Bus.cpp.o diff --git a/Project/Release/Capacitor.cpp.o b/Project/Release/Capacitor.cpp.o Binary files differindex 7d205fe..aca015c 100644 --- a/Project/Release/Capacitor.cpp.o +++ b/Project/Release/Capacitor.cpp.o diff --git a/Project/Release/Element.cpp.o b/Project/Release/Element.cpp.o Binary files differindex bbfb08e..c8c256d 100644 --- a/Project/Release/Element.cpp.o +++ b/Project/Release/Element.cpp.o diff --git a/Project/Release/IndMotor.cpp.o b/Project/Release/IndMotor.cpp.o Binary files differindex 88c6d2f..5fb49e0 100644 --- a/Project/Release/IndMotor.cpp.o +++ b/Project/Release/IndMotor.cpp.o diff --git a/Project/Release/Inductor.cpp.o b/Project/Release/Inductor.cpp.o Binary files differindex f2c67ba..66fde49 100644 --- a/Project/Release/Inductor.cpp.o +++ b/Project/Release/Inductor.cpp.o diff --git a/Project/Release/Line.cpp.o b/Project/Release/Line.cpp.o Binary files differindex 305cbd9..a26221e 100644 --- a/Project/Release/Line.cpp.o +++ b/Project/Release/Line.cpp.o diff --git a/Project/Release/Load.cpp.o b/Project/Release/Load.cpp.o Binary files differindex a68dcfa..4b47c7c 100644 --- a/Project/Release/Load.cpp.o +++ b/Project/Release/Load.cpp.o diff --git a/Project/Release/Machines.cpp.o b/Project/Release/Machines.cpp.o Binary files differindex a4b944e..f479d24 100644 --- a/Project/Release/Machines.cpp.o +++ b/Project/Release/Machines.cpp.o diff --git a/Project/Release/MainFrame.cpp.o b/Project/Release/MainFrame.cpp.o Binary files differindex df1fcf4..fb5123f 100644 --- a/Project/Release/MainFrame.cpp.o +++ b/Project/Release/MainFrame.cpp.o diff --git a/Project/Release/MainFrame.cpp.o.d b/Project/Release/MainFrame.cpp.o.d index 537526d..ec3ec69 100644 --- a/Project/Release/MainFrame.cpp.o.d +++ b/Project/Release/MainFrame.cpp.o.d @@ -205,7 +205,9 @@ Release/MainFrame.cpp.o: MainFrame.cpp MainFrame.h \ C:/wxWidgets-3.1.0/include/wx/log.h \ C:/wxWidgets-3.1.0/include/wx/generic/logg.h \ C:/wxWidgets-3.1.0/include/wx/msw/app.h \ - C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h + C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h Bus.h Element.h Line.h \ + Branch.h Transformer.h SyncGenerator.h Machines.h IndMotor.h SyncMotor.h \ + Load.h Shunt.h Inductor.h Capacitor.h MainFrame.h: @@ -632,3 +634,29 @@ C:/wxWidgets-3.1.0/include/wx/generic/logg.h: C:/wxWidgets-3.1.0/include/wx/msw/app.h: C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h: + +Bus.h: + +Element.h: + +Line.h: + +Branch.h: + +Transformer.h: + +SyncGenerator.h: + +Machines.h: + +IndMotor.h: + +SyncMotor.h: + +Load.h: + +Shunt.h: + +Inductor.h: + +Capacitor.h: diff --git a/Project/Release/MainFrameBase.cpp.o b/Project/Release/MainFrameBase.cpp.o Binary files differindex 28b364c..ec938af 100644 --- a/Project/Release/MainFrameBase.cpp.o +++ b/Project/Release/MainFrameBase.cpp.o diff --git a/Project/Release/MainFrameBitmaps.cpp.o b/Project/Release/MainFrameBitmaps.cpp.o Binary files differindex 7e88148..02f4a07 100644 --- a/Project/Release/MainFrameBitmaps.cpp.o +++ b/Project/Release/MainFrameBitmaps.cpp.o diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe Binary files differindex 7c00091..e71ee5b 100644 --- a/Project/Release/PSP-UFU.exe +++ b/Project/Release/PSP-UFU.exe diff --git a/Project/Release/Shunt.cpp.o b/Project/Release/Shunt.cpp.o Binary files differindex b9fed50..afdb286 100644 --- a/Project/Release/Shunt.cpp.o +++ b/Project/Release/Shunt.cpp.o diff --git a/Project/Release/SyncGenerator.cpp.o b/Project/Release/SyncGenerator.cpp.o Binary files differindex 8d1c4ad..2344e49 100644 --- a/Project/Release/SyncGenerator.cpp.o +++ b/Project/Release/SyncGenerator.cpp.o diff --git a/Project/Release/SyncMotor.cpp.o b/Project/Release/SyncMotor.cpp.o Binary files differindex 40b26fe..6d1912d 100644 --- a/Project/Release/SyncMotor.cpp.o +++ b/Project/Release/SyncMotor.cpp.o diff --git a/Project/Release/Transformer.cpp.o b/Project/Release/Transformer.cpp.o Binary files differindex 0a064e6..670b60f 100644 --- a/Project/Release/Transformer.cpp.o +++ b/Project/Release/Transformer.cpp.o diff --git a/Project/Release/Workspace.cpp.o b/Project/Release/Workspace.cpp.o Binary files differindex 457cf83..44c689c 100644 --- a/Project/Release/Workspace.cpp.o +++ b/Project/Release/Workspace.cpp.o diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index 2433c1f..377239d 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -27,8 +27,6 @@ void SyncGenerator::DrawSymbol() const bool SyncGenerator::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_SYNCGENERATOR, _("Edit Generator")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/SyncMotor.cpp b/Project/SyncMotor.cpp index bdd3abd..b6d9e9a 100644 --- a/Project/SyncMotor.cpp +++ b/Project/SyncMotor.cpp @@ -16,17 +16,7 @@ void SyncMotor::DrawSymbol() const bool SyncMotor::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_SYNCMOTOR, _("Edit Synchronous Condenser")); + GeneralMenuItens(menu); - wxMenuItem* clockItem = new wxMenuItem(&menu, ID_ROTATE_CLOCK, _("Rotate clockwise")); - clockItem->SetBitmap(wxImage("data\\images\\menu\\rotateClock16.png")); - menu.Append(clockItem); - - wxMenuItem* counterClockItem = new wxMenuItem(&menu, ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - counterClockItem->SetBitmap(wxImage("data\\images\\menu\\rotateCounterClock16.png")); - menu.Append(counterClockItem); - - wxMenuItem* deleteItem = new wxMenuItem(&menu, ID_DELETE, _("Delete")); - deleteItem->SetBitmap(wxImage("data\\images\\menu\\delete16.png")); - menu.Append(deleteItem); - return true; + return true; } diff --git a/Project/Transformer.cpp b/Project/Transformer.cpp index 0bb32d8..03d71e7 100644 --- a/Project/Transformer.cpp +++ b/Project/Transformer.cpp @@ -222,8 +222,6 @@ void Transformer::StartMove(wxPoint2DDouble position) bool Transformer::GetContextMenu(wxMenu& menu) { menu.Append(ID_EDIT_TRANSFORMER, _("Edit tranformer")); - menu.Append(ID_ROTATE_CLOCK, _("Rotate clockwise")); - menu.Append(ID_ROTATE_COUNTERCLOCK, _("Rotate counter-clockwise")); - menu.Append(ID_DELETE, _("Delete")); + GeneralMenuItens(menu); return true; } diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index 6ac326f..541e4d0 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -91,6 +91,7 @@ void Workspace::OnPaint(wxPaintEvent& event) } // Selection rectangle + glLineWidth(1.0); glColor4d(0.0, 0.5, 1.0, 1.0); glBegin(GL_LINE_LOOP); glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y); @@ -204,10 +205,11 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) m_mode = MODE_MOVE_ELEMENT; } } - - // Click in a switch. - else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) { - element->SetOnline(element->IsOnline() ? false : true); + + // Click in a switch. + else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) + { + element->SetOnline(element->IsOnline() ? false : true); } } } @@ -224,20 +226,20 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) void Workspace::OnLeftDoubleClick(wxMouseEvent& event) { - for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { - Element* element = *it; + for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { + Element* element = *it; - // Click in an element. - if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) - { - //Open the form. - } - - // Click in a switch. - else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) { - element->SetOnline(element->IsOnline() ? false : true); - } + // Click in an element. + if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) { + // Open the form. + } + + // Click in a switch. + else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) + { + element->SetOnline(element->IsOnline() ? false : true); } + } } void Workspace::OnRightClickDown(wxMouseEvent& event) @@ -256,19 +258,19 @@ void Workspace::OnRightClickDown(wxMouseEvent& event) menu.Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Workspace::OnPopupClick), NULL, this); PopupMenu(&menu); - redraw = true; + redraw = true; } element->ResetPickboxes(); - - if(redraw){ - Redraw(); - redraw = false; + + if(redraw) { + Redraw(); + redraw = false; } - // If the last element was removed using the menu, we must leave the "search for" to prevent error. - break; + // If the last element was removed using the menu, we must leave the "search for" to + // prevent error. + break; } } - } } } @@ -568,34 +570,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event) break; case 'R': // Rotate the selected elements. { - for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { - Element* element = *it; - // Parent's element rotating... - for(int i = 0; i < (int)element->GetParentList().size(); i++) { - Element* parent = element->GetParentList()[i]; - if(parent) { // Check if parent is not null - if(parent->IsSelected()) { - if(event.GetModifiers() == wxMOD_SHIFT) { - element->RotateNode(parent, false); - } - else - { - element->RotateNode(parent); - } - } - } - } - if(element->IsSelected()) { - if(event.GetModifiers() == wxMOD_SHIFT) { - element->Rotate(false); - } - else - { - element->Rotate(); - } - } - } - Redraw(); + RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT); } break; case 'B': // Insert a bus. @@ -612,34 +587,38 @@ void Workspace::OnKeyDown(wxKeyEvent& event) case 'L': { if(m_mode != MODE_INSERT) { - if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a load. - Load* newLoad = new Load(); - m_elementList.push_back(newLoad); - m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Load: Click on a buses, ESC to cancel.")); + if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a load. + Load* newLoad = new Load(); + m_elementList.push_back(newLoad); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText( + _("Insert Load: Click on a buses, ESC to cancel.")); } - else { // Insert a power line. - Line* newLine = new Line(); - m_elementList.push_back(newLine); - m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Line: Click on two buses, ESC to cancel.")); + else + { // Insert a power line. + Line* newLine = new Line(); + m_elementList.push_back(newLine); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText( + _("Insert Line: Click on two buses, ESC to cancel.")); } Redraw(); } } break; - case 'T': // Insert a transformer. + case 'T': // Insert a transformer. { if(m_mode != MODE_INSERT) { Transformer* newTransformer = new Transformer(); m_elementList.push_back(newTransformer); m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Transformer: Click on two buses, ESC to cancel.")); + m_statusBar->SetStatusText( + _("Insert Transformer: Click on two buses, ESC to cancel.")); Redraw(); } } break; - case 'G': // Insert a generator. + case 'G': // Insert a generator. { if(m_mode != MODE_INSERT) { SyncGenerator* newGenerator = new SyncGenerator(); @@ -650,46 +629,50 @@ void Workspace::OnKeyDown(wxKeyEvent& event) } } break; - case 'I': + case 'I': { if(m_mode != MODE_INSERT) { - if(event.GetModifiers() == wxMOD_SHIFT) { // Insert an inductor. - Inductor* newInductor = new Inductor(); - m_elementList.push_back(newInductor); - m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Inductor: Click on a buses, ESC to cancel.")); + if(event.GetModifiers() == wxMOD_SHIFT) { // Insert an inductor. + Inductor* newInductor = new Inductor(); + m_elementList.push_back(newInductor); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText( + _("Insert Inductor: Click on a buses, ESC to cancel.")); } - else // Insert an induction motor. + else // Insert an induction motor. { - IndMotor* newIndMotor = new IndMotor(); - m_elementList.push_back(newIndMotor); - m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Induction Motor: Click on a buses, ESC to cancel.")); + IndMotor* newIndMotor = new IndMotor(); + m_elementList.push_back(newIndMotor); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText( + _("Insert Induction Motor: Click on a buses, ESC to cancel.")); } Redraw(); } } break; - case 'K': // Insert a synchronous condenser. + case 'K': // Insert a synchronous condenser. { if(m_mode != MODE_INSERT) { SyncMotor* newSyncCondenser = new SyncMotor(); m_elementList.push_back(newSyncCondenser); m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Synchronous Condenser: Click on a buses, ESC to cancel.")); + m_statusBar->SetStatusText( + _("Insert Synchronous Condenser: Click on a buses, ESC to cancel.")); Redraw(); } } break; - case 'C': + case 'C': { if(m_mode != MODE_INSERT) { - if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a capacitor. - Capacitor* newCapacitor = new Capacitor(); - m_elementList.push_back(newCapacitor); - m_mode = MODE_INSERT; - m_statusBar->SetStatusText(_("Insert Capacitor: Click on a buses, ESC to cancel.")); - Redraw(); + if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a capacitor. + Capacitor* newCapacitor = new Capacitor(); + m_elementList.push_back(newCapacitor); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText( + _("Insert Capacitor: Click on a buses, ESC to cancel.")); + Redraw(); } } } @@ -753,7 +736,7 @@ void Workspace::OnPopupClick(wxCommandEvent& event) wxMessageBox("Edit line!"); } break; - case ID_EDIT_TRANSFORMER: + case ID_EDIT_TRANSFORMER: { wxMessageBox("Edit transformer!"); } @@ -788,7 +771,7 @@ void Workspace::OnPopupClick(wxCommandEvent& event) Redraw(); } break; - case ID_ROTATE_COUNTERCLOCK: + case ID_ROTATE_COUNTERCLOCK: { element->Rotate(false); for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { @@ -827,3 +810,27 @@ void Workspace::OnPopupClick(wxCommandEvent& event) break; } } + +void Workspace::RotateSelectedElements(bool clockwise) +{ + for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { + Element* element = *it; + // Parent's element rotating... + for(int i = 0; i < (int)element->GetParentList().size(); i++) { + Element* parent = element->GetParentList()[i]; + if(parent) { // Check if parent is not null + if(parent->IsSelected()) { + element->RotateNode(parent, clockwise); + // Update the positions used on motion action, the element will not be necessarily + // moved. + element->StartMove(m_camera->GetMousePosition()); + } + } + } + if(element->IsSelected()) { + element->Rotate(clockwise); + element->StartMove(m_camera->GetMousePosition()); + } + } + Redraw(); +} diff --git a/Project/Workspace.h b/Project/Workspace.h index 7df1190..d673976 100644 --- a/Project/Workspace.h +++ b/Project/Workspace.h @@ -40,9 +40,16 @@ class Workspace : public WorkspaceBase ~Workspace(); wxString GetName() const { return m_name; } - void SetName(wxString name) { m_name = name; } - std::vector<Element*> GetElementList() { return m_elementList; } - void Redraw() { m_glCanvas->Refresh(); } + std::vector<Element*> GetElementList() const { return m_elementList; } + WorkspaceMode GetWorkspaceMode() const { return m_mode; } + + void SetName(wxString name) { m_name = name; } + void SetElementList(std::vector<Element*> elementList) { m_elementList = elementList; } + void SetStatusBarText(wxString text) { m_statusBar->SetStatusText(text); } + void SetWorkspaceMode(WorkspaceMode mode) { m_mode = mode; } + + void Redraw() { m_glCanvas->Refresh(); } + void RotateSelectedElements(bool clockwise = true); protected: virtual void OnLeftDoubleClick(wxMouseEvent& event); diff --git a/Project/data/images/ribbon/rotateClock32.png b/Project/data/images/ribbon/rotateClock32.png Binary files differnew file mode 100644 index 0000000..9873e13 --- /dev/null +++ b/Project/data/images/ribbon/rotateClock32.png diff --git a/Project/data/images/ribbon/rotateCounterClock32.png b/Project/data/images/ribbon/rotateCounterClock32.png Binary files differnew file mode 100644 index 0000000..3658f93 --- /dev/null +++ b/Project/data/images/ribbon/rotateCounterClock32.png |