diff options
Diffstat (limited to 'Project')
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 Binary files differindex a09f636..8ed6829 100644 --- a/Project/Release/Bus.cpp.o +++ b/Project/Release/Bus.cpp.o diff --git a/Project/Release/Element.cpp.o b/Project/Release/Element.cpp.o Binary files differindex 9556286..860759e 100644 --- a/Project/Release/Element.cpp.o +++ b/Project/Release/Element.cpp.o diff --git a/Project/Release/MainFrame.cpp.o b/Project/Release/MainFrame.cpp.o Binary files differindex c262e98..70680c4 100644 --- a/Project/Release/MainFrame.cpp.o +++ b/Project/Release/MainFrame.cpp.o diff --git a/Project/Release/MouseEventsHandler.cpp.o b/Project/Release/MouseEventsHandler.cpp.o Binary files differdeleted file mode 100644 index d93a2ad..0000000 --- a/Project/Release/MouseEventsHandler.cpp.o +++ /dev/null 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 Binary files differindex 2b91721..7ddd459 100644 --- a/Project/Release/PSP-UFU.exe +++ b/Project/Release/PSP-UFU.exe diff --git a/Project/Release/Workspace.cpp.o b/Project/Release/Workspace.cpp.o Binary files differindex e75d6b3..093cc4f 100644 --- a/Project/Release/Workspace.cpp.o +++ b/Project/Release/Workspace.cpp.o 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 Binary files differindex 8265343..4462b10 100644 --- a/Project/Release/WorkspaceBase.cpp.o +++ b/Project/Release/WorkspaceBase.cpp.o 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; } |