]> SALOME platform Git repositories - modules/kernel.git/blob - src/OCCViewer/OCCViewer_ViewFrame.h
Salome HOME
46bdb4af754170a0601ebb7fb42302778c05d17e
[modules/kernel.git] / src / OCCViewer / OCCViewer_ViewFrame.h
1 //  SALOME OCCViewer : build OCC Viewer into Salome desktop
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : OCCViewer_ViewFrame.h
25 //  Author : Nicolas REJNERI
26 //  Module : SALOME
27 //  $Header$
28
29 #ifndef OCCViewer_ViewFrame_H
30 #define OCCViewer_ViewFrame_H
31
32 #include "OCCViewer_ViewPort.h"
33 #include "QAD_ViewFrame.h"
34 #include "SALOME_Selection.h"
35
36 class OCCViewer_Viewer3d;
37 class QAD_EXPORT OCCViewer_ViewFrame : public QAD_ViewFrame
38 {
39   Q_OBJECT
40
41  public:
42   OCCViewer_ViewFrame(QWidget* parent, const QString& title);
43   OCCViewer_ViewFrame(QWidget* parent = 0);
44   virtual ~OCCViewer_ViewFrame();
45
46  protected:
47   virtual void      initViewPort();
48   void              initialize();
49   void              cleanup();
50
51  public:
52   ViewType          getTypeView() const{ return VIEW_OCC;};
53   QWidget*          getViewWidget();
54   void              setViewPort(OCCViewer_ViewPort* view);
55   OCCViewer_ViewPort*       getViewPort() const;
56
57   void              setViewer(OCCViewer_Viewer3d* viewer);
58   OCCViewer_Viewer3d*     getViewer() const;
59
60   void              setVisible( bool isVisible = true );
61
62   void              setBackgroundColor( const QColor& );
63   QColor            backgroundColor() const;
64
65   void              setCursor( const QCursor& );
66   QCursor           cursor() const;
67
68   void              SetSelectionMode( Selection_Mode mode ) {};
69   
70   /*  popup management */
71   void              setPopupServer( QAD_Application* );
72
73
74   /*  interactive object management */
75   void              highlight( const Handle(SALOME_InteractiveObject)& IObject, 
76                                bool highlight, bool update = true );
77   void              unHighlightAll();
78   void              rename( const Handle(SALOME_InteractiveObject)& IObject,
79                             QString newName );
80   bool              isInViewer( const Handle(SALOME_InteractiveObject)& IObject );
81   bool              isVisible( const Handle(SALOME_InteractiveObject)& IObject );
82
83   /*  undo/redo management */
84   void              undo(SALOMEDS::Study_var aStudy,
85                          const char* StudyFrameEntry);
86   void              redo(SALOMEDS::Study_var aStudy,
87                          const char* StudyFrameEntry);
88
89   /* selection */
90   Handle(SALOME_InteractiveObject) FindIObject(const char* Entry);
91
92   /* display */         
93   void           Display(const Handle(SALOME_InteractiveObject)& IObject, bool update = true);
94   void           DisplayOnly(const Handle(SALOME_InteractiveObject)& IObject);
95   void           Erase(const Handle(SALOME_InteractiveObject)& IObject, bool update = true);
96   void           DisplayAll();
97   void           EraseAll();
98   void           Repaint();
99
100  protected:     
101   void              closeEvent(QCloseEvent* e);
102   void              resizeEvent(QResizeEvent* e);
103   void              keyPressEvent( QKeyEvent *k );
104
105  signals:
106   void              vfTransformationStarted ( OCCViewer_ViewPort::OperationType );
107   void              vfTransformationFinished( OCCViewer_ViewPort::OperationType );
108   void              vfDrawExternal(QPainter* painter);
109   void              vfMousePress(QMouseEvent*);
110   void              vfMouseRelease(QMouseEvent*);
111   void              vfMouseMove(QMouseEvent*);
112   void              vfMouseDoubleClick(QMouseEvent*);
113   void              vfKeyPress(QKeyEvent*);
114   void              vfKeyRelease(QKeyEvent*);
115   void              vfResize(QResizeEvent*);
116   void              vfPrint(QPaintEvent*);
117   void              vfViewClosing(QCloseEvent*);
118   void              vfMoved (QMoveEvent*);
119
120   public slots:
121
122   void           onViewPan(); 
123   void           onViewZoom();
124   void           onViewFitAll();
125   void           onViewFitArea();
126   void           onViewGlobalPan(); 
127   void           onViewRotate();
128   void           onViewReset();     
129   void           onViewFront(); 
130   void           onViewBack(); 
131   void           onViewRight(); 
132   void           onViewLeft();     
133   void           onViewBottom();
134   void           onViewTop();
135   void           onViewTrihedron(); 
136   void           onAdjustTrihedron();
137  
138  protected:
139   OCCViewer_Viewer3d*      myViewer;     // my owner
140   OCCViewer_ViewPort*      myViewPort; // child viewport
141 };
142
143 #endif
144