summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-09-07 23:52:26 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-09-07 23:52:26 -0300
commitfb8a409d7e35735afc9d28bfc0d7b49974f0d3a2 (patch)
treed009045e6591ef766a1c14765f3b8a7a3bc5d18a
parent697baaa3cc92e945d2301238dc9bcabffdb465ef (diff)
downloadPSP.git-fb8a409d7e35735afc9d28bfc0d7b49974f0d3a2.tar.gz
PSP.git-fb8a409d7e35735afc9d28bfc0d7b49974f0d3a2.tar.xz
PSP.git-fb8a409d7e35735afc9d28bfc0d7b49974f0d3a2.zip
Movementation and rotation fixed
-rw-r--r--.codelite/.tern-port2
-rw-r--r--.codelite/.tern-project2
-rw-r--r--.codelite/PSP.session40
-rw-r--r--.codelite/PSP.tagsbin80624640 -> 80629760 bytes
-rw-r--r--.codelite/compilation.dbbin40960 -> 40960 bytes
-rw-r--r--.codelite/compile_commands.json8
-rw-r--r--.codelite/refactoring.dbbin731136 -> 743424 bytes
-rw-r--r--Project/Bus.cpp4
-rw-r--r--Project/Capacitor.cpp4
-rw-r--r--Project/Element.cpp11
-rw-r--r--Project/IndMotor.cpp4
-rw-r--r--Project/Inductor.cpp4
-rw-r--r--Project/Load.cpp4
-rw-r--r--Project/MainFrame.cpp167
-rw-r--r--Project/MainFrame.h2
-rw-r--r--Project/MainFrame.wxcp184
-rw-r--r--Project/MainFrameBase.cpp8
-rw-r--r--Project/MainFrameBase.h18
-rw-r--r--Project/MainFrameBitmaps.cpp162
-rw-r--r--Project/MainFrameBitmaps.xrc2
-rw-r--r--Project/Project.mk7
-rw-r--r--Project/Release/Branch.cpp.obin25394 -> 25477 bytes
-rw-r--r--Project/Release/Bus.cpp.obin31419 -> 27468 bytes
-rw-r--r--Project/Release/Capacitor.cpp.obin34998 -> 31047 bytes
-rw-r--r--Project/Release/Element.cpp.obin27822 -> 38751 bytes
-rw-r--r--Project/Release/IndMotor.cpp.obin29299 -> 25364 bytes
-rw-r--r--Project/Release/Inductor.cpp.obin34930 -> 30963 bytes
-rw-r--r--Project/Release/Line.cpp.obin39796 -> 39879 bytes
-rw-r--r--Project/Release/Load.cpp.obin35743 -> 31792 bytes
-rw-r--r--Project/Release/Machines.cpp.obin31271 -> 31354 bytes
-rw-r--r--Project/Release/MainFrame.cpp.obin117620 -> 131736 bytes
-rw-r--r--Project/Release/MainFrame.cpp.o.d30
-rw-r--r--Project/Release/MainFrameBase.cpp.obin236215 -> 238256 bytes
-rw-r--r--Project/Release/MainFrameBitmaps.cpp.obin76049 -> 78849 bytes
-rw-r--r--Project/Release/PSP-UFU.exebin3398763 -> 3389590 bytes
-rw-r--r--Project/Release/Shunt.cpp.obin26079 -> 26146 bytes
-rw-r--r--Project/Release/SyncGenerator.cpp.obin29731 -> 25796 bytes
-rw-r--r--Project/Release/SyncMotor.cpp.obin30833 -> 22193 bytes
-rw-r--r--Project/Release/Transformer.cpp.obin38199 -> 34264 bytes
-rw-r--r--Project/Release/Workspace.cpp.obin125288 -> 125606 bytes
-rw-r--r--Project/SyncGenerator.cpp4
-rw-r--r--Project/SyncMotor.cpp14
-rw-r--r--Project/Transformer.cpp4
-rw-r--r--Project/Workspace.cpp181
-rw-r--r--Project/Workspace.h13
-rw-r--r--Project/data/images/ribbon/rotateClock32.pngbin0 -> 1139 bytes
-rw-r--r--Project/data/images/ribbon/rotateCounterClock32.pngbin0 -> 1110 bytes
47 files changed, 659 insertions, 220 deletions
diff --git a/.codelite/.tern-port b/.codelite/.tern-port
index 0a2fd0a..3b51bed 100644
--- a/.codelite/.tern-port
+++ b/.codelite/.tern-port
@@ -1 +1 @@
-61316 \ No newline at end of file
+51228 \ No newline at end of file
diff --git a/.codelite/.tern-project b/.codelite/.tern-project
index 09b6465..d5969c6 100644
--- a/.codelite/.tern-project
+++ b/.codelite/.tern-project
@@ -8,6 +8,8 @@
"node_resolve": {
},
"node": {
+ },
+ "complete_strings": {
}
}
} \ No newline at end of file
diff --git a/.codelite/PSP.session b/.codelite/PSP.session
index 999b9ba..cef6f1c 100644
--- a/.codelite/PSP.session
+++ b/.codelite/PSP.session
@@ -1,61 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<Session Name="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace">
- <int Value="2" Name="m_selectedTab"/>
+ <int Value="0" Name="m_selectedTab"/>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace" Name="m_workspaceName"/>
<TabInfoArray Name="TabInfoArray">
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Workspace.cpp" Name="FileName"/>
- <int Value="767" Name="FirstVisibleLine"/>
- <int Value="797" Name="CurrentLine"/>
+ <int Value="551" Name="FirstVisibleLine"/>
+ <int Value="572" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Workspace.h" Name="FileName"/>
- <int Value="0" Name="FirstVisibleLine"/>
- <int Value="0" Name="CurrentLine"/>
+ <int Value="28" Name="FirstVisibleLine"/>
+ <int Value="51" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Element.cpp" Name="FileName"/>
- <int Value="274" Name="FirstVisibleLine"/>
- <int Value="296" Name="CurrentLine"/>
+ <int Value="83" Name="FirstVisibleLine"/>
+ <int Value="0" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Element.h" Name="FileName"/>
- <int Value="103" Name="FirstVisibleLine"/>
+ <int Value="120" Name="FirstVisibleLine"/>
<int Value="128" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
- <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Capacitor.cpp" Name="FileName"/>
- <int Value="90" Name="FirstVisibleLine"/>
- <int Value="106" Name="CurrentLine"/>
+ <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Bus.cpp" Name="FileName"/>
+ <int Value="88" Name="FirstVisibleLine"/>
+ <int Value="113" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
- <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Inductor.cpp" Name="FileName"/>
- <int Value="81" Name="FirstVisibleLine"/>
- <int Value="98" Name="CurrentLine"/>
+ <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\MainFrame.cpp" Name="FileName"/>
+ <int Value="254" Name="FirstVisibleLine"/>
+ <int Value="276" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
- <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\SyncMotor.cpp" Name="FileName"/>
- <int Value="0" Name="FirstVisibleLine"/>
- <int Value="26" Name="CurrentLine"/>
+ <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Shunt.cpp" Name="FileName"/>
+ <int Value="35" Name="FirstVisibleLine"/>
+ <int Value="58" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
- <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Machines.h" Name="FileName"/>
- <int Value="0" Name="FirstVisibleLine"/>
- <int Value="24" Name="CurrentLine"/>
+ <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Inductor.cpp" Name="FileName"/>
+ <int Value="71" Name="FirstVisibleLine"/>
+ <int Value="91" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
diff --git a/.codelite/PSP.tags b/.codelite/PSP.tags
index 99f60d5..5add8fa 100644
--- a/.codelite/PSP.tags
+++ b/.codelite/PSP.tags
Binary files differ
diff --git a/.codelite/compilation.db b/.codelite/compilation.db
index 0f7950d..5a74966 100644
--- a/.codelite/compilation.db
+++ b/.codelite/compilation.db
Binary files differ
diff --git a/.codelite/compile_commands.json b/.codelite/compile_commands.json
index d05a5aa..ba59d01 100644
--- a/.codelite/compile_commands.json
+++ b/.codelite/compile_commands.json
@@ -1,9 +1,9 @@
[{
"directory": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project",
- "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/SyncMotor.cpp.o -MF./Release/SyncMotor.cpp.o.d -MM SyncMotor.cpp",
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMotor.cpp"
+ "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/MainFrame.cpp.o -MF./Release/MainFrame.cpp.o.d -MM MainFrame.cpp",
+ "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrame.cpp"
}, {
"directory": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project",
- "command": "C:/TDM-GCC-64/bin/g++.exe -c C:/Users/Thales/Documents/GitHub/PSP/Project/SyncMotor.cpp -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -o ./Release/SyncMotor.cpp.o -I. -I.",
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMotor.cpp"
+ "command": "C:/TDM-GCC-64/bin/g++.exe -c C:/Users/Thales/Documents/GitHub/PSP/Project/MainFrame.cpp -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -o ./Release/MainFrame.cpp.o -I. -I.",
+ "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrame.cpp"
}] \ No newline at end of file
diff --git a/.codelite/refactoring.db b/.codelite/refactoring.db
index d4410bb..21d7829 100644
--- a/.codelite/refactoring.db
+++ b/.codelite/refactoring.db
Binary files differ
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
index 4f4f76a..7b22814 100644
--- a/Project/Release/Branch.cpp.o
+++ b/Project/Release/Branch.cpp.o
Binary files differ
diff --git a/Project/Release/Bus.cpp.o b/Project/Release/Bus.cpp.o
index c4810a9..c661451 100644
--- a/Project/Release/Bus.cpp.o
+++ b/Project/Release/Bus.cpp.o
Binary files differ
diff --git a/Project/Release/Capacitor.cpp.o b/Project/Release/Capacitor.cpp.o
index 7d205fe..aca015c 100644
--- a/Project/Release/Capacitor.cpp.o
+++ b/Project/Release/Capacitor.cpp.o
Binary files differ
diff --git a/Project/Release/Element.cpp.o b/Project/Release/Element.cpp.o
index bbfb08e..c8c256d 100644
--- a/Project/Release/Element.cpp.o
+++ b/Project/Release/Element.cpp.o
Binary files differ
diff --git a/Project/Release/IndMotor.cpp.o b/Project/Release/IndMotor.cpp.o
index 88c6d2f..5fb49e0 100644
--- a/Project/Release/IndMotor.cpp.o
+++ b/Project/Release/IndMotor.cpp.o
Binary files differ
diff --git a/Project/Release/Inductor.cpp.o b/Project/Release/Inductor.cpp.o
index f2c67ba..66fde49 100644
--- a/Project/Release/Inductor.cpp.o
+++ b/Project/Release/Inductor.cpp.o
Binary files differ
diff --git a/Project/Release/Line.cpp.o b/Project/Release/Line.cpp.o
index 305cbd9..a26221e 100644
--- a/Project/Release/Line.cpp.o
+++ b/Project/Release/Line.cpp.o
Binary files differ
diff --git a/Project/Release/Load.cpp.o b/Project/Release/Load.cpp.o
index a68dcfa..4b47c7c 100644
--- a/Project/Release/Load.cpp.o
+++ b/Project/Release/Load.cpp.o
Binary files differ
diff --git a/Project/Release/Machines.cpp.o b/Project/Release/Machines.cpp.o
index a4b944e..f479d24 100644
--- a/Project/Release/Machines.cpp.o
+++ b/Project/Release/Machines.cpp.o
Binary files differ
diff --git a/Project/Release/MainFrame.cpp.o b/Project/Release/MainFrame.cpp.o
index df1fcf4..fb5123f 100644
--- a/Project/Release/MainFrame.cpp.o
+++ b/Project/Release/MainFrame.cpp.o
Binary files differ
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
index 28b364c..ec938af 100644
--- a/Project/Release/MainFrameBase.cpp.o
+++ b/Project/Release/MainFrameBase.cpp.o
Binary files differ
diff --git a/Project/Release/MainFrameBitmaps.cpp.o b/Project/Release/MainFrameBitmaps.cpp.o
index 7e88148..02f4a07 100644
--- a/Project/Release/MainFrameBitmaps.cpp.o
+++ b/Project/Release/MainFrameBitmaps.cpp.o
Binary files differ
diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe
index 7c00091..e71ee5b 100644
--- a/Project/Release/PSP-UFU.exe
+++ b/Project/Release/PSP-UFU.exe
Binary files differ
diff --git a/Project/Release/Shunt.cpp.o b/Project/Release/Shunt.cpp.o
index b9fed50..afdb286 100644
--- a/Project/Release/Shunt.cpp.o
+++ b/Project/Release/Shunt.cpp.o
Binary files differ
diff --git a/Project/Release/SyncGenerator.cpp.o b/Project/Release/SyncGenerator.cpp.o
index 8d1c4ad..2344e49 100644
--- a/Project/Release/SyncGenerator.cpp.o
+++ b/Project/Release/SyncGenerator.cpp.o
Binary files differ
diff --git a/Project/Release/SyncMotor.cpp.o b/Project/Release/SyncMotor.cpp.o
index 40b26fe..6d1912d 100644
--- a/Project/Release/SyncMotor.cpp.o
+++ b/Project/Release/SyncMotor.cpp.o
Binary files differ
diff --git a/Project/Release/Transformer.cpp.o b/Project/Release/Transformer.cpp.o
index 0a064e6..670b60f 100644
--- a/Project/Release/Transformer.cpp.o
+++ b/Project/Release/Transformer.cpp.o
Binary files differ
diff --git a/Project/Release/Workspace.cpp.o b/Project/Release/Workspace.cpp.o
index 457cf83..44c689c 100644
--- a/Project/Release/Workspace.cpp.o
+++ b/Project/Release/Workspace.cpp.o
Binary files differ
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
new file mode 100644
index 0000000..9873e13
--- /dev/null
+++ b/Project/data/images/ribbon/rotateClock32.png
Binary files differ
diff --git a/Project/data/images/ribbon/rotateCounterClock32.png b/Project/data/images/ribbon/rotateCounterClock32.png
new file mode 100644
index 0000000..3658f93
--- /dev/null
+++ b/Project/data/images/ribbon/rotateCounterClock32.png
Binary files differ