Salome HOME
DCQ: prepare V2.0.0
[modules/geom.git] / src / RepairGUI / RepairGUI_SuppressHoleDlg.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   : RepairGUI_SuppressHoleDlg.h
25 //  Author : Lucien PIGNOLONI
26 //  Module : GEOM
27 //  $Header$
28
29 #ifndef GEOMETRYGUI_SUPPRESSHOLE_H
30 #define GEOMETRYGUI_SUPPRESSHOLE_H
31
32 #include "GEOMBase_Skeleton.h"
33 #include "DlgRef_1Sel1Check_QTD.h"
34 #include "DlgRef_1Sel3Check_QTD.h"
35
36 #include "RepairGUI.h"
37
38 //=================================================================================
39 // class    : RepairGUI_SuppressHoleDlg
40 // purpose  :
41 //=================================================================================
42 class RepairGUI_SuppressHoleDlg : public GEOMBase_Skeleton
43
44     Q_OBJECT
45       
46 public:
47     RepairGUI_SuppressHoleDlg(QWidget* parent = 0, const char* name = 0, RepairGUI* theRepairGUI = 0, SALOME_Selection* Sel = 0, Handle(AIS_InteractiveContext) ic = 0, bool modal = FALSE, WFlags fl = 0);
48     ~RepairGUI_SuppressHoleDlg();
49
50 private :
51     void Init(Handle(AIS_InteractiveContext) ic);
52     void enterEvent(QEvent* e);
53     void closeEvent(QCloseEvent* e);
54
55     void ResetStateOfDialog();
56     void ResetPartial();
57
58     RepairGUI* myRepairGUI;
59
60     int myConstructorId;   /* Current constructor id = radio button id */
61     
62     /* Define a list of indices of sub shapes selected in a local context */
63     bool GetIndexSubShapeSelected(const TopoDS_Shape& ShapeTopo, const int SubShapeType,
64                                   GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID,
65                                   Standard_Integer& aLocalContextId, bool& myUseLocalContext);
66
67     /* Return the face selected by user from the main shape and index in a ListOfSub */
68     TopoDS_Shape FaceFromList(const TopoDS_Shape& aShape,
69                               const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfSub);
70
71     /* Interactive and local context management see also : bool myUseLocalContext() */
72     Handle(AIS_InteractiveContext) myIC;   /* Interactive context */ 
73     Standard_Integer myLocalContextId;   /* identify a local context used by this method */
74     bool myUseLocalContext;   /* true when this method as opened a local context */
75
76     TopoDS_Shape myShape;   /* Main shape selected */
77     TopoDS_Shape myFace;    /* Face selected */
78
79     char* myShapeIOR;
80     bool myOkShape;
81
82     bool myOkSelectFace;   /* true = sub mode GEOM::FACE selection done */
83     bool myOkSelectWire;   /* true = sub mode GEOM::WIRE selection done (first wire)  */  
84
85     /* After selection contains index of face into myShape, wire into myFace, end face into myShape*/
86     GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdFace;
87     GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdWire;
88     GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdEndFace;
89   
90     DlgRef_1Sel3Check_QTD* Group1;
91     DlgRef_1Sel1Check_QTD* Group2;
92
93 private slots:
94     void ClickOnOk();
95     void ClickOnApply();
96     void ClickOnCancel();
97     void ActivateThisDialog();
98     void DeactivateActiveDialog();
99     void LineEditReturnPressed();
100     void SelectionIntoArgument();
101     void SetEditCurrentArgument();
102     void ConstructorsClicked(int constructorId);
103     void ActivateUserFaceSelection();
104     void ActivateUserWireSelection();
105     void ActivateUserEndFaceSelection();
106     
107     /* For the second constructor */
108     void ActivateUserWiresOnFaceShellSelection() ;
109
110 };
111
112 #endif // GEOMETRYGUI_SUPPRESSHOLE_H