Salome HOME
refs #682, #684 - #686: create icons for land cover map operations.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.h
index 264adbd58535eb9546090a3bb73d27c51f0543f0..99aa175ced8d12252890a750a76b02fa0c649292 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // 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.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #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>
-
-class SUIT_ViewManager;
-
-class HYDROGUI_DataModel;
-class HYDROGUI_Module;
-class HYDROGUI_Prs;
+#include <HYDROData_Entity.h>
+#include <QString>
 
+class TCollection_AsciiString;
+class Handle_HYDROData_Document;
+class Handle_Image_PixMap;
+class Handle_TCollection_HAsciiString;
+class Handle_TCollection_HExtendedString;
 class QDockWidget;
+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 Encode the Lambert93 coordinates to the absolute double value
-   */
-  static void                     LambertToDouble( const int theDegrees,
-                                                   const int theMinutes,
-                                                   const double theSeconds,
-                                                   double& theCoord );
-
-  /**
-   * \brief Decode the Lambert93 coordinates from the absolute double value
-   */
-  static void                     DoubleToLambert( const double theCoord,
-                                                   int& theDegrees,
-                                                   int& theMinutes,
-                                                   double& theSeconds );
-
-  /**
-   * \brief Check that the specified objects are equal.
-   * \param theObj1 first object
-   * \param theObj2 second object
-   */
-  static bool                     IsEqual( const Handle(HYDROData_Object)& theObj1,
-                                           const Handle(HYDROData_Object)& theObj2 );
-
-  /**
-   * \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 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_Object)& 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_Object) GetSelectedObject( HYDROGUI_Module* theModule );
-
-  /**
-   * \brief Get kind of objects the selected partition contains.
-   * \param theModule module
-   * \return object kind
-   */
-  static ObjectKind GetSelectedPartition( HYDROGUI_Module* theModule );
-
-  /**
-   * \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_Object) 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
-   * \return generated name
-   */
-  static QString                  GenerateObjectName( HYDROGUI_Module*   theModule,
-                                                      const QString&     thePrefix,
-                                                      const QStringList& theUsedNames = QStringList() );
-
-  /**
-   * \brief Get id of the active GraphicsView view.
-   * \param theModule module
-   * \return view id
-   */
-  static size_t                   GetActiveGraphicsViewId( 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 the list of references (recursively) for the specified image object
-   * \param theImage image data object
-   * \param theRefObjects list of reference objects
-   * \param theRefNames list of reference object names
-   */
-  static void                     GetObjectReferences( const Handle(HYDROData_Image)& theImage,
-                                                       HYDROData_SequenceOfObjects& theRefObjects,
-                                                       QStringList& theRefNames );
-
-  /**
-   * \brief Get the list of back-references for the specified object
-   * \param theModule module
-   * \param theObj data object
-   * \param theBackRefObjects list of back-reference objects
-   * \param theBackRefNames list of back-reference object names
-   */
-  static void                     GetObjectBackReferences( HYDROGUI_Module* theModule,
-                                                           const Handle(HYDROData_Object)& theObj,
-                                                           HYDROData_SequenceOfObjects& theBackRefObjects,
-                                                           QStringList& theBackRefNames );
-
-  /**
-   * \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 );
-
+  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 );
+  
+  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