summaryrefslogtreecommitdiffstats
path: root/Project
diff options
context:
space:
mode:
Diffstat (limited to 'Project')
-rw-r--r--Project/Bus.cpp94
-rw-r--r--Project/Bus.h1
-rw-r--r--Project/Element.cpp28
-rw-r--r--Project/Element.h32
-rw-r--r--Project/MainFrame.cpp3
-rw-r--r--Project/MouseEventsHandler.cpp22
-rw-r--r--Project/MouseEventsHandler.h18
-rw-r--r--Project/Project.mk17
-rw-r--r--Project/Project.project2
-rw-r--r--Project/Project.txt2
-rw-r--r--Project/Release/Bus.cpp.obin9480 -> 12812 bytes
-rw-r--r--Project/Release/Element.cpp.obin3404 -> 4511 bytes
-rw-r--r--Project/Release/MainFrame.cpp.obin118857 -> 116477 bytes
-rw-r--r--Project/Release/MouseEventsHandler.cpp.obin63518 -> 0 bytes
-rw-r--r--Project/Release/MouseEventsHandler.cpp.o.d560
-rw-r--r--Project/Release/PSP-UFU.exebin3228851 -> 3235524 bytes
-rw-r--r--Project/Release/Workspace.cpp.obin65439 -> 80040 bytes
-rw-r--r--Project/Release/Workspace.cpp.o.d31
-rw-r--r--Project/Release/WorkspaceBase.cpp.obin92647 -> 96434 bytes
-rw-r--r--Project/Release/main.cpp.o.d33
-rw-r--r--Project/Workspace.cpp232
-rw-r--r--Project/Workspace.h56
-rw-r--r--Project/Workspace.wxcp28
-rw-r--r--Project/WorkspaceBase.cpp8
-rw-r--r--Project/WorkspaceBase.h4
25 files changed, 434 insertions, 737 deletions
diff --git a/Project/Bus.cpp b/Project/Bus.cpp
index b598f40..c188beb 100644
--- a/Project/Bus.cpp
+++ b/Project/Bus.cpp
@@ -1,19 +1,95 @@
#include "Bus.h"
-Bus::Bus(wxPoint2DDouble position) : Element()
+Bus::Bus(wxPoint2DDouble position) : Element()
{
- m_width = 100.0;
- m_height = 5.0;
- SetPosition(position);
+ m_width = 100.0;
+ m_height = 5.0;
+ SetPosition(position);
}
Bus::~Bus() {}
-
void Bus::Draw(wxPoint2DDouble translation, double scale) const
{
- glColor4d(0.0, 0.0, 1.0, 1.0);
- DrawRectangle(m_position, m_width, m_height);
+ // Draw selection (behind)
+ if(m_selected) {
+ // If the object is selected, the matrix is reset to remove scale effects applied to it, thus keeping the
+ // edges with fixed sizes for all zoom levels.
+ glPushMatrix();
+ glLoadIdentity();
+ // The matrix was reset, so we must use screen coordinates (WorldToScreen).
+ wxPoint2DDouble screenPt = WorldToScreen(translation, scale);
+ glTranslated(screenPt.m_x, screenPt.m_y, 0.0);
+ glRotated(m_angle, 0.0, 0.0, 1.0);
+ glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);
+
+ glColor4d(0.0, 0.5, 1.0, 0.5);
+
+ wxPoint2DDouble pts[4] = {WorldToScreen(translation, scale, -(m_width / 2.0), -(m_height / 2.0)) -
+ wxPoint2DDouble(m_borderSize, m_borderSize),
+ WorldToScreen(translation, scale, -(m_width / 2.0), (m_height / 2.0)) -
+ wxPoint2DDouble(m_borderSize, -m_borderSize),
+ WorldToScreen(translation, scale, (m_width / 2.0), (m_height / 2.0)) -
+ wxPoint2DDouble(-m_borderSize, -m_borderSize),
+ WorldToScreen(translation, scale, (m_width / 2.0), -(m_height / 2.0)) -
+ wxPoint2DDouble(-m_borderSize, m_borderSize)};
+ DrawRectangle(pts);
+ glPopMatrix();
+ }
+ // Draw element (middle)
+ // Push the current matrix on stack.
+ glPushMatrix();
+ // Rotate the matrix around the object position.
+ 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);
+
+ glColor4d(0.0, 0.3, 1.0, 1.0);
+ DrawRectangle(m_position, m_width, m_height);
+ // Pop the old matrix back.
+ glPopMatrix();
+
+ // Draw pickbox (above)
+ if(m_showPickbox) {
+ glPushMatrix();
+ glLoadIdentity();
+
+ wxPoint2DDouble screenPt = WorldToScreen(translation, scale);
+ glTranslated(screenPt.m_x, screenPt.m_y, 0.0);
+ glRotated(m_angle, 0.0, 0.0, 1.0);
+ glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);
+
+ wxPoint2DDouble pbPosition[2] = {WorldToScreen(translation, scale, m_width / 2.0),
+ WorldToScreen(translation, scale, -m_width / 2.0)};
+ DrawPickbox(pbPosition[0]);
+ DrawPickbox(pbPosition[1]);
+
+ glPopMatrix();
+ }
+}
+bool Bus::Contains(wxPoint2DDouble position) const
+{
+ wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);
+ return m_rect.Contains(ptR);
}
-bool Bus::Contains(wxPoint2DDouble position) const { return false; }
int Bus::PickboxContains(wxPoint2DDouble position) const { return 0; }
-wxCursor Bus::GetBestPickboxCursor() const { return wxCURSOR_ARROW; }
+wxCursor Bus::GetBestPickboxCursor() const
+{
+ double angle = m_angle;
+ while(angle >= 157.5) angle -= 180.0;
+
+ if(angle >= -22.5 && angle < 22.5)
+ return wxCursor(wxCURSOR_SIZEWE);
+ else if(angle >= 22.5 && angle < 67.5)
+ return wxCursor(wxCURSOR_SIZENWSE);
+ else if(angle >= 67.5 && angle < 112.5)
+ return wxCursor(wxCURSOR_SIZENS);
+ else if(angle >= 112.5 && angle < 157.5)
+ return wxCursor(wxCURSOR_SIZENESW);
+
+ return wxCursor(wxCURSOR_ARROW);
+}
void Bus::MovePickbox(wxPoint2DDouble position, int pickboxID) {}
+void Bus::Rotate()
+{
+ m_angle += 45.0;
+ if(m_angle >= 360.0) m_angle = 0.0;
+}
diff --git a/Project/Bus.h b/Project/Bus.h
index 5a63bec..80bb206 100644
--- a/Project/Bus.h
+++ b/Project/Bus.h
@@ -10,6 +10,7 @@ class Bus : public Element
~Bus();
virtual bool Contains(wxPoint2DDouble position) const;
virtual void Draw(wxPoint2DDouble translation, double scale) const;
+ virtual void Rotate();
virtual wxCursor GetBestPickboxCursor() const;
virtual void MovePickbox(wxPoint2DDouble position, int pickboxID);
virtual int PickboxContains(wxPoint2DDouble position) const;
diff --git a/Project/Element.cpp b/Project/Element.cpp
index e5304a0..984eb65 100644
--- a/Project/Element.cpp
+++ b/Project/Element.cpp
@@ -35,3 +35,31 @@ void Element::DrawRectangle(wxPoint2DDouble position, double width, double heigh
glVertex2d(position.m_x + width / 2.0, position.m_y - height / 2.0);
glEnd();
}
+
+void Element::DrawRectangle(wxPoint2DDouble* points, GLenum mode) const
+{
+ glBegin(mode); // TODO: GL_QUADS é obsoleto (OpenGL 3.0+), encontrar outra solução.
+ glVertex2d(points[0].m_x, points[0].m_y);
+ glVertex2d(points[1].m_x, points[1].m_y);
+ glVertex2d(points[2].m_x, points[2].m_y);
+ glVertex2d(points[3].m_x, points[3].m_y);
+ glEnd();
+}
+
+void Element::DrawPickbox(wxPoint2DDouble position) const
+{
+ glColor4d(1.0, 1.0, 1.0, 0.8);
+ DrawRectangle(position, 8.0, 8.0);
+ glColor4d(0.0, 0.0, 0.0, 1.0);
+ DrawRectangle(position, 8.0, 8.0, GL_LINE_LOOP);
+}
+
+wxPoint2DDouble Element::RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees) const
+{
+ double radAngle = angle;
+ if(degrees) radAngle = wxDegToRad(angle);
+ return wxPoint2DDouble(std::cos(radAngle) * (pointToRotate.m_x - m_position.m_x) -
+ std::sin(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_x,
+ std::sin(radAngle) * (pointToRotate.m_x - m_position.m_x) +
+ std::cos(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_y);
+}
diff --git a/Project/Element.h b/Project/Element.h
index 56b2621..7023704 100644
--- a/Project/Element.h
+++ b/Project/Element.h
@@ -7,18 +7,6 @@
class Element
{
- protected:
- wxRect2DDouble m_rect;
- wxPoint2DDouble m_position;
- double m_width = 0.0;
- double m_height = 0.0;
- double m_angle = 0.0;
- double m_borderSize = 2.0;
-
- bool m_selected = false;
- bool m_dragging = false;
- bool m_showPickbox = false;
-
public:
Element();
virtual ~Element();
@@ -41,20 +29,36 @@ class Element
double GetWidth() const { return m_width; }
double GetAngle() const { return m_angle; }
bool IsPickboxShown() const { return m_showPickbox; }
- // Métodos virtuais
+ // Pure-virtuals methods
virtual void Draw(wxPoint2DDouble translation, double scale) const = 0;
+ virtual void Rotate() = 0;
virtual bool Contains(wxPoint2DDouble position) const = 0;
virtual int PickboxContains(wxPoint2DDouble position) const = 0;
virtual void MovePickbox(wxPoint2DDouble position, int pickboxID) = 0;
virtual wxCursor GetBestPickboxCursor() const = 0;
- // Métodos gerais
+ // General methods
wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation,
double scale,
double offsetX = 0.0,
double offsetY = 0.0) const;
void DrawCircle(wxPoint2DDouble position, double radius, int numSegments, GLenum mode = GL_LINE_LOOP) const;
void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode = GL_QUADS) const;
+ void DrawRectangle(wxPoint2DDouble* points, GLenum mode = GL_QUADS) const;
+ void DrawPickbox(wxPoint2DDouble position) const;
+ wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees = true) const;
+
+ protected:
+ wxRect2DDouble m_rect;
+ wxPoint2DDouble m_position;
+ double m_width = 0.0;
+ double m_height = 0.0;
+ double m_angle = 0.0;
+ double m_borderSize = 2.0;
+
+ bool m_selected = false;
+ bool m_dragging = false;
+ bool m_showPickbox = false;
};
#endif // ELEMENT_H
diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp
index d2314e9..9769a1f 100644
--- a/Project/MainFrame.cpp
+++ b/Project/MainFrame.cpp
@@ -104,7 +104,7 @@ void MainFrame::OnNewClick(wxRibbonButtonBarEvent& event)
EnableCurrentProjectRibbon();
Workspace* newWorkspace =
- new Workspace(this, wxString::Format(_("New project %d"), m_projectNumber));
+ new Workspace(this, wxString::Format(_("New project %d"), m_projectNumber), this->GetStatusBar());
m_workspaceList.push_back(newWorkspace);
m_ribbonButtonBarCircuit->ToggleButton(ID_RIBBON_DISABLESOL, true);
@@ -201,7 +201,6 @@ void MainFrame::NotebookPageClosing(wxAuiNotebookEvent& event)
if(event.GetSelection() == m_auiNotebook->GetPageIndex(workspace)) {
//delete workspace; //Memory leak?
m_workspaceList.erase(it);
- wxMessageBox(wxString::Format("%d", m_workspaceList.size()));
break;
}
it++;
diff --git a/Project/MouseEventsHandler.cpp b/Project/MouseEventsHandler.cpp
deleted file mode 100644
index 049b9bd..0000000
--- a/Project/MouseEventsHandler.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "MouseEventsHandler.h"
-#include "Bus.h"
-
-MouseEventsHandler::MouseEventsHandler(Workspace* workspace) : Workspace()
-{
- m_workspace = workspace;
-}
-
-MouseEventsHandler::~MouseEventsHandler()
-{
-}
-
-void MouseEventsHandler::OnKeyDown(wxKeyEvent& event)
-{
- if(event.GetKeyCode() == 'B' && !m_workspace->IsInsertMode()) {
- Bus* newBus = new Bus(m_workspace->m_camera->ScreenToWorld(event.GetPosition()));
- m_workspace->GetElementList().push_back(newBus);
- m_workspace->SetInsertMode();
- m_workspace->Redraw();
- }
- event.Skip();
-}
diff --git a/Project/MouseEventsHandler.h b/Project/MouseEventsHandler.h
deleted file mode 100644
index 5b44084..0000000
--- a/Project/MouseEventsHandler.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef MOUSEEVENTSHANDLER_H
-#define MOUSEEVENTSHANDLER_H
-
-#include "Workspace.h"
-
-class MouseEventsHandler : public Workspace
-{
-private:
- Workspace* m_workspace;
-public:
- MouseEventsHandler(Workspace* workspace);
- ~MouseEventsHandler();
-
- virtual void OnKeyDown(wxKeyEvent& event);
-
-};
-
-#endif // MOUSEEVENTSHANDLER_H
diff --git a/Project/Project.mk b/Project/Project.mk
index 07e9471..21f4153 100644
--- a/Project/Project.mk
+++ b/Project/Project.mk
@@ -14,7 +14,7 @@ CurrentFilePath :=
CurrentFileFullPath :=
User :=Thales
Date :=02/08/2016
-CodeLitePath :="C:/Program Files (x86)/CodeLite"
+CodeLitePath :="C:/Program Files/CodeLite"
LinkerName :=C:/TDM-GCC-64/bin/g++.exe
SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC
ObjectSuffix :=.o
@@ -61,12 +61,11 @@ AS := C:/TDM-GCC-64/bin/as.exe
##
## User defined environment variables
##
-CodeLiteDir:=C:\Program Files (x86)\CodeLite
-UNIT_TEST_PP_SRC_DIR:=C:\UnitTest++-1.3
+CodeLiteDir:=C:\Program Files\CodeLite
WXWIN:=C:\wxWidgets-3.1.0
WXCFG:=gcc_dll\mswu
-Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/MouseEventsHandler.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) \
- $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix)
+Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) \
+ $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix)
@@ -147,14 +146,6 @@ $(IntermediateDirectory)/Workspace.cpp$(DependSuffix): Workspace.cpp
$(IntermediateDirectory)/Workspace.cpp$(PreprocessSuffix): Workspace.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Workspace.cpp$(PreprocessSuffix)Workspace.cpp
-$(IntermediateDirectory)/MouseEventsHandler.cpp$(ObjectSuffix): MouseEventsHandler.cpp $(IntermediateDirectory)/MouseEventsHandler.cpp$(DependSuffix)
- $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/Thales/Documents/GitHub/PSP/Project/MouseEventsHandler.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/MouseEventsHandler.cpp$(ObjectSuffix) $(IncludePath)
-$(IntermediateDirectory)/MouseEventsHandler.cpp$(DependSuffix): MouseEventsHandler.cpp
- @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/MouseEventsHandler.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/MouseEventsHandler.cpp$(DependSuffix) -MM MouseEventsHandler.cpp
-
-$(IntermediateDirectory)/MouseEventsHandler.cpp$(PreprocessSuffix): MouseEventsHandler.cpp
- $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/MouseEventsHandler.cpp$(PreprocessSuffix)MouseEventsHandler.cpp
-
$(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix): MainFrameBitmaps.cpp $(IntermediateDirectory)/MainFrameBitmaps.cpp$(DependSuffix)
$(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/Thales/Documents/GitHub/PSP/Project/MainFrameBitmaps.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/MainFrameBitmaps.cpp$(DependSuffix): MainFrameBitmaps.cpp
diff --git a/Project/Project.project b/Project/Project.project
index daff168..10a9413 100644
--- a/Project/Project.project
+++ b/Project/Project.project
@@ -18,7 +18,6 @@
<VirtualDirectory Name="controller">
<File Name="MainFrame.cpp"/>
<File Name="Workspace.cpp"/>
- <File Name="MouseEventsHandler.cpp"/>
</VirtualDirectory>
<File Name="main.cpp"/>
</VirtualDirectory>
@@ -33,7 +32,6 @@
<VirtualDirectory Name="controller">
<File Name="MainFrame.h"/>
<File Name="Workspace.h"/>
- <File Name="MouseEventsHandler.h"/>
</VirtualDirectory>
</VirtualDirectory>
<VirtualDirectory Name="resources">
diff --git a/Project/Project.txt b/Project/Project.txt
index 732479c..1ae634c 100644
--- a/Project/Project.txt
+++ b/Project/Project.txt
@@ -1 +1 @@
-./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/Element.cpp.o ./Release/Bus.cpp.o ./Release/ArtMetro.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/MouseEventsHandler.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o
+./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/Element.cpp.o ./Release/Bus.cpp.o ./Release/ArtMetro.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o
diff --git a/Project/Release/Bus.cpp.o b/Project/Release/Bus.cpp.o
index a09f636..8ed6829 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 9556286..860759e 100644
--- a/Project/Release/Element.cpp.o
+++ b/Project/Release/Element.cpp.o
Binary files differ
diff --git a/Project/Release/MainFrame.cpp.o b/Project/Release/MainFrame.cpp.o
index c262e98..70680c4 100644
--- a/Project/Release/MainFrame.cpp.o
+++ b/Project/Release/MainFrame.cpp.o
Binary files differ
diff --git a/Project/Release/MouseEventsHandler.cpp.o b/Project/Release/MouseEventsHandler.cpp.o
deleted file mode 100644
index d93a2ad..0000000
--- a/Project/Release/MouseEventsHandler.cpp.o
+++ /dev/null
Binary files differ
diff --git a/Project/Release/MouseEventsHandler.cpp.o.d b/Project/Release/MouseEventsHandler.cpp.o.d
deleted file mode 100644
index b99bd3d..0000000
--- a/Project/Release/MouseEventsHandler.cpp.o.d
+++ /dev/null
@@ -1,560 +0,0 @@
-Release/MouseEventsHandler.cpp.o: MouseEventsHandler.cpp \
- MouseEventsHandler.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 \
- 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/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/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/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 \
- 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/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/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/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/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 \
- 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 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 \
- C:/wxWidgets-3.1.0/include/wx/convauto.h \
- C:/wxWidgets-3.1.0/include/wx/artprov.h \
- C:/wxWidgets-3.1.0/include/wx/xrc/xmlreshandler.h \
- C:/wxWidgets-3.1.0/include/wx/imaglist.h \
- 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/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/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 Element.h
-
-MouseEventsHandler.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:
-
-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/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/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/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:
-
-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/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/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/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/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:
-
-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:
-
-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:
-
-C:/wxWidgets-3.1.0/include/wx/convauto.h:
-
-C:/wxWidgets-3.1.0/include/wx/artprov.h:
-
-C:/wxWidgets-3.1.0/include/wx/xrc/xmlreshandler.h:
-
-C:/wxWidgets-3.1.0/include/wx/imaglist.h:
-
-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/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/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:
-
-Element.h:
diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe
index 2b91721..7ddd459 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 e75d6b3..093cc4f 100644
--- a/Project/Release/Workspace.cpp.o
+++ b/Project/Release/Workspace.cpp.o
Binary files differ
diff --git a/Project/Release/Workspace.cpp.o.d b/Project/Release/Workspace.cpp.o.d
index 834fd1d..10db370 100644
--- a/Project/Release/Workspace.cpp.o.d
+++ b/Project/Release/Workspace.cpp.o.d
@@ -132,7 +132,13 @@ Release/Workspace.cpp.o: Workspace.cpp Workspace.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 WorkspaceBase.h \
+ C:/wxWidgets-3.1.0/include/wx/msw/msgdlg.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 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 \
@@ -164,8 +170,6 @@ Release/Workspace.cpp.o: Workspace.cpp Workspace.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 \
@@ -180,8 +184,7 @@ Release/Workspace.cpp.o: Workspace.cpp Workspace.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 MouseEventsHandler.h Bus.h \
- Element.h
+ C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h Bus.h Element.h
Workspace.h:
@@ -455,6 +458,18 @@ 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/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:
+
WorkspaceBase.h:
C:/wxWidgets-3.1.0/include/wx/xrc/xmlres.h:
@@ -519,10 +534,6 @@ 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:
@@ -553,8 +564,6 @@ C:/wxWidgets-3.1.0/include/wx/systhemectrl.h:
C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h:
-MouseEventsHandler.h:
-
Bus.h:
Element.h:
diff --git a/Project/Release/WorkspaceBase.cpp.o b/Project/Release/WorkspaceBase.cpp.o
index 8265343..4462b10 100644
--- a/Project/Release/WorkspaceBase.cpp.o
+++ b/Project/Release/WorkspaceBase.cpp.o
Binary files differ
diff --git a/Project/Release/main.cpp.o.d b/Project/Release/main.cpp.o.d
index 7b3279f..165c4a0 100644
--- a/Project/Release/main.cpp.o.d
+++ b/Project/Release/main.cpp.o.d
@@ -199,14 +199,7 @@ Release/main.cpp.o: main.cpp C:/wxWidgets-3.1.0/include/wx/app.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 ArtMetro.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/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/glcanvas.h \
- C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h Bus.h Element.h
+ C:/wxWidgets-3.1.0/include/wx/msw/treectrl.h
C:/wxWidgets-3.1.0/include/wx/app.h:
@@ -617,27 +610,3 @@ 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:
-
-ArtMetro.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/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/glcanvas.h:
-
-C:/wxWidgets-3.1.0/include/wx/msw/glcanvas.h:
-
-Bus.h:
-
-Element.h:
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp
index 367ca4a..e1e5fb2 100644
--- a/Project/Workspace.cpp
+++ b/Project/Workspace.cpp
@@ -1,6 +1,5 @@
#include "Workspace.h"
-#include "MouseEventsHandler.h"
#include "Bus.h"
// Camera
@@ -11,26 +10,47 @@ Camera::Camera()
}
Camera::~Camera() {}
-wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords)
+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);
}
-// Workspace
-Workspace::Workspace() : WorkspaceBase(NULL)
+void Camera::SetTranslation(wxPoint2DDouble screenPoint)
{
- m_glContext = new wxGLContext(m_glCanvas);
- m_camera = new Camera();
+ m_translation = screenPoint / m_scale - m_translationStartPt;
}
-Workspace::Workspace(wxWindow* parent, wxString name) : WorkspaceBase(parent)
+void Camera::SetScale(wxPoint2DDouble screenPoint, double delta)
+{
+ m_translation -= screenPoint * (1.0 - m_scale) / m_scale;
+
+ m_scale += delta;
+
+ // Limits: 5% - 300%
+ if(m_scale < 0.05) m_scale = 0.05;
+ if(m_scale > 3.0) m_scale = 3.0;
+
+ m_translation += screenPoint * (1.0 - m_scale) / m_scale;
+}
+
+wxPoint2DDouble Camera::GetMousePosition(bool worldCoords) const
+{
+ if(worldCoords) return ScreenToWorld(m_mousePosition);
+ return m_mousePosition;
+}
+
+// Workspace
+Workspace::Workspace() : WorkspaceBase(NULL) {}
+Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar) : WorkspaceBase(parent)
{
m_name = name;
- // m_workspaceID = workspaceID;
+ m_statusBar = statusBar;
m_glContext = new wxGLContext(m_glCanvas);
- m_mouseEventsHandler = new MouseEventsHandler(this);
m_camera = new Camera();
+
+ const int widths[4] = {-3, -1, 100, 100};
+ m_statusBar->SetStatusWidths(4, widths);
}
Workspace::~Workspace()
@@ -40,9 +60,8 @@ Workspace::~Workspace()
if(!(*it)) delete *it;
it++;
}
-
- delete m_camera;
- delete m_mouseEventsHandler;
+ // if(!m_statusBar) delete m_statusBar;
+ if(!m_camera) delete m_camera;
}
void Workspace::OnPaint(wxPaintEvent& event)
@@ -51,7 +70,11 @@ void Workspace::OnPaint(wxPaintEvent& event)
m_glContext->SetCurrent(*m_glCanvas);
SetViewport();
- // desenhar
+ // 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
+
+ // Draw
std::vector<Element*>::iterator it = m_elementList.begin();
while(it != m_elementList.end()) {
Element* element = *it;
@@ -59,7 +82,7 @@ void Workspace::OnPaint(wxPaintEvent& event)
it++;
}
- glFlush();
+ glFlush(); // Sends all pending information directly to the GPU.
m_glCanvas->SwapBuffers();
event.Skip();
}
@@ -78,7 +101,8 @@ void Workspace::SetViewport()
double width = m_glCanvas->GetSize().x - 1;
double height = m_glCanvas->GetSize().y - 1;
- glViewport(0, 0, width, height); // viewport cobrindo toda a tela
+ // Viewport fit the screen.
+ glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
@@ -90,29 +114,177 @@ void Workspace::SetViewport()
void Workspace::OnLeftClickDown(wxMouseEvent& event)
{
- if(m_insertMode) m_insertMode = false;
+ if(m_mode == MODE_INSERT) {
+ m_mode = MODE_EDIT;
+ }
+ else
+ {
+ std::vector<Element*>::iterator it = m_elementList.begin();
+ while(it != m_elementList.end()) {
+ Element* element = *it;
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ element->SetSelected();
+ element->ShowPickbox();
+ }
+ else if(!event.ControlDown())
+ {
+ element->SetSelected(false);
+ }
+ it++;
+ }
+ }
+ Redraw();
+ UpdateStatusBar();
event.Skip();
}
-/*
+void Workspace::OnLeftClickUp(wxMouseEvent& event) {}
void Workspace::OnKeyDown(wxKeyEvent& event)
{
- if(event.GetKeyCode() == 'B' && !m_insertMode) {
- Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition()));
- m_elementList.push_back(newBus);
- m_insertMode = true;
- Redraw();
- }
- event.Skip();
-}*/
+ 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();
+ }
+ }
+ break;
+ case 'R': // Rotate the selected elements.
+ {
+ std::vector<Element*>::iterator it = m_elementList.begin();
+ while(it != m_elementList.end()) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ element->Rotate();
+ }
+ it++;
+ }
+ Redraw();
+ }
+ break;
+ case 'B': // Insert a bus.
+ {
+ if(m_mode != MODE_INSERT) {
+ Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition()));
+ m_elementList.push_back(newBus);
+ m_mode = MODE_INSERT;
+ m_statusBar->SetStatusText(_("Insert Bus: Click to insert, ESC to cancel."));
+ Redraw();
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ UpdateStatusBar();
+ event.Skip();
+}
void Workspace::OnMouseMotion(wxMouseEvent& event)
{
- if(m_insertMode) {
- std::vector<Element*>::iterator it = m_elementList.end() - 1;
- Element* element = *it;
- element->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
- Redraw();
+ switch(m_mode)
+ {
+ case MODE_INSERT:
+ {
+ std::vector<Element*>::iterator it = m_elementList.end() - 1;
+ Element* element = *it;
+ element->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
+ Redraw();
+ }
+ break;
+
+ case MODE_DRAG:
+ {
+ m_camera->SetTranslation(event.GetPosition());
+ Redraw();
+ }
+ break;
+
+ case MODE_EDIT:
+ {
+ std::vector<Element*>::iterator it = m_elementList.begin();
+ while(it != m_elementList.end()) {
+ Element* element = *it;
+ if(element->IsSelected()) {
+ if(element->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
+ element->ShowPickbox();
+ }
+ else
+ {
+ element->ShowPickbox(false);
+ }
+ }
+ it++;
+ }
+ Redraw();
+ }
+ break;
+
+ default:
+ break;
}
+ m_camera->UpdateMousePosition(event.GetPosition());
+ UpdateStatusBar();
event.Skip();
}
+
+void Workspace::OnMiddleDown(wxMouseEvent& event)
+{
+ if(m_mode != MODE_INSERT) {
+ m_mode = MODE_DRAG;
+ m_camera->StartTranslation(m_camera->ScreenToWorld(event.GetPosition()));
+ }
+ UpdateStatusBar();
+}
+void Workspace::OnMiddleUp(wxMouseEvent& event)
+{
+ m_mode = MODE_EDIT;
+ UpdateStatusBar();
+}
+void Workspace::OnScroll(wxMouseEvent& event)
+{
+ if(event.GetWheelRotation() > 0)
+ m_camera->SetScale(event.GetPosition(), +0.05);
+ else
+ m_camera->SetScale(event.GetPosition(), -0.05);
+
+ UpdateStatusBar();
+ Redraw();
+}
+
+void Workspace::UpdateStatusBar()
+{
+ switch(m_mode)
+ {
+ case MODE_DRAG:
+ {
+ m_statusBar->SetStatusText(_("MODE: DRAG"), 1);
+ }
+ break;
+
+ case MODE_INSERT:
+ {
+ m_statusBar->SetStatusText(_("MODE: INSERT"), 1);
+ }
+ break;
+
+ 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(
+ wxString::Format(wxT("X: %.1f Y: %.1f"), m_camera->GetMousePosition().m_x, m_camera->GetMousePosition().m_y),
+ 3);
+}
diff --git a/Project/Workspace.h b/Project/Workspace.h
index ef837fb..e093105 100644
--- a/Project/Workspace.h
+++ b/Project/Workspace.h
@@ -5,69 +5,79 @@
#include <GL/glu.h>
#include <wx/dcclient.h>
#include <wx/msgdlg.h>
+#include <wx/statusbr.h>
#include "WorkspaceBase.h"
-class MouseEventsHandler;
+class Camera;
class Element;
-class Bus;
-
-//#include "MouseEventsHandler.h"
-//#include "Bus.h"
-class Camera;
+enum WorkspaceMode
+{
+ MODE_EDIT = 0,
+ MODE_DRAG,
+ MODE_INSERT
+};
class Workspace : public WorkspaceBase
{
protected:
+ virtual void OnLeftClickUp(wxMouseEvent& event);
+ virtual void OnScroll(wxMouseEvent& event);
+ virtual void OnMiddleDown(wxMouseEvent& event);
+ virtual void OnMiddleUp(wxMouseEvent& event);
virtual void OnMouseMotion(wxMouseEvent& event);
- virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); };
+ virtual void OnKeyDown(wxKeyEvent& event);
virtual void OnLeftClickDown(wxMouseEvent& event);
virtual void OnPaint(wxPaintEvent& event);
void SetViewport();
wxGLContext* m_glContext;
+ wxStatusBar* m_statusBar;
+ Camera* m_camera;
wxString m_name;
- bool m_insertMode = false;
- bool m_dragMode = false;
+ //bool m_insertMode = false;
+ //bool m_dragMode = false;
+ WorkspaceMode m_mode = MODE_EDIT;
std::vector<Element*> m_elementList;
+
+ void UpdateStatusBar();
public:
Workspace();
- Workspace(wxWindow* parent, wxString name = wxEmptyString);
+ Workspace(wxWindow* parent, wxString name = wxEmptyString, wxStatusBar* statusBar = NULL);
~Workspace();
- MouseEventsHandler* m_mouseEventsHandler;
- Camera* m_camera; // why public?
-
wxString GetName() const { return m_name; }
void SetName(wxString name) { m_name = name; }
- void SetDragMode(bool dragMode = true) { this->m_dragMode = dragMode; }
- void SetInsertMode(bool insertMode = true) { this->m_insertMode = insertMode; }
- bool IsDragMode() const { return m_dragMode; }
std::vector<Element*> GetElementList() { return m_elementList; }
- bool IsInsertMode() const { return m_insertMode; }
- void Redraw() { this->Refresh(); }
+ void Redraw() { m_glCanvas->Refresh(); }
};
class Camera
{
- private:
+ protected:
wxPoint2DDouble m_translation;
+ wxPoint2DDouble m_translationStartPt;
double m_scale;
+
+ wxPoint2DDouble m_mousePosition;
public:
Camera();
~Camera();
- void SetScale(double scale) { this->m_scale = scale; }
- void SetTranslation(const wxPoint2DDouble& translation) { this->m_translation = translation; }
+ void SetScale(wxPoint2DDouble screenPoint, double delta);
+ void SetTranslation(wxPoint2DDouble screenPoint);
+ void StartTranslation(wxPoint2DDouble startPoint) { this->m_translationStartPt = startPoint; }
+ void UpdateMousePosition(wxPoint2DDouble mousePosition) {this->m_mousePosition = mousePosition;}
double GetScale() const { return m_scale; }
- const wxPoint2DDouble GetTranslation() const { return m_translation; }
- wxPoint2DDouble ScreenToWorld(wxPoint2DDouble screenCoords);
+ wxPoint2DDouble GetTranslation() const { return m_translation; }
+ wxPoint2DDouble GetMousePosition(bool worldCoords = true) const;
+ wxPoint2DDouble ScreenToWorld(wxPoint2DDouble screenCoords) const;
};
#endif // WORKSPACE_H
diff --git a/Project/Workspace.wxcp b/Project/Workspace.wxcp
index 3f13f68..0ceb65b 100644
--- a/Project/Workspace.wxcp
+++ b/Project/Workspace.wxcp
@@ -292,6 +292,34 @@
"m_functionNameAndSignature": "OnMouseMotion(wxMouseEvent& event)",
"m_description": "Process a wxEVT_MOTION event",
"m_noBody": false
+ }, {
+ "m_eventName": "wxEVT_MIDDLE_DOWN",
+ "m_eventClass": "wxMouseEvent",
+ "m_eventHandler": "wxMouseEventHandler",
+ "m_functionNameAndSignature": "OnMiddleDown(wxMouseEvent& event)",
+ "m_description": "Process a wxEVT_MIDDLE_DOWN event",
+ "m_noBody": false
+ }, {
+ "m_eventName": "wxEVT_MIDDLE_UP",
+ "m_eventClass": "wxMouseEvent",
+ "m_eventHandler": "wxMouseEventHandler",
+ "m_functionNameAndSignature": "OnMiddleUp(wxMouseEvent& event)",
+ "m_description": "Process a wxEVT_MIDDLE_UP event",
+ "m_noBody": false
+ }, {
+ "m_eventName": "wxEVT_LEFT_UP",
+ "m_eventClass": "wxMouseEvent",
+ "m_eventHandler": "wxMouseEventHandler",
+ "m_functionNameAndSignature": "OnLeftClickUp(wxMouseEvent& event)",
+ "m_description": "Process a wxEVT_LEFT_UP event.",
+ "m_noBody": false
+ }, {
+ "m_eventName": "wxEVT_MOUSEWHEEL",
+ "m_eventClass": "wxMouseEvent",
+ "m_eventHandler": "wxMouseEventHandler",
+ "m_functionNameAndSignature": "OnScroll(wxMouseEvent& event)",
+ "m_description": "Process a wxEVT_MOUSEWHEEL event",
+ "m_noBody": false
}],
"m_children": []
}]
diff --git a/Project/WorkspaceBase.cpp b/Project/WorkspaceBase.cpp
index f43e6f4..7a63758 100644
--- a/Project/WorkspaceBase.cpp
+++ b/Project/WorkspaceBase.cpp
@@ -47,6 +47,10 @@ WorkspaceBase::WorkspaceBase(wxWindow* parent, wxWindowID id, const wxPoint& pos
m_glCanvas->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(WorkspaceBase::OnLeftClickDown), NULL, this);
m_glCanvas->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(WorkspaceBase::OnKeyDown), NULL, this);
m_glCanvas->Connect(wxEVT_MOTION, wxMouseEventHandler(WorkspaceBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(WorkspaceBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Connect(wxEVT_MIDDLE_UP, wxMouseEventHandler(WorkspaceBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(WorkspaceBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(WorkspaceBase::OnScroll), NULL, this);
}
@@ -56,5 +60,9 @@ WorkspaceBase::~WorkspaceBase()
m_glCanvas->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(WorkspaceBase::OnLeftClickDown), NULL, this);
m_glCanvas->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(WorkspaceBase::OnKeyDown), NULL, this);
m_glCanvas->Disconnect(wxEVT_MOTION, wxMouseEventHandler(WorkspaceBase::OnMouseMotion), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(WorkspaceBase::OnMiddleDown), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MIDDLE_UP, wxMouseEventHandler(WorkspaceBase::OnMiddleUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(WorkspaceBase::OnLeftClickUp), NULL, this);
+ m_glCanvas->Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(WorkspaceBase::OnScroll), NULL, this);
}
diff --git a/Project/WorkspaceBase.h b/Project/WorkspaceBase.h
index a73e8d3..ccd1fcb 100644
--- a/Project/WorkspaceBase.h
+++ b/Project/WorkspaceBase.h
@@ -41,6 +41,10 @@ protected:
virtual void OnLeftClickDown(wxMouseEvent& event) { event.Skip(); }
virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); }
virtual void OnMouseMotion(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleDown(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnMiddleUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnLeftClickUp(wxMouseEvent& event) { event.Skip(); }
+ virtual void OnScroll(wxMouseEvent& event) { event.Skip(); }
public:
wxGLCanvas* GetGlCanvas() { return m_glCanvas; }