Salome HOME
72725819b07de9103f4bd4ab88800adad9bde9bc
[modules/geom.git] / src / GEOMGUI / GeometryGUI_PartitionDlg.h
1 //  GEOM GEOMGUI : GUI for Geometry component
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   : GeometryGUI_PartitionDlg.h
25 //  Author : Lucien PIGNOLONI
26 //  Module : GEOM
27 //  $Header$
28
29 #ifndef DIALOGBOX_PARTITION_H
30 #define DIALOGBOX_PARTITION_H
31
32 #include "SALOME_Selection.h"
33 #include "GEOM_ShapeTypeFilter.hxx"
34
35 #include <qdialog.h>
36
37 class QButtonGroup;
38 class QGroupBox;
39 class QLabel;
40 class QLineEdit;
41 class QPushButton;
42 class QRadioButton;
43 class QComboBox;
44 class GeometryGUI;
45
46
47 //=================================================================================
48 // class    : GeometryGUI_PartitionDlg
49 // purpose  :
50 //=================================================================================
51 class GeometryGUI_PartitionDlg : public QDialog
52
53     Q_OBJECT
54
55 public:
56     GeometryGUI_PartitionDlg( QWidget* parent = 0, const char* name = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
57     ~GeometryGUI_PartitionDlg();
58
59 private:
60
61     void Init( SALOME_Selection* Sel ) ;
62     void closeEvent( QCloseEvent* e ) ;
63     void enterEvent ( QEvent * ) ;             /* Mouse enter the QWidget */
64
65     GEOM::GEOM_Gen_var myGeom ;                /* Current Geom object */
66     GeometryGUI*       myGeomGUI ;             /* Current GeomGUI object */
67     SALOME_Selection*  mySelection ;           /* User shape selection */
68
69     GEOM::GEOM_Gen::ListOfIOR  myListShapes ;
70     GEOM::GEOM_Gen::ListOfIOR  myListTools ;
71     GEOM::GEOM_Gen::ListOfIOR  myListRemoveInside ;
72     GEOM::GEOM_Gen::ListOfIOR  myListKeepInside ;
73
74     bool                       myOkListShapes ;        /* to check when argument is defined */
75     bool                       myOkListTools ;         /* to check when argument is defined */
76     bool                       myOkKeepShape ;         /* to check when argument is defined */
77     bool                       myOkRemoveShape ;       /* to check when argument is defined */
78     int                        myLimit;
79     QLineEdit*                 myEditCurrentArgument;  /* Current LineEdit */    
80
81     /* common buttons */
82     QGroupBox*     GroupButtons;
83     QPushButton*   buttonOk;
84     QPushButton*   buttonCancel;
85     QPushButton*   buttonApply;
86
87     /* constructor radiobuttons */
88     QButtonGroup*  GroupConstructors;
89     QRadioButton*  Constructor1;
90
91     /* Arguments group */
92     QGroupBox*     GroupC1;
93     QLineEdit*     LineEditC1A1;
94     QLabel*        TextLabelC1A1;
95     QPushButton*   SelectButtonC1A1;
96     QLineEdit*     LineEditC1A2;
97     QLabel*        TextLabelC1A2;
98     QPushButton*   SelectButtonC1A2;
99
100     /* limit */
101     QComboBox*     ComboBox1;
102     QLabel*        TextLabelComboBox1;
103
104     /* Keep Inside and Remove Inside feilds */
105     QGroupBox*     GroupC2;
106     QLineEdit*     LineEditC2A1;
107     QLabel*        TextLabelC2A1;
108     QPushButton*   SelectButtonC2A1;
109     QLineEdit*     LineEditC2A2;
110     QLabel*        TextLabelC2A2;
111     QPushButton*   SelectButtonC2A2;
112
113 private slots:
114
115     //void ConstructorsClicked(int constructorId);
116     void ClickOnOk();
117     void ClickOnCancel();
118     void ClickOnApply();
119     void SetEditCurrentArgument() ;
120     void LineEditReturnPressed() ;
121     void SelectionIntoArgument() ;
122     void DeactivateActiveDialog() ;
123     void ActivateThisDialog() ;
124     void ComboTextChanged() ;
125 };
126
127 #endif // DIALOGBOX_PARTITION_H