Salome HOME
c1611cbf581ae01d3f5058d12e08b565c3462633
[modules/gui.git] / src / SVTK / SVTK_SetRotationPointDlg.h
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  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.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  SALOME VTKViewer : build VTK viewer into Salome desktop
23 //  File   : 
24 //  Author : 
25 //  Module : SALOME
26 //  $Header$
27 //
28 #ifndef SVTK_SETROTATIONPOINTDLG_H
29 #define SVTK_SETROTATIONPOINTDLG_H
30
31 #include "SVTK.h"
32
33 #include "SVTK_DialogBase.h"
34
35 #include <vtkSmartPointer.h>
36
37 class SVTK_ViewWindow;
38 class SVTK_RenderWindowInteractor;
39
40 class QtxAction;
41
42 class QLineEdit;
43 class QPushButton;
44 class QGroupBox;
45 class QCheckBox;
46
47 class vtkCallbackCommand;
48 class vtkObject;
49
50 class SVTK_EXPORT SVTK_SetRotationPointDlg : public SVTK_DialogBase
51 {
52   Q_OBJECT;
53
54 public:
55   SVTK_SetRotationPointDlg(QtxAction* theAction,
56                            SVTK_ViewWindow* theParent,
57                            const char* theName);
58
59   ~SVTK_SetRotationPointDlg();
60   
61   void addObserver();
62   bool IsFirstShown();
63   
64 protected:
65   SVTK_ViewWindow *myMainWindow;
66   SVTK_RenderWindowInteractor* myRWInteractor;
67   bool myIsObserverAdded;
68   
69   QCheckBox*    myIsBBCenter;
70
71   QGroupBox   * myGroupBoxSel;
72   QPushButton*  myToOrigin;
73   QPushButton*  mySelectPoint;
74
75   QGroupBox* myGroupBoxCoord;
76   QLineEdit* myX;
77   QLineEdit* myY;
78   QLineEdit* myZ;
79
80   void setEnabled(QGroupBox* theGrp, const bool theState);
81
82   //----------------------------------------------------------------------------
83   // Priority at which events are processed
84   vtkFloatingPointType myPriority;
85
86   // Used to process events
87   vtkSmartPointer<vtkCallbackCommand> myEventCallbackCommand;
88
89   // Description:
90   // Main process event method
91   static void ProcessEvents(vtkObject* object, 
92                             unsigned long event,
93                             void* clientdata, 
94                             void* calldata);
95
96 protected slots:
97   void onBBCenterChecked();
98   
99   void onToOrigin();
100   void onSelectPoint();
101
102   void onCoordChanged();
103
104   void onClickClose();
105
106 };
107
108 #endif // SVTK_SETROTATIONPOINTDLG_H