Salome HOME
NRI : First integration.
[modules/geom.git] / src / GEOMGUI / GeometryGUI_VectorDlg.h
1 //  File      : GeometryGUI_VectorDlg.h
2 //  Created   :
3 //  Author    : Lucien PIGNOLONI
4 //  Project   : SALOME
5 //  Module    : GeometryGUI
6 //  Copyright : OPEN CASCADE
7 //  $Header$
8
9
10 #ifndef DIALOGBOX_VECTOR_H
11 #define DIALOGBOX_VECTOR_H
12
13 #include "SALOME_Selection.h"
14 #include "GEOM_ShapeTypeFilter.hxx"
15 #include "GeometryGUI_SpinBox.h"
16
17 #include <gp_Pnt.hxx>
18 #include <TopoDS_Shape.hxx>
19 #include <TopoDS_Compound.hxx>
20 #include <BRepBuilderAPI_MakeEdge.hxx>
21 #include <BRep_Builder.hxx>
22 #include <Precision.hxx>
23
24 #include <qvariant.h>
25 #include <qdialog.h>
26
27 class QVBoxLayout;
28 class QHBoxLayout; 
29 class QGridLayout; 
30 class QButtonGroup;
31 class QFrame;
32 class QCheckBox;
33 class QGroupBox;
34 class QLineEdit;
35 class QPushButton;
36 class QRadioButton;
37 class QToolButton;
38 class QLabel;
39 class GeometryGUI;
40
41
42 //=================================================================================
43 // class    : GeometryGUI_VectorDlg
44 // purpose  :
45 //=================================================================================
46 class GeometryGUI_VectorDlg : public QDialog
47
48     Q_OBJECT
49
50 public:
51     GeometryGUI_VectorDlg( QWidget* parent = 0, const char* name = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
52     ~GeometryGUI_VectorDlg();
53     
54     bool AddArrowToSimulation( TopoDS_Shape& modifiedShape ) ;
55
56 private :
57     
58     void closeEvent( QCloseEvent* e ) ;
59     void enterEvent( QEvent* e);
60     void Init( SALOME_Selection* Sel ) ;                     /* mouse enter the QWidget */
61
62     GEOM::GEOM_Gen_var               myGeom ;                /* Current Geom object */
63     GeometryGUI*                     myGeomGUI ;             /* Current GeomGUI object */
64     TopoDS_Shape                     mySimulationTopoDs;     /* Shape used for simulation display */    
65     SALOME_Selection*                mySelection ;           /* User shape selection */    
66     gp_Pnt                           myPoint1 ;              /* Points containing the vector */   
67     gp_Pnt                           myPoint2 ;
68     double                           myDx ;
69     double                           myDy ;
70     double                           myDz ;
71     bool                             myOkPoint1 ;            /* Are true when myPoint is defined */    
72     bool                             myOkPoint2 ; 
73     QWidget*                         myEditCurrentArgument;  /* Current LineEdit or Spin box */   
74     int                              myConstructorId ;       /* Current constructor id = radio button id */    
75     Handle(GEOM_ShapeTypeFilter)     myVertexFilter;         /* Filter selection */
76     Handle(GEOM_ShapeTypeFilter)     myEdgeFilter;           /* Filter selection */
77
78     QGroupBox* GroupPoints;
79     QPushButton* SelectButtonPt1;
80     QPushButton* SelectButtonPt2;
81     QLabel* TextLabelPt1;
82     QLabel* TextLabelPt2;
83
84     QButtonGroup* GroupConstructors;
85     QRadioButton* Constructor2;
86     QRadioButton* Constructor1;
87
88     QGroupBox* GroupButtons;
89     QPushButton* buttonApply;
90     QPushButton* buttonOk;
91     QPushButton* buttonCancel;
92
93     QLineEdit* LineEditPt1;
94     QLineEdit* LineEditPt2;
95
96     QGroupBox* GroupCoordinates;
97
98     GeometryGUI_SpinBox*  SpinBox_DX ;
99     GeometryGUI_SpinBox*  SpinBox_DY ;
100     GeometryGUI_SpinBox*  SpinBox_DZ ;
101     QLabel* TextLabel_DZ;
102     QLabel* TextLabel_DX;
103     QLabel* TextLabel_DY;
104
105     QCheckBox* CheckBoxReverseVector;
106
107 private slots:
108
109     void ConstructorsClicked(int constructorId);
110     void ClickOnOk();
111     void ClickOnCancel();
112     void ClickOnApply();
113     void SetEditCurrentArgument() ;
114     void SelectionIntoArgument() ;
115     void LineEditReturnPressed() ;
116     void DeactivateActiveDialog() ;
117     void ActivateThisDialog() ;
118     void ReverseVector(int state) ;
119     void ValueChangedInSpinBox( double newValue ) ;
120
121 protected:
122
123     QGridLayout* GeometryGUI_VectorDlgLayout;
124     QGridLayout* GroupPointsLayout;
125     QGridLayout* GroupButtonsLayout;
126     QGridLayout* GroupConstructorsLayout;
127     QGridLayout* GroupCoordinatesLayout;
128
129 };
130
131 #endif // DIALOGBOX_VECTOR_H