Salome HOME
refs #1501 p.2
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.h
index 24563aa1fdbf8198da965150ddacea87da4921e6..90756880a9589c23d1cf8e1fbf7635d33585ec86 100644 (file)
 #ifndef HYDROGUI_TOOL_H
 #define HYDROGUI_TOOL_H
 
-#include <HYDROData_Image.h>
-
-#include <GraphicsView_Defs.h>
-#include <GraphicsView_ViewPort.h>
-
-#include <TCollection_AsciiString.hxx>
-#include <TCollection_ExtendedString.hxx>
-#include <TCollection_HAsciiString.hxx>
-#include <TCollection_HExtendedString.hxx>
-
-#include <Image_PixMap.hxx>
-
-#ifndef LIGHT_MODE
-// IDL includes
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#endif
-
-class SUIT_ViewManager;
-class OCCViewer_ViewFrame;
-
-class HYDROGUI_DataModel;
-class HYDROGUI_Module;
-class HYDROGUI_Prs;
-
+#include <HYDROData_Entity.h>
+#include <QString>
+
+class TCollection_AsciiString;
+class HYDROData_Document;
+class Image_PixMap;
+class TCollection_HAsciiString;
+class TCollection_HExtendedString;
 class QDockWidget;
-class Handle(HYDROData_Document);
+class QImage;
+class QWidget;
 
-/**
- * \class HYDROGUI_Tool
- * \brief This class contains several useful methods.
- */
-class HYDROGUI_Tool
+namespace HYDROGUI_Tool
 {
-public:
-  /**
-   * \brief Convert \a TCollection_AsciiString to \a QString
-   */
-  static QString                                  ToQString( const TCollection_AsciiString& );
-
-  /**
-   * \brief Convert \a TCollection_ExtendedString to \a QString
-   */
-  static QString                                  ToQString( const TCollection_ExtendedString& );
-
-  /**
-   * \brief Convert \a Handle_TCollection_HAsciiString to \a QString
-   */
-  static QString                                  ToQString( const Handle(TCollection_HAsciiString)& );
-
-  /**
-   * \brief Convert \a Handle_TCollection_HExtendedString to \a QString
-   */
-  static QString                                  ToQString( const Handle(TCollection_HExtendedString)& );
-
-  /**
-   * \brief Convert \a QString to \a TCollection_AsciiString
-   */
-  static TCollection_AsciiString                  ToAsciiString( const QString& );
-
-  /**
-   * \brief Convert \a QString to \a TCollection_ExtendedString
-   */
-  static TCollection_ExtendedString               ToExtString( const QString& );
-
-  /**
-   * \brief Convert \a QString to \a Handle_TCollection_HAsciiString
-   */
-  static Handle(TCollection_HAsciiString)         ToHAsciiString( const QString& );
-
-  /**
-   * \brief Convert \a QString to \a Handle_TCollection_HExtendedString
-   */
-  static Handle(TCollection_HExtendedString)      ToHExtString( const QString& );
-
-  /**
-   * \brief Get the active study id.
-   * \return active study id
-   */
-  static int                      GetActiveStudyId();
-
-  /**
-   * \brief Get path to the temporary directory.
-   * \param theToCreate flag used to create a directory if it doesn't exist
-   * \return path
-   */
-  static QString                  GetTempDir( const bool theToCreate );
-
-  /**
-   * \brief Set the specified view manager to be active on the desktop.
-   * \param theModule module
-   * \param theViewManager view manager
-   */
-  static void                     SetActiveViewManager( HYDROGUI_Module* theModule,
-                                                        SUIT_ViewManager* theViewManager );
-
-  /**
-   * \brief Returns TRUE if object can be shown on the viewer.
-   * \param theObject data model object to check
-   * \param theViewerType viewer type
-   */
-  static bool                     IsObjectHasPresentation( const Handle(HYDROData_Entity)& theObject,
-                                                           const QString&                  theViewerType = "" );
-
-/**
-   * \brief Get sub-objects to build presentations.
-   * \param theModule module
-   * \param theSeq sequence of sub-objects
-   */
-  static void                     GetPrsSubObjects( HYDROGUI_Module* theModule,
-                                                    HYDROData_SequenceOfObjects& theSeq );
-
-  /**
-   * \brief Get presentation built for specified data object.
-   * \param theObj data object
-   * \param theObjects list of existing presentations
-   * \return presentation
-   */
-  static HYDROGUI_Prs*            GetPresentation( const Handle(HYDROData_Entity)& theObj,
-                                                   const GraphicsView_ObjectList& theObjects );
-
-  /**
-   * \brief Get list of HYDRO presentations from the specified viewport.
-   * \param theViewPort viewport
-   * \return list of HYDRO presentations
-   */
-  static GraphicsView_ObjectList  GetPrsList( GraphicsView_ViewPort* theViewPort );
-
-  /**
-   * \brief Get list of the selected data objects.
-   * \param theModule module
-   * \return list of the selected data objects
-   */
-  static HYDROData_SequenceOfObjects GetSelectedObjects( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get the selected data object (first in the selected list).
-   * \param theModule module
-   * \return selected data object
-   */
-  static Handle(HYDROData_Entity) GetSelectedObject( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get the geometry data objects from document.
-   * \param theModule module
-   * \return sequence of data objects
-   */
-  static HYDROData_SequenceOfObjects GetGeometryObjects( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get kind of objects the selected partition contains.
-   * \param theModule module
-   * \return object kind
-   */
-  static ObjectKind GetSelectedPartition( HYDROGUI_Module* theModule );
+  QString ToQString( const TCollection_AsciiString& );
+  QString ToQString( const TCollection_ExtendedString& );
+  QString ToQString( const Handle(TCollection_HAsciiString)& );
+  QString ToQString( const Handle(TCollection_HExtendedString)& );
+  TCollection_AsciiString ToAsciiString( const QString& );
+  TCollection_ExtendedString ToExtString( const QString& );
+  Handle(TCollection_HAsciiString) ToHAsciiString( const QString& );
+  Handle(TCollection_HExtendedString) ToHExtString( const QString& );
+
+  QString GetTempDir( const bool theToCreate );
+
+  QDockWidget* WindowDock( QWidget* wid );
+
+  QStringList FindExistingObjectsNames( const Handle(HYDROData_Document)& theDoc, 
+                                        const ObjectKind theObjectKind, 
+                                        bool isCheckValidProfile = false );
+  QString GetCoordinateString( const double theNumber, bool isInLocale );
   
-  /**
-   * \brief Find the data object with the specified name.
-   * \param theModule module
-   * \param theName name
-   * \param theObjectKind kind of object
-   * \return data object
-   */
-  static Handle(HYDROData_Entity) FindObjectByName( HYDROGUI_Module* theModule,
-                                                    const QString& theName,
-                                                    const ObjectKind theObjectKind = KIND_UNKNOWN );
-
-  /**
-   * \brief Find the data objects with the specified names.
-   * \param theModule module
-   * \param theNames list of names
-   * \param theObjectKind kind of object
-   * \return list of data objects
-   */
-  static HYDROData_SequenceOfObjects FindObjectsByNames( HYDROGUI_Module*   theModule,
-                                                         const QStringList& theNames,
-                                                         const ObjectKind   theObjectKind = KIND_UNKNOWN );
-
-  /**
-   * \brief Generate name for new object.
-   * \param theModule module
-   * \param thePrefix name prefix
-   * \param theUsedNames list of already used names
-   * \param theIsTryToUsePurePrefix if true - the prefix will be returned if the name equal to the prefix is not busy
-   * \return generated name
-   */
-  static QString                  GenerateObjectName( HYDROGUI_Module*   theModule,
-                                                      const QString&     thePrefix,
-                                                      const QStringList& theUsedNames = QStringList(),
-                                                      const bool         theIsTryToUsePurePrefix = false );
-
-  /**
-   * \brief Get id of the active view.
-   * \param theModule module
-   * \return view id
-   */
-  static size_t                   GetActiveViewId( HYDROGUI_Module* theModule,
-                                                   const QString&   theViewId = QString() );
-
-  /**
-   * \brief Get id of the active GraphicsView view.
-   * \param theModule module
-   * \return view id
-   */
-  static size_t                   GetActiveGraphicsViewId( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get id of the active OCC view.
-   * \param theModule module
-   * \return view id
-   */
-  static size_t                   GetActiveOCCViewId( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get list of ids of existing GraphicsView views.
-   * \param theModule module
-   * \return list of view ids
-   */
-  static QList<size_t>            GetGraphicsViewIdList( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get list of ids of existing OCC views.
-   * \param theModule module
-   * \return list of view ids
-   */
-  static QList<size_t>            GetOCCViewIdList( HYDROGUI_Module* theModule );
-
-
-  /**
-   * \brief Change OCC viewer action visibility.
-   * \param theViewFrame OCC viewer frame
-   * \param theActionId an action index, which state should be changed
-   * \param isShown the action visibility state
-   */
-  static void                     setOCCActionShown( OCCViewer_ViewFrame* theViewFrame,
-                                                     const int theActionId,
-                                                     const bool isShown );
-
-  /**
-   * \brief Change OCC viewer action visibility for all opened views.
-   * \param theActionId an action index, which state should be changed
-   * \param isShown the action visibility state
-   */
-  static void                     setOCCActionShown( HYDROGUI_Module* theModule,
-                                                     const int theActionId,
-                                                     const bool isShown );
-
-  /**
-   * \brief Get the list of references (recursively) for the specified data object
-   * \param theObj data object
-   * \param theRefObjects list of reference objects
-   * \param theRefNames list of reference object names
-   */
-  static void                     GetObjectReferences( const Handle(HYDROData_Entity)& theObj,
-                                                       HYDROData_SequenceOfObjects& theRefObjects,
-                                                       QStringList& theRefNames );
-
-  /**
-   * \brief Get the list of back-references for the specified object
-   * \param theModule module
-   * \param theObj data object
-   * \return list of back-reference objects
-   */
-  static HYDROData_SequenceOfObjects GetObjectBackReferences( HYDROGUI_Module*                theModule,
-                                                              const Handle(HYDROData_Entity)& theObj );
-
-  /**
-   * \brief Get the map of back-references for the specified list of objects
-   * \param theModule module
-   * \param theObjectNames names of objects
-   * \return map of back-reference objects
-   */
-  static QMap<QString,HYDROData_SequenceOfObjects> GetObjectsBackReferences( HYDROGUI_Module*   theModule,
-                                                                             const QStringList& theObjectNames );
-
-  /**
-   * \brief Get father dock window for widget 
-   * \param wid widget
-   * \return dock window
-   */
-  static QDockWidget*             WindowDock( QWidget* wid );
-
-  /**
-   * \brief Generates the filling color for intersected zone
-   * \param theModule module
-   * \param theZoneNames list of intersected zones
-   * \return result color
-   */
-  static QColor                   GenerateFillingColor( HYDROGUI_Module*   theModule,
-                                                        const QStringList& theZoneNames );
-
-  /**
-   * \brief Generates the filling color for intersected zone
-   * \param theDoc model document
-   * \param theZoneNames list of intersected zones
-   * \return result color
-   */
-  static QColor                   GenerateFillingColor( const Handle(HYDROData_Document)& theDoc,
-                                                        const QStringList&                theZoneNames );
-
-  /**
-   * \brief Find names of existing objects of the given kind.
-   * \param theDoc model document
-   * \param theObjectKind kind of object
-   * \return list of names
-   */
-  static QStringList              FindExistingObjectsNames( const Handle(HYDROData_Document)& theDoc, 
-                                                            const ObjectKind theObjectKind, 
-                                                            bool isCheckValidProfile = false );
-
-  /**
-   * \brief Converts coordinate value to string.
-   * \param theNumber coordinate as a number
-   * \return coordinate as a string
-   */
-  static QString                  GetCoordinateString( const double theNumber, bool isInLocale );
-
-  /**
-   * \brief Converts Qt QImage object to OCCT Image_PixMap object.
-   * \param theImage QImage object
-   * \return Image_PixMap object
-   */
-  static Handle(Image_PixMap)     Pixmap( const QImage& theImage );
-
-#ifndef LIGHT_MODE
-  /**
-   * \brief Get the selected GEOM objects.
-   * \param theModule the module
-   * \param theTypes the acceptable GEOM object types
-   * \return list of GEOM objects entries
-   */
-  static QStringList GetSelectedGeomObjects( HYDROGUI_Module* theModule,
-                                             QList<GEOM::shape_type> theTypes );
-#endif
-
-  /**
-   * \brief Delete the GEOM objects.
-   * \param theModule the module
-   * \param theEntries the GEOM objects entries
-   */
-  static void DeleteGeomObjects( HYDROGUI_Module* theModule, const QStringList& theEntries );
+  Handle(Image_PixMap) Pixmap( const QImage& theImage );
+
+  void GetObjectReferences( const Handle(HYDROData_Entity)& theObj,
+                            HYDROData_SequenceOfObjects& theRefObjects,
+                            QStringList& theRefNames );
+  HYDROData_SequenceOfObjects GetObjectBackReferences( const Handle(HYDROData_Entity)& theObj );
+  QMap<QString,HYDROData_SequenceOfObjects> GetObjectsBackReferences
+    ( const Handle(HYDROData_Document)& theDocument, const QStringList& theObjectNames );
 };
 
 #endif