X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Viewer.h;h=8c2f13c9c4f470fc30c55074cd12972bdfa094e2;hb=329d73a7dbce38e38063ff41186be492e3529ab5;hp=9222827f36e5374df07e654678215aeb146b4182;hpb=ab453e930becb984af924565b2bf477628b91be0;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Viewer.h b/src/XGUI/XGUI_Viewer.h index 9222827f3..8c2f13c9c 100644 --- a/src/XGUI/XGUI_Viewer.h +++ b/src/XGUI/XGUI_Viewer.h @@ -3,10 +3,13 @@ #include "XGUI.h" #include "XGUI_Constants.h" +#include #include #include #include +#include +#include #include #include @@ -14,7 +17,6 @@ #include #include -#include class XGUI_MainWindow; class QMdiSubWindow; @@ -79,7 +81,14 @@ public: /// Enable or disable selectioon in the viewer // \param toEnable - true or false (enable or disable selection) - void setSelectionEnabled(bool toEnable) { mySelectionEnabled = toEnable; } + void setSelectionEnabled(bool toEnable); + + /// Returns true if multi-selection in the viewer is enabled + bool isMultiSelectionEnabled() const { return myMultiSelectionEnabled; } + + /// Enable or disable selectioon in the viewer + // \param toEnable - true or false (enable or disable selection) + void setMultiSelectionEnabled(bool toEnable); /// Select the object in 3D viewer. /// \param theIO - list objects to be selected @@ -116,6 +125,10 @@ public: //! Compute trihedron size dependent on 3d scene size bool computeTrihedronSize(double& theNewSize, double& theSize); + //! Add action to the viewer + void addAction(QAction* theAction) { myActions.append(theAction); } + + static void setHotButton(XGUI::InteractionStyle theInteractionStyle, XGUI::HotOperation theOper, Qt::KeyboardModifiers theState, Qt::MouseButtons theButton); static void getHotButton(XGUI::InteractionStyle theInteractionStyle, XGUI::HotOperation theOper, @@ -144,6 +157,8 @@ signals: void activated(XGUI_ViewWindow* theWindow); void selectionChanged(); + void contextMenuRequested(QContextMenuEvent*); + public slots: void onWindowMinimized(QMdiSubWindow*); void onWindowActivated(QMdiSubWindow*); @@ -153,6 +168,7 @@ private slots: void onMouseMove(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); void onMouseReleased(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); void onMousePressed(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); + //void onContextMenuRequested(QContextMenuEvent* theEvent); private: void addView(QMdiSubWindow* theView); @@ -160,6 +176,8 @@ private: /*! Removes the View from internal Views list.*/ void removeView(QMdiSubWindow* theView); + void updateViewsDrawMode() const; + private: XGUI_MainWindow* myMainWindow; @@ -182,6 +200,12 @@ private: /// Points used for selection management QPoint myStartPnt, myEndPnt, myCurPnt; + + /// A counter of created windows + int myWndIdCount; + + /// List of Viewer actions + QList myActions; }; #endif