summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-12-29 02:32:50 -0200
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-12-29 02:32:50 -0200
commitd792fcf7b2a5862ac86ee69aa86021b5637ca8ee (patch)
treec00bb1d27666ee7d42839efbd420369b2a0d24e3
parentfb9de1b7935376897f1c93676ab1faeb1ea25f25 (diff)
downloadPSP.git-d792fcf7b2a5862ac86ee69aa86021b5637ca8ee.tar.gz
PSP.git-d792fcf7b2a5862ac86ee69aa86021b5637ca8ee.tar.xz
PSP.git-d792fcf7b2a5862ac86ee69aa86021b5637ca8ee.zip
Copy paste implemented
Some bugs on the text
-rw-r--r--.codelite/.tern-port2
-rw-r--r--.codelite/.tern-project2
-rw-r--r--.codelite/PSP.tagsbin72314880 -> 79133696 bytes
-rw-r--r--.codelite/compilation.dbbin63488 -> 65536 bytes
-rw-r--r--.codelite/compile_commands.json152
-rw-r--r--.codelite/refactoring.dbbin2956288 -> 2988032 bytes
-rw-r--r--Project/Bus.cpp9
-rw-r--r--Project/Bus.h1
-rw-r--r--Project/Capacitor.cpp15
-rw-r--r--Project/Capacitor.h3
-rw-r--r--Project/Element.cpp34
-rw-r--r--Project/Element.h103
-rw-r--r--Project/ElementDataObject.cpp67
-rw-r--r--Project/ElementDataObject.h20
-rw-r--r--Project/IndMotor.cpp7
-rw-r--r--Project/IndMotor.h3
-rw-r--r--Project/Inductor.cpp15
-rw-r--r--Project/Inductor.h3
-rw-r--r--Project/Line.cpp15
-rw-r--r--Project/Line.h1
-rw-r--r--Project/Load.cpp15
-rw-r--r--Project/Load.h3
-rw-r--r--Project/Machines.cpp8
-rw-r--r--Project/Project.mk7
-rw-r--r--Project/Release/Branch.cpp.obin35966 -> 36478 bytes
-rw-r--r--Project/Release/Bus.cpp.obin44470 -> 51482 bytes
-rw-r--r--Project/Release/BusForm.cpp.obin119004 -> 119105 bytes
-rw-r--r--Project/Release/Capacitor.cpp.obin45989 -> 51864 bytes
-rw-r--r--Project/Release/ElectricCalculation.cpp.obin74373 -> 74373 bytes
-rw-r--r--Project/Release/Element.cpp.obin161886 -> 161927 bytes
-rw-r--r--Project/Release/ElementDataObject.cpp.obin37405 -> 22207 bytes
-rw-r--r--Project/Release/ElementDataObject.cpp.o.d603
-rw-r--r--Project/Release/ElementForm.cpp.obin565564 -> 565883 bytes
-rw-r--r--Project/Release/FileHanding.cpp.obin197048 -> 197048 bytes
-rw-r--r--Project/Release/FileHanding.cpp.o.d32
-rw-r--r--Project/Release/GeneratorStabForm.cpp.obin104202 -> 104287 bytes
-rw-r--r--Project/Release/IndMotor.cpp.obin38892 -> 44699 bytes
-rw-r--r--Project/Release/IndMotorForm.cpp.obin87116 -> 87201 bytes
-rw-r--r--Project/Release/Inductor.cpp.obin45878 -> 51732 bytes
-rw-r--r--Project/Release/Line.cpp.obin164109 -> 170414 bytes
-rw-r--r--Project/Release/LineForm.cpp.obin101112 -> 101213 bytes
-rw-r--r--Project/Release/Load.cpp.obin44535 -> 50527 bytes
-rw-r--r--Project/Release/LoadForm.cpp.obin86741 -> 86826 bytes
-rw-r--r--Project/Release/Machines.cpp.obin40555 -> 41245 bytes
-rw-r--r--Project/Release/MainFrame.cpp.obin155520 -> 155605 bytes
-rw-r--r--Project/Release/MainFrame.cpp.o.d32
-rw-r--r--Project/Release/MainFrameBase.cpp.obin238171 -> 238256 bytes
-rw-r--r--Project/Release/PSP-UFU.exebin4448474 -> 4459899 bytes
-rw-r--r--Project/Release/PowerFlow.cpp.obin43132 -> 43132 bytes
-rw-r--r--Project/Release/ReactiveShuntElementForm.cpp.obin93115 -> 93200 bytes
-rw-r--r--Project/Release/Shunt.cpp.obin36487 -> 37015 bytes
-rw-r--r--Project/Release/SwitchingForm.cpp.obin107046 -> 107131 bytes
-rw-r--r--Project/Release/SyncGenerator.cpp.obin44012 -> 50365 bytes
-rw-r--r--Project/Release/SyncMachineForm.cpp.obin123729 -> 123830 bytes
-rw-r--r--Project/Release/SyncMotor.cpp.obin40282 -> 47540 bytes
-rw-r--r--Project/Release/Text.cpp.obin103176 -> 110498 bytes
-rw-r--r--Project/Release/TextForm.cpp.obin165817 -> 165928 bytes
-rw-r--r--Project/Release/Transformer.cpp.obin51530 -> 57842 bytes
-rw-r--r--Project/Release/TransformerForm.cpp.obin108670 -> 108771 bytes
-rw-r--r--Project/Release/Workspace.cpp.obin223120 -> 224123 bytes
-rw-r--r--Project/Release/main.cpp.obin29146 -> 29146 bytes
-rw-r--r--Project/Release/main.cpp.o.d8
-rw-r--r--Project/Release/wxmsw310u_gcc_64x.dllbin27079299 -> 27581981 bytes
-rw-r--r--Project/Release/wxmsw310u_gl_gcc_64x.dllbin2634306 -> 2634306 bytes
-rw-r--r--Project/SyncGenerator.cpp7
-rw-r--r--Project/SyncGenerator.h3
-rw-r--r--Project/SyncMotor.cpp7
-rw-r--r--Project/SyncMotor.h3
-rw-r--r--Project/Text.cpp7
-rw-r--r--Project/Text.h3
-rw-r--r--Project/Transformer.cpp17
-rw-r--r--Project/Transformer.h3
-rw-r--r--Project/Workspace.cpp1847
73 files changed, 1547 insertions, 1510 deletions
diff --git a/.codelite/.tern-port b/.codelite/.tern-port
index f9d7676..f8d9ce4 100644
--- a/.codelite/.tern-port
+++ b/.codelite/.tern-port
@@ -1 +1 @@
-52743 \ No newline at end of file
+55980 \ 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.tags b/.codelite/PSP.tags
index bb08e8c..5696ae3 100644
--- a/.codelite/PSP.tags
+++ b/.codelite/PSP.tags
Binary files differ
diff --git a/.codelite/compilation.db b/.codelite/compilation.db
index 202d30b..6c9a597 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 c246253..b642e2f 100644
--- a/.codelite/compile_commands.json
+++ b/.codelite/compile_commands.json
@@ -1,153 +1,9 @@
[{
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Bus.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\\Bus.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Bus.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
+ "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/Element.cpp.o -MF./Release/Element.cpp.o.d -MM Element.cpp",
+ "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Element.cpp"
}, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Line.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\\Line.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Line.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Transformer.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\\Transformer.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Transformer.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Machines.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\\Machines.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Machines.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncGenerator.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\\SyncGenerator.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncGenerator.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\IndMotor.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\\IndMotor.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\IndMotor.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Branch.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\\Branch.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Branch.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMotor.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 -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMotor.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Shunt.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\\Shunt.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Shunt.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Load.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\\Load.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Load.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Inductor.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\\Inductor.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Inductor.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Capacitor.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\\Capacitor.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Capacitor.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Element.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\\Element.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Element.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElectricCalculation.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\\ElectricCalculation.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElectricCalculation.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\PowerFlow.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\\PowerFlow.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\PowerFlow.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Text.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\\Text.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Text.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ArtMetro.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\\ArtMetro.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ArtMetro.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\wxGLString.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\\wxGLString.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\wxGLString.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "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\\MainFrame.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrame.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Workspace.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\\Workspace.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Workspace.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\BusForm.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\\BusForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\BusForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\GeneratorStabForm.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\\GeneratorStabForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\GeneratorStabForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\LineForm.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\\LineForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\LineForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SwitchingForm.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\\SwitchingForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SwitchingForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TransformerForm.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\\TransformerForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TransformerForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\LoadForm.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\\LoadForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\LoadForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ReactiveShuntElementForm.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\\ReactiveShuntElementForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ReactiveShuntElementForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\IndMotorForm.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\\IndMotorForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\IndMotorForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMachineForm.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\\SyncMachineForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\SyncMachineForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TextForm.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\\TextForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TextForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\main.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\\main.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\main.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrameBitmaps.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\\MainFrameBitmaps.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrameBitmaps.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\WorkspaceBitmaps.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\\WorkspaceBitmaps.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\WorkspaceBitmaps.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\BusFormBitmaps.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\\BusFormBitmaps.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\BusFormBitmaps.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElementFormBitmaps.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\\ElementFormBitmaps.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElementFormBitmaps.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrameBase.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\\MainFrameBase.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\MainFrameBase.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\WorkspaceBase.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\\WorkspaceBase.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\WorkspaceBase.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
- }, {
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElementForm.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\\ElementForm.cpp -o C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\ElementForm.cpp.o -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 \n -DNDEBUG -DUNICODE -I. -I."
+ "command": "C:/TDM-GCC-64/bin/g++.exe -c C:/Users/Thales/Documents/GitHub/PSP/Project/Element.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/Element.cpp.o -I. -I.",
+ "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Element.cpp"
}] \ No newline at end of file
diff --git a/.codelite/refactoring.db b/.codelite/refactoring.db
index 43f6bab..254af78 100644
--- a/.codelite/refactoring.db
+++ b/.codelite/refactoring.db
Binary files differ
diff --git a/Project/Bus.cpp b/Project/Bus.cpp
index 72d6412..dffe8fc 100644
--- a/Project/Bus.cpp
+++ b/Project/Bus.cpp
@@ -53,7 +53,7 @@ void Bus::Draw(wxPoint2DDouble translation, double scale) const
glRotated(m_angle, 0.0, 0.0, 1.0);
glTranslated(-m_position.m_x, -m_position.m_y, 0.0);
- glColor4dv(m_busColour->GetRGBA());
+ glColor4dv(m_busColour.GetRGBA());
DrawRectangle(m_position, m_width, m_height);
// Pop the old matrix back.
glPopMatrix();
@@ -186,3 +186,10 @@ bool Bus::ShowForm(wxWindow* parent, Element* element)
busForm->Destroy();
return false;
}
+
+Element* Bus::GetCopy()
+{
+ Bus* copy = new Bus();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Bus.h b/Project/Bus.h
index 470d4cb..acf22ab 100644
--- a/Project/Bus.h
+++ b/Project/Bus.h
@@ -46,6 +46,7 @@ public:
Bus(wxPoint2DDouble position);
Bus(wxPoint2DDouble position, wxString name);
~Bus();
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position) { return true; }
virtual bool Contains(wxPoint2DDouble position) const;
virtual bool Intersects(wxRect2DDouble rect) const;
diff --git a/Project/Capacitor.cpp b/Project/Capacitor.cpp
index 31fecc7..b8d4a7c 100644
--- a/Project/Capacitor.cpp
+++ b/Project/Capacitor.cpp
@@ -36,7 +36,7 @@ bool Capacitor::AddParent(Element* parent, wxPoint2DDouble position)
void Capacitor::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
@@ -49,7 +49,7 @@ void Capacitor::Draw(wxPoint2DDouble translation, double scale) const
if(m_selected) {
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
DrawLine(m_pointList);
@@ -69,7 +69,7 @@ void Capacitor::Draw(wxPoint2DDouble translation, double scale) const
}
// Draw Capacitor (layer 2).
glLineWidth(1.5);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);
DrawLine(m_pointList);
@@ -80,7 +80,7 @@ void Capacitor::Draw(wxPoint2DDouble translation, double scale) const
glRotated(m_angle, 0.0, 0.0, 1.0);
glTranslated(-m_position.m_x, -m_position.m_y, 0.0);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawLine(capPts, GL_LINES);
DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0));
@@ -153,3 +153,10 @@ CapacitorElectricalData Capacitor::GetPUElectricalData(double systemPowerBase)
return data;
}
+
+Element* Capacitor::GetCopy()
+{
+ Capacitor* copy = new Capacitor();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Capacitor.h b/Project/Capacitor.h
index 248ec6c..fdacb42 100644
--- a/Project/Capacitor.h
+++ b/Project/Capacitor.h
@@ -17,7 +17,8 @@ class Capacitor : public Shunt
Capacitor();
Capacitor(wxString name);
~Capacitor();
-
+
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual void Draw(wxPoint2DDouble translation, double scale) const;
virtual bool Contains(wxPoint2DDouble position) const;
diff --git a/Project/Element.cpp b/Project/Element.cpp
index 68563ca..be93cc5 100644
--- a/Project/Element.cpp
+++ b/Project/Element.cpp
@@ -2,16 +2,18 @@
Element::Element()
{
- m_busColour = new OpenGLColour(0.0, 0.3, 1.0, 1.0);
- m_onlineElementColour = new OpenGLColour(0.2, 0.2, 0.2, 1.0);
- m_offlineElementColour = new OpenGLColour(0.5, 0.5, 0.5, 1.0);
- m_closedSwitchColour = new OpenGLColour(0.0, 0.4, 0.0, 1.0);
- m_openedSwitchColour = new OpenGLColour(1.0, 0.1, 0.1, 1.0);
- m_selectionColour = new OpenGLColour(0.0, 0.5, 1.0, 0.5);
- m_powerFlowArrowColour = new OpenGLColour(1.0, 0.51, 0.0, 1.0);
+ m_busColour.SetRGBA(0.0, 0.3, 1.0, 1.0);
+ m_onlineElementColour.SetRGBA(0.2, 0.2, 0.2, 1.0);
+ m_offlineElementColour.SetRGBA(0.5, 0.5, 0.5, 1.0);
+ m_closedSwitchColour.SetRGBA(0.0, 0.4, 0.0, 1.0);
+ m_openedSwitchColour.SetRGBA(1.0, 0.1, 0.1, 1.0);
+ m_selectionColour.SetRGBA(0.0, 0.5, 1.0, 0.5);
+ m_powerFlowArrowColour.SetRGBA(1.0, 0.51, 0.0, 1.0);
}
-Element::~Element() {}
+Element::~Element()
+{
+}
void Element::SetPosition(const wxPoint2DDouble position)
{
@@ -257,9 +259,9 @@ void Element::DrawSwitches() const
Element* parent = *it;
if(parent) {
if(m_online) {
- glColor4dv(m_closedSwitchColour->GetRGBA());
+ glColor4dv(m_closedSwitchColour.GetRGBA());
} else {
- glColor4dv(m_openedSwitchColour->GetRGBA());
+ glColor4dv(m_openedSwitchColour.GetRGBA());
}
glPushMatrix();
@@ -442,7 +444,7 @@ void Element::CalculatePowerFlowPts(std::vector<wxPoint2DDouble> edges)
void Element::DrawPowerFlowPts() const
{
if(m_online) {
- glColor4dv(m_powerFlowArrowColour->GetRGBA());
+ glColor4dv(m_powerFlowArrowColour.GetRGBA());
for(int i = 0; i < (int)m_powerFlowArrow.size(); i++) {
DrawTriangle(m_powerFlowArrow[i]);
}
@@ -463,3 +465,13 @@ void OpenGLColour::SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble
rgba[2] = blue;
rgba[3] = alpha;
}
+
+OpenGLColour::OpenGLColour()
+{
+ SetRGBA(1.0, 1.0, 1.0, 1.0);
+}
+
+OpenGLColour::OpenGLColour(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ SetRGBA(red, green, blue, alpha);
+}
diff --git a/Project/Element.h b/Project/Element.h
index 0dd7dea..d5443de 100644
--- a/Project/Element.h
+++ b/Project/Element.h
@@ -11,7 +11,8 @@
#include <wx/log.h>
-enum PickboxID {
+enum PickboxID
+{
ID_PB_NONE = 0,
ID_PB_RIGHT,
ID_PB_LEFT,
@@ -21,7 +22,8 @@ enum PickboxID {
ID_PB_LEFT_TOP
};
-enum ContextMenuID {
+enum ContextMenuID
+{
ID_EDIT_BUS = 0,
ID_EDIT_LINE,
ID_EDIT_TRANSFORMER,
@@ -40,7 +42,8 @@ enum ContextMenuID {
ID_DELETE
};
-enum ElectricalUnit {
+enum ElectricalUnit
+{
UNIT_PU = 0,
UNIT_V,
UNIT_kV,
@@ -63,7 +66,8 @@ enum ElectricalUnit {
UNIT_RADIAN
};
-enum FaultData {
+enum FaultData
+{
FAULT_THREEPHASE = 0,
FAULT_2LINE,
FAULT_2LINE_GROUND,
@@ -73,31 +77,42 @@ enum FaultData {
FAULT_LINE_C
};
-enum SwitchingType { SW_INSERT = 0, SW_REMOVE };
+enum SwitchingType
+{
+ SW_INSERT = 0,
+ SW_REMOVE
+};
-enum PowerFlowDirection { PF_NONE = 0, PF_TO_BUS, PF_TO_ELEMENT, PF_BUS1_TO_BUS2, PF_BUS2_TO_BUS1 };
+enum PowerFlowDirection
+{
+ PF_NONE = 0,
+ PF_TO_BUS,
+ PF_TO_ELEMENT,
+ PF_BUS1_TO_BUS2,
+ PF_BUS2_TO_BUS1
+};
-struct SwitchingData {
+struct SwitchingData
+{
std::vector<SwitchingType> swType;
std::vector<double> swTime;
};
class OpenGLColour
{
-public:
- OpenGLColour() {}
- OpenGLColour(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) { SetRGBA(red, green, blue, alpha); }
+ public:
+ OpenGLColour();
+ OpenGLColour(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
virtual ~OpenGLColour() {}
void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
- GLdouble* GetRGBA() const { return rgba; }
-
-protected:
- GLdouble* rgba = new GLdouble(4);
+ const GLdouble* GetRGBA() const { return rgba; }
+ protected:
+ GLdouble rgba[4];
};
class Element
{
-public:
+ public:
Element();
virtual ~Element();
@@ -124,13 +139,13 @@ public:
bool IsPickboxShown() const { return m_showPickbox; }
bool IsOnline() const { return m_online; }
virtual std::vector<wxPoint2DDouble> GetPointList() const { return m_pointList; }
-
// Pure-virtuals methods
virtual bool AddParent(Element* parent, wxPoint2DDouble position) = 0;
virtual bool Contains(wxPoint2DDouble position) const = 0;
virtual bool Intersects(wxRect2DDouble rect) const = 0;
// General methods
+ virtual Element* GetCopy() { return NULL; }
virtual void Draw(wxPoint2DDouble translation, double scale) const {};
virtual void Rotate(bool clockwise = true) {}
virtual bool GetContextMenu(wxMenu& menu) { return false; }
@@ -144,8 +159,9 @@ public:
virtual void RemoveParent(Element* parent) {}
virtual void ReplaceParent(Element* oldParent, Element* newParent);
virtual void RotateNode(Element* parent, bool clockwise = true) {}
- virtual wxPoint2DDouble
- GetSwitchPoint(Element* parent, wxPoint2DDouble parentPoint, wxPoint2DDouble secondPoint) const;
+ virtual wxPoint2DDouble GetSwitchPoint(Element* parent,
+ wxPoint2DDouble parentPoint,
+ wxPoint2DDouble secondPoint) const;
virtual bool SwitchesContains(wxPoint2DDouble position) const;
virtual void UpdateSwitches();
virtual void DrawSwitches() const;
@@ -158,23 +174,27 @@ public:
virtual wxCursor GetBestPickboxCursor() const { return wxCURSOR_ARROW; }
virtual void ResetPickboxes() { m_activePickboxID = ID_PB_NONE; }
virtual void ResetNodes() { m_activeNodeID = 0; }
- virtual wxPoint2DDouble
- WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX = 0.0, double offsetY = 0.0) const;
+ virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation,
+ double scale,
+ double offsetX = 0.0,
+ double offsetY = 0.0) const;
virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble position,
- wxPoint2DDouble translation,
- double scale,
- double offsetX = 0.0,
- double offsetY = 0.0) const;
- virtual bool
- RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const;
+ wxPoint2DDouble translation,
+ double scale,
+ double offsetX = 0.0,
+ double offsetY = 0.0) const;
+ virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1,
+ wxRect2DDouble rect2,
+ double angle1,
+ double angle2) const;
virtual void DrawCircle(wxPoint2DDouble position, double radius, int numSegments, GLenum mode = GL_LINE_LOOP) const;
virtual void DrawArc(wxPoint2DDouble position,
- double radius,
- double initAngle,
- double finalAngle,
- int numSegments,
- GLenum mode = GL_LINE_LOOP) const;
+ double radius,
+ double initAngle,
+ double finalAngle,
+ int numSegments,
+ GLenum mode = GL_LINE_LOOP) const;
virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode = GL_QUADS) const;
virtual void DrawRectangle(wxPoint2DDouble* points, GLenum mode = GL_QUADS) const;
virtual void DrawTriangle(std::vector<wxPoint2DDouble> points, GLenum mode = GL_TRIANGLES) const;
@@ -186,13 +206,11 @@ public:
virtual std::vector<Element*> GetParentList() const { return m_parentList; }
virtual wxPoint2DDouble GetMoveStartPosition() const { return m_moveStartPt; }
virtual wxPoint2DDouble GetMovePosition() const { return m_movePos; }
-
virtual void CalculateBoundaries(wxPoint2DDouble& leftUp, wxPoint2DDouble& rightBottom) const;
virtual void GeneralMenuItens(wxMenu& menu);
virtual bool ShowForm(wxWindow* parent, Element* element) { return false; }
-
bool DoubleFromString(wxWindow* parent, wxString strValue, double& value, wxString errorMsg);
bool IntFromString(wxWindow* parent, wxString strValue, int& value, wxString errorMsg);
@@ -204,11 +222,10 @@ public:
virtual SwitchingData GetSwitchingData() { return m_swData; }
virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection) { m_pfDirection = pfDirection; }
virtual PowerFlowDirection GetPowerFlowDirection() const { return m_pfDirection; }
-
// Static methods
static wxString StringFromDouble(double value, int minDecimal = 1);
-protected:
+ protected:
std::vector<Element*> m_parentList;
wxRect2DDouble m_rect;
@@ -220,13 +237,13 @@ protected:
double m_rotationAngle = 45.0;
double m_switchSize = 10.0;
- OpenGLColour* m_busColour;
- OpenGLColour* m_onlineElementColour;
- OpenGLColour* m_offlineElementColour;
- OpenGLColour* m_closedSwitchColour;
- OpenGLColour* m_openedSwitchColour;
- OpenGLColour* m_selectionColour;
- OpenGLColour* m_powerFlowArrowColour;
+ OpenGLColour m_busColour;
+ OpenGLColour m_onlineElementColour;
+ OpenGLColour m_offlineElementColour;
+ OpenGLColour m_closedSwitchColour;
+ OpenGLColour m_openedSwitchColour;
+ OpenGLColour m_selectionColour;
+ OpenGLColour m_powerFlowArrowColour;
std::vector<wxRect2DDouble> m_switchRect;
@@ -251,4 +268,4 @@ protected:
SwitchingData m_swData;
};
-#endif // ELEMENT_H
+#endif // ELEMENT_H
diff --git a/Project/ElementDataObject.cpp b/Project/ElementDataObject.cpp
index 5df312c..ff2feed 100644
--- a/Project/ElementDataObject.cpp
+++ b/Project/ElementDataObject.cpp
@@ -1,60 +1,29 @@
-#include "ElectricCalculation.h"
#include "ElementDataObject.h"
-ElementDataObject::ElementDataObject(Workspace* workspace)
- : wxDataObjectSimple(wxDataFormat("PSPCopy"))
+ElementDataObject::ElementDataObject() : wxDataObjectSimple(wxDataFormat("PSPCopy"))
{
- if(workspace) {
- m_elementsLists = new ElementsLists();
-
- ElectricCalculation m_allElements;
- std::vector<Element*> elementsList = workspace->GetElementList();
- std::vector<Text*> textList = workspace->GetTextList();
-
- m_allElements.GetElementsFromList(elementsList);
-
- std::vector<Bus*> busList = m_allElements.GetBusList();
- for(int i = 0; i < (int)busList.size(); i++) {
- Bus* origBus = busList[i];
-
- // Set bus number.
- auto data = origBus->GetEletricalData();
- data.number = i;
- origBus->SetElectricalData(data);
-
- if(origBus->IsSelected()) {
- Bus* copyBus = new Bus();
- *copyBus = *origBus;
- m_elementsLists->busList.push_back(copyBus);
- }
- }
+ m_elementsLists = new ElementsLists();
+}
- std::vector<Line*> lineList = m_allElements.GetLineList();
- for(int i = 0; i < (int)lineList.size(); i++) {
- Line* origLine = lineList[i];
- if(origLine->IsSelected()) {
- Line* copyLine = new Line();
- *copyLine = *origLine;
- m_elementsLists->lineList.push_back(copyLine);
- }
- }
-
- std::vector<Transformer*> transformerList = m_allElements.GetTransformerList();
- for(int i = 0; i < (int)transformerList.size(); i++) {
- Transformer* origTransformer = transformerList[i];
- if(origTransformer->IsSelected()) {
- Transformer* copyTransformer = new Transformer();
- *copyTransformer = *origTransformer;
- m_elementsLists->transformerList.push_back(copyTransformer);
- }
- }
- }
+ElementDataObject::ElementDataObject(std::vector<Element*> elementList) : wxDataObjectSimple(wxDataFormat("PSPCopy"))
+{
+ m_elementsLists = new ElementsLists();
+ if(elementList.size() > 0) {
+ // Separate buses (parents) from the rest of the elements (childs).
+ for(auto it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {
+ Element* copy = (*it)->GetCopy();
+ if(copy) {
+ if(typeid(*copy) == typeid(Bus))
+ m_elementsLists->parentList.push_back((Bus*)copy);
+ else
+ m_elementsLists->elementList.push_back(copy);
+ }
+ }
+ }
}
ElementDataObject::~ElementDataObject() {}
-
size_t ElementDataObject::GetDataSize() const { return sizeof(void*); }
-
bool ElementDataObject::GetDataHere(void* buf) const
{
*(ElementsLists**)buf = m_elementsLists;
diff --git a/Project/ElementDataObject.h b/Project/ElementDataObject.h
index 3f7155f..37b1cbe 100644
--- a/Project/ElementDataObject.h
+++ b/Project/ElementDataObject.h
@@ -1,29 +1,19 @@
#ifndef ELEMENTDATAOBJECT_H
#define ELEMENTDATAOBJECT_H
-#include <wx/dataobj.h>
#include "Workspace.h"
-
-class ElectricCalculation;
+#include <wx/dataobj.h>
struct ElementsLists {
- std::vector<Bus*> busList;
- std::vector<Capacitor*> capacitorList;
- std::vector<IndMotor*> indMotorList;
- std::vector<Inductor*> inductorList;
- std::vector<Line*> lineList;
- std::vector<Load*> loadList;
- std::vector<Machines*> machinesList;
- std::vector<SyncGenerator*> syncGeneratorList;
- std::vector<SyncMotor*> syncMotorList;
- std::vector<Transformer*> transformerList;
- std::vector<Text*> textList;
+ std::vector<Element*> elementList;
+ std::vector<Bus*> parentList;
};
class ElementDataObject : public wxDataObjectSimple
{
public:
- ElementDataObject(Workspace* workspace);
+ ElementDataObject();
+ ElementDataObject(std::vector<Element*> elementList);
~ElementDataObject();
size_t GetDataSize() const override;
diff --git a/Project/IndMotor.cpp b/Project/IndMotor.cpp
index 7a56466..fc30f12 100644
--- a/Project/IndMotor.cpp
+++ b/Project/IndMotor.cpp
@@ -75,3 +75,10 @@ IndMotorElectricalData IndMotor::GetPUElectricalData(double systemPowerBase)
return data;
}
+
+Element* IndMotor::GetCopy()
+{
+ IndMotor* copy = new IndMotor();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/IndMotor.h b/Project/IndMotor.h
index 491c714..03c64d7 100644
--- a/Project/IndMotor.h
+++ b/Project/IndMotor.h
@@ -20,7 +20,8 @@ class IndMotor : public Machines
IndMotor();
IndMotor(wxString name);
~IndMotor();
-
+
+ virtual Element* GetCopy();
virtual void DrawSymbol() const;
virtual bool GetContextMenu(wxMenu& menu);
virtual bool ShowForm(wxWindow* parent, Element* element);
diff --git a/Project/Inductor.cpp b/Project/Inductor.cpp
index 4a6cf75..ffce7d9 100644
--- a/Project/Inductor.cpp
+++ b/Project/Inductor.cpp
@@ -36,14 +36,14 @@ bool Inductor::AddParent(Element* parent, wxPoint2DDouble position)
void Inductor::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
if(m_inserted) {
if(m_selected) {
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
DrawLine(m_pointList);
@@ -65,7 +65,7 @@ void Inductor::Draw(wxPoint2DDouble translation, double scale) const
}
// Draw Load (layer 2).
glLineWidth(1.5);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);
DrawLine(m_pointList);
@@ -76,7 +76,7 @@ void Inductor::Draw(wxPoint2DDouble translation, double scale) const
glRotated(m_angle, 0.0, 0.0, 1.0);
glTranslated(-m_position.m_x, -m_position.m_y, 0.0);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0), 10, 45, 270, 10, GL_LINE_STRIP);
DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 25.0), 10, 45, 315, 10, GL_LINE_STRIP);
DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 40.0), 10, 90, 315, 10, GL_LINE_STRIP);
@@ -147,3 +147,10 @@ InductorElectricalData Inductor::GetPUElectricalData(double systemPowerBase)
return data;
}
+
+Element* Inductor::GetCopy()
+{
+ Inductor* copy = new Inductor();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Inductor.h b/Project/Inductor.h
index f157d1c..84acc18 100644
--- a/Project/Inductor.h
+++ b/Project/Inductor.h
@@ -17,7 +17,8 @@ class Inductor : public Shunt
Inductor();
Inductor(wxString name);
~Inductor();
-
+
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual void Draw(wxPoint2DDouble translation, double scale) const;
virtual bool Contains(wxPoint2DDouble position) const;
diff --git a/Project/Line.cpp b/Project/Line.cpp
index 7f569fd..3180cf8 100644
--- a/Project/Line.cpp
+++ b/Project/Line.cpp
@@ -31,7 +31,7 @@ bool Line::Contains(wxPoint2DDouble position) const
void Line::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
@@ -48,7 +48,7 @@ void Line::Draw(wxPoint2DDouble translation, double scale) const
// Line selected (Layer 1).
if(m_selected) {
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
DrawLine(pointList);
// Draw nodes selection.
@@ -62,7 +62,7 @@ void Line::Draw(wxPoint2DDouble translation, double scale) const
// Draw line (Layer 2)
glLineWidth(1.5);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawLine(pointList);
if(m_inserted) {
@@ -72,7 +72,7 @@ void Line::Draw(wxPoint2DDouble translation, double scale) const
// Draw nodes.
if(pointList.size() > 0) {
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(pointList[0], 5.0, 10, GL_POLYGON);
if(m_inserted) {
DrawCircle(pointList[pointList.size() - 1], 5.0, 10, GL_POLYGON);
@@ -491,3 +491,10 @@ void Line::SetPointList(std::vector<wxPoint2DDouble> pointList)
UpdateSwitchesPosition();
UpdatePowerFlowArrowsPosition();
}
+
+Element* Line::GetCopy()
+{
+ Line* copy = new Line();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Line.h b/Project/Line.h
index 2a2902c..7000701 100644
--- a/Project/Line.h
+++ b/Project/Line.h
@@ -45,6 +45,7 @@ class Line : public Branch
virtual void MoveNode(Element* parent, wxPoint2DDouble position);
virtual bool SetNodeParent(Element* parent);
virtual wxCursor GetBestPickboxCursor() const { return wxCURSOR_SIZING; }
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual bool Intersects(wxRect2DDouble rect) const;
virtual void MovePickbox(wxPoint2DDouble position);
diff --git a/Project/Load.cpp b/Project/Load.cpp
index d363b17..f5afda3 100644
--- a/Project/Load.cpp
+++ b/Project/Load.cpp
@@ -40,7 +40,7 @@ bool Load::AddParent(Element* parent, wxPoint2DDouble position)
void Load::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
@@ -48,7 +48,7 @@ void Load::Draw(wxPoint2DDouble translation, double scale) const
// Draw Selection (layer 1).
if(m_selected) {
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
std::vector<wxPoint2DDouble> selTriangPts;
selTriangPts.push_back(m_triangPts[0] + m_position +
wxPoint2DDouble(-m_borderSize / scale, -m_borderSize / scale));
@@ -73,7 +73,7 @@ void Load::Draw(wxPoint2DDouble translation, double scale) const
glLineWidth(1.5);
// Draw node.
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);
DrawLine(m_pointList);
@@ -89,7 +89,7 @@ void Load::Draw(wxPoint2DDouble translation, double scale) const
glTranslated(m_position.m_x, m_position.m_y, 0.0);
glRotated(m_angle, 0.0, 0.0, 1.0);
glTranslated(-m_position.m_x, -m_position.m_y, 0.0);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawTriangle(triangPts);
glPopMatrix();
}
@@ -164,3 +164,10 @@ LoadElectricalData Load::GetPUElectricalData(double systemPowerBase)
return data;
}
+
+Element* Load::GetCopy()
+{
+ Load* copy = new Load();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Load.h b/Project/Load.h
index 3c6dd48..88bedaa 100644
--- a/Project/Load.h
+++ b/Project/Load.h
@@ -26,7 +26,8 @@ class Load : public Shunt
Load();
Load(wxString name);
~Load();
-
+
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual void Draw(wxPoint2DDouble translation, double scale) const;
virtual void Rotate(bool clockwise = true);
diff --git a/Project/Machines.cpp b/Project/Machines.cpp
index c1970e6..bda8a7a 100644
--- a/Project/Machines.cpp
+++ b/Project/Machines.cpp
@@ -35,7 +35,7 @@ bool Machines::AddParent(Element* parent, wxPoint2DDouble position)
void Machines::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
@@ -43,7 +43,7 @@ void Machines::Draw(wxPoint2DDouble translation, double scale) const
// Draw Selection (layer 1).
if(m_selected) {
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
DrawCircle(m_position, 25.0 + (m_borderSize + 1.5) / scale, 20, GL_POLYGON);
DrawLine(m_pointList);
@@ -55,7 +55,7 @@ void Machines::Draw(wxPoint2DDouble translation, double scale) const
glLineWidth(1.5);
// Draw node.
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);
DrawLine(m_pointList);
@@ -66,7 +66,7 @@ void Machines::Draw(wxPoint2DDouble translation, double scale) const
glColor4d(1.0, 1.0, 1.0, 1.0);
DrawCircle(m_position, 25.0, 20, GL_POLYGON);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_position, 25.0, 20);
// Draw machine symbol.
diff --git a/Project/Project.mk b/Project/Project.mk
index e9cbe10..e1411d9 100644
--- a/Project/Project.mk
+++ b/Project/Project.mk
@@ -13,8 +13,8 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=Thales
-Date :=28/12/2016
-CodeLitePath :="C:/Program Files/CodeLite"
+Date :=29/12/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)/Text.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) \
diff --git a/Project/Release/Branch.cpp.o b/Project/Release/Branch.cpp.o
index 020c520..2fde385 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 b6af0e2..b23e8eb 100644
--- a/Project/Release/Bus.cpp.o
+++ b/Project/Release/Bus.cpp.o
Binary files differ
diff --git a/Project/Release/BusForm.cpp.o b/Project/Release/BusForm.cpp.o
index 673bcbb..cc6b454 100644
--- a/Project/Release/BusForm.cpp.o
+++ b/Project/Release/BusForm.cpp.o
Binary files differ
diff --git a/Project/Release/Capacitor.cpp.o b/Project/Release/Capacitor.cpp.o
index 43d7dd5..739e951 100644
--- a/Project/Release/Capacitor.cpp.o
+++ b/Project/Release/Capacitor.cpp.o
Binary files differ
diff --git a/Project/Release/ElectricCalculation.cpp.o b/Project/Release/ElectricCalculation.cpp.o
index 00eba4a..0c9d36d 100644
--- a/Project/Release/ElectricCalculation.cpp.o
+++ b/Project/Release/ElectricCalculation.cpp.o
Binary files differ
diff --git a/Project/Release/Element.cpp.o b/Project/Release/Element.cpp.o
index c809356..b11b443 100644
--- a/Project/Release/Element.cpp.o
+++ b/Project/Release/Element.cpp.o
Binary files differ
diff --git a/Project/Release/ElementDataObject.cpp.o b/Project/Release/ElementDataObject.cpp.o
index d4c97c2..1982cfa 100644
--- a/Project/Release/ElementDataObject.cpp.o
+++ b/Project/Release/ElementDataObject.cpp.o
Binary files differ
diff --git a/Project/Release/ElementDataObject.cpp.o.d b/Project/Release/ElementDataObject.cpp.o.d
index cffe587..e58264b 100644
--- a/Project/Release/ElementDataObject.cpp.o.d
+++ b/Project/Release/ElementDataObject.cpp.o.d
@@ -1,5 +1,8 @@
Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
- ElectricCalculation.h Element.h C:/wxWidgets-3.1.0/include/wx/msgdlg.h \
+ ElementDataObject.h Workspace.h C:/wxWidgets-3.1.0/include/wx/dcclient.h \
+ C:/wxWidgets-3.1.0/include/wx/dc.h \
+ C:/wxWidgets-3.1.0/include/wx/object.h \
+ C:/wxWidgets-3.1.0/include/wx/memory.h \
C:/wxWidgets-3.1.0/include/wx/defs.h \
C:/wxWidgets-3.1.0/include/wx/platform.h \
C:/wxWidgets-3.1.0/include/wx/compiler.h \
@@ -16,13 +19,6 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/windowid.h \
C:/wxWidgets-3.1.0/include/wx/msw/winundef.h \
C:/wxWidgets-3.1.0/include/wx/features.h \
- C:/wxWidgets-3.1.0/include/wx/dialog.h \
- C:/wxWidgets-3.1.0/include/wx/toplevel.h \
- C:/wxWidgets-3.1.0/include/wx/nonownedwnd.h \
- C:/wxWidgets-3.1.0/include/wx/window.h \
- C:/wxWidgets-3.1.0/include/wx/event.h \
- C:/wxWidgets-3.1.0/include/wx/object.h \
- C:/wxWidgets-3.1.0/include/wx/memory.h \
C:/wxWidgets-3.1.0/include/wx/string.h \
C:/wxWidgets-3.1.0/include/wx/wxcrtbase.h \
C:/wxWidgets-3.1.0/include/wx/strvararg.h \
@@ -39,10 +35,17 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/xti.h C:/wxWidgets-3.1.0/include/wx/rtti.h \
C:/wxWidgets-3.1.0/include/wx/flags.h \
C:/wxWidgets-3.1.0/include/wx/xti2.h \
- C:/wxWidgets-3.1.0/include/wx/clntdata.h \
+ C:/wxWidgets-3.1.0/include/wx/intl.h \
+ C:/wxWidgets-3.1.0/include/wx/translation.h \
+ C:/wxWidgets-3.1.0/include/wx/language.h \
C:/wxWidgets-3.1.0/include/wx/hashmap.h \
C:/wxWidgets-3.1.0/include/wx/wxcrt.h \
- C:/wxWidgets-3.1.0/include/wx/gdicmn.h \
+ C:/wxWidgets-3.1.0/include/wx/scopedptr.h \
+ C:/wxWidgets-3.1.0/include/wx/checkeddelete.h \
+ C:/wxWidgets-3.1.0/include/wx/colour.h \
+ C:/wxWidgets-3.1.0/include/wx/gdiobj.h \
+ C:/wxWidgets-3.1.0/include/wx/variant.h \
+ C:/wxWidgets-3.1.0/include/wx/arrstr.h \
C:/wxWidgets-3.1.0/include/wx/list.h \
C:/wxWidgets-3.1.0/include/wx/vector.h \
C:/wxWidgets-3.1.0/include/wx/scopeguard.h \
@@ -50,44 +53,64 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/meta/movable.h \
C:/wxWidgets-3.1.0/include/wx/meta/pod.h \
C:/wxWidgets-3.1.0/include/wx/meta/if.h \
+ C:/wxWidgets-3.1.0/include/wx/longlong.h \
+ C:/wxWidgets-3.1.0/include/wx/datetime.h \
+ C:/wxWidgets-3.1.0/include/wx/anystr.h \
+ C:/wxWidgets-3.1.0/include/wx/dynarray.h \
+ C:/wxWidgets-3.1.0/include/wx/any.h \
+ C:/wxWidgets-3.1.0/include/wx/typeinfo.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/colour.h \
+ C:/wxWidgets-3.1.0/include/wx/font.h \
+ C:/wxWidgets-3.1.0/include/wx/gdicmn.h \
C:/wxWidgets-3.1.0/include/wx/math.h \
- C:/wxWidgets-3.1.0/include/wx/cursor.h \
- C:/wxWidgets-3.1.0/include/wx/gdiobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/gdiimage.h \
- C:/wxWidgets-3.1.0/include/wx/msw/cursor.h \
- C:/wxWidgets-3.1.0/include/wx/utils.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/font.h \
+ C:/wxWidgets-3.1.0/include/wx/bitmap.h \
+ C:/wxWidgets-3.1.0/include/wx/image.h \
+ C:/wxWidgets-3.1.0/include/wx/stream.h \
C:/wxWidgets-3.1.0/include/wx/filefn.h \
- C:/wxWidgets-3.1.0/include/wx/arrstr.h \
+ C:/wxWidgets-3.1.0/include/wx/imagbmp.h \
+ C:/wxWidgets-3.1.0/include/wx/imagpng.h \
C:/wxWidgets-3.1.0/include/wx/versioninfo.h \
+ C:/wxWidgets-3.1.0/include/wx/imaggif.h \
+ C:/wxWidgets-3.1.0/include/wx/imagpcx.h \
+ C:/wxWidgets-3.1.0/include/wx/imagjpeg.h \
+ C:/wxWidgets-3.1.0/include/wx/imagtga.h \
+ C:/wxWidgets-3.1.0/include/wx/imagtiff.h \
+ C:/wxWidgets-3.1.0/include/wx/imagpnm.h \
+ C:/wxWidgets-3.1.0/include/wx/imagxpm.h \
+ C:/wxWidgets-3.1.0/include/wx/imagiff.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/bitmap.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/gdiimage.h \
+ C:/wxWidgets-3.1.0/include/wx/palette.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/palette.h \
+ C:/wxWidgets-3.1.0/include/wx/brush.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/brush.h \
+ C:/wxWidgets-3.1.0/include/wx/pen.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/pen.h \
+ C:/wxWidgets-3.1.0/include/wx/region.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/region.h \
+ C:/wxWidgets-3.1.0/include/wx/affinematrix2d.h \
+ C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h \
+ C:/wxWidgets-3.1.0/include/wx/geometry.h \
+ C:/wxWidgets-3.1.0/include/wx/utils.h \
C:/wxWidgets-3.1.0/include/wx/meta/implicitconversion.h \
C:/wxWidgets-3.1.0/include/wx/mousestate.h \
C:/wxWidgets-3.1.0/include/wx/kbdstate.h \
- C:/wxWidgets-3.1.0/include/wx/longlong.h \
C:/wxWidgets-3.1.0/include/wx/platinfo.h \
- C:/wxWidgets-3.1.0/include/wx/dynarray.h \
+ C:/wxWidgets-3.1.0/include/wx/msgdlg.h \
+ C:/wxWidgets-3.1.0/include/wx/dialog.h \
+ C:/wxWidgets-3.1.0/include/wx/toplevel.h \
+ C:/wxWidgets-3.1.0/include/wx/nonownedwnd.h \
+ C:/wxWidgets-3.1.0/include/wx/window.h \
+ C:/wxWidgets-3.1.0/include/wx/event.h \
+ C:/wxWidgets-3.1.0/include/wx/clntdata.h \
+ C:/wxWidgets-3.1.0/include/wx/cursor.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/cursor.h \
C:/wxWidgets-3.1.0/include/wx/thread.h \
C:/wxWidgets-3.1.0/include/wx/tracker.h \
- C:/wxWidgets-3.1.0/include/wx/typeinfo.h \
- C:/wxWidgets-3.1.0/include/wx/any.h \
- C:/wxWidgets-3.1.0/include/wx/datetime.h \
- C:/wxWidgets-3.1.0/include/wx/anystr.h \
- C:/wxWidgets-3.1.0/include/wx/variant.h \
C:/wxWidgets-3.1.0/include/wx/meta/convertible.h \
C:/wxWidgets-3.1.0/include/wx/meta/removeref.h \
- C:/wxWidgets-3.1.0/include/wx/font.h \
- C:/wxWidgets-3.1.0/include/wx/msw/font.h \
- C:/wxWidgets-3.1.0/include/wx/colour.h \
- C:/wxWidgets-3.1.0/include/wx/msw/colour.h \
- C:/wxWidgets-3.1.0/include/wx/region.h \
- C:/wxWidgets-3.1.0/include/wx/msw/region.h \
- C:/wxWidgets-3.1.0/include/wx/intl.h \
- C:/wxWidgets-3.1.0/include/wx/translation.h \
- C:/wxWidgets-3.1.0/include/wx/language.h \
- C:/wxWidgets-3.1.0/include/wx/scopedptr.h \
- C:/wxWidgets-3.1.0/include/wx/checkeddelete.h \
C:/wxWidgets-3.1.0/include/wx/validate.h \
- C:/wxWidgets-3.1.0/include/wx/palette.h \
- C:/wxWidgets-3.1.0/include/wx/msw/palette.h \
C:/wxWidgets-3.1.0/include/wx/accel.h \
C:/wxWidgets-3.1.0/include/wx/msw/accel.h \
C:/wxWidgets-3.1.0/include/wx/msw/window.h \
@@ -110,30 +133,19 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/stockitem.h \
C:/wxWidgets-3.1.0/include/wx/generic/msgdlgg.h \
C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.h \
- C:/wxWidgets-3.1.0/include/wx/geometry.h \
- C:/wxWidgets-3.1.0/include/wx/menu.h \
- C:/wxWidgets-3.1.0/include/wx/menuitem.h \
- C:/wxWidgets-3.1.0/include/wx/msw/menuitem.h \
- C:/wxWidgets-3.1.0/include/wx/bitmap.h \
- C:/wxWidgets-3.1.0/include/wx/image.h \
- C:/wxWidgets-3.1.0/include/wx/stream.h \
- C:/wxWidgets-3.1.0/include/wx/imagbmp.h \
- C:/wxWidgets-3.1.0/include/wx/imagpng.h \
- C:/wxWidgets-3.1.0/include/wx/imaggif.h \
- C:/wxWidgets-3.1.0/include/wx/imagpcx.h \
- C:/wxWidgets-3.1.0/include/wx/imagjpeg.h \
- C:/wxWidgets-3.1.0/include/wx/imagtga.h \
- C:/wxWidgets-3.1.0/include/wx/imagtiff.h \
- C:/wxWidgets-3.1.0/include/wx/imagpnm.h \
- C:/wxWidgets-3.1.0/include/wx/imagxpm.h \
- C:/wxWidgets-3.1.0/include/wx/imagiff.h \
- C:/wxWidgets-3.1.0/include/wx/msw/bitmap.h \
- C:/wxWidgets-3.1.0/include/wx/ownerdrw.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ownerdrw.h \
- C:/wxWidgets-3.1.0/include/wx/msw/menu.h \
- C:/wxWidgets-3.1.0/include/wx/log.h \
- C:/wxWidgets-3.1.0/include/wx/generic/logg.h Bus.h BusForm.h \
- ElementForm.h C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h \
+ C:/wxWidgets-3.1.0/include/wx/statusbr.h \
+ C:/wxWidgets-3.1.0/include/wx/control.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/control.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/statusbar.h \
+ C:/wxWidgets-3.1.0/include/wx/tooltip.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h \
+ C:/wxWidgets-3.1.0/include/wx/clipbrd.h \
+ C:/wxWidgets-3.1.0/include/wx/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h WorkspaceBase.h \
+ C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h \
C:/wxWidgets-3.1.0/include/wx/filesys.h \
C:/wxWidgets-3.1.0/include/wx/filename.h \
C:/wxWidgets-3.1.0/include/wx/file.h \
@@ -144,19 +156,43 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/msw/imaglist.h \
C:/wxWidgets-3.1.0/include/wx/xrc/xh_bmp.h \
C:/wxWidgets-3.1.0/include/wx/sizer.h \
- C:/wxWidgets-3.1.0/include/wx/notebook.h \
+ C:/wxWidgets-3.1.0/include/wx/glcanvas.h \
+ C:/wxWidgets-3.1.0/include/wx/app.h \
+ C:/wxWidgets-3.1.0/include/wx/eventfilter.h \
+ C:/wxWidgets-3.1.0/include/wx/build.h \
+ C:/wxWidgets-3.1.0/include/wx/cmdargs.h \
+ C:/wxWidgets-3.1.0/include/wx/init.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/init.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/persist.h \
+ C:/wxWidgets-3.1.0/include/wx/confbase.h \
+ C:/wxWidgets-3.1.0/include/wx/base64.h \
+ C:/wxWidgets-3.1.0/include/wx/persist/toplevel.h \
+ C:/wxWidgets-3.1.0/include/wx/persist/window.h \
+ C:/wxWidgets-3.1.0/include/wx/display.h \
+ C:/wxWidgets-3.1.0/include/wx/vidmode.h \
+ C:/wxWidgets-3.1.0/include/wx/persist/bookctrl.h \
C:/wxWidgets-3.1.0/include/wx/bookctrl.h \
- C:/wxWidgets-3.1.0/include/wx/control.h \
- C:/wxWidgets-3.1.0/include/wx/msw/control.h \
C:/wxWidgets-3.1.0/include/wx/withimages.h \
+ C:/wxWidgets-3.1.0/include/wx/notebook.h \
C:/wxWidgets-3.1.0/include/wx/msw/notebook.h \
- C:/wxWidgets-3.1.0/include/wx/stattext.h \
- C:/wxWidgets-3.1.0/include/wx/msw/stattext.h \
+ C:/wxWidgets-3.1.0/include/wx/persist/treebook.h \
+ C:/wxWidgets-3.1.0/include/wx/treebook.h \
+ C:/wxWidgets-3.1.0/include/wx/treectrl.h \
+ C:/wxWidgets-3.1.0/include/wx/treebase.h \
+ C:/wxWidgets-3.1.0/include/wx/itemid.h \
C:/wxWidgets-3.1.0/include/wx/textctrl.h \
C:/wxWidgets-3.1.0/include/wx/textentry.h \
C:/wxWidgets-3.1.0/include/wx/msw/textentry.h \
C:/wxWidgets-3.1.0/include/wx/ioswrap.h \
C:/wxWidgets-3.1.0/include/wx/msw/textctrl.h \
+ C:/wxWidgets-3.1.0/include/wx/systhemectrl.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h Bus.h BusForm.h \
+ ElementForm.h C:/wxWidgets-3.1.0/include/wx/stattext.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/stattext.h \
C:/wxWidgets-3.1.0/include/wx/choice.h \
C:/wxWidgets-3.1.0/include/wx/ctrlsub.h \
C:/wxWidgets-3.1.0/include/wx/msw/ctrlsub.h \
@@ -174,18 +210,9 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/msw/statline.h \
C:/wxWidgets-3.1.0/include/wx/propgrid/manager.h \
C:/wxWidgets-3.1.0/include/wx/propgrid/propgrid.h \
- C:/wxWidgets-3.1.0/include/wx/dcclient.h \
- C:/wxWidgets-3.1.0/include/wx/dc.h C:/wxWidgets-3.1.0/include/wx/brush.h \
- C:/wxWidgets-3.1.0/include/wx/msw/brush.h \
- C:/wxWidgets-3.1.0/include/wx/pen.h \
- C:/wxWidgets-3.1.0/include/wx/msw/pen.h \
- C:/wxWidgets-3.1.0/include/wx/affinematrix2d.h \
- C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h \
C:/wxWidgets-3.1.0/include/wx/scrolwin.h \
C:/wxWidgets-3.1.0/include/wx/generic/scrolwin.h \
C:/wxWidgets-3.1.0/include/wx/recguard.h \
- C:/wxWidgets-3.1.0/include/wx/tooltip.h \
- C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h \
C:/wxWidgets-3.1.0/include/wx/time.h \
C:/wxWidgets-3.1.0/include/wx/propgrid/property.h \
C:/wxWidgets-3.1.0/include/wx/propgrid/propgriddefs.h \
@@ -210,47 +237,25 @@ Release/ElementDataObject.cpp.o: ElementDataObject.cpp \
C:/wxWidgets-3.1.0/include/wx/msw/spinbutt.h \
C:/wxWidgets-3.1.0/include/wx/listctrl.h \
C:/wxWidgets-3.1.0/include/wx/listbase.h \
- C:/wxWidgets-3.1.0/include/wx/systhemectrl.h \
- C:/wxWidgets-3.1.0/include/wx/msw/listctrl.h \
- C:/wxWidgets-3.1.0/include/wx/persist.h \
- C:/wxWidgets-3.1.0/include/wx/confbase.h \
- C:/wxWidgets-3.1.0/include/wx/base64.h \
- C:/wxWidgets-3.1.0/include/wx/persist/toplevel.h \
- C:/wxWidgets-3.1.0/include/wx/persist/window.h \
- C:/wxWidgets-3.1.0/include/wx/display.h \
- C:/wxWidgets-3.1.0/include/wx/vidmode.h \
- C:/wxWidgets-3.1.0/include/wx/persist/bookctrl.h \
- C:/wxWidgets-3.1.0/include/wx/persist/treebook.h \
- C:/wxWidgets-3.1.0/include/wx/treebook.h \
- C:/wxWidgets-3.1.0/include/wx/treectrl.h \
- C:/wxWidgets-3.1.0/include/wx/treebase.h \
- C:/wxWidgets-3.1.0/include/wx/itemid.h \
- C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h Capacitor.h Shunt.h \
- IndMotor.h Machines.h Inductor.h Line.h LineForm.h Branch.h Load.h \
- LoadForm.h SyncGenerator.h SyncMotor.h Transformer.h ElementDataObject.h \
- C:/wxWidgets-3.1.0/include/wx/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h Workspace.h \
- C:/wxWidgets-3.1.0/include/wx/statusbr.h \
- C:/wxWidgets-3.1.0/include/wx/msw/statusbar.h \
- C:/wxWidgets-3.1.0/include/wx/clipbrd.h \
- C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h WorkspaceBase.h \
- C:/wxWidgets-3.1.0/include/wx/glcanvas.h \
- C:/wxWidgets-3.1.0/include/wx/app.h \
- C:/wxWidgets-3.1.0/include/wx/eventfilter.h \
- C:/wxWidgets-3.1.0/include/wx/build.h \
- C:/wxWidgets-3.1.0/include/wx/cmdargs.h \
- C:/wxWidgets-3.1.0/include/wx/init.h \
- C:/wxWidgets-3.1.0/include/wx/msw/init.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/listctrl.h Element.h \
+ C:/wxWidgets-3.1.0/include/wx/menu.h \
+ C:/wxWidgets-3.1.0/include/wx/menuitem.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/menuitem.h \
+ C:/wxWidgets-3.1.0/include/wx/ownerdrw.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ownerdrw.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/menu.h
-ElectricCalculation.h:
+ElementDataObject.h:
-Element.h:
+Workspace.h:
-C:/wxWidgets-3.1.0/include/wx/msgdlg.h:
+C:/wxWidgets-3.1.0/include/wx/dcclient.h:
+
+C:/wxWidgets-3.1.0/include/wx/dc.h:
+
+C:/wxWidgets-3.1.0/include/wx/object.h:
+
+C:/wxWidgets-3.1.0/include/wx/memory.h:
C:/wxWidgets-3.1.0/include/wx/defs.h:
@@ -284,20 +289,6 @@ C:/wxWidgets-3.1.0/include/wx/msw/winundef.h:
C:/wxWidgets-3.1.0/include/wx/features.h:
-C:/wxWidgets-3.1.0/include/wx/dialog.h:
-
-C:/wxWidgets-3.1.0/include/wx/toplevel.h:
-
-C:/wxWidgets-3.1.0/include/wx/nonownedwnd.h:
-
-C:/wxWidgets-3.1.0/include/wx/window.h:
-
-C:/wxWidgets-3.1.0/include/wx/event.h:
-
-C:/wxWidgets-3.1.0/include/wx/object.h:
-
-C:/wxWidgets-3.1.0/include/wx/memory.h:
-
C:/wxWidgets-3.1.0/include/wx/string.h:
C:/wxWidgets-3.1.0/include/wx/wxcrtbase.h:
@@ -332,13 +323,27 @@ C:/wxWidgets-3.1.0/include/wx/flags.h:
C:/wxWidgets-3.1.0/include/wx/xti2.h:
-C:/wxWidgets-3.1.0/include/wx/clntdata.h:
+C:/wxWidgets-3.1.0/include/wx/intl.h:
+
+C:/wxWidgets-3.1.0/include/wx/translation.h:
+
+C:/wxWidgets-3.1.0/include/wx/language.h:
C:/wxWidgets-3.1.0/include/wx/hashmap.h:
C:/wxWidgets-3.1.0/include/wx/wxcrt.h:
-C:/wxWidgets-3.1.0/include/wx/gdicmn.h:
+C:/wxWidgets-3.1.0/include/wx/scopedptr.h:
+
+C:/wxWidgets-3.1.0/include/wx/checkeddelete.h:
+
+C:/wxWidgets-3.1.0/include/wx/colour.h:
+
+C:/wxWidgets-3.1.0/include/wx/gdiobj.h:
+
+C:/wxWidgets-3.1.0/include/wx/variant.h:
+
+C:/wxWidgets-3.1.0/include/wx/arrstr.h:
C:/wxWidgets-3.1.0/include/wx/list.h:
@@ -354,81 +359,121 @@ C:/wxWidgets-3.1.0/include/wx/meta/pod.h:
C:/wxWidgets-3.1.0/include/wx/meta/if.h:
-C:/wxWidgets-3.1.0/include/wx/math.h:
+C:/wxWidgets-3.1.0/include/wx/longlong.h:
-C:/wxWidgets-3.1.0/include/wx/cursor.h:
+C:/wxWidgets-3.1.0/include/wx/datetime.h:
-C:/wxWidgets-3.1.0/include/wx/gdiobj.h:
+C:/wxWidgets-3.1.0/include/wx/anystr.h:
-C:/wxWidgets-3.1.0/include/wx/msw/gdiimage.h:
+C:/wxWidgets-3.1.0/include/wx/dynarray.h:
-C:/wxWidgets-3.1.0/include/wx/msw/cursor.h:
+C:/wxWidgets-3.1.0/include/wx/any.h:
-C:/wxWidgets-3.1.0/include/wx/utils.h:
+C:/wxWidgets-3.1.0/include/wx/typeinfo.h:
-C:/wxWidgets-3.1.0/include/wx/filefn.h:
+C:/wxWidgets-3.1.0/include/wx/msw/colour.h:
-C:/wxWidgets-3.1.0/include/wx/arrstr.h:
+C:/wxWidgets-3.1.0/include/wx/font.h:
-C:/wxWidgets-3.1.0/include/wx/versioninfo.h:
+C:/wxWidgets-3.1.0/include/wx/gdicmn.h:
-C:/wxWidgets-3.1.0/include/wx/meta/implicitconversion.h:
+C:/wxWidgets-3.1.0/include/wx/math.h:
-C:/wxWidgets-3.1.0/include/wx/mousestate.h:
+C:/wxWidgets-3.1.0/include/wx/msw/font.h:
-C:/wxWidgets-3.1.0/include/wx/kbdstate.h:
+C:/wxWidgets-3.1.0/include/wx/bitmap.h:
-C:/wxWidgets-3.1.0/include/wx/longlong.h:
+C:/wxWidgets-3.1.0/include/wx/image.h:
-C:/wxWidgets-3.1.0/include/wx/platinfo.h:
+C:/wxWidgets-3.1.0/include/wx/stream.h:
-C:/wxWidgets-3.1.0/include/wx/dynarray.h:
+C:/wxWidgets-3.1.0/include/wx/filefn.h:
-C:/wxWidgets-3.1.0/include/wx/thread.h:
+C:/wxWidgets-3.1.0/include/wx/imagbmp.h:
-C:/wxWidgets-3.1.0/include/wx/tracker.h:
+C:/wxWidgets-3.1.0/include/wx/imagpng.h:
-C:/wxWidgets-3.1.0/include/wx/typeinfo.h:
+C:/wxWidgets-3.1.0/include/wx/versioninfo.h:
-C:/wxWidgets-3.1.0/include/wx/any.h:
+C:/wxWidgets-3.1.0/include/wx/imaggif.h:
-C:/wxWidgets-3.1.0/include/wx/datetime.h:
+C:/wxWidgets-3.1.0/include/wx/imagpcx.h:
-C:/wxWidgets-3.1.0/include/wx/anystr.h:
+C:/wxWidgets-3.1.0/include/wx/imagjpeg.h:
-C:/wxWidgets-3.1.0/include/wx/variant.h:
+C:/wxWidgets-3.1.0/include/wx/imagtga.h:
-C:/wxWidgets-3.1.0/include/wx/meta/convertible.h:
+C:/wxWidgets-3.1.0/include/wx/imagtiff.h:
-C:/wxWidgets-3.1.0/include/wx/meta/removeref.h:
+C:/wxWidgets-3.1.0/include/wx/imagpnm.h:
-C:/wxWidgets-3.1.0/include/wx/font.h:
+C:/wxWidgets-3.1.0/include/wx/imagxpm.h:
-C:/wxWidgets-3.1.0/include/wx/msw/font.h:
+C:/wxWidgets-3.1.0/include/wx/imagiff.h:
-C:/wxWidgets-3.1.0/include/wx/colour.h:
+C:/wxWidgets-3.1.0/include/wx/msw/bitmap.h:
-C:/wxWidgets-3.1.0/include/wx/msw/colour.h:
+C:/wxWidgets-3.1.0/include/wx/msw/gdiimage.h:
+
+C:/wxWidgets-3.1.0/include/wx/palette.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/palette.h:
+
+C:/wxWidgets-3.1.0/include/wx/brush.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/brush.h:
+
+C:/wxWidgets-3.1.0/include/wx/pen.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/pen.h:
C:/wxWidgets-3.1.0/include/wx/region.h:
C:/wxWidgets-3.1.0/include/wx/msw/region.h:
-C:/wxWidgets-3.1.0/include/wx/intl.h:
+C:/wxWidgets-3.1.0/include/wx/affinematrix2d.h:
-C:/wxWidgets-3.1.0/include/wx/translation.h:
+C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h:
-C:/wxWidgets-3.1.0/include/wx/language.h:
+C:/wxWidgets-3.1.0/include/wx/geometry.h:
-C:/wxWidgets-3.1.0/include/wx/scopedptr.h:
+C:/wxWidgets-3.1.0/include/wx/utils.h:
-C:/wxWidgets-3.1.0/include/wx/checkeddelete.h:
+C:/wxWidgets-3.1.0/include/wx/meta/implicitconversion.h:
-C:/wxWidgets-3.1.0/include/wx/validate.h:
+C:/wxWidgets-3.1.0/include/wx/mousestate.h:
-C:/wxWidgets-3.1.0/include/wx/palette.h:
+C:/wxWidgets-3.1.0/include/wx/kbdstate.h:
-C:/wxWidgets-3.1.0/include/wx/msw/palette.h:
+C:/wxWidgets-3.1.0/include/wx/platinfo.h:
+
+C:/wxWidgets-3.1.0/include/wx/msgdlg.h:
+
+C:/wxWidgets-3.1.0/include/wx/dialog.h:
+
+C:/wxWidgets-3.1.0/include/wx/toplevel.h:
+
+C:/wxWidgets-3.1.0/include/wx/nonownedwnd.h:
+
+C:/wxWidgets-3.1.0/include/wx/window.h:
+
+C:/wxWidgets-3.1.0/include/wx/event.h:
+
+C:/wxWidgets-3.1.0/include/wx/clntdata.h:
+
+C:/wxWidgets-3.1.0/include/wx/cursor.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/cursor.h:
+
+C:/wxWidgets-3.1.0/include/wx/thread.h:
+
+C:/wxWidgets-3.1.0/include/wx/tracker.h:
+
+C:/wxWidgets-3.1.0/include/wx/meta/convertible.h:
+
+C:/wxWidgets-3.1.0/include/wx/meta/removeref.h:
+
+C:/wxWidgets-3.1.0/include/wx/validate.h:
C:/wxWidgets-3.1.0/include/wx/accel.h:
@@ -474,95 +519,109 @@ C:/wxWidgets-3.1.0/include/wx/generic/msgdlgg.h:
C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.h:
-C:/wxWidgets-3.1.0/include/wx/geometry.h:
+C:/wxWidgets-3.1.0/include/wx/statusbr.h:
-C:/wxWidgets-3.1.0/include/wx/menu.h:
+C:/wxWidgets-3.1.0/include/wx/control.h:
-C:/wxWidgets-3.1.0/include/wx/menuitem.h:
+C:/wxWidgets-3.1.0/include/wx/msw/control.h:
-C:/wxWidgets-3.1.0/include/wx/msw/menuitem.h:
+C:/wxWidgets-3.1.0/include/wx/msw/statusbar.h:
-C:/wxWidgets-3.1.0/include/wx/bitmap.h:
+C:/wxWidgets-3.1.0/include/wx/tooltip.h:
-C:/wxWidgets-3.1.0/include/wx/image.h:
+C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h:
-C:/wxWidgets-3.1.0/include/wx/stream.h:
+C:/wxWidgets-3.1.0/include/wx/clipbrd.h:
-C:/wxWidgets-3.1.0/include/wx/imagbmp.h:
+C:/wxWidgets-3.1.0/include/wx/dataobj.h:
-C:/wxWidgets-3.1.0/include/wx/imagpng.h:
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
-C:/wxWidgets-3.1.0/include/wx/imaggif.h:
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
-C:/wxWidgets-3.1.0/include/wx/imagpcx.h:
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
-C:/wxWidgets-3.1.0/include/wx/imagjpeg.h:
+C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h:
-C:/wxWidgets-3.1.0/include/wx/imagtga.h:
+WorkspaceBase.h:
-C:/wxWidgets-3.1.0/include/wx/imagtiff.h:
+C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h:
-C:/wxWidgets-3.1.0/include/wx/imagpnm.h:
+C:/wxWidgets-3.1.0/include/wx/filesys.h:
-C:/wxWidgets-3.1.0/include/wx/imagxpm.h:
+C:/wxWidgets-3.1.0/include/wx/filename.h:
-C:/wxWidgets-3.1.0/include/wx/imagiff.h:
+C:/wxWidgets-3.1.0/include/wx/file.h:
-C:/wxWidgets-3.1.0/include/wx/msw/bitmap.h:
+C:/wxWidgets-3.1.0/include/wx/convauto.h:
-C:/wxWidgets-3.1.0/include/wx/ownerdrw.h:
+C:/wxWidgets-3.1.0/include/wx/artprov.h:
-C:/wxWidgets-3.1.0/include/wx/msw/ownerdrw.h:
+C:/wxWidgets-3.1.0/include/wx/xrc/xmlreshandler.h:
-C:/wxWidgets-3.1.0/include/wx/msw/menu.h:
+C:/wxWidgets-3.1.0/include/wx/imaglist.h:
-C:/wxWidgets-3.1.0/include/wx/log.h:
+C:/wxWidgets-3.1.0/include/wx/msw/imaglist.h:
-C:/wxWidgets-3.1.0/include/wx/generic/logg.h:
+C:/wxWidgets-3.1.0/include/wx/xrc/xh_bmp.h:
-Bus.h:
+C:/wxWidgets-3.1.0/include/wx/sizer.h:
-BusForm.h:
+C:/wxWidgets-3.1.0/include/wx/glcanvas.h:
-ElementForm.h:
+C:/wxWidgets-3.1.0/include/wx/app.h:
-C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h:
+C:/wxWidgets-3.1.0/include/wx/eventfilter.h:
-C:/wxWidgets-3.1.0/include/wx/filesys.h:
+C:/wxWidgets-3.1.0/include/wx/build.h:
-C:/wxWidgets-3.1.0/include/wx/filename.h:
+C:/wxWidgets-3.1.0/include/wx/cmdargs.h:
-C:/wxWidgets-3.1.0/include/wx/file.h:
+C:/wxWidgets-3.1.0/include/wx/init.h:
-C:/wxWidgets-3.1.0/include/wx/convauto.h:
+C:/wxWidgets-3.1.0/include/wx/msw/init.h:
-C:/wxWidgets-3.1.0/include/wx/artprov.h:
+C:/wxWidgets-3.1.0/include/wx/log.h:
-C:/wxWidgets-3.1.0/include/wx/xrc/xmlreshandler.h:
+C:/wxWidgets-3.1.0/include/wx/generic/logg.h:
-C:/wxWidgets-3.1.0/include/wx/imaglist.h:
+C:/wxWidgets-3.1.0/include/wx/msw/app.h:
-C:/wxWidgets-3.1.0/include/wx/msw/imaglist.h:
+C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h:
-C:/wxWidgets-3.1.0/include/wx/xrc/xh_bmp.h:
+C:/wxWidgets-3.1.0/include/wx/persist.h:
-C:/wxWidgets-3.1.0/include/wx/sizer.h:
+C:/wxWidgets-3.1.0/include/wx/confbase.h:
-C:/wxWidgets-3.1.0/include/wx/notebook.h:
+C:/wxWidgets-3.1.0/include/wx/base64.h:
-C:/wxWidgets-3.1.0/include/wx/bookctrl.h:
+C:/wxWidgets-3.1.0/include/wx/persist/toplevel.h:
-C:/wxWidgets-3.1.0/include/wx/control.h:
+C:/wxWidgets-3.1.0/include/wx/persist/window.h:
-C:/wxWidgets-3.1.0/include/wx/msw/control.h:
+C:/wxWidgets-3.1.0/include/wx/display.h:
+
+C:/wxWidgets-3.1.0/include/wx/vidmode.h:
+
+C:/wxWidgets-3.1.0/include/wx/persist/bookctrl.h:
+
+C:/wxWidgets-3.1.0/include/wx/bookctrl.h:
C:/wxWidgets-3.1.0/include/wx/withimages.h:
+C:/wxWidgets-3.1.0/include/wx/notebook.h:
+
C:/wxWidgets-3.1.0/include/wx/msw/notebook.h:
-C:/wxWidgets-3.1.0/include/wx/stattext.h:
+C:/wxWidgets-3.1.0/include/wx/persist/treebook.h:
-C:/wxWidgets-3.1.0/include/wx/msw/stattext.h:
+C:/wxWidgets-3.1.0/include/wx/treebook.h:
+
+C:/wxWidgets-3.1.0/include/wx/treectrl.h:
+
+C:/wxWidgets-3.1.0/include/wx/treebase.h:
+
+C:/wxWidgets-3.1.0/include/wx/itemid.h:
C:/wxWidgets-3.1.0/include/wx/textctrl.h:
@@ -574,6 +633,20 @@ C:/wxWidgets-3.1.0/include/wx/ioswrap.h:
C:/wxWidgets-3.1.0/include/wx/msw/textctrl.h:
+C:/wxWidgets-3.1.0/include/wx/systhemectrl.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h:
+
+Bus.h:
+
+BusForm.h:
+
+ElementForm.h:
+
+C:/wxWidgets-3.1.0/include/wx/stattext.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/stattext.h:
+
C:/wxWidgets-3.1.0/include/wx/choice.h:
C:/wxWidgets-3.1.0/include/wx/ctrlsub.h:
@@ -608,32 +681,12 @@ C:/wxWidgets-3.1.0/include/wx/propgrid/manager.h:
C:/wxWidgets-3.1.0/include/wx/propgrid/propgrid.h:
-C:/wxWidgets-3.1.0/include/wx/dcclient.h:
-
-C:/wxWidgets-3.1.0/include/wx/dc.h:
-
-C:/wxWidgets-3.1.0/include/wx/brush.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/brush.h:
-
-C:/wxWidgets-3.1.0/include/wx/pen.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/pen.h:
-
-C:/wxWidgets-3.1.0/include/wx/affinematrix2d.h:
-
-C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h:
-
C:/wxWidgets-3.1.0/include/wx/scrolwin.h:
C:/wxWidgets-3.1.0/include/wx/generic/scrolwin.h:
C:/wxWidgets-3.1.0/include/wx/recguard.h:
-C:/wxWidgets-3.1.0/include/wx/tooltip.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h:
-
C:/wxWidgets-3.1.0/include/wx/time.h:
C:/wxWidgets-3.1.0/include/wx/propgrid/property.h:
@@ -682,100 +735,18 @@ C:/wxWidgets-3.1.0/include/wx/listctrl.h:
C:/wxWidgets-3.1.0/include/wx/listbase.h:
-C:/wxWidgets-3.1.0/include/wx/systhemectrl.h:
-
C:/wxWidgets-3.1.0/include/wx/msw/listctrl.h:
-C:/wxWidgets-3.1.0/include/wx/persist.h:
-
-C:/wxWidgets-3.1.0/include/wx/confbase.h:
-
-C:/wxWidgets-3.1.0/include/wx/base64.h:
-
-C:/wxWidgets-3.1.0/include/wx/persist/toplevel.h:
-
-C:/wxWidgets-3.1.0/include/wx/persist/window.h:
-
-C:/wxWidgets-3.1.0/include/wx/display.h:
-
-C:/wxWidgets-3.1.0/include/wx/vidmode.h:
-
-C:/wxWidgets-3.1.0/include/wx/persist/bookctrl.h:
-
-C:/wxWidgets-3.1.0/include/wx/persist/treebook.h:
-
-C:/wxWidgets-3.1.0/include/wx/treebook.h:
-
-C:/wxWidgets-3.1.0/include/wx/treectrl.h:
-
-C:/wxWidgets-3.1.0/include/wx/treebase.h:
-
-C:/wxWidgets-3.1.0/include/wx/itemid.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h:
-
-Capacitor.h:
-
-Shunt.h:
-
-IndMotor.h:
-
-Machines.h:
-
-Inductor.h:
-
-Line.h:
-
-LineForm.h:
-
-Branch.h:
-
-Load.h:
-
-LoadForm.h:
-
-SyncGenerator.h:
-
-SyncMotor.h:
-
-Transformer.h:
-
-ElementDataObject.h:
-
-C:/wxWidgets-3.1.0/include/wx/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
-
-Workspace.h:
-
-C:/wxWidgets-3.1.0/include/wx/statusbr.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/statusbar.h:
-
-C:/wxWidgets-3.1.0/include/wx/clipbrd.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h:
-
-WorkspaceBase.h:
-
-C:/wxWidgets-3.1.0/include/wx/glcanvas.h:
-
-C:/wxWidgets-3.1.0/include/wx/app.h:
-
-C:/wxWidgets-3.1.0/include/wx/eventfilter.h:
+Element.h:
-C:/wxWidgets-3.1.0/include/wx/build.h:
+C:/wxWidgets-3.1.0/include/wx/menu.h:
-C:/wxWidgets-3.1.0/include/wx/cmdargs.h:
+C:/wxWidgets-3.1.0/include/wx/menuitem.h:
-C:/wxWidgets-3.1.0/include/wx/init.h:
+C:/wxWidgets-3.1.0/include/wx/msw/menuitem.h:
-C:/wxWidgets-3.1.0/include/wx/msw/init.h:
+C:/wxWidgets-3.1.0/include/wx/ownerdrw.h:
-C:/wxWidgets-3.1.0/include/wx/msw/app.h:
+C:/wxWidgets-3.1.0/include/wx/msw/ownerdrw.h:
-C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h:
+C:/wxWidgets-3.1.0/include/wx/msw/menu.h:
diff --git a/Project/Release/ElementForm.cpp.o b/Project/Release/ElementForm.cpp.o
index a6cbbf8..2fbdd20 100644
--- a/Project/Release/ElementForm.cpp.o
+++ b/Project/Release/ElementForm.cpp.o
Binary files differ
diff --git a/Project/Release/FileHanding.cpp.o b/Project/Release/FileHanding.cpp.o
index e221bbb..7483e5a 100644
--- a/Project/Release/FileHanding.cpp.o
+++ b/Project/Release/FileHanding.cpp.o
Binary files differ
diff --git a/Project/Release/FileHanding.cpp.o.d b/Project/Release/FileHanding.cpp.o.d
index 65cccdd..ba0c881 100644
--- a/Project/Release/FileHanding.cpp.o.d
+++ b/Project/Release/FileHanding.cpp.o.d
@@ -138,7 +138,13 @@ Release/FileHanding.cpp.o: FileHanding.cpp FileHanding.h \
C:/wxWidgets-3.1.0/include/wx/msw/control.h \
C:/wxWidgets-3.1.0/include/wx/msw/statusbar.h \
C:/wxWidgets-3.1.0/include/wx/tooltip.h \
- C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h WorkspaceBase.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h \
+ C:/wxWidgets-3.1.0/include/wx/clipbrd.h \
+ C:/wxWidgets-3.1.0/include/wx/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h WorkspaceBase.h \
C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h \
C:/wxWidgets-3.1.0/include/wx/filesys.h \
C:/wxWidgets-3.1.0/include/wx/filename.h \
@@ -251,10 +257,6 @@ Release/FileHanding.cpp.o: FileHanding.cpp FileHanding.h \
C:/wxWidgets-3.1.0/include/wx/dcmemory.h \
C:/wxWidgets-3.1.0/include/wx/dcprint.h \
C:/wxWidgets-3.1.0/include/wx/dcscreen.h \
- C:/wxWidgets-3.1.0/include/wx/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h \
C:/wxWidgets-3.1.0/include/wx/bmpbuttn.h \
C:/wxWidgets-3.1.0/include/wx/msw/bmpbuttn.h \
C:/wxWidgets-3.1.0/include/wx/checklst.h \
@@ -573,6 +575,18 @@ C:/wxWidgets-3.1.0/include/wx/tooltip.h:
C:/wxWidgets-3.1.0/include/wx/msw/tooltip.h:
+C:/wxWidgets-3.1.0/include/wx/clipbrd.h:
+
+C:/wxWidgets-3.1.0/include/wx/dataobj.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h:
+
WorkspaceBase.h:
C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h:
@@ -835,14 +849,6 @@ C:/wxWidgets-3.1.0/include/wx/dcprint.h:
C:/wxWidgets-3.1.0/include/wx/dcscreen.h:
-C:/wxWidgets-3.1.0/include/wx/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
-
C:/wxWidgets-3.1.0/include/wx/bmpbuttn.h:
C:/wxWidgets-3.1.0/include/wx/msw/bmpbuttn.h:
diff --git a/Project/Release/GeneratorStabForm.cpp.o b/Project/Release/GeneratorStabForm.cpp.o
index d7ed1ff..95fb64a 100644
--- a/Project/Release/GeneratorStabForm.cpp.o
+++ b/Project/Release/GeneratorStabForm.cpp.o
Binary files differ
diff --git a/Project/Release/IndMotor.cpp.o b/Project/Release/IndMotor.cpp.o
index b59825f..e196bcb 100644
--- a/Project/Release/IndMotor.cpp.o
+++ b/Project/Release/IndMotor.cpp.o
Binary files differ
diff --git a/Project/Release/IndMotorForm.cpp.o b/Project/Release/IndMotorForm.cpp.o
index 91ac5b7..57bcd39 100644
--- a/Project/Release/IndMotorForm.cpp.o
+++ b/Project/Release/IndMotorForm.cpp.o
Binary files differ
diff --git a/Project/Release/Inductor.cpp.o b/Project/Release/Inductor.cpp.o
index b727883..4c50d11 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 30a5673..e91c5e1 100644
--- a/Project/Release/Line.cpp.o
+++ b/Project/Release/Line.cpp.o
Binary files differ
diff --git a/Project/Release/LineForm.cpp.o b/Project/Release/LineForm.cpp.o
index 81b3aac..020011d 100644
--- a/Project/Release/LineForm.cpp.o
+++ b/Project/Release/LineForm.cpp.o
Binary files differ
diff --git a/Project/Release/Load.cpp.o b/Project/Release/Load.cpp.o
index 01a0de8..846317d 100644
--- a/Project/Release/Load.cpp.o
+++ b/Project/Release/Load.cpp.o
Binary files differ
diff --git a/Project/Release/LoadForm.cpp.o b/Project/Release/LoadForm.cpp.o
index 13ac9f0..4fb2a0e 100644
--- a/Project/Release/LoadForm.cpp.o
+++ b/Project/Release/LoadForm.cpp.o
Binary files differ
diff --git a/Project/Release/Machines.cpp.o b/Project/Release/Machines.cpp.o
index 7c9984e..1ea13c6 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 87dd6dd..6889907 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 c8ce32c..5b1e3df 100644
--- a/Project/Release/MainFrame.cpp.o.d
+++ b/Project/Release/MainFrame.cpp.o.d
@@ -196,7 +196,13 @@ Release/MainFrame.cpp.o: MainFrame.cpp MainFrame.h \
C:/wxWidgets-3.1.0/include/wx/dc.h \
C:/wxWidgets-3.1.0/include/wx/affinematrix2d.h \
C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h \
- C:/wxWidgets-3.1.0/include/wx/geometry.h WorkspaceBase.h \
+ C:/wxWidgets-3.1.0/include/wx/geometry.h \
+ C:/wxWidgets-3.1.0/include/wx/clipbrd.h \
+ C:/wxWidgets-3.1.0/include/wx/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h WorkspaceBase.h \
C:/wxWidgets-3.1.0/include/wx/glcanvas.h \
C:/wxWidgets-3.1.0/include/wx/app.h \
C:/wxWidgets-3.1.0/include/wx/eventfilter.h \
@@ -263,10 +269,6 @@ Release/MainFrame.cpp.o: MainFrame.cpp MainFrame.h \
C:/wxWidgets-3.1.0/include/wx/dcmemory.h \
C:/wxWidgets-3.1.0/include/wx/dcprint.h \
C:/wxWidgets-3.1.0/include/wx/dcscreen.h \
- C:/wxWidgets-3.1.0/include/wx/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h \
- C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h \
C:/wxWidgets-3.1.0/include/wx/bmpbuttn.h \
C:/wxWidgets-3.1.0/include/wx/msw/bmpbuttn.h \
C:/wxWidgets-3.1.0/include/wx/checklst.h \
@@ -703,6 +705,18 @@ C:/wxWidgets-3.1.0/include/wx/affinematrix2dbase.h:
C:/wxWidgets-3.1.0/include/wx/geometry.h:
+C:/wxWidgets-3.1.0/include/wx/clipbrd.h:
+
+C:/wxWidgets-3.1.0/include/wx/dataobj.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/clipbrd.h:
+
WorkspaceBase.h:
C:/wxWidgets-3.1.0/include/wx/glcanvas.h:
@@ -875,14 +889,6 @@ C:/wxWidgets-3.1.0/include/wx/dcprint.h:
C:/wxWidgets-3.1.0/include/wx/dcscreen.h:
-C:/wxWidgets-3.1.0/include/wx/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataform.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/ole/dataobj2.h:
-
C:/wxWidgets-3.1.0/include/wx/bmpbuttn.h:
C:/wxWidgets-3.1.0/include/wx/msw/bmpbuttn.h:
diff --git a/Project/Release/MainFrameBase.cpp.o b/Project/Release/MainFrameBase.cpp.o
index 3cf1c3e..ec938af 100644
--- a/Project/Release/MainFrameBase.cpp.o
+++ b/Project/Release/MainFrameBase.cpp.o
Binary files differ
diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe
index 5ba2374..bf9a5a4 100644
--- a/Project/Release/PSP-UFU.exe
+++ b/Project/Release/PSP-UFU.exe
Binary files differ
diff --git a/Project/Release/PowerFlow.cpp.o b/Project/Release/PowerFlow.cpp.o
index 1f23463..73590b6 100644
--- a/Project/Release/PowerFlow.cpp.o
+++ b/Project/Release/PowerFlow.cpp.o
Binary files differ
diff --git a/Project/Release/ReactiveShuntElementForm.cpp.o b/Project/Release/ReactiveShuntElementForm.cpp.o
index afb73b1..af53698 100644
--- a/Project/Release/ReactiveShuntElementForm.cpp.o
+++ b/Project/Release/ReactiveShuntElementForm.cpp.o
Binary files differ
diff --git a/Project/Release/Shunt.cpp.o b/Project/Release/Shunt.cpp.o
index 4b51734..2706951 100644
--- a/Project/Release/Shunt.cpp.o
+++ b/Project/Release/Shunt.cpp.o
Binary files differ
diff --git a/Project/Release/SwitchingForm.cpp.o b/Project/Release/SwitchingForm.cpp.o
index 627da1b..453f2e9 100644
--- a/Project/Release/SwitchingForm.cpp.o
+++ b/Project/Release/SwitchingForm.cpp.o
Binary files differ
diff --git a/Project/Release/SyncGenerator.cpp.o b/Project/Release/SyncGenerator.cpp.o
index cc55904..f594135 100644
--- a/Project/Release/SyncGenerator.cpp.o
+++ b/Project/Release/SyncGenerator.cpp.o
Binary files differ
diff --git a/Project/Release/SyncMachineForm.cpp.o b/Project/Release/SyncMachineForm.cpp.o
index 82245a5..4976057 100644
--- a/Project/Release/SyncMachineForm.cpp.o
+++ b/Project/Release/SyncMachineForm.cpp.o
Binary files differ
diff --git a/Project/Release/SyncMotor.cpp.o b/Project/Release/SyncMotor.cpp.o
index 5414ed7..df88b3c 100644
--- a/Project/Release/SyncMotor.cpp.o
+++ b/Project/Release/SyncMotor.cpp.o
Binary files differ
diff --git a/Project/Release/Text.cpp.o b/Project/Release/Text.cpp.o
index 8740298..5006c69 100644
--- a/Project/Release/Text.cpp.o
+++ b/Project/Release/Text.cpp.o
Binary files differ
diff --git a/Project/Release/TextForm.cpp.o b/Project/Release/TextForm.cpp.o
index 7e6ca32..69a7459 100644
--- a/Project/Release/TextForm.cpp.o
+++ b/Project/Release/TextForm.cpp.o
Binary files differ
diff --git a/Project/Release/Transformer.cpp.o b/Project/Release/Transformer.cpp.o
index fc03fb8..fa97dd1 100644
--- a/Project/Release/Transformer.cpp.o
+++ b/Project/Release/Transformer.cpp.o
Binary files differ
diff --git a/Project/Release/TransformerForm.cpp.o b/Project/Release/TransformerForm.cpp.o
index 58d9bdb..045aaf1 100644
--- a/Project/Release/TransformerForm.cpp.o
+++ b/Project/Release/TransformerForm.cpp.o
Binary files differ
diff --git a/Project/Release/Workspace.cpp.o b/Project/Release/Workspace.cpp.o
index 4eaf28b..62ae383 100644
--- a/Project/Release/Workspace.cpp.o
+++ b/Project/Release/Workspace.cpp.o
Binary files differ
diff --git a/Project/Release/main.cpp.o b/Project/Release/main.cpp.o
index 9925528..e27c6a6 100644
--- a/Project/Release/main.cpp.o
+++ b/Project/Release/main.cpp.o
Binary files differ
diff --git a/Project/Release/main.cpp.o.d b/Project/Release/main.cpp.o.d
index 165c4a0..ddea6d9 100644
--- a/Project/Release/main.cpp.o.d
+++ b/Project/Release/main.cpp.o.d
@@ -139,7 +139,9 @@ Release/main.cpp.o: main.cpp C:/wxWidgets-3.1.0/include/wx/app.h \
C:/wxWidgets-3.1.0/include/wx/msw/panel.h \
C:/wxWidgets-3.1.0/include/wx/stockitem.h \
C:/wxWidgets-3.1.0/include/wx/generic/msgdlgg.h \
- C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.h MainFrameBase.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.h \
+ C:/wxWidgets-3.1.0/include/wx/filedlg.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/filedlg.h MainFrameBase.h \
C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h \
C:/wxWidgets-3.1.0/include/wx/filesys.h \
C:/wxWidgets-3.1.0/include/wx/filename.h \
@@ -489,6 +491,10 @@ C:/wxWidgets-3.1.0/include/wx/generic/msgdlgg.h:
C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.h:
+C:/wxWidgets-3.1.0/include/wx/filedlg.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/filedlg.h:
+
MainFrameBase.h:
C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h:
diff --git a/Project/Release/wxmsw310u_gcc_64x.dll b/Project/Release/wxmsw310u_gcc_64x.dll
index ca43121..6a09726 100644
--- a/Project/Release/wxmsw310u_gcc_64x.dll
+++ b/Project/Release/wxmsw310u_gcc_64x.dll
Binary files differ
diff --git a/Project/Release/wxmsw310u_gl_gcc_64x.dll b/Project/Release/wxmsw310u_gl_gcc_64x.dll
index f9e60dd..61ac9c7 100644
--- a/Project/Release/wxmsw310u_gl_gcc_64x.dll
+++ b/Project/Release/wxmsw310u_gl_gcc_64x.dll
Binary files differ
diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp
index 463c56d..c20bff1 100644
--- a/Project/SyncGenerator.cpp
+++ b/Project/SyncGenerator.cpp
@@ -135,3 +135,10 @@ void SyncGenerator::SetNominalVoltage(std::vector<double> nominalVoltage, std::v
m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];
}
}
+
+Element* SyncGenerator::GetCopy()
+{
+ SyncGenerator* copy = new SyncGenerator();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/SyncGenerator.h b/Project/SyncGenerator.h
index 0ff3f6a..3fe5a3b 100644
--- a/Project/SyncGenerator.h
+++ b/Project/SyncGenerator.h
@@ -67,7 +67,8 @@ public:
SyncGenerator();
SyncGenerator(wxString name);
~SyncGenerator();
-
+
+ virtual Element* GetCopy();
virtual void Init();
virtual void DrawSymbol() const;
virtual bool GetContextMenu(wxMenu& menu);
diff --git a/Project/SyncMotor.cpp b/Project/SyncMotor.cpp
index 2f9c3ce..13ea5e4 100644
--- a/Project/SyncMotor.cpp
+++ b/Project/SyncMotor.cpp
@@ -97,3 +97,10 @@ SyncMotorElectricalData SyncMotor::GetPUElectricalData(double systemPowerBase)
return data;
}
+
+Element* SyncMotor::GetCopy()
+{
+ SyncMotor* copy = new SyncMotor();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/SyncMotor.h b/Project/SyncMotor.h
index 1f65386..a7eecd8 100644
--- a/Project/SyncMotor.h
+++ b/Project/SyncMotor.h
@@ -62,7 +62,8 @@ class SyncMotor : public Machines
SyncMotor();
SyncMotor(wxString name);
~SyncMotor();
-
+
+ virtual Element* GetCopy();
virtual void DrawSymbol() const;
virtual bool GetContextMenu(wxMenu& menu);
virtual SyncMotorElectricalData GetElectricalData() { return m_electricalData; }
diff --git a/Project/Text.cpp b/Project/Text.cpp
index f012044..05915f7 100644
--- a/Project/Text.cpp
+++ b/Project/Text.cpp
@@ -894,3 +894,10 @@ void Text::UpdateText(double systemPowerBase)
} break;
}
}
+
+Element* Text::GetCopy()
+{
+ Text* copy = new Text();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Text.h b/Project/Text.h
index 80f35fa..36a6704 100644
--- a/Project/Text.h
+++ b/Project/Text.h
@@ -50,7 +50,8 @@ class Text : public Element
Text();
Text(wxPoint2DDouble position);
~Text();
-
+
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position) { return true; };
virtual bool Contains(wxPoint2DDouble position) const;
virtual void Draw(wxPoint2DDouble translation, double scale);
diff --git a/Project/Transformer.cpp b/Project/Transformer.cpp
index 4110317..2ba6850 100644
--- a/Project/Transformer.cpp
+++ b/Project/Transformer.cpp
@@ -92,7 +92,7 @@ bool Transformer::Contains(wxPoint2DDouble position) const
void Transformer::Draw(wxPoint2DDouble translation, double scale) const
{
- OpenGLColour* elementColour;
+ OpenGLColour elementColour;
if(m_online) elementColour = m_onlineElementColour;
else elementColour = m_offlineElementColour;
@@ -101,7 +101,7 @@ void Transformer::Draw(wxPoint2DDouble translation, double scale) const
if(m_selected) {
// Push the current matrix on stack.
glLineWidth(1.5 + m_borderSize * 2.0);
- glColor4dv(m_selectionColour->GetRGBA());
+ glColor4dv(m_selectionColour.GetRGBA());
DrawLine(m_pointList);
glPushMatrix();
// Rotate the matrix around the object position.
@@ -128,12 +128,12 @@ void Transformer::Draw(wxPoint2DDouble translation, double scale) const
// Draw transformer (layer 2).
// Transformer line
glLineWidth(1.5);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawLine(m_pointList);
// Draw nodes.
if(m_pointList.size() > 0) {
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);
if(m_inserted) {
DrawCircle(m_pointList[m_pointList.size() - 1], 5.0, 10, GL_POLYGON);
@@ -154,7 +154,7 @@ void Transformer::Draw(wxPoint2DDouble translation, double scale) const
DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20, GL_POLYGON);
DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20, GL_POLYGON);
- glColor4dv(elementColour->GetRGBA());
+ glColor4dv(elementColour.GetRGBA());
DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20);
DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20);
@@ -378,3 +378,10 @@ void Transformer::SetPowerFlowDirection(PowerFlowDirection pfDirection)
m_pfDirection = pfDirection;
UpdatePowerFlowArrowsPosition();
}
+
+Element* Transformer::GetCopy()
+{
+ Transformer* copy = new Transformer();
+ *copy = *this;
+ return copy;
+}
diff --git a/Project/Transformer.h b/Project/Transformer.h
index 79e2380..5020fbd 100644
--- a/Project/Transformer.h
+++ b/Project/Transformer.h
@@ -57,7 +57,8 @@ class Transformer : public Branch
Transformer();
Transformer(wxString name);
virtual ~Transformer();
-
+
+ virtual Element* GetCopy();
virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual bool Contains(wxPoint2DDouble position) const;
virtual void Draw(wxPoint2DDouble translation, double scale) const;
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp
index 93c846c..70416b6 100644
--- a/Project/Workspace.cpp
+++ b/Project/Workspace.cpp
@@ -26,8 +26,8 @@ Camera::Camera()
Camera::~Camera() {}
wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords) const
{
- return wxPoint2DDouble(
- screenCoords.m_x / m_scale - m_translation.m_x, screenCoords.m_y / m_scale - m_translation.m_y);
+ return wxPoint2DDouble(screenCoords.m_x / m_scale - m_translation.m_x,
+ screenCoords.m_y / m_scale - m_translation.m_y);
}
void Camera::SetTranslation(wxPoint2DDouble screenPoint)
@@ -55,12 +55,8 @@ wxPoint2DDouble Camera::GetMousePosition(bool worldCoords) const
}
// Workspace
-Workspace::Workspace()
- : WorkspaceBase(NULL)
-{
-}
-Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar)
- : WorkspaceBase(parent)
+Workspace::Workspace() : WorkspaceBase(NULL) {}
+Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar) : WorkspaceBase(parent)
{
m_name = name;
m_statusBar = statusBar;
@@ -69,18 +65,18 @@ Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar)
m_selectionRect = wxRect2DDouble(0, 0, 0, 0);
for(int i = 0; i < NUM_ELEMENTS; ++i) {
- m_elementNumber[i] = 1;
- }
+ m_elementNumber[i] = 1;
+ }
- const int widths[4] = { -3, -1, 100, 100 };
+ const int widths[4] = {-3, -1, 100, 100};
m_statusBar->SetStatusWidths(4, widths);
}
Workspace::~Workspace()
{
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- if(*it) delete *it;
- }
+ if(*it) delete *it;
+ }
m_elementList.clear();
if(m_camera) delete m_camera;
}
@@ -92,22 +88,22 @@ void Workspace::OnPaint(wxPaintEvent& event)
SetViewport();
// Set GLCanvas scale and translation.
- glScaled(m_camera->GetScale(), m_camera->GetScale(), 0.0); // Scale
- glTranslated(m_camera->GetTranslation().m_x, m_camera->GetTranslation().m_y, 0.0); // Translation
+ glScaled(m_camera->GetScale(), m_camera->GetScale(), 0.0); // Scale
+ glTranslated(m_camera->GetTranslation().m_x, m_camera->GetTranslation().m_y, 0.0); // Translation
// Draw
// Elements
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- element->Draw(m_camera->GetTranslation(), m_camera->GetScale());
- }
+ Element* element = *it;
+ element->Draw(m_camera->GetTranslation(), m_camera->GetScale());
+ }
// Texts
for(auto it = m_textList.begin(); it != m_textList.end(); ++it) {
- Text* text = *it;
- text->Draw(m_camera->GetTranslation(), m_camera->GetScale());
- }
+ Text* text = *it;
+ text->Draw(m_camera->GetTranslation(), m_camera->GetScale());
+ }
// Selection rectangle
glLineWidth(1.0);
@@ -126,14 +122,14 @@ void Workspace::OnPaint(wxPaintEvent& event)
glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);
glEnd();
- glFlush(); // Sends all pending information directly to the GPU.
+ glFlush(); // Sends all pending information directly to the GPU.
m_glCanvas->SwapBuffers();
event.Skip();
}
void Workspace::SetViewport()
{
- glClearColor(1.0, 1.0, 1.0, 1.0); // White background.
+ glClearColor(1.0, 1.0, 1.0, 1.0); // White background.
glClear(GL_COLOR_BUFFER_BIT);
glDisable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
@@ -160,95 +156,103 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
{
bool foundElement = false;
if(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE) {
- m_mode = MODE_EDIT;
- } else if(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) {
- // Get the last element inserted on the list.
- Element* newElement = *(m_elementList.end() - 1);
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- // Clicked in any element.
- if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- // Click at a bus.
- if(typeid(*element) == typeid(Bus)) {
- // Select the bus.
- element->SetSelected();
- foundElement = true; // Element found.
- // Add the new element's parent. If the element being inserted returns true, back to
- // edit mode.
- if(newElement->AddParent(element, m_camera->ScreenToWorld(event.GetPosition()))) {
- ValidateElementsVoltages();
- m_mode = MODE_EDIT;
- }
- }
- }
- }
- // The line element can have an indefined number of points.
- if(!foundElement) {
- if(typeid(*newElement) == typeid(Line)) {
- newElement->AddPoint(m_camera->ScreenToWorld(event.GetPosition()));
- }
- }
- foundElement = true;
- } else {
- bool clickPickbox = false;
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- element->ResetPickboxes(); // Reset pickbox state.
-
- // Set movement initial position (not necessarily will be moved).
- element->StartMove(m_camera->ScreenToWorld(event.GetPosition()));
-
- // Click in selected element node.
- if(element->NodeContains(m_camera->ScreenToWorld(event.GetPosition())) != 0 && element->IsSelected()) {
- m_mode = MODE_MOVE_NODE;
- foundElement = true;
- }
-
- // Click in an element.
- else if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- if(!foundElement) {
- // Select and show pickbox.
- element->SetSelected();
- element->ShowPickbox();
- foundElement = true;
- }
- // If pickbox contains the click, move the pickbox
- if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
- m_mode = MODE_MOVE_PICKBOX;
- clickPickbox = true;
- }
- // If didn't found a pickbox, move the element
- if(!clickPickbox) {
- m_mode = MODE_MOVE_ELEMENT;
- }
- }
-
- // Click in a switch.
- else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) {
- element->SetOnline(element->IsOnline() ? false : true);
- }
- }
-
- // Text element
- for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
- Text* text = *it;
-
- text->StartMove(m_camera->ScreenToWorld(event.GetPosition()));
-
- if(text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- if(!foundElement) {
- text->SetSelected();
- m_mode = MODE_MOVE_ELEMENT;
- foundElement = true;
- }
- }
- }
- }
+ m_mode = MODE_EDIT;
+ }
+ else if(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT)
+ {
+ // Get the last element inserted on the list.
+ Element* newElement = *(m_elementList.end() - 1);
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ // Clicked in any element.
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ // Click at a bus.
+ if(typeid(*element) == typeid(Bus)) {
+ // Select the bus.
+ element->SetSelected();
+ foundElement = true; // Element found.
+ // Add the new element's parent. If the element being inserted returns true, back to
+ // edit mode.
+ if(newElement->AddParent(element, m_camera->ScreenToWorld(event.GetPosition()))) {
+ ValidateElementsVoltages();
+ m_mode = MODE_EDIT;
+ }
+ }
+ }
+ }
+ // The line element can have an indefined number of points.
+ if(!foundElement) {
+ if(typeid(*newElement) == typeid(Line)) {
+ newElement->AddPoint(m_camera->ScreenToWorld(event.GetPosition()));
+ }
+ }
+ foundElement = true;
+ }
+ else
+ {
+ bool clickPickbox = false;
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ element->ResetPickboxes(); // Reset pickbox state.
+
+ // Set movement initial position (not necessarily will be moved).
+ element->StartMove(m_camera->ScreenToWorld(event.GetPosition()));
+
+ // Click in selected element node.
+ if(element->NodeContains(m_camera->ScreenToWorld(event.GetPosition())) != 0 &&
+ element->IsSelected())
+ {
+ m_mode = MODE_MOVE_NODE;
+ foundElement = true;
+ }
+
+ // Click in an element.
+ else if(element->Contains(m_camera->ScreenToWorld(event.GetPosition())))
+ {
+ if(!foundElement) {
+ // Select and show pickbox.
+ element->SetSelected();
+ element->ShowPickbox();
+ foundElement = true;
+ }
+ // If pickbox contains the click, move the pickbox
+ if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ m_mode = MODE_MOVE_PICKBOX;
+ clickPickbox = true;
+ }
+ // If didn't found a pickbox, move the element
+ if(!clickPickbox) {
+ m_mode = MODE_MOVE_ELEMENT;
+ }
+ }
+
+ // Click in a switch.
+ else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition())))
+ {
+ element->SetOnline(element->IsOnline() ? false : true);
+ }
+ }
+
+ // Text element
+ for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
+ Text* text = *it;
+
+ text->StartMove(m_camera->ScreenToWorld(event.GetPosition()));
+
+ if(text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ if(!foundElement) {
+ text->SetSelected();
+ m_mode = MODE_MOVE_ELEMENT;
+ foundElement = true;
+ }
+ }
+ }
+ }
if(!foundElement) {
- m_mode = MODE_SELECTION_RECT;
- m_startSelRect = m_camera->ScreenToWorld(event.GetPosition());
- }
+ m_mode = MODE_SELECTION_RECT;
+ m_startSelRect = m_camera->ScreenToWorld(event.GetPosition());
+ }
Redraw();
UpdateStatusBar();
@@ -261,64 +265,67 @@ void Workspace::OnLeftDoubleClick(wxMouseEvent& event)
bool redraw = false;
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()))) {
- bool elementIsBus = false;
- Bus oldBus;
- if(typeid(*element) == typeid(Bus)) {
- elementIsBus = true;
- oldBus = *(Bus*)element;
- }
- element->ShowForm(this, element);
- elementEdited = true;
- redraw = true;
-
- // If the edited element is a bus and was changed the nominal voltage, this voltage must be
- // propagated through the lines
- if(elementIsBus) {
- // The voltage was changed
- if(oldBus.GetEletricalData().nominalVoltage != ((Bus*)element)->GetEletricalData().nominalVoltage ||
- oldBus.GetEletricalData().nominalVoltageUnit !=
- ((Bus*)element)->GetEletricalData().nominalVoltageUnit) {
- // Check if the lines has this bus as parent
- for(auto it = m_elementList.begin(); it != m_elementList.end(); it++) {
- Element* child = *it;
-
- bool elementIsParent = false;
- if(typeid(*child) == typeid(Line)) {
- for(int i = 0; i < (int)child->GetParentList().size(); i++) {
- Element* parent = child->GetParentList()[i];
- if(parent == element) {
- // TODO: Ask the user if he wants to change all
- // voltages
- ValidateBusesVoltages(element);
- elementIsParent = true;
- }
- }
- }
- if(elementIsParent) break;
- }
- }
- ValidateElementsVoltages();
- }
- }
-
- // Click in a switch.
- else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) {
- element->SetOnline(element->IsOnline() ? false : true);
- }
- }
+ Element* element = *it;
+
+ // Click in an element.
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ bool elementIsBus = false;
+ Bus oldBus;
+ if(typeid(*element) == typeid(Bus)) {
+ elementIsBus = true;
+ oldBus = *(Bus*)element;
+ }
+ element->ShowForm(this, element);
+ elementEdited = true;
+ redraw = true;
+
+ // If the edited element is a bus and was changed the nominal voltage, this voltage must be
+ // propagated through the lines
+ if(elementIsBus) {
+ // The voltage was changed
+ if(oldBus.GetEletricalData().nominalVoltage !=
+ ((Bus*)element)->GetEletricalData().nominalVoltage ||
+ oldBus.GetEletricalData().nominalVoltageUnit !=
+ ((Bus*)element)->GetEletricalData().nominalVoltageUnit)
+ {
+ // Check if the lines has this bus as parent
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); it++) {
+ Element* child = *it;
+
+ bool elementIsParent = false;
+ if(typeid(*child) == typeid(Line)) {
+ for(int i = 0; i < (int)child->GetParentList().size(); i++) {
+ Element* parent = child->GetParentList()[i];
+ if(parent == element) {
+ // TODO: Ask the user if he wants to change all
+ // voltages
+ ValidateBusesVoltages(element);
+ elementIsParent = true;
+ }
+ }
+ }
+ if(elementIsParent) break;
+ }
+ }
+ ValidateElementsVoltages();
+ }
+ }
+
+ // Click in a switch.
+ else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition())))
+ {
+ element->SetOnline(element->IsOnline() ? false : true);
+ }
+ }
// Text element
for(auto it = m_textList.begin(); it != m_textList.end(); ++it) {
- Text* text = *it;
- if(text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- text->ShowForm(this, m_elementList);
- redraw = true;
- }
- }
+ Text* text = *it;
+ if(text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ text->ShowForm(this, m_elementList);
+ redraw = true;
+ }
+ }
if(elementEdited) UpdateTextElements();
if(redraw) Redraw();
}
@@ -327,33 +334,33 @@ void Workspace::OnRightClickDown(wxMouseEvent& event)
{
bool redraw = false;
if(m_mode == MODE_EDIT) {
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- if(element->IsSelected()) {
- // Show context menu.
- if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- element->ShowPickbox(false);
- wxMenu menu;
- if(element->GetContextMenu(menu)) {
- menu.SetClientData(element);
- menu.Connect(
- wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Workspace::OnPopupClick), NULL, this);
- PopupMenu(&menu);
- redraw = true;
- }
- element->ResetPickboxes();
-
- if(redraw) {
- Redraw();
- redraw = false;
- }
- // If the last element was removed using the menu, we must leave the "search for" to
- // prevent error.
- break;
- }
- }
- }
- }
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ // Show context menu.
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ element->ShowPickbox(false);
+ wxMenu menu;
+ if(element->GetContextMenu(menu)) {
+ menu.SetClientData(element);
+ menu.Connect(wxEVT_COMMAND_MENU_SELECTED,
+ wxCommandEventHandler(Workspace::OnPopupClick), NULL, this);
+ PopupMenu(&menu);
+ redraw = true;
+ }
+ element->ResetPickboxes();
+
+ if(redraw) {
+ Redraw();
+ redraw = false;
+ }
+ // If the last element was removed using the menu, we must leave the "search for" to
+ // prevent error.
+ break;
+ }
+ }
+ }
+ }
}
void Workspace::OnLeftClickUp(wxMouseEvent& event)
@@ -366,98 +373,110 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
auto itnp = m_elementList.begin();
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
-
- // The user was moving a pickbox.
- if(m_mode == MODE_MOVE_PICKBOX) {
- // Catch only the element that have the pickbox shown.
- if(element->IsPickboxShown()) {
- // If the element is a bus, check if a node is outside.
- if(typeid(*element) == typeid(Bus)) {
- // Get all the bus children.
- for(int i = 0; i < (int)m_elementList.size(); i++) {
- Element* child = m_elementList[i];
- for(int j = 0; j < (int)child->GetParentList().size(); j++) {
- Element* parent = child->GetParentList()[j];
- // The child have a parent that is the element.
- if(parent == element) {
- child->UpdateNodes();
- }
- }
- }
- }
- }
- }
-
- if(m_mode == MODE_SELECTION_RECT) {
- if(element->Intersects(m_selectionRect)) {
- element->SetSelected();
- } else {
- element->SetSelected(false);
- }
- } else if(m_mode == MODE_MOVE_NODE) {
- if(element->IsSelected()) {
- for(int i = 0; i < (int)m_elementList.size(); i++) {
- Element* parent = m_elementList[i];
- if(typeid(*parent) == typeid(Bus)) {
- if(element->SetNodeParent(parent)) {
- findNewParent = true;
- itnp = it;
- element->ResetNodes();
- break;
- }
- }
- }
- // element->ResetNodes();
- }
- } else {
- // Deselect
- if(!event.ControlDown()) {
- if(!element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- element->SetSelected(false);
- }
- }
-
- if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
- foundPickbox = true;
- } else {
- element->ShowPickbox(false);
- element->ResetPickboxes();
- }
- }
- }
+ Element* element = *it;
+
+ // The user was moving a pickbox.
+ if(m_mode == MODE_MOVE_PICKBOX) {
+ // Catch only the element that have the pickbox shown.
+ if(element->IsPickboxShown()) {
+ // If the element is a bus, check if a node is outside.
+ if(typeid(*element) == typeid(Bus)) {
+ // Get all the bus children.
+ for(int i = 0; i < (int)m_elementList.size(); i++) {
+ Element* child = m_elementList[i];
+ for(int j = 0; j < (int)child->GetParentList().size(); j++) {
+ Element* parent = child->GetParentList()[j];
+ // The child have a parent that is the element.
+ if(parent == element) {
+ child->UpdateNodes();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if(m_mode == MODE_SELECTION_RECT) {
+ if(element->Intersects(m_selectionRect)) {
+ element->SetSelected();
+ }
+ else
+ {
+ element->SetSelected(false);
+ }
+ }
+ else if(m_mode == MODE_MOVE_NODE)
+ {
+ if(element->IsSelected()) {
+ for(int i = 0; i < (int)m_elementList.size(); i++) {
+ Element* parent = m_elementList[i];
+ if(typeid(*parent) == typeid(Bus)) {
+ if(element->SetNodeParent(parent)) {
+ findNewParent = true;
+ itnp = it;
+ element->ResetNodes();
+ break;
+ }
+ }
+ }
+ // element->ResetNodes();
+ }
+ }
+ else
+ {
+ // Deselect
+ if(!event.ControlDown()) {
+ if(!element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ element->SetSelected(false);
+ }
+ }
+
+ if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ foundPickbox = true;
+ }
+ else
+ {
+ element->ShowPickbox(false);
+ element->ResetPickboxes();
+ }
+ }
+ }
// Text element
for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
- Text* text = *it;
- if(m_mode == MODE_SELECTION_RECT) {
- if(text->Intersects(m_selectionRect)) {
- text->SetSelected();
- } else {
- text->SetSelected(false);
- }
- } else if(!event.ControlDown()) {
- if(!text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- text->SetSelected(false);
- }
- }
- }
+ Text* text = *it;
+ if(m_mode == MODE_SELECTION_RECT) {
+ if(text->Intersects(m_selectionRect)) {
+ text->SetSelected();
+ }
+ else
+ {
+ text->SetSelected(false);
+ }
+ }
+ else if(!event.ControlDown())
+ {
+ if(!text->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ text->SetSelected(false);
+ }
+ }
+ }
if(findNewParent) {
- std::rotate(itnp, itnp + 1, m_elementList.end());
- updateVoltages = true;
- }
+ std::rotate(itnp, itnp + 1, m_elementList.end());
+ updateVoltages = true;
+ }
if(!foundPickbox) {
- SetCursor(wxCURSOR_ARROW);
- }
+ SetCursor(wxCURSOR_ARROW);
+ }
if(m_mode != MODE_INSERT) {
- m_mode = MODE_EDIT;
- }
+ m_mode = MODE_EDIT;
+ }
if(updateVoltages) {
- ValidateElementsVoltages();
- }
+ ValidateElementsVoltages();
+ }
m_selectionRect = wxRect2DDouble(0, 0, 0, 0);
Redraw();
UpdateStatusBar();
@@ -466,125 +485,151 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
void Workspace::OnMouseMotion(wxMouseEvent& event)
{
bool redraw = false;
- switch(m_mode) {
- case MODE_INSERT: {
- Element* newElement = *(m_elementList.end() - 1); // Get the last element in the list.
- newElement->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- } break;
-
- case MODE_INSERT_TEXT: {
- Text* newText = *(m_textList.end() - 1);
- newText->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- } break;
-
- case MODE_DRAG:
- case MODE_DRAG_INSERT:
- case MODE_DRAG_INSERT_TEXT: {
- m_camera->SetTranslation(event.GetPosition());
- redraw = true;
- } break;
-
- case MODE_EDIT: {
- bool foundPickbox = false;
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- if(element->IsSelected()) {
- // Show element pickbox (when it has) if the mouse is over the selected object.
- if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
- element->ShowPickbox();
- redraw = true;
-
- // If the mouse is over a pickbox set correct mouse cursor.
- if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
- foundPickbox = true;
- SetCursor(element->GetBestPickboxCursor());
- } else if(!foundPickbox) {
- SetCursor(wxCURSOR_ARROW);
- element->ResetPickboxes();
- }
- } else if(!foundPickbox) {
- if(element->IsPickboxShown()) redraw = true;
-
- element->ShowPickbox(false);
- element->ResetPickboxes();
- SetCursor(wxCURSOR_ARROW);
- }
- }
- }
- } break;
-
- case MODE_MOVE_NODE: {
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- if(element->IsSelected()) {
- element->MoveNode(NULL, m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- }
- }
- } break;
-
- case MODE_MOVE_PICKBOX: {
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- if(element->IsSelected()) {
- element->MovePickbox(m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- }
- }
- } break;
-
- case MODE_MOVE_ELEMENT:
- case MODE_PASTE: {
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
- // Parent's element moving...
- for(int i = 0; i < (int)element->GetParentList().size(); i++) {
- Element* parent = element->GetParentList()[i];
- if(parent) {
- if(parent->IsSelected()) {
- element->MoveNode(parent, m_camera->ScreenToWorld(event.GetPosition()));
- }
- }
- }
- if(element->IsSelected()) {
- element->Move(m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- }
- }
- // Text element motion
- for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
- Text* text = *it;
- if(text->IsSelected()) {
- text->Move(m_camera->ScreenToWorld(event.GetPosition()));
- redraw = true;
- }
- }
- } break;
-
- case MODE_SELECTION_RECT: {
- wxPoint2DDouble currentPos = m_camera->ScreenToWorld(event.GetPosition());
- double x, y, w, h;
- if(currentPos.m_x < m_startSelRect.m_x) {
- x = currentPos.m_x;
- w = m_startSelRect.m_x - currentPos.m_x;
- } else {
- x = m_startSelRect.m_x;
- w = currentPos.m_x - m_startSelRect.m_x;
- }
- if(currentPos.m_y < m_startSelRect.m_y) {
- y = currentPos.m_y;
- h = m_startSelRect.m_y - currentPos.m_y;
- } else {
- y = m_startSelRect.m_y;
- h = currentPos.m_y - m_startSelRect.m_y;
- }
-
- m_selectionRect = wxRect2DDouble(x, y, w, h);
- redraw = true;
- } break;
- }
+ switch(m_mode)
+ {
+ case MODE_INSERT:
+ {
+ Element* newElement = *(m_elementList.end() - 1); // Get the last element in the list.
+ newElement->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ break;
+
+ case MODE_INSERT_TEXT:
+ {
+ Text* newText = *(m_textList.end() - 1);
+ newText->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ break;
+
+ case MODE_DRAG:
+ case MODE_DRAG_INSERT:
+ case MODE_DRAG_INSERT_TEXT:
+ {
+ m_camera->SetTranslation(event.GetPosition());
+ redraw = true;
+ }
+ break;
+
+ case MODE_EDIT:
+ {
+ bool foundPickbox = false;
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ // Show element pickbox (when it has) if the mouse is over the selected object.
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ element->ShowPickbox();
+ redraw = true;
+
+ // If the mouse is over a pickbox set correct mouse cursor.
+ if(element->PickboxContains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ foundPickbox = true;
+ SetCursor(element->GetBestPickboxCursor());
+ }
+ else if(!foundPickbox)
+ {
+ SetCursor(wxCURSOR_ARROW);
+ element->ResetPickboxes();
+ }
+ }
+ else if(!foundPickbox)
+ {
+ if(element->IsPickboxShown()) redraw = true;
+
+ element->ShowPickbox(false);
+ element->ResetPickboxes();
+ SetCursor(wxCURSOR_ARROW);
+ }
+ }
+ }
+ }
+ break;
+
+ case MODE_MOVE_NODE:
+ {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ element->MoveNode(NULL, m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ }
+ }
+ break;
+
+ case MODE_MOVE_PICKBOX:
+ {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ element->MovePickbox(m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ }
+ }
+ break;
+
+ case MODE_MOVE_ELEMENT:
+ case MODE_PASTE:
+ {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ // Parent's element moving...
+ for(int i = 0; i < (int)element->GetParentList().size(); i++) {
+ Element* parent = element->GetParentList()[i];
+ if(parent) {
+ if(parent->IsSelected()) {
+ element->MoveNode(parent,
+ m_camera->ScreenToWorld(event.GetPosition()));
+ }
+ }
+ }
+ if(element->IsSelected()) {
+ element->Move(m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ }
+ // Text element motion
+ for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
+ Text* text = *it;
+ if(text->IsSelected()) {
+ text->Move(m_camera->ScreenToWorld(event.GetPosition()));
+ redraw = true;
+ }
+ }
+ }
+ break;
+
+ case MODE_SELECTION_RECT:
+ {
+ wxPoint2DDouble currentPos = m_camera->ScreenToWorld(event.GetPosition());
+ double x, y, w, h;
+ if(currentPos.m_x < m_startSelRect.m_x) {
+ x = currentPos.m_x;
+ w = m_startSelRect.m_x - currentPos.m_x;
+ }
+ else
+ {
+ x = m_startSelRect.m_x;
+ w = currentPos.m_x - m_startSelRect.m_x;
+ }
+ if(currentPos.m_y < m_startSelRect.m_y) {
+ y = currentPos.m_y;
+ h = m_startSelRect.m_y - currentPos.m_y;
+ }
+ else
+ {
+ y = m_startSelRect.m_y;
+ h = currentPos.m_y - m_startSelRect.m_y;
+ }
+
+ m_selectionRect = wxRect2DDouble(x, y, w, h);
+ redraw = true;
+ }
+ break;
+ }
if(redraw) Redraw();
m_camera->UpdateMousePosition(event.GetPosition());
@@ -596,13 +641,18 @@ void Workspace::OnMiddleDown(wxMouseEvent& event)
{
// Set to drag mode.
if(m_mode != MODE_INSERT && m_mode != MODE_INSERT_TEXT && m_mode != MODE_DRAG_INSERT &&
- m_mode != MODE_DRAG_INSERT_TEXT) {
- m_mode = MODE_DRAG;
- } else if(m_mode == MODE_INSERT_TEXT) {
- m_mode = MODE_DRAG_INSERT_TEXT;
- } else {
- m_mode = MODE_DRAG_INSERT;
- }
+ m_mode != MODE_DRAG_INSERT_TEXT)
+ {
+ m_mode = MODE_DRAG;
+ }
+ else if(m_mode == MODE_INSERT_TEXT)
+ {
+ m_mode = MODE_DRAG_INSERT_TEXT;
+ }
+ else
+ {
+ m_mode = MODE_DRAG_INSERT;
+ }
m_camera->StartTranslation(m_camera->ScreenToWorld(event.GetPosition()));
UpdateStatusBar();
}
@@ -610,23 +660,28 @@ void Workspace::OnMiddleDown(wxMouseEvent& event)
void Workspace::OnMiddleUp(wxMouseEvent& event)
{
if(m_mode != MODE_INSERT && m_mode != MODE_INSERT_TEXT && m_mode != MODE_DRAG_INSERT &&
- m_mode != MODE_DRAG_INSERT_TEXT) {
- // Set to edit mode back.
- m_mode = MODE_EDIT;
- } else if(m_mode == MODE_DRAG_INSERT_TEXT) {
- m_mode = MODE_INSERT_TEXT;
- } else if(m_mode == MODE_DRAG_INSERT) {
- m_mode = MODE_INSERT;
- }
+ m_mode != MODE_DRAG_INSERT_TEXT)
+ {
+ // Set to edit mode back.
+ m_mode = MODE_EDIT;
+ }
+ else if(m_mode == MODE_DRAG_INSERT_TEXT)
+ {
+ m_mode = MODE_INSERT_TEXT;
+ }
+ else if(m_mode == MODE_DRAG_INSERT)
+ {
+ m_mode = MODE_INSERT;
+ }
UpdateStatusBar();
}
void Workspace::OnScroll(wxMouseEvent& event)
{
if(event.GetWheelRotation() > 0)
- m_camera->SetScale(event.GetPosition(), +0.05);
+ m_camera->SetScale(event.GetPosition(), +0.05);
else
- m_camera->SetScale(event.GetPosition(), -0.05);
+ m_camera->SetScale(event.GetPosition(), -0.05);
UpdateStatusBar();
Redraw();
@@ -639,154 +694,189 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
char key = event.GetUnicodeKey();
if(key != WXK_NONE) {
- switch(key) {
- case WXK_ESCAPE: // Cancel operations.
- {
- if(m_mode == MODE_INSERT) {
- m_elementList.pop_back(); // Removes the last element being inserted.
- m_mode = MODE_EDIT;
- Redraw();
- } else if(m_mode == MODE_INSERT_TEXT) {
- m_textList.pop_back();
- m_mode = MODE_EDIT;
- Redraw();
- }
- } break;
- case WXK_DELETE: // Delete selected elements
- {
- DeleteSelectedElements();
- } break;
- case 'A': {
- if(!insertingElement) {
- Text* newBus = new Text(m_camera->ScreenToWorld(event.GetPosition()));
- m_textList.push_back(newBus);
- m_mode = MODE_INSERT_TEXT;
- m_statusBar->SetStatusText(_("Insert Text: Click to insert, ESC to cancel."));
- Redraw();
- }
- }
- case 'F': {
- if(event.GetModifiers() == wxMOD_SHIFT) {
- Fit();
- }
- } break;
- case 'R': // Rotate the selected elements.
- {
- RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);
- } break;
- case 'B': // Insert a bus.
- {
- if(!insertingElement) {
- Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition()),
- wxString::Format(_("Bus %d"), GetElementNumber(ID_BUS)));
- IncrementElementNumber(ID_BUS);
- m_elementList.push_back(newBus);
- m_mode = MODE_INSERT;
- m_statusBar->SetStatusText(_("Insert Bus: Click to insert, ESC to cancel."));
- Redraw();
- }
- } break;
- case 'L': {
- if(!insertingElement) {
- if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a load.
- Load* newLoad = new Load(wxString::Format(_("Load %d"), GetElementNumber(ID_LOAD)));
- IncrementElementNumber(ID_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(wxString::Format(_("Line %d"), GetElementNumber(ID_LINE)));
- IncrementElementNumber(ID_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.
- {
- if(!insertingElement) {
- Transformer* newTransformer =
- new Transformer(wxString::Format(_("Transformer %d"), GetElementNumber(ID_TRANSFORMER)));
- IncrementElementNumber(ID_TRANSFORMER);
- m_elementList.push_back(newTransformer);
- m_mode = MODE_INSERT;
- m_statusBar->SetStatusText(_("Insert Transformer: Click on two buses, ESC to cancel."));
- Redraw();
- }
- } break;
- case 'G': // Insert a generator.
- {
- if(!insertingElement) {
- SyncGenerator* newGenerator =
- new SyncGenerator(wxString::Format(_("Generator %d"), GetElementNumber(ID_SYNCGENERATOR)));
- IncrementElementNumber(ID_SYNCGENERATOR);
- m_elementList.push_back(newGenerator);
- m_mode = MODE_INSERT;
- m_statusBar->SetStatusText(_("Insert Generator: Click on a buses, ESC to cancel."));
- Redraw();
- }
- } break;
- case 'I': {
- if(!insertingElement) {
- if(event.GetModifiers() == wxMOD_SHIFT) { // Insert an inductor.
- Inductor* newInductor =
- new Inductor(wxString::Format(_("Inductor %d"), GetElementNumber(ID_INDUCTOR)));
- IncrementElementNumber(ID_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.
- {
- IndMotor* newIndMotor =
- new IndMotor(wxString::Format(_("Induction motor %d"), GetElementNumber(ID_INDMOTOR)));
- IncrementElementNumber(ID_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.
- {
- if(!insertingElement) {
- SyncMotor* newSyncCondenser =
- new SyncMotor(wxString::Format(_("Synchronous condenser %d"), GetElementNumber(ID_SYNCMOTOR)));
- IncrementElementNumber(ID_SYNCMOTOR);
- m_elementList.push_back(newSyncCondenser);
- m_mode = MODE_INSERT;
- m_statusBar->SetStatusText(_("Insert Synchronous Condenser: Click on a buses, ESC to cancel."));
- Redraw();
- }
- } break;
- case 'C': {
- if(!insertingElement) {
- if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a capacitor.
- Capacitor* newCapacitor =
- new Capacitor(wxString::Format(_("Capacitor %d"), GetElementNumber(ID_CAPACITOR)));
- IncrementElementNumber(ID_CAPACITOR);
- m_elementList.push_back(newCapacitor);
- m_mode = MODE_INSERT;
- m_statusBar->SetStatusText(_("Insert Capacitor: Click on a buses, ESC to cancel."));
- Redraw();
- } else if(event.GetModifiers() == wxMOD_CONTROL) { // Copy.
- CopySelection();
- }
- }
- } break;
- case 'V': {
- if(!insertingElement) {
- if(event.GetModifiers() == wxMOD_CONTROL) {
- Paste();
- }
- }
- } break;
- default:
- break;
- }
- }
+ switch(key)
+ {
+ case WXK_ESCAPE: // Cancel operations.
+ {
+ if(m_mode == MODE_INSERT) {
+ m_elementList.pop_back(); // Removes the last element being inserted.
+ m_mode = MODE_EDIT;
+ Redraw();
+ }
+ else if(m_mode == MODE_INSERT_TEXT)
+ {
+ m_textList.pop_back();
+ m_mode = MODE_EDIT;
+ Redraw();
+ }
+ }
+ break;
+ case WXK_DELETE: // Delete selected elements
+ {
+ DeleteSelectedElements();
+ }
+ break;
+ case 'A':
+ {
+ if(!insertingElement) {
+ Text* newBus = new Text(m_camera->ScreenToWorld(event.GetPosition()));
+ m_textList.push_back(newBus);
+ m_mode = MODE_INSERT_TEXT;
+ m_statusBar->SetStatusText(_("Insert Text: Click to insert, ESC to cancel."));
+ Redraw();
+ }
+ }
+ case 'F':
+ {
+ if(event.GetModifiers() == wxMOD_SHIFT) {
+ Fit();
+ }
+ }
+ break;
+ case 'R': // Rotate the selected elements.
+ {
+ RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);
+ }
+ break;
+ case 'B': // Insert a bus.
+ {
+ if(!insertingElement) {
+ Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition()),
+ wxString::Format(_("Bus %d"), GetElementNumber(ID_BUS)));
+ IncrementElementNumber(ID_BUS);
+ m_elementList.push_back(newBus);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(_("Insert Bus: Click to insert, ESC to cancel."));
+ Redraw();
+ }
+ }
+ break;
+ case 'L':
+ {
+ if(!insertingElement) {
+ if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a load.
+ Load* newLoad =
+ new Load(wxString::Format(_("Load %d"), GetElementNumber(ID_LOAD)));
+ IncrementElementNumber(ID_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(wxString::Format(_("Line %d"), GetElementNumber(ID_LINE)));
+ IncrementElementNumber(ID_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.
+ {
+ if(!insertingElement) {
+ Transformer* newTransformer = new Transformer(
+ wxString::Format(_("Transformer %d"), GetElementNumber(ID_TRANSFORMER)));
+ IncrementElementNumber(ID_TRANSFORMER);
+ m_elementList.push_back(newTransformer);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(
+ _("Insert Transformer: Click on two buses, ESC to cancel."));
+ Redraw();
+ }
+ }
+ break;
+ case 'G': // Insert a generator.
+ {
+ if(!insertingElement) {
+ SyncGenerator* newGenerator = new SyncGenerator(
+ wxString::Format(_("Generator %d"), GetElementNumber(ID_SYNCGENERATOR)));
+ IncrementElementNumber(ID_SYNCGENERATOR);
+ m_elementList.push_back(newGenerator);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(_("Insert Generator: Click on a buses, ESC to cancel."));
+ Redraw();
+ }
+ }
+ break;
+ case 'I':
+ {
+ if(!insertingElement) {
+ if(event.GetModifiers() == wxMOD_SHIFT) { // Insert an inductor.
+ Inductor* newInductor = new Inductor(
+ wxString::Format(_("Inductor %d"), GetElementNumber(ID_INDUCTOR)));
+ IncrementElementNumber(ID_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.
+ {
+ IndMotor* newIndMotor = new IndMotor(wxString::Format(
+ _("Induction motor %d"), GetElementNumber(ID_INDMOTOR)));
+ IncrementElementNumber(ID_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.
+ {
+ if(!insertingElement) {
+ SyncMotor* newSyncCondenser = new SyncMotor(wxString::Format(
+ _("Synchronous condenser %d"), GetElementNumber(ID_SYNCMOTOR)));
+ IncrementElementNumber(ID_SYNCMOTOR);
+ m_elementList.push_back(newSyncCondenser);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(
+ _("Insert Synchronous Condenser: Click on a buses, ESC to cancel."));
+ Redraw();
+ }
+ }
+ break;
+ case 'C':
+ {
+ if(!insertingElement) {
+ if(event.GetModifiers() == wxMOD_SHIFT) { // Insert a capacitor.
+ Capacitor* newCapacitor = new Capacitor(
+ wxString::Format(_("Capacitor %d"), GetElementNumber(ID_CAPACITOR)));
+ IncrementElementNumber(ID_CAPACITOR);
+ m_elementList.push_back(newCapacitor);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(
+ _("Insert Capacitor: Click on a buses, ESC to cancel."));
+ Redraw();
+ }
+ else if(event.GetModifiers() == wxMOD_CONTROL)
+ { // Copy.
+ CopySelection();
+ }
+ }
+ }
+ break;
+ case 'V':
+ {
+ if(!insertingElement) {
+ if(event.GetModifiers() == wxMOD_CONTROL) {
+ Paste();
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
UpdateStatusBar();
event.Skip();
@@ -794,27 +884,34 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
void Workspace::UpdateStatusBar()
{
- switch(m_mode) {
- case MODE_DRAG: {
- m_statusBar->SetStatusText(_("MODE: DRAG"), 1);
- } break;
-
- case MODE_INSERT:
- case MODE_INSERT_TEXT:
- case MODE_DRAG_INSERT:
- case MODE_DRAG_INSERT_TEXT: {
- m_statusBar->SetStatusText(_("MODE: INSERT"), 1);
- } break;
-
- case MODE_MOVE_ELEMENT:
- case MODE_MOVE_PICKBOX:
- case MODE_MOVE_NODE:
- case MODE_SELECTION_RECT:
- case MODE_EDIT: {
- m_statusBar->SetStatusText(wxT(""));
- m_statusBar->SetStatusText(_("MODE: EDIT"), 1);
- } break;
- }
+ switch(m_mode)
+ {
+ case MODE_DRAG:
+ {
+ m_statusBar->SetStatusText(_("MODE: DRAG"), 1);
+ }
+ break;
+
+ case MODE_INSERT:
+ case MODE_INSERT_TEXT:
+ case MODE_DRAG_INSERT:
+ case MODE_DRAG_INSERT_TEXT:
+ {
+ m_statusBar->SetStatusText(_("MODE: INSERT"), 1);
+ }
+ break;
+
+ case MODE_MOVE_ELEMENT:
+ case MODE_MOVE_PICKBOX:
+ case MODE_MOVE_NODE:
+ case MODE_SELECTION_RECT:
+ case MODE_EDIT:
+ {
+ m_statusBar->SetStatusText(wxT(""));
+ m_statusBar->SetStatusText(_("MODE: EDIT"), 1);
+ }
+ break;
+ }
m_statusBar->SetStatusText(wxString::Format(_("ZOOM: %d%%"), (int)(m_camera->GetScale() * 100.0)), 2);
m_statusBar->SetStatusText(
@@ -826,106 +923,123 @@ void Workspace::OnPopupClick(wxCommandEvent& event)
{
wxMenu* menu = (wxMenu*)event.GetEventObject();
Element* element = (Element*)menu->GetClientData();
- switch(event.GetId()) {
- case ID_EDIT_BUS: {
- wxMessageBox("Edit bus!");
- } break;
- case ID_EDIT_LINE: {
- wxMessageBox("Edit line!");
- } break;
- case ID_EDIT_TRANSFORMER: {
- wxMessageBox("Edit transformer!");
- } break;
- case ID_LINE_ADD_NODE: {
- Line* line = (Line*)element;
- line->AddNode(m_camera->GetMousePosition());
- Redraw();
- } break;
- case ID_LINE_REMOVE_NODE: {
- Line* line = (Line*)element;
- line->RemoveNode(m_camera->GetMousePosition());
- Redraw();
- } break;
- case ID_ROTATE_CLOCK: {
- element->Rotate();
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* iElement = *it;
- // Parent's element rotating...
- for(int i = 0; i < (int)iElement->GetParentList().size(); i++) {
- Element* parent = iElement->GetParentList()[i];
- if(parent == element) {
- iElement->RotateNode(parent);
- }
- }
- }
- Redraw();
- } break;
- case ID_ROTATE_COUNTERCLOCK: {
- element->Rotate(false);
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* iElement = *it;
- // Parent's element rotating...
- for(int i = 0; i < (int)iElement->GetParentList().size(); i++) {
- Element* parent = iElement->GetParentList()[i];
- if(parent == element) {
- iElement->RotateNode(parent, false);
- }
- }
- }
- Redraw();
- } break;
- case ID_DELETE: {
- for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* iElement = *it;
-
- if(element == iElement) {
- for(auto itp = m_elementList.begin(); itp != m_elementList.end(); ++itp) {
- Element* child = *itp;
- // Parent's element being deleted...
- for(int i = 0; i < (int)child->GetParentList().size(); i++) {
- Element* parent = child->GetParentList()[i];
- if(parent == element) {
- child->RemoveParent(parent);
- }
- }
- }
- m_elementList.erase(it--);
- }
- }
- } break;
- }
+ switch(event.GetId())
+ {
+ case ID_EDIT_BUS:
+ {
+ wxMessageBox("Edit bus!");
+ }
+ break;
+ case ID_EDIT_LINE:
+ {
+ wxMessageBox("Edit line!");
+ }
+ break;
+ case ID_EDIT_TRANSFORMER:
+ {
+ wxMessageBox("Edit transformer!");
+ }
+ break;
+ case ID_LINE_ADD_NODE:
+ {
+ Line* line = (Line*)element;
+ line->AddNode(m_camera->GetMousePosition());
+ Redraw();
+ }
+ break;
+ case ID_LINE_REMOVE_NODE:
+ {
+ Line* line = (Line*)element;
+ line->RemoveNode(m_camera->GetMousePosition());
+ Redraw();
+ }
+ break;
+ case ID_ROTATE_CLOCK:
+ {
+ element->Rotate();
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* iElement = *it;
+ // Parent's element rotating...
+ for(int i = 0; i < (int)iElement->GetParentList().size(); i++) {
+ Element* parent = iElement->GetParentList()[i];
+ if(parent == element) {
+ iElement->RotateNode(parent);
+ }
+ }
+ }
+ Redraw();
+ }
+ break;
+ case ID_ROTATE_COUNTERCLOCK:
+ {
+ element->Rotate(false);
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* iElement = *it;
+ // Parent's element rotating...
+ for(int i = 0; i < (int)iElement->GetParentList().size(); i++) {
+ Element* parent = iElement->GetParentList()[i];
+ if(parent == element) {
+ iElement->RotateNode(parent, false);
+ }
+ }
+ }
+ Redraw();
+ }
+ break;
+ case ID_DELETE:
+ {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* iElement = *it;
+
+ if(element == iElement) {
+ for(auto itp = m_elementList.begin(); itp != m_elementList.end(); ++itp) {
+ Element* child = *itp;
+ // Parent's element being deleted...
+ for(int i = 0; i < (int)child->GetParentList().size(); i++) {
+ Element* parent = child->GetParentList()[i];
+ if(parent == element) {
+ child->RemoveParent(parent);
+ }
+ }
+ }
+ m_elementList.erase(it--);
+ }
+ }
+ }
+ 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());
- }
- }
+ 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());
+ }
+ }
// Rotate text element
for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
- Text* text = *it;
- if(text->IsSelected()) {
- text->Rotate(clockwise);
- text->StartMove(m_camera->GetMousePosition());
- }
- }
+ Text* text = *it;
+ if(text->IsSelected()) {
+ text->Rotate(clockwise);
+ text->StartMove(m_camera->GetMousePosition());
+ }
+ }
Redraw();
}
@@ -933,55 +1047,55 @@ void Workspace::DeleteSelectedElements()
{
// Don't set the end of the list at the loop's begin.
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
- Element* element = *it;
-
- if(element->IsSelected()) {
- for(auto itp = m_elementList.begin(); itp != m_elementList.end(); ++itp) {
- Element* child = *itp;
- // Parent's element being deleted...
- for(int i = 0; i < (int)child->GetParentList().size(); i++) {
- Element* parent = child->GetParentList()[i];
- if(parent == element) {
- child->RemoveParent(parent);
- }
- }
- }
-
- for(auto itt = m_textList.begin(); itt != m_textList.end(); ++itt) {
- Text* text = *itt;
- if(text->GetElement() == element) m_textList.erase(itt--);
- }
-
- m_elementList.erase(it--);
- }
- }
+ Element* element = *it;
+
+ if(element->IsSelected()) {
+ for(auto itp = m_elementList.begin(); itp != m_elementList.end(); ++itp) {
+ Element* child = *itp;
+ // Parent's element being deleted...
+ for(int i = 0; i < (int)child->GetParentList().size(); i++) {
+ Element* parent = child->GetParentList()[i];
+ if(parent == element) {
+ child->RemoveParent(parent);
+ }
+ }
+ }
+
+ for(auto itt = m_textList.begin(); itt != m_textList.end(); ++itt) {
+ Text* text = *itt;
+ if(text->GetElement() == element) m_textList.erase(itt--);
+ }
+
+ m_elementList.erase(it--);
+ }
+ }
for(auto it = m_textList.begin(); it != m_textList.end(); ++it) {
- Text* text = *it;
- if(text->IsSelected()) m_textList.erase(it--);
- }
+ Text* text = *it;
+ if(text->IsSelected()) m_textList.erase(it--);
+ }
Redraw();
}
bool Workspace::GetElementsCorners(wxPoint2DDouble& leftUpCorner,
- wxPoint2DDouble& rightDownCorner,
- std::vector<Element*> elementList)
+ wxPoint2DDouble& rightDownCorner,
+ std::vector<Element*> elementList)
{
if(elementList.size() == 0) return false;
elementList[0]->CalculateBoundaries(leftUpCorner, rightDownCorner);
for(auto it = elementList.begin() + 1, itEnd = elementList.end(); it != itEnd; it++) {
- Element* element = *it;
- wxPoint2DDouble leftUp;
- wxPoint2DDouble rightDown;
- element->CalculateBoundaries(leftUp, rightDown);
- if(leftUp.m_x < leftUpCorner.m_x) leftUpCorner.m_x = leftUp.m_x;
- if(leftUp.m_y < leftUpCorner.m_y) leftUpCorner.m_y = leftUp.m_y;
- if(rightDown.m_x > rightDownCorner.m_x) rightDownCorner.m_x = rightDown.m_x;
- if(rightDown.m_y > rightDownCorner.m_y) rightDownCorner.m_y = rightDown.m_y;
- }
+ Element* element = *it;
+ wxPoint2DDouble leftUp;
+ wxPoint2DDouble rightDown;
+ element->CalculateBoundaries(leftUp, rightDown);
+ if(leftUp.m_x < leftUpCorner.m_x) leftUpCorner.m_x = leftUp.m_x;
+ if(leftUp.m_y < leftUpCorner.m_y) leftUpCorner.m_y = leftUp.m_y;
+ if(rightDown.m_x > rightDownCorner.m_x) rightDownCorner.m_x = rightDown.m_x;
+ if(rightDown.m_y > rightDownCorner.m_y) rightDownCorner.m_y = rightDown.m_y;
+ }
return true;
}
@@ -991,8 +1105,8 @@ void Workspace::Fit()
wxPoint2DDouble rightDownCorner(0, 0);
std::vector<Element*> elementList = m_elementList;
for(auto it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {
- elementList.push_back(*it);
- }
+ elementList.push_back(*it);
+ }
if(!GetElementsCorners(leftUpCorner, rightDownCorner, elementList)) return;
int width = 0.0;
@@ -1019,28 +1133,29 @@ void Workspace::ValidateBusesVoltages(Element* initialBus)
ElectricalUnit nominalVoltageUnit = ((Bus*)initialBus)->GetEletricalData().nominalVoltageUnit;
for(auto it = m_elementList.begin(); it != m_elementList.end(); it++) {
- Element* child = *it;
-
- if(typeid(*child) == typeid(Line)) {
- if(child->GetParentList()[0] && child->GetParentList()[1]) {
- BusElectricalData data1 = ((Bus*)child->GetParentList()[0])->GetEletricalData();
- BusElectricalData data2 = ((Bus*)child->GetParentList()[1])->GetEletricalData();
-
- if(data1.nominalVoltage != data2.nominalVoltage ||
- data1.nominalVoltageUnit != data2.nominalVoltageUnit) {
- data1.nominalVoltage = nominalVoltage;
- data2.nominalVoltage = nominalVoltage;
- data1.nominalVoltageUnit = nominalVoltageUnit;
- data2.nominalVoltageUnit = nominalVoltageUnit;
-
- ((Bus*)child->GetParentList()[0])->SetElectricalData(data1);
- ((Bus*)child->GetParentList()[1])->SetElectricalData(data2);
-
- it = m_elementList.begin(); // Restart search.
- }
- }
- }
- }
+ Element* child = *it;
+
+ if(typeid(*child) == typeid(Line)) {
+ if(child->GetParentList()[0] && child->GetParentList()[1]) {
+ BusElectricalData data1 = ((Bus*)child->GetParentList()[0])->GetEletricalData();
+ BusElectricalData data2 = ((Bus*)child->GetParentList()[1])->GetEletricalData();
+
+ if(data1.nominalVoltage != data2.nominalVoltage ||
+ data1.nominalVoltageUnit != data2.nominalVoltageUnit)
+ {
+ data1.nominalVoltage = nominalVoltage;
+ data2.nominalVoltage = nominalVoltage;
+ data1.nominalVoltageUnit = nominalVoltageUnit;
+ data2.nominalVoltageUnit = nominalVoltageUnit;
+
+ ((Bus*)child->GetParentList()[0])->SetElectricalData(data1);
+ ((Bus*)child->GetParentList()[1])->SetElectricalData(data2);
+
+ it = m_elementList.begin(); // Restart search.
+ }
+ }
+ }
+ }
// ValidateElementsVoltages();
}
@@ -1048,19 +1163,19 @@ void Workspace::ValidateBusesVoltages(Element* initialBus)
void Workspace::ValidateElementsVoltages()
{
for(auto it = m_elementList.begin(); it != m_elementList.end(); it++) {
- Element* child = *it;
-
- std::vector<double> nominalVoltage;
- std::vector<ElectricalUnit> nominalVoltageUnit;
- for(int i = 0; i < (int)child->GetParentList().size(); i++) {
- Bus* parent = (Bus*)child->GetParentList()[i];
- if(parent) {
- nominalVoltage.push_back(parent->GetEletricalData().nominalVoltage);
- nominalVoltageUnit.push_back(parent->GetEletricalData().nominalVoltageUnit);
- }
- }
- child->SetNominalVoltage(nominalVoltage, nominalVoltageUnit);
- }
+ Element* child = *it;
+
+ std::vector<double> nominalVoltage;
+ std::vector<ElectricalUnit> nominalVoltageUnit;
+ for(int i = 0; i < (int)child->GetParentList().size(); i++) {
+ Bus* parent = (Bus*)child->GetParentList()[i];
+ if(parent) {
+ nominalVoltage.push_back(parent->GetEletricalData().nominalVoltage);
+ nominalVoltageUnit.push_back(parent->GetEletricalData().nominalVoltageUnit);
+ }
+ }
+ child->SetNominalVoltage(nominalVoltage, nominalVoltageUnit);
+ }
}
bool Workspace::RunPowerFlow()
@@ -1068,9 +1183,9 @@ bool Workspace::RunPowerFlow()
PowerFlow pf(m_elementList);
bool result = pf.RunGaussSeidel();
if(!result) {
- wxMessageDialog msgDialog(this, pf.GetErrorMessage(), _("Error"), wxOK | wxCENTRE | wxICON_ERROR);
- msgDialog.ShowModal();
- }
+ wxMessageDialog msgDialog(this, pf.GetErrorMessage(), _("Error"), wxOK | wxCENTRE | wxICON_ERROR);
+ msgDialog.ShowModal();
+ }
UpdateTextElements();
Redraw();
@@ -1081,14 +1196,36 @@ bool Workspace::RunPowerFlow()
void Workspace::UpdateTextElements()
{
for(auto it = m_textList.begin(); it != m_textList.end(); ++it) {
- Text* text = *it;
- text->UpdateText(100e6);
- }
+ Text* text = *it;
+ text->UpdateText(100e6);
+ }
}
void Workspace::CopySelection()
{
- ElementDataObject* dataObject = new ElementDataObject(this);
+ std::vector<Element*> selectedElements;
+ // The buses need to be numerated to associate the child's parents to the copies.
+ int busNumber = 0;
+ for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
+ Element* element = *it;
+ if(typeid(*element) == typeid(Bus)) {
+ Bus* bus = (Bus*)element;
+ auto data = bus->GetEletricalData();
+ data.number = busNumber;
+ bus->SetElectricalData(data);
+ busNumber++;
+ }
+ if(element->IsSelected()) {
+ selectedElements.push_back(element);
+ }
+ }
+ for(auto it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {
+ Text* text = *it;
+ if(text->IsSelected()) {
+ selectedElements.push_back(text);
+ }
+ }
+ ElementDataObject* dataObject = new ElementDataObject(selectedElements);
wxTheClipboard->SetData(dataObject);
wxTheClipboard->Close();
}
@@ -1096,112 +1233,96 @@ void Workspace::CopySelection()
bool Workspace::Paste()
{
if(wxTheClipboard->Open()) {
- ElementDataObject dataObject(NULL);
-
- if(wxTheClipboard->IsSupported(wxDataFormat("PSPCopy"))) {
- if(!wxTheClipboard->GetData(dataObject)) {
- wxMessageDialog dialog(this, _("It was not possible to paste from clipboard."), _("Error"),
- wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);
- dialog.ShowModal();
- wxTheClipboard->Close();
- return false;
- }
- } else {
- wxTheClipboard->Close();
- return false;
- }
- wxTheClipboard->Close();
-
- UnselectAll();
-
- std::vector<Element*> pastedElements;
- ElementsLists* elementsLists = dataObject.GetElementsLists();
-
- // Paste buses.
- auto busList = elementsLists->busList;
- std::vector<Bus*> pastedBusList; // To set new parents;
- for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {
- Bus* bus = *it;
- Bus* copyBus = new Bus();
- *copyBus = *bus;
- pastedElements.push_back(copyBus);
- pastedBusList.push_back(copyBus);
- m_elementList.push_back(copyBus);
- }
-
- // Paste lines.
- auto lineList = elementsLists->lineList;
- for(auto it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {
- Line* line = *it;
- Line* copyLine = new Line();
- *copyLine = *line;
-
- // Change the parent if copied, otherwise remove it.
- for(int j = 0; j < (int)copyLine->GetParentList().size(); j++) {
- Bus* currentParent = (Bus*)copyLine->GetParentList()[j];
- if(currentParent) {
- int parentNumber = currentParent->GetEletricalData().number;
- bool parentCopied = false;
- for(int k = 0; k < (int)pastedBusList.size(); k++) {
- Bus* newParent = pastedBusList[k];
- if(parentNumber == newParent->GetEletricalData().number)
- copyLine->ReplaceParent(currentParent, newParent);
- }
- if(!parentCopied) copyLine->RemoveParent(currentParent);
- }
- }
-
- pastedElements.push_back(copyLine);
- m_elementList.push_back(copyLine);
- }
-
- // Paste transformers.
- auto transformerList = elementsLists->transformerList;
- for(auto it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {
- Transformer* transformer = *it;
- Transformer* copyTransfomer = new Transformer();
- *copyTransfomer = *transformer;
-
- // Change the parent if copied, otherwise remove it.
- for(int j = 0; j < (int)copyTransfomer->GetParentList().size(); j++) {
- Bus* currentParent = (Bus*)copyTransfomer->GetParentList()[j];
- if(currentParent) {
- int parentNumber = currentParent->GetEletricalData().number;
- bool parentCopied = false;
- for(int k = 0; k < (int)pastedBusList.size(); k++) {
- Bus* newParent = pastedBusList[k];
- if(parentNumber == newParent->GetEletricalData().number)
- copyTransfomer->ReplaceParent(currentParent, newParent);
- }
- if(!parentCopied) copyTransfomer->RemoveParent(currentParent);
- }
- }
-
- pastedElements.push_back(copyTransfomer);
- m_elementList.push_back(copyTransfomer);
- }
-
- // Move elements (and nodes) to the mouse position.
- // The start position it's the center of the pasted objects.
- wxPoint2DDouble leftUpCorner, rightDownCorner;
- GetElementsCorners(leftUpCorner, rightDownCorner, pastedElements);
- wxPoint2DDouble startPosition = (leftUpCorner + rightDownCorner) / 2.0;
- for(auto it = pastedElements.begin(), itEnd = pastedElements.end(); it != itEnd; ++it) {
- Element* element = *it;
- element->StartMove(startPosition);
- element->Move(m_camera->GetMousePosition());
- for(int i = 0; i < (int)element->GetParentList().size(); i++) {
- Element* parent = element->GetParentList()[i];
- element->MoveNode(parent, m_camera->GetMousePosition());
- }
- }
-
- } else {
- wxMessageDialog dialog(this, _("It was not possible to paste from clipboard."), _("Error"),
- wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);
- dialog.ShowModal();
- return false;
- }
+ ElementDataObject dataObject;
+
+ if(wxTheClipboard->IsSupported(wxDataFormat("PSPCopy"))) {
+ if(!wxTheClipboard->GetData(dataObject)) {
+ wxMessageDialog dialog(this, _("It was not possible to paste from clipboard."), _("Error"),
+ wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);
+ dialog.ShowModal();
+ wxTheClipboard->Close();
+ return false;
+ }
+ }
+ else
+ {
+ wxTheClipboard->Close();
+ return false;
+ }
+ wxTheClipboard->Close();
+
+ UnselectAll();
+
+ std::vector<Element*> pastedElements;
+ ElementsLists* elementsLists = dataObject.GetElementsLists();
+
+ // Paste buses (parents).
+ auto parentList = elementsLists->parentList;
+ std::vector<Bus*> pastedBusList; // To set new parents;
+ for(auto it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {
+ Element* copy = (*it)->GetCopy();
+ if(copy) {
+ pastedElements.push_back((Bus*)copy);
+ pastedBusList.push_back((Bus*)copy);
+ m_elementList.push_back((Bus*)copy);
+ }
+ }
+
+ // Paste other elements.
+ auto elementLists = elementsLists->elementList;
+ for(auto it = elementLists.begin(), itEnd = elementLists.end(); it != itEnd; ++it) {
+ Element* copy = (*it)->GetCopy();
+ if(copy) {
+ // Check if is text element
+ if(typeid(*copy) == typeid(Text)) {
+ pastedElements.push_back(copy);
+ m_textList.push_back((Text*)copy);
+ }
+ else
+ {
+ // Change the parent if copied, otherwise remove it.
+ for(int j = 0; j < (int)copy->GetParentList().size(); j++) {
+ Bus* currentParent = (Bus*)copy->GetParentList()[j];
+ if(currentParent) {
+ int parentNumber = currentParent->GetEletricalData().number;
+ bool parentCopied = false;
+ for(int k = 0; k < (int)pastedBusList.size(); k++) {
+ Bus* newParent = pastedBusList[k];
+ if(parentNumber == newParent->GetEletricalData().number)
+ copy->ReplaceParent(currentParent, newParent);
+ }
+ if(!parentCopied) copy->RemoveParent(currentParent);
+ }
+ }
+
+ pastedElements.push_back(copy);
+ m_elementList.push_back(copy);
+ }
+ }
+ }
+
+ // Move elements (and nodes) to the mouse position.
+ // The start position it's the center of the pasted objects.
+ wxPoint2DDouble leftUpCorner, rightDownCorner;
+ GetElementsCorners(leftUpCorner, rightDownCorner, pastedElements);
+ wxPoint2DDouble startPosition = (leftUpCorner + rightDownCorner) / 2.0;
+ for(auto it = pastedElements.begin(), itEnd = pastedElements.end(); it != itEnd; ++it) {
+ Element* element = *it;
+ element->StartMove(startPosition);
+ element->Move(m_camera->GetMousePosition());
+ for(int i = 0; i < (int)element->GetParentList().size(); i++) {
+ Element* parent = element->GetParentList()[i];
+ element->MoveNode(parent, m_camera->GetMousePosition());
+ }
+ }
+ }
+ else
+ {
+ wxMessageDialog dialog(this, _("It was not possible to paste from clipboard."), _("Error"),
+ wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);
+ dialog.ShowModal();
+ return false;
+ }
Redraw();
m_mode = MODE_PASTE;
@@ -1211,11 +1332,11 @@ bool Workspace::Paste()
void Workspace::UnselectAll()
{
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {
- Element* element = *it;
- element->SetSelected(false);
- }
+ Element* element = *it;
+ element->SetSelected(false);
+ }
for(auto it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; it++) {
- Text* text = *it;
- text->SetSelected(false);
- }
+ Text* text = *it;
+ text->SetSelected(false);
+ }
}