Salome HOME
Problem fixed: it's impossible to delete object which are used for another object...
[modules/geom.git] / src / GEOMToolsGUI / GEOMToolsGUI.h
index 4927db5d5c58de4245d177129461488fbc5892a4..f5829ecfd924025e4d89d2d6a00c9af023fe90d9 100644 (file)
@@ -1,23 +1,23 @@
 //  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 
+//  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
 //
 //
 //
 #define GEOMTOOLSGUI_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    : GEOMToolsGUI
 // purpose  :
 //=================================================================================
-class GEOMToolsGUI : public GEOMGUI
+class GEOMTOOLSGUI_WNT_EXPORT GEOMToolsGUI : public GEOMGUI
 {
-protected:
-  GEOMToolsGUI(); // hide constructor to avoid direct creation
-
 public :
+  GEOMToolsGUI( GeometryGUI* ); // hide constructor to avoid direct creation
   ~GEOMToolsGUI();
 
-  // Get the only GEOMToolsGUI object
-  static GEOMToolsGUI* GetGEOMToolsGUI();
-
-  bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+  bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent );
 
 private:
-  /* Import and export topology methods */
+  // Import and export topology methods
   bool Import();
-  bool Export(); 
-  
+  bool Export();
+
   void OnEditCopy();
   void OnEditDelete();
 
@@ -61,7 +72,6 @@ private:
   void OnSettingsStep();
   void OnRename();
   void OnCheckGeometry();
-  void OnLoadScript();
 
   // Popup commands
   void OnColor();
@@ -69,8 +79,16 @@ private:
   void OnNbIsos();
   void OnOpen();
 
-private:
-  static GEOMToolsGUI* myGUIObject;        // the only GEOMToolsGUI object
+  // 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