Salome HOME
refs #416: to store the open state of object browser items in the binary array
[modules/gui.git] / src / GLViewer / GLViewer_ViewPort2d.h
index de24386637d8da540979dfe9ed8f82b928a89ddd..d221a7a06c5b3d1234e8708c286e6e4a05789d82 100644 (file)
@@ -1,12 +1,33 @@
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//  Author : OPEN CASCADE
 // File:      GLViewer_ViewPort2d.h
 // Created:   November, 2004
-// Author:    OCC team
-// Copyright (C) CEA 2004
-
+//
 #ifndef GLVIEWER_VIEWPORT2D_H
 #define GLVIEWER_VIEWPORT2D_H
 
-#ifdef WNT
+#ifdef WIN32
 #include <windows.h>
 #endif
 
 #include "GLViewer_Widget.h"
 #include "GLViewer_Geom.h"
 
-#include <qgl.h>
-#include <qcolor.h>
-#include <qwidget.h>
-#include <qpaintdevice.h>
+#include <QtOpenGL>
+#include <QColor>
+#include <QPaintDevice>
 
-#ifdef WNT
+#ifdef WIN32
 #pragma warning( disable:4251 )
 #endif
 
@@ -32,6 +52,10 @@ class GLViewer_Object;
 class GLViewer_ViewFrame;
 
 class QtxToolTip;
+
+class QWidget;
+class QRubberBand;
+
 /*! 
  * Class GLViewer_ViewPort
  * 2D visualisation canvas of GLViewer
@@ -146,6 +170,7 @@ protected:
   virtual void           mouseMoveEvent( QMouseEvent *);
   virtual void           mousePressEvent( QMouseEvent *);
   virtual void           mouseReleaseEvent( QMouseEvent *);
+  virtual void           mouseDoubleClickEvent( QMouseEvent *);
   
   virtual void           paintEvent( QPaintEvent* );
   virtual void           resizeEvent( QResizeEvent* );
@@ -158,7 +183,7 @@ protected:
   virtual void           setCenter( int x, int y );
   //! Process zoming transformation with mouse tracking from ( x0, y0 ) to ( x1, y1 )
   virtual void           zoom( int x0, int y0, int x1, int y1 );
-  //! Transforms view by certangle
+  //! Transforms view by rectangle
   virtual void           fitRect( const QRect& );
   //! Transforms view by selection
   virtual void           fitSelect();
@@ -215,9 +240,13 @@ protected:
 
   //GLViewer_ObjectTip*    myObjectTip;
   QtxToolTip*            myObjectTip;
+  //! flag to block mouse release event just after mouse double-click
+  bool                   myIsMouseReleaseBlock;
+
+  QRubberBand*           myRectBand; //!< selection rectangle rubber band
 };
 
-#ifdef WNT
+#ifdef WIN32
 #pragma warning ( default:4251 )
 #endif