Salome HOME
Problem fixed: it's impossible to delete object which are used for another object...
[modules/geom.git] / src / GEOMToolsGUI / GEOMToolsGUI.h
index 8296fdb69319ba0daac2ffd4724fc059a10dfe75..f5829ecfd924025e4d89d2d6a00c9af023fe90d9 100644 (file)
@@ -1,61 +1,94 @@
 //  GEOM GEOMGUI : GUI for Geometry component
 //
 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : GEOMBase_Tools.h
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : GEOMToolsGUI.h
 //  Author : Damien COQUERET
 //  Module : GEOM
-//  $Header
+//  $Header$
 
 #ifndef GEOMTOOLSGUI_H
 #define GEOMTOOLSGUI_H
 
-#include "GEOMBase.h"
+#include "GEOMGUI.h"
+#include "GEOM_Displayer.h"
+
+#include <SALOME_Prs.h>
+
+#include <SALOMEDSClient.hxx>
+#include <SALOME_ListIO.hxx>
+
+#include <CORBA.h>
+
+#include <qptrlist.h>
+
+#if defined WNT && defined WIN32 && defined SALOME_WNT_EXPORTS
+#define GEOMTOOLSGUI_WNT_EXPORT __declspec( dllexport )
+#else
+#define GEOMTOOLSGUI_WNT_EXPORT
+#endif
 
 //=================================================================================
-// class    : GEOMBase_Tools
+// class    : GEOMToolsGUI
 // purpose  :
 //=================================================================================
-class GEOMToolsGUI : public QObject
+class GEOMTOOLSGUI_WNT_EXPORT GEOMToolsGUI : public GEOMGUI
 {
-  Q_OBJECT /* for QT compatibility */
-
 public :
-  GEOMToolsGUI();
+  GEOMToolsGUI( GeometryGUI* ); // hide constructor to avoid direct creation
   ~GEOMToolsGUI();
 
-  static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+  bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent );
+
+private:
+  // Import and export topology methods
+  bool Import();
+  bool Export();
 
-  /* Import and export topology methods */
-  bool Import(int aState);
-  bool Export(int aState); 
-  
   void OnEditCopy();
   void OnEditDelete();
 
-  GEOMBase* myGeomBase;
-  GEOMContext* myGeomGUI;
-  GEOM::GEOM_Gen_var myGeom;   /* Current Geom Component */
+  void OnSettingsColor();
+  void OnSettingsIsos();
+  void OnSettingsStep();
+  void OnRename();
+  void OnCheckGeometry();
+
+  // Popup commands
+  void OnColor();
+  void OnTransparency();
+  void OnNbIsos();
+  void OnOpen();
+
+  // returns name of Module (Component) of given objects (usually selected objects)
+  // if objects belong to different Components, a NULL string is returned.
+  QString getParentComponent( _PTR( Study ), const SALOME_ListIO& );
+  QString getParentComponent( _PTR(SObject) );
 
+  // Recursive deletion of object with children
+  void RemoveObjectWithChildren(_PTR(SObject) obj,
+                               _PTR(Study) aStudy,
+                               QPtrList<SALOME_View> views,
+                               GEOM_Displayer* disp);
 };
 
 #endif