Salome HOME
NRI : Explode OCC_LIBS.
[modules/geom.git] / src / GEOMGUI / GeometryGUI_ArcDlg.h
1 //  File      : GeometryGUI_ArcDlg.h
2 //  Created   :
3 //  Author    : Lucien PIGNOLONI
4 //  Project   : SALOME
5 //  Module    : GeometryGUI
6 //  Copyright : OPEN CASCADE
7 //  $Header$
8
9 #ifndef DIALOGBOX_ARC_H
10 #define DIALOGBOX_ARC_H
11
12 #include "SALOME_Selection.h"
13 #include "GEOM_ShapeTypeFilter.hxx"
14
15 #include <gp_Pnt.hxx>
16 #include <Precision.hxx>
17 #include <GC_MakeArcOfCircle.hxx>
18 #include <BRepBuilderAPI_MakeEdge.hxx>
19 #include <Geom_TrimmedCurve.hxx>
20
21 #include <qvariant.h>
22 #include <qdialog.h>
23
24 class QVBoxLayout; 
25 class QHBoxLayout; 
26 class QGridLayout; 
27 class QButtonGroup;
28 class QGroupBox;
29 class QLabel;
30 class QLineEdit;
31 class QPushButton;
32 class QRadioButton;
33 class GeometryGUI;
34
35 //=================================================================================
36 // class    : GeometryGUI_ArcDlg
37 // purpose  : 
38 //=================================================================================
39 class GeometryGUI_ArcDlg : public QDialog
40
41     Q_OBJECT
42
43 public:
44     GeometryGUI_ArcDlg( QWidget* parent = 0, const char* name = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
45     ~GeometryGUI_ArcDlg();
46
47 private :
48
49     GEOM::GEOM_Gen_var        myGeom ;                /* Current Geom object */
50     GeometryGUI*                 myGeomGUI ;             /* Current GeomGUI object */   
51     SALOME_Selection*            mySelection ;           /* User shape selection */
52     TopoDS_Shape                 mySimulationTopoDs;     /* Shape used for simulation display */
53     gp_Pnt                       myPoint1 ;
54     gp_Pnt                       myPoint2 ;
55     gp_Pnt                       myPoint3;
56
57     bool                         myOkPoint1 ;
58     bool                         myOkPoint2;
59     bool                         myOkPoint3;
60     QLineEdit*                   myEditCurrentArgument;  /* Current LineEdit */   
61     int                          myConstructorId ;       /* Current constructor id = radio button id */ 
62     Handle(GEOM_ShapeTypeFilter) myVertexFilter ;        /* Filter selection */
63
64     void closeEvent( QCloseEvent* e ) ;
65     void enterEvent( QEvent* e);
66     void Init( SALOME_Selection* Sel ) ;
67     void MakeArcSimulationAndDisplay() ;
68
69     QButtonGroup* GroupConstructors;
70     QRadioButton* Constructor1;
71     QGroupBox* GroupButtons;
72     QPushButton* buttonOk;
73     QPushButton* buttonCancel;
74     QPushButton* buttonApply;
75     QGroupBox* GroupC1;
76     QLineEdit* LineEditC1A1;
77     QPushButton* SelectButtonC1A1;
78     QLabel* TextLabelC1A1;
79     QLabel* TextLabelC1A2;
80     QPushButton* SelectButtonC1A2;
81     QLineEdit* LineEditC1A2;
82     QLabel* TextLabelC1A3;
83     QPushButton* SelectButtonC1A3;
84     QLineEdit* LineEditC1A3;
85
86 private slots:
87
88     void ConstructorsClicked(int constructorId);
89     void ClickOnOk();
90     void ClickOnCancel();
91     void ClickOnApply();
92     void SetEditCurrentArgument() ;
93     void SelectionIntoArgument() ;
94     void DeactivateActiveDialog() ;
95     void LineEditReturnPressed() ;
96     void ActivateThisDialog() ;
97
98 protected:
99     QGridLayout* GeometryGUI_ArcDlgLayout;
100     QGridLayout* GroupConstructorsLayout;
101     QGridLayout* GroupButtonsLayout;
102     QGridLayout* GroupC1Layout;
103 };
104
105 #endif // DIALOGBOX_ARC_H