X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Viewer.h;h=1eb2bd47ebee640af40ecba489046274a8a94629;hb=34a981282cec404955f9850aabf4015a97bcb57c;hp=23d66656a92bf3badab36e66d613ce5dd5630665;hpb=f3c113af79cf08e90316b2d27303a0a12d93fddc;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Viewer.h b/src/XGUI/XGUI_Viewer.h index 23d66656a..1eb2bd47e 100644 --- a/src/XGUI/XGUI_Viewer.h +++ b/src/XGUI/XGUI_Viewer.h @@ -74,6 +74,20 @@ public: /// \param theList - list objects to be selected void setObjectsSelected(const AIS_ListOfInteractive& theList); + /// Returns true if selection in the viewer is enabled + bool isSelectionEnabled() const { return mySelectionEnabled; } + + /// Enable or disable selectioon in the viewer + // \param toEnable - true or false (enable or disable selection) + 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 void setSelected(const Handle(AIS_InteractiveObject)& theIO) { myAISContext->SetSelected(theIO); } @@ -114,12 +128,6 @@ public: static void getHotButton(XGUI::InteractionStyle theInteractionStyle, XGUI::HotOperation theOper, Qt::KeyboardModifiers& theState, Qt::MouseButtons& theButton); - //! Sets the view projection - /// \param theX the X projection value - /// \param theY the Y projection value - /// \param theZ the Z projection value - void setViewProjection(double theX, double theY, double theZ); - typedef QMap StatesMap; typedef QMap ButtonsMap; @@ -142,8 +150,6 @@ signals: void keyRelease(XGUI_ViewWindow* theWindow, QKeyEvent* theEvent); void activated(XGUI_ViewWindow* theWindow); void selectionChanged(); - void mouseReleased(QPoint thePoint); - void mouseMoved(QPoint thePoint); public slots: void onWindowMinimized(QMdiSubWindow*); @@ -153,6 +159,7 @@ private slots: void onViewClosed(QMdiSubWindow*); void onMouseMove(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); void onMouseReleased(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); + void onMousePressed(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent); private: void addView(QMdiSubWindow* theView); @@ -160,6 +167,8 @@ private: /*! Removes the View from internal Views list.*/ void removeView(QMdiSubWindow* theView); + void updateViewsDrawMode() const; + private: XGUI_MainWindow* myMainWindow; @@ -179,6 +188,12 @@ private: QList myViews; QMdiSubWindow* myActiveView; + + /// Points used for selection management + QPoint myStartPnt, myEndPnt, myCurPnt; + + // A counter of created windows + int myWndIdCount; }; #endif