summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.codelite/.tern-port2
-rw-r--r--.codelite/PSP.session21
-rw-r--r--.codelite/PSP.tagsbin80427008 -> 80431104 bytes
-rw-r--r--.codelite/compilation.dbbin24576 -> 24576 bytes
-rw-r--r--.codelite/compile_commands.json8
-rw-r--r--.codelite/refactoring.dbbin413696 -> 416768 bytes
-rw-r--r--Project/Bus.h2
-rw-r--r--Project/Element.h3
-rw-r--r--Project/Line.cpp32
-rw-r--r--Project/Line.h10
-rw-r--r--Project/MainFrame.cpp4
-rw-r--r--Project/Project.mk2
-rw-r--r--Project/Release/Bus.cpp.obin15231 -> 15853 bytes
-rw-r--r--Project/Release/Element.cpp.obin4934 -> 5581 bytes
-rw-r--r--Project/Release/Line.cpp.obin3314 -> 12836 bytes
-rw-r--r--Project/Release/Line.cpp.o.d342
-rw-r--r--Project/Release/MainFrame.cpp.obin117620 -> 117620 bytes
-rw-r--r--Project/Release/PSP-UFU.exebin3244991 -> 3249482 bytes
-rw-r--r--Project/Release/Workspace.cpp.obin91417 -> 93816 bytes
-rw-r--r--Project/Workspace.cpp75
20 files changed, 445 insertions, 56 deletions
diff --git a/.codelite/.tern-port b/.codelite/.tern-port
index a4a847a..2deb3ef 100644
--- a/.codelite/.tern-port
+++ b/.codelite/.tern-port
@@ -1 +1 @@
-50793 \ No newline at end of file
+49674 \ No newline at end of file
diff --git a/.codelite/PSP.session b/.codelite/PSP.session
index 9043dab..fef011c 100644
--- a/.codelite/PSP.session
+++ b/.codelite/PSP.session
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<Session Name="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace">
- <int Value="0" Name="m_selectedTab"/>
+ <int Value="7" Name="m_selectedTab"/>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace" Name="m_workspaceName"/>
<TabInfoArray Name="TabInfoArray">
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Workspace.cpp" Name="FileName"/>
- <int Value="386" Name="FirstVisibleLine"/>
- <int Value="405" Name="CurrentLine"/>
+ <int Value="124" Name="FirstVisibleLine"/>
+ <int Value="151" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
@@ -40,22 +40,29 @@
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Element.h" Name="FileName"/>
- <int Value="20" Name="FirstVisibleLine"/>
- <int Value="43" Name="CurrentLine"/>
+ <int Value="32" Name="FirstVisibleLine"/>
+ <int Value="55" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Line.h" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
- <int Value="3" Name="CurrentLine"/>
+ <int Value="20" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
<TabInfo>
<wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Line.cpp" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
- <int Value="0" Name="CurrentLine"/>
+ <int Value="19" Name="CurrentLine"/>
+ <wxArrayString Name="Bookmarks"/>
+ <IntVector Name="CollapsedFolds"/>
+ </TabInfo>
+ <TabInfo>
+ <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\MainFrame.cpp" Name="FileName"/>
+ <int Value="0" Name="FirstVisibleLine"/>
+ <int Value="16" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
<IntVector Name="CollapsedFolds"/>
</TabInfo>
diff --git a/.codelite/PSP.tags b/.codelite/PSP.tags
index 4c413a6..8634b95 100644
--- a/.codelite/PSP.tags
+++ b/.codelite/PSP.tags
Binary files differ
diff --git a/.codelite/compilation.db b/.codelite/compilation.db
index c72a5c7..aa03708 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 747a12e..baf2ea6 100644
--- a/.codelite/compile_commands.json
+++ b/.codelite/compile_commands.json
@@ -1,7 +1,11 @@
[{
"directory": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project",
- "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/Workspace.cpp.o -MF./Release/Workspace.cpp.o.d -MM Workspace.cpp",
- "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Workspace.cpp"
+ "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/Line.cpp.o -MF./Release/Line.cpp.o.d -MM Line.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 -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/Line.cpp.o -I. -I.",
+ "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/Workspace.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/Workspace.cpp.o -I. -I.",
diff --git a/.codelite/refactoring.db b/.codelite/refactoring.db
index f09c782..a443b36 100644
--- a/.codelite/refactoring.db
+++ b/.codelite/refactoring.db
Binary files differ
diff --git a/Project/Bus.h b/Project/Bus.h
index ac271b7..0c9d374 100644
--- a/Project/Bus.h
+++ b/Project/Bus.h
@@ -9,7 +9,7 @@ class Bus : public Element
Bus();
Bus(wxPoint2DDouble position);
~Bus();
- virtual void Insert(Element* parent, wxPoint2DDouble position = wxPoint2DDouble(0.0, 0.0)) { SetPosition(position); };
+ virtual bool AddParent(Element* parent, wxPoint2DDouble position) {return true;}
virtual bool Contains(wxPoint2DDouble position) const;
virtual bool Intersects(wxRect2DDouble rect) const;
virtual void Draw(wxPoint2DDouble translation, double scale) const;
diff --git a/Project/Element.h b/Project/Element.h
index a104ec5..dfffba2 100644
--- a/Project/Element.h
+++ b/Project/Element.h
@@ -41,7 +41,7 @@ class Element
double GetAngle() const { return m_angle; }
bool IsPickboxShown() const { return m_showPickbox; }
// Pure-virtuals methods
- virtual void Insert(Element* parent, wxPoint2DDouble position) = 0;
+ virtual bool AddParent(Element* parent, wxPoint2DDouble position) = 0;
virtual void Draw(wxPoint2DDouble translation, double scale) const = 0;
virtual void Rotate() = 0;
virtual bool Contains(wxPoint2DDouble position) const = 0;
@@ -51,6 +51,7 @@ class Element
virtual wxCursor GetBestPickboxCursor() const = 0;
// General methods
+ virtual void AddPoint(wxPoint2DDouble point) {};
virtual void StartMove(wxPoint2DDouble position);
virtual void Move(wxPoint2DDouble position);
void ResetPickboxes() { m_activePickboxID = ID_PB_NONE; }
diff --git a/Project/Line.cpp b/Project/Line.cpp
index 5879555..d0df0a2 100644
--- a/Project/Line.cpp
+++ b/Project/Line.cpp
@@ -2,11 +2,33 @@
Line::Line() {}
Line::~Line() {}
-bool Line::Contains(wxPoint2DDouble position) const {}
+bool Line::Contains(wxPoint2DDouble position) const { return false; }
void Line::Draw(wxPoint2DDouble translation, double scale) const {}
-wxCursor Line::GetBestPickboxCursor() const {}
-void Line::Insert(Element* parent, wxPoint2DDouble position) {}
-bool Line::Intersects(wxRect2DDouble rect) const {}
+wxCursor Line::GetBestPickboxCursor() const { return wxCURSOR_ARROW; }
+bool Line::AddParent(Element* parent, wxPoint2DDouble position)
+{
+ if(parent) {
+ if(m_parentList.size() == 0) {
+ m_parentList.push_back(parent);
+ m_pointList.push_back(position); // First point
+ return false;
+ }
+ else if(parent != m_parentList[0])
+ {
+ m_parentList.push_back(parent);
+ m_pointList.push_back(position); // Last point
+ return true;
+ }
+ }
+ return false;
+}
+bool Line::Intersects(wxRect2DDouble rect) const { return false; }
void Line::MovePickbox(wxPoint2DDouble position) {}
-bool Line::PickboxContains(wxPoint2DDouble position) {}
+bool Line::PickboxContains(wxPoint2DDouble position) { return false; }
void Line::Rotate() {}
+void Line::AddPoint(wxPoint2DDouble point)
+{
+ if(m_parentList.size() != 0) {
+ m_pointList.push_back(point);
+ }
+}
diff --git a/Project/Line.h b/Project/Line.h
index d98a1c5..fd68585 100644
--- a/Project/Line.h
+++ b/Project/Line.h
@@ -1,6 +1,8 @@
#ifndef LINE_H
#define LINE_H
+#include <wx/msgdlg.h>
+
#include "Element.h"
class Line : public Element
@@ -8,14 +10,18 @@ class Line : public Element
public:
Line();
~Line();
- virtual bool Contains(wxPoint2DDouble position) const;
+ virtual bool Contains(wxPoint2DDouble position) const;
virtual void Draw(wxPoint2DDouble translation, double scale) const;
virtual wxCursor GetBestPickboxCursor() const;
- virtual void Insert(Element* parent, wxPoint2DDouble position);
+ virtual bool AddParent(Element* parent, wxPoint2DDouble position);
virtual bool Intersects(wxRect2DDouble rect) const;
virtual void MovePickbox(wxPoint2DDouble position);
virtual bool PickboxContains(wxPoint2DDouble position);
virtual void Rotate();
+ virtual void AddPoint(wxPoint2DDouble point);
+ protected:
+ std::vector<Element*> m_parentList;
+ std::vector<wxPoint2DDouble> m_pointList;
};
#endif // LINE_H
diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp
index aa9164e..c9ab732 100644
--- a/Project/MainFrame.cpp
+++ b/Project/MainFrame.cpp
@@ -14,8 +14,8 @@ MainFrame::MainFrame(wxWindow* parent, wxLocale* locale) : MainFrameBase(parent)
}
MainFrame::~MainFrame()
{
- if(!m_artMetro) delete m_artMetro;
- if(!m_addElementsMenu) {
+ //if(m_artMetro) delete m_artMetro;
+ if(m_addElementsMenu) {
m_addElementsMenu->Disconnect(wxEVT_COMMAND_MENU_SELECTED,
wxCommandEventHandler(MainFrame::OnAddElementsClick), NULL, this);
delete m_addElementsMenu;
diff --git a/Project/Project.mk b/Project/Project.mk
index c0d7cc5..d8a7e7f 100644
--- a/Project/Project.mk
+++ b/Project/Project.mk
@@ -13,7 +13,7 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=Thales
-Date :=08/08/2016
+Date :=09/08/2016
CodeLitePath :="C:/Program Files/CodeLite"
LinkerName :=C:/TDM-GCC-64/bin/g++.exe
SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC
diff --git a/Project/Release/Bus.cpp.o b/Project/Release/Bus.cpp.o
index 04f54ec..f8d4fc3 100644
--- a/Project/Release/Bus.cpp.o
+++ b/Project/Release/Bus.cpp.o
Binary files differ
diff --git a/Project/Release/Element.cpp.o b/Project/Release/Element.cpp.o
index 0c54126..efeeec9 100644
--- a/Project/Release/Element.cpp.o
+++ b/Project/Release/Element.cpp.o
Binary files differ
diff --git a/Project/Release/Line.cpp.o b/Project/Release/Line.cpp.o
index 763e73f..1eb02e9 100644
--- a/Project/Release/Line.cpp.o
+++ b/Project/Release/Line.cpp.o
Binary files differ
diff --git a/Project/Release/Line.cpp.o.d b/Project/Release/Line.cpp.o.d
index b73a7bb..684bf28 100644
--- a/Project/Release/Line.cpp.o.d
+++ b/Project/Release/Line.cpp.o.d
@@ -1,3 +1,343 @@
-Release/Line.cpp.o: Line.cpp Line.h
+Release/Line.cpp.o: Line.cpp Line.h \
+ C:/wxWidgets-3.1.0/include/wx/msgdlg.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 \
+ C:/wxWidgets-3.1.0/lib/gcc_dll/mswu/wx/setup.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/libraries.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/gccpriv.h \
+ C:/wxWidgets-3.1.0/include/wx/chkconf.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/chkconf.h \
+ C:/wxWidgets-3.1.0/include/wx/version.h \
+ C:/wxWidgets-3.1.0/include/wx/cpp.h \
+ C:/wxWidgets-3.1.0/include/wx/dlimpexp.h \
+ C:/wxWidgets-3.1.0/include/wx/debug.h \
+ C:/wxWidgets-3.1.0/include/wx/chartype.h \
+ 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 \
+ C:/wxWidgets-3.1.0/include/wx/strconv.h \
+ C:/wxWidgets-3.1.0/include/wx/buffer.h \
+ C:/wxWidgets-3.1.0/include/wx/fontenc.h \
+ C:/wxWidgets-3.1.0/include/wx/unichar.h \
+ C:/wxWidgets-3.1.0/include/wx/stringimpl.h \
+ C:/wxWidgets-3.1.0/include/wx/beforestd.h \
+ C:/wxWidgets-3.1.0/include/wx/afterstd.h \
+ C:/wxWidgets-3.1.0/include/wx/stringops.h \
+ C:/wxWidgets-3.1.0/include/wx/iosfwrap.h \
+ C:/wxWidgets-3.1.0/include/wx/msgout.h \
+ 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/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/list.h \
+ C:/wxWidgets-3.1.0/include/wx/vector.h \
+ C:/wxWidgets-3.1.0/include/wx/scopeguard.h \
+ C:/wxWidgets-3.1.0/include/wx/except.h \
+ 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/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/filefn.h \
+ C:/wxWidgets-3.1.0/include/wx/arrstr.h \
+ C:/wxWidgets-3.1.0/include/wx/versioninfo.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/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 \
+ C:/wxWidgets-3.1.0/include/wx/settings.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/nonownedwnd.h \
+ C:/wxWidgets-3.1.0/include/wx/iconbndl.h \
+ C:/wxWidgets-3.1.0/include/wx/icon.h \
+ C:/wxWidgets-3.1.0/include/wx/iconloc.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/icon.h \
+ C:/wxWidgets-3.1.0/include/wx/weakref.h \
+ C:/wxWidgets-3.1.0/include/wx/meta/int2type.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/toplevel.h \
+ C:/wxWidgets-3.1.0/include/wx/containr.h \
+ C:/wxWidgets-3.1.0/include/wx/sharedptr.h \
+ C:/wxWidgets-3.1.0/include/wx/atomic.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/wrapwin.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/dialog.h \
+ C:/wxWidgets-3.1.0/include/wx/panel.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 Element.h \
+ C:/wxWidgets-3.1.0/include/wx/geometry.h
Line.h:
+
+C:/wxWidgets-3.1.0/include/wx/msgdlg.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:
+
+C:/wxWidgets-3.1.0/lib/gcc_dll/mswu/wx/setup.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/libraries.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/gccpriv.h:
+
+C:/wxWidgets-3.1.0/include/wx/chkconf.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/chkconf.h:
+
+C:/wxWidgets-3.1.0/include/wx/version.h:
+
+C:/wxWidgets-3.1.0/include/wx/cpp.h:
+
+C:/wxWidgets-3.1.0/include/wx/dlimpexp.h:
+
+C:/wxWidgets-3.1.0/include/wx/debug.h:
+
+C:/wxWidgets-3.1.0/include/wx/chartype.h:
+
+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:
+
+C:/wxWidgets-3.1.0/include/wx/strconv.h:
+
+C:/wxWidgets-3.1.0/include/wx/buffer.h:
+
+C:/wxWidgets-3.1.0/include/wx/fontenc.h:
+
+C:/wxWidgets-3.1.0/include/wx/unichar.h:
+
+C:/wxWidgets-3.1.0/include/wx/stringimpl.h:
+
+C:/wxWidgets-3.1.0/include/wx/beforestd.h:
+
+C:/wxWidgets-3.1.0/include/wx/afterstd.h:
+
+C:/wxWidgets-3.1.0/include/wx/stringops.h:
+
+C:/wxWidgets-3.1.0/include/wx/iosfwrap.h:
+
+C:/wxWidgets-3.1.0/include/wx/msgout.h:
+
+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/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/list.h:
+
+C:/wxWidgets-3.1.0/include/wx/vector.h:
+
+C:/wxWidgets-3.1.0/include/wx/scopeguard.h:
+
+C:/wxWidgets-3.1.0/include/wx/except.h:
+
+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/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/filefn.h:
+
+C:/wxWidgets-3.1.0/include/wx/arrstr.h:
+
+C:/wxWidgets-3.1.0/include/wx/versioninfo.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/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:
+
+C:/wxWidgets-3.1.0/include/wx/settings.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/nonownedwnd.h:
+
+C:/wxWidgets-3.1.0/include/wx/iconbndl.h:
+
+C:/wxWidgets-3.1.0/include/wx/icon.h:
+
+C:/wxWidgets-3.1.0/include/wx/iconloc.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/icon.h:
+
+C:/wxWidgets-3.1.0/include/wx/weakref.h:
+
+C:/wxWidgets-3.1.0/include/wx/meta/int2type.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/toplevel.h:
+
+C:/wxWidgets-3.1.0/include/wx/containr.h:
+
+C:/wxWidgets-3.1.0/include/wx/sharedptr.h:
+
+C:/wxWidgets-3.1.0/include/wx/atomic.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/wrapwin.h:
+
+C:/wxWidgets-3.1.0/include/wx/msw/dialog.h:
+
+C:/wxWidgets-3.1.0/include/wx/panel.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:
+
+Element.h:
+
+C:/wxWidgets-3.1.0/include/wx/geometry.h:
diff --git a/Project/Release/MainFrame.cpp.o b/Project/Release/MainFrame.cpp.o
index 8d43ca7..6701a43 100644
--- a/Project/Release/MainFrame.cpp.o
+++ b/Project/Release/MainFrame.cpp.o
Binary files differ
diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe
index 837fa40..0135e56 100644
--- a/Project/Release/PSP-UFU.exe
+++ b/Project/Release/PSP-UFU.exe
Binary files differ
diff --git a/Project/Release/Workspace.cpp.o b/Project/Release/Workspace.cpp.o
index 0ddf120..4f94218 100644
--- a/Project/Release/Workspace.cpp.o
+++ b/Project/Release/Workspace.cpp.o
Binary files differ
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp
index 107d859..2bfeeac 100644
--- a/Project/Workspace.cpp
+++ b/Project/Workspace.cpp
@@ -58,12 +58,11 @@ Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar) :
Workspace::~Workspace()
{
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
- if(!(*it)) delete *it;
- it++;
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ if(*it) delete *it;
}
- if(!m_camera) delete m_camera;
+ m_elementList.clear();
+ if(m_camera) delete m_camera;
}
void Workspace::OnPaint(wxPaintEvent& event)
@@ -79,11 +78,9 @@ void Workspace::OnPaint(wxPaintEvent& event)
// Draw
// Elements
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
element->Draw(m_camera->GetTranslation(), m_camera->GetScale());
- it++;
}
// Selection rectangle
@@ -136,13 +133,31 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
{
bool foundElement = false;
if(m_mode == MODE_INSERT) {
- m_mode = MODE_EDIT;
+ // Too confuse...
+ Element* newElement = *(m_elementList.end() - 1);
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
+ Element* element = *it;
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ if(typeid(*element) == typeid(Bus)) {
+ element->SetSelected();
+ foundElement = true;
+ if(newElement->AddParent(element, m_camera->ScreenToWorld(event.GetPosition()))) {
+ m_mode = MODE_EDIT;
+ }
+ }
+ }
+ }
+ if(!foundElement) {
+ if(typeid(*newElement) == typeid(Line)) {
+ newElement->AddPoint(m_camera->ScreenToWorld(event.GetPosition()));
+ }
+ }
+ foundElement = true;
}
else
{
bool clickPickbox = false;
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
element->ResetPickboxes(); // Reset pickbox state.
element->StartMove(m_camera->ScreenToWorld(event.GetPosition()));
@@ -162,9 +177,9 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
m_mode = MODE_MOVE_ELEMENT;
}
}
- it++;
}
}
+
if(!foundElement) {
m_mode = MODE_SELECTION_RECT;
m_startSelRect = m_camera->ScreenToWorld(event.GetPosition());
@@ -178,8 +193,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
void Workspace::OnLeftClickUp(wxMouseEvent& event)
{
bool foundPickbox = false;
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(m_mode == MODE_SELECTION_RECT) {
@@ -208,14 +222,14 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
element->ShowPickbox(false);
}
}
-
- it++;
}
if(!foundPickbox) {
SetCursor(wxCURSOR_ARROW);
}
- m_mode = MODE_EDIT;
+ if(m_mode != MODE_INSERT) {
+ m_mode = MODE_EDIT;
+ }
m_selectionRect = wxRect2DDouble(0, 0, 0, 0);
Redraw();
UpdateStatusBar();
@@ -227,9 +241,10 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
{
case MODE_INSERT:
{
- std::vector<Element*>::iterator it = m_elementList.end() - 1;
- Element* element = *it;
- element->Insert(NULL, m_camera->ScreenToWorld(event.GetPosition()));
+ Element* newElement = *(m_elementList.end() - 1);
+ if(typeid(*newElement) == typeid(Bus)) {
+ newElement->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
+ }
Redraw();
}
break;
@@ -245,8 +260,7 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
{
bool foundPickbox = false;
bool redraw = false;
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(element->IsSelected()) {
if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
@@ -270,7 +284,6 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
SetCursor(wxCURSOR_ARROW);
}
}
- it++;
}
if(redraw) Redraw();
}
@@ -278,28 +291,24 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
case MODE_MOVE_PICKBOX:
{
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ 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();
}
- it++;
}
}
break;
case MODE_MOVE_ELEMENT:
{
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(element->IsSelected()) {
element->Move(m_camera->ScreenToWorld(event.GetPosition()));
Redraw();
}
- it++;
}
}
break;
@@ -347,7 +356,9 @@ void Workspace::OnMiddleDown(wxMouseEvent& event)
}
void Workspace::OnMiddleUp(wxMouseEvent& event)
{
- m_mode = MODE_EDIT;
+ if(m_mode != MODE_INSERT) {
+ m_mode = MODE_EDIT;
+ }
UpdateStatusBar();
}
void Workspace::OnScroll(wxMouseEvent& event)
@@ -378,13 +389,11 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
break;
case 'R': // Rotate the selected elements.
{
- std::vector<Element*>::iterator it = m_elementList.begin();
- while(it != m_elementList.end()) {
+ for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(element->IsSelected()) {
element->Rotate();
}
- it++;
}
Redraw();
}