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