Salome HOME
Merge changes from 'master' branch.
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / SalomePyQt.sip
index 813a9d71055c0f049f2b57a750df5c87badc70d0..6630c7a8a5877638c90432560007a20945db505d 100644 (file)
@@ -1,26 +1,62 @@
-//=============================================================================
-// File      : SalomePyQt.sip
-// Created   : 25/04/05
-// Author    : Vadim SANDLER
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
+// Copyright (C) 2007-2016  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
+//
+// 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, 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
+// 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   : SalomePyQt.sip
+// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
+//
 
 %Module SalomePyQt
 
-%Import qtmod.sip
+%Feature ENABLE_CORBA
+%Feature ENABLE_PLOT2D
+
+%Import QtCore/QtCoremod.sip
+%Import QtGui/QtGuimod.sip
+%If (Qt_5_0_0 -)
+%Import QtWidgets/QtWidgetsmod.sip
+%End
+%Import QtXml/QtXmlmod.sip
+
+%If (ENABLE_PLOT2D)
+%Include SalomePyQt_Plot2d.sip
+%End
+
+%ExportedHeaderCode
+#include <QtxAction.h>
+#include <QtxActionSet.h>
+#include <QtxActionGroup.h>
+#include <QtxTreeView.h>
+#include <SalomePyQt.h>
+%End
 
 class SALOME_Selection : QObject
 {
-%HeaderCode
+%TypeHeaderCode
 #include <SalomePyQt.h>
 %End
 
 public:
-  void Clear();
-  void ClearIObjects();
-  void ClearFilters();
+  void Clear() /ReleaseGIL/ ;
+  void ClearIObjects() /ReleaseGIL/ ;
+  void ClearFilters() /ReleaseGIL/ ;
 
 private:
   SALOME_Selection( QObject* /TransferThis/ );
@@ -39,96 +75,399 @@ enum MenuName {
   Help        = 7  
 };
 
-enum {
+enum WindowType {
   WT_ObjectBrowser,
   WT_PyConsole,
   WT_LogWindow,
+%If (ENABLE_CORBA)
+  WT_NoteBook,
+%End
   WT_User
 };
 
-class QtxAction : QAction
+enum PrefType { 
+  PT_Auto,
+  PT_Space,
+  PT_Bool, 
+  PT_Color,
+  PT_String, 
+  PT_Selector, 
+  PT_DblSpin, 
+  PT_IntSpin, 
+  PT_Double, 
+  PT_Integer, 
+  PT_GroupBox, 
+  PT_Tab, 
+  PT_Frame, 
+  PT_Font, 
+  PT_DirList, 
+  PT_File, 
+  PT_Slider,
+  PT_Shortcut,
+  PT_ShortcutTree,
+  PT_BiColor,
+  PT_Background,
+  PT_UserDefined
+};
+
+enum Orientation {
+  Horizontal = 0, 
+  Vertical   = 1  
+};
+
+enum Action {
+  MoveWidget   = 0, 
+  LeaveWidget  = 1, 
+  SplitAt      = 2  
+};
+
+class QtxAction : QWidgetAction
 {
 %TypeHeaderCode
 #include <QtxAction.h>
 %End
 
+%ConvertToSubClassCode
+    if ( qobject_cast<QtxAction*>( sipCpp ) )
+      sipClass = sipClass_QtxAction;
+    else
+      sipClass = NULL;
+%End
+
+public:
+  explicit QtxAction( QObject* /TransferThis/ = 0, bool = false );
+  QtxAction( const QString&, const QString&, int, QObject* /TransferThis/, bool = false );
+  QtxAction( const QString&, const QIcon&, const QString&, int, QObject* /TransferThis/, bool = false );
+  virtual ~QtxAction();
+
+private:
+  QtxAction( const QtxAction& );
+};
+
+class QtxActionSet : QtxAction
+{
+%TypeHeaderCode
+#include <QtxActionSet.h>
+%End
+
+%ConvertToSubClassCode
+    if ( qobject_cast<QtxActionSet*>( sipCpp ) )
+      sipClass = sipClass_QtxActionSet;
+    else
+      sipClass = NULL;
+%End
+
+public:
+  explicit QtxActionSet( QObject* /TransferThis/ = 0 );
+  virtual ~QtxActionSet();
+
+  QList<QAction*> actions() const;
+  void            setActions( const QList<QAction*>& );
+
+  void            insertActions( const QList<QAction*>&, const int = -1 );
+
+  int             insertAction( QAction*, const int id = -1, const int = -1 );
+  int             insertAction( const QString&, const int id = -1, const int = -1 );
+  int             insertAction( const QString&, const QIcon&, const int id = -1, const int = -1 );
+
+  void            removeAction( QAction* );
+  void            removeAction( const int );
+
+  void            clear();
+
+signals:
+  void            triggered( int );
+  void            triggered( QAction* );
+
+private:
+  QtxActionSet( const QtxActionSet& );
+};
+
+class QtxActionGroup : QtxActionSet
+{
+%TypeHeaderCode
+#include <QtxActionGroup.h>
+%End
+
+%ConvertToSubClassCode
+    if ( qobject_cast<QtxActionGroup*>( sipCpp ) )
+      sipClass = sipClass_QtxActionGroup;
+    else
+      sipClass = NULL;
+%End
+
+public:
+  explicit QtxActionGroup( QObject* /TransferThis/ = 0 );
+  QtxActionGroup( QObject* /TransferThis/, const bool );
+  virtual ~QtxActionGroup();
+
+  bool isExclusive() const;
+  bool usesDropDown() const;
+
+  void add( QAction* );
+
+public slots:
+  void setExclusive( const bool );
+  void setUsesDropDown( const bool );
+
+signals:
+  void selected( QAction* );
+
+private:
+  QtxActionGroup( const QtxActionGroup& );
+};
+
+class QtxTreeView : public QTreeView
+{
+%TypeHeaderCode
+#include <QtxTreeView.h>
+%End
+
+%ConvertToSubClassCode
+    if ( qobject_cast<QtxTreeView*>( sipCpp ) )
+      sipClass = sipClass_QtxTreeView;
+    else
+      sipClass = NULL;
+%End
+
+public:
+  explicit QtxTreeView( QWidget* /TransferThis/ = 0 );
+  QtxTreeView( const bool, QWidget* /TransferThis/ = 0  );
+  virtual ~QtxTreeView();
+
+signals:
+  void     sortingEnabled( bool );
+  void     selectionChanged();
+
 private:
-  QtxAction(const QtxAction &);
+  QtxTreeView( const QtxTreeView& );
+};
+
+class UserDefinedContent : public QWidget
+{
+%TypeHeaderCode
+#include <SalomePyQt.h>
+%End
+
+%ConvertToSubClassCode
+    if ( qobject_cast<UserDefinedContent*>( sipCpp ) )
+      sipClass = sipClass_UserDefinedContent;
+    else
+      sipClass = NULL;
+%End
+
+public:
+  explicit UserDefinedContent();
+
+  virtual void store();
+  virtual void retrieve();
+};
+
+enum VisibilityState 
+{
+  ShownState,
+  HiddenState,
+  UnpresentableState 
 };
 
 class SalomePyQt
 {
-%HeaderCode
+%TypeHeaderCode
 #include <SalomePyQt.h>
 %End
 
 public:
-  static QWidget*          getDesktop();
-  static QWidget*          getMainFrame();
-  static QMenuBar*         getMainMenuBar();
-  static QPopupMenu*       getPopupMenu( const MenuName );
-  static SALOME_Selection* getSelection() /Factory/;
-  static int               getStudyId();
-  static void              putInfo( const QString&, int = 0 );
-  static const QString     getActiveComponent();
-  static void              updateObjBrowser( int = 0, bool = true );
+/* KeepReference is necessary on method getDesktop with SIP >= 4.15.5 to avoid garbage collection of
+   the Python objects added to the desktop. This causes a small memory leak (the wrapper around desktop
+   object is never garbage collected) but since this object contains only references this is not
+   considered a big problem. With versions < 4.15, it seems that this reference was kept implicitly.
+   No proper solution was found for versions between 4.15 and 4.15.4 (included), so those versions
+   should not be used to compile GUI module.
+*/
+%If (SIP_4_15_5 - )
+  static QWidget*          getDesktop() /ReleaseGIL,KeepReference/ ;
+%End
+%If ( - SIP_4_15_5)
+  static QWidget*          getDesktop() /ReleaseGIL/ ;
+%End
+
+  static QWidget*          getMainFrame() /ReleaseGIL/ ;
+  static QMenuBar*         getMainMenuBar() /ReleaseGIL/ ;
+  static QMenu*            getPopupMenu( const MenuName ) /ReleaseGIL/ ;
+  static QMenu*            getPopupMenu( const QString& ) /ReleaseGIL/ ;
+  static QTreeView*        getObjectBrowser() /ReleaseGIL/ ;
+  static void              enableSelector() /ReleaseGIL/ ;
+  static void              disableSelector() /ReleaseGIL/ ;
+  static SALOME_Selection* getSelection() /Factory,ReleaseGIL/ ;
+  static void              putInfo( const QString&, const int = 0 ) /ReleaseGIL/ ;
+  static const QString     getActiveComponent() /ReleaseGIL/ ;
+  static SIP_PYOBJECT      getActivePythonModule() /ReleaseGIL/ ;
+  static bool              activateModule( const QString& ) /ReleaseGIL/ ;
+  static void              updateObjBrowser() /ReleaseGIL/ ;
+  
+  static bool              isModified() /ReleaseGIL/ ;
+  static void              setModified( bool ) /ReleaseGIL/ ;
+
+  static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool ) /ReleaseGIL/ ;
+  static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ;
+  static QString           getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ;
+                        
+  static void              createRoot() /ReleaseGIL/ ;
+  static QString           createObject( const QString& = QString("") )  /ReleaseGIL/ ;
+  static QString           createObject( const QString&,
+                                        const QString&,
+                                        const QString&,
+                                        const QString& = QString("") )  /ReleaseGIL/ ;
+
+  static void              setName(const QString& ,const QString& ) /ReleaseGIL/ ;
+  static void              setIcon(const QString& ,const QString& ) /ReleaseGIL/ ;
+  static void              setToolTip(const QString& ,const QString& ) /ReleaseGIL/ ;
+  static QString           getName(const QString& ) /ReleaseGIL/ ;
+  static QString           getToolTip(const QString& ) /ReleaseGIL/ ;
+
+  static void              setVisibilityState( const QString&, VisibilityState );
+  static VisibilityState   getVisibilityState( const QString& );
 
-  static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool );
-  static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& );
-  static QString           getExistingDirectory( QWidget*, const QString&, const QString& );
+  static void              setObjectPosition( const QString&, int );
+  static int               getObjectPosition( const QString& );
 
-  static void              helpContext( const QString&, const QString& );
+  static void              setColor( const QString&, const QColor& ) /ReleaseGIL/ ;
+  static QColor            getColor( const QString& ) /ReleaseGIL/ ;
 
-  static bool              dumpView( const QString& );
+  static void              setReference( const QString& ,const QString& ) /ReleaseGIL/ ; 
+  static QString           getReference( const QString& ) /ReleaseGIL/ ;
 
-  static int               defaultMenuGroup();
+  static void              removeObject(const QString&  )    /ReleaseGIL/ ;
+  static void              removeChildren(const QString& = QString("")  ) /ReleaseGIL/ ;
+  static void              removeChild(const QString& = QString("")  ) /ReleaseGIL/ ;
+  static QStringList       getChildren(const QString&=QString("") , const bool = false) /ReleaseGIL/ ;
 
-  static int               createTool( const QString& );
-  static int               createTool( const int,  const int,      int = -1 );
-  static int               createTool( const int,  const QString&, int = -1 );
-  static int               createTool( QtxAction*, const int,      int = -1, int = -1 );
-  static int               createTool( QtxAction*, const QString&, int = -1, int = -1 );
+  static QIcon             loadIcon( const QString&, const QString& ) /ReleaseGIL/ ;
+  static void              helpContext( const QString&, const QString& ) /ReleaseGIL/ ;
+
+  static bool              dumpView( const QString&, const int = 0 ) /ReleaseGIL/ ;
+
+  static int               defaultMenuGroup() /ReleaseGIL/ ;
+
+  static int               createTool( const QString&, const QString& = QString() ) /ReleaseGIL/ ;
+  static int               createTool( const int,  const int,      const int = -1 ) /ReleaseGIL/ ;
+  static int               createTool( const int,  const QString&, const int = -1 ) /ReleaseGIL/ ;
+  static int               createTool( QAction*,   const int,      const int = -1, const int = -1 ) /ReleaseGIL/ ;
+  static int               createTool( QAction*,   const QString&, const int = -1, const int = -1 ) /ReleaseGIL/ ;
 
   static int               createMenu( const QString&, const int,
-                                      int = -1, int = -1, int = -1 );
+                                      const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
   static int               createMenu( const QString&, const QString&, 
-                                      int = -1, int = -1, int = -1 );
+                                      const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
   static int               createMenu( const int,      const int,
-                                      int = -1,       int = -1 );
+                                      const int = -1, const int = -1 ) /ReleaseGIL/ ;
   static int               createMenu( const int,      const QString&, 
-                                      int = -1,       int = -1 );
-  static int               createMenu( QtxAction*,     const int,      int = -1, 
-                                      int = -1,       int = -1 );
-  static int               createMenu( QtxAction*,     const QString&, int = -1, 
-                                      int = -1,       int = -1 );
-
-  static QtxAction*        createSeparator();
-
-  static QtxAction*        createAction( const int, const QString&, 
-                                        const QString& = QString::null, const QString& = QString::null, 
-                                        const QString& = QString::null, int = 0, bool = false );
-
-  static QtxAction*        action( const int );
-  static int               actionId( const QtxAction* );
-
-  static bool              clearMenu( int = 0, int = 0,
-                                     bool = true  );
-
-  static void              addSetting    ( const QString&, const QString&, const double );
-  static void              addSetting    ( const QString&, const QString&, const int /Constrained/ );
-  static void              addSetting    ( const QString&, const QString&, const QString& );
-  static void              addSetting    ( const QString&, const QString&, const QColor& );
-  static int               integerSetting( const QString&, const QString&, int = 0 );
-  static double            doubleSetting ( const QString&, const QString&, int = 0 );
-  static bool              boolSetting   ( const QString&, const QString&, bool = false );
-  static QString           stringSetting ( const QString&, const QString&, const QString& = QString("") );
-  static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() );
-  static void              removeSetting ( const QString&, const QString& );
+                                      const int = -1, const int = -1 ) /ReleaseGIL/ ;
+  static int               createMenu( QAction*,       const int,      const int = -1, 
+                                      const int = -1, const int = -1 ) /ReleaseGIL/ ;
+  static int               createMenu( QAction*,       const QString&, const int = -1, 
+                                      const int = -1, const int = -1 ) /ReleaseGIL/ ;
+  static QAction*          createSeparator() /ReleaseGIL/ ;
+
+  static QAction*          createAction( const int, const QString&, 
+                                        const QString& = QString(), const QString& = QString(), 
+                                        const QString& = QString(), const int = 0, const bool = false ) /ReleaseGIL/ ;
+
+  static QtxActionGroup*   createActionGroup( const int, const bool = true ) /ReleaseGIL/ ;
+
+  static QAction*          action( const int ) /ReleaseGIL/ ;
+  static int               actionId( const QAction* ) /ReleaseGIL/ ;
+
+  static QString           constant      ( const QString& ) /ReleaseGIL/ ;
+  static void              setConstant   ( const QString&, const QString& ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const double ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const int /Constrained/ ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const bool, const int ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const QString& ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const QColor& ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const QByteArray& ) /ReleaseGIL/ ;
+  static void              addSetting    ( const QString&, const QString&, const QFont& ) /ReleaseGIL/ ;
+  static int               integerSetting( const QString&, const QString&, const int = 0 ) /ReleaseGIL/ ;
+  static double            doubleSetting ( const QString&, const QString&, const double = 0 ) /ReleaseGIL/ ;
+  static bool              boolSetting   ( const QString&, const QString&, const bool = false ) /ReleaseGIL/ ;
+  static QString           stringSetting ( const QString&, const QString&, const QString& = QString(""), const bool = true ) /ReleaseGIL/ ;
+  static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() ) /ReleaseGIL/ ;
+  static QByteArray        byteArraySetting( const QString&, const QString&, const QByteArray& = QByteArray() ) /ReleaseGIL/ ;
+  static QFont             fontSetting( const QString&, const QString&, const QFont& = QFont() ) /ReleaseGIL/ ;
+  static void              removeSetting ( const QString&, const QString& ) /ReleaseGIL/ ;
+  static bool              hasSetting    ( const QString&, const QString& ) /ReleaseGIL/ ;
+  static QStringList       parameters    ( const QString& ) /ReleaseGIL/ ;
+  static QStringList       parameters    ( const QStringList& ) /ReleaseGIL/ ;
 
 // obsolete
-  static void              addStringSetting( const QString&, const QString&, bool = true );
-  static void              addIntSetting   ( const QString&, const int,      bool = true );
-  static void              addDoubleSetting( const QString&, const double,   bool = true );
-  static void              removeSettings  ( const QString& );
-  static QString           getSetting      ( const QString& );
+  static void              addStringSetting( const QString&, const QString&, bool = true ) /ReleaseGIL/ ;
+  static void              addIntSetting   ( const QString&, const int,      bool = true ) /ReleaseGIL/ ;
+  static void              addDoubleSetting( const QString&, const double,   bool = true ) /ReleaseGIL/ ;
+  static void              addBoolSetting  ( const QString&, const bool,     bool = true ) /ReleaseGIL/ ;
+  static void              removeSettings  ( const QString& ) /ReleaseGIL/ ;
+  static QString           getSetting      ( const QString& ) /ReleaseGIL/ ;
+
+  static int               addGlobalPreference( const QString& ) /ReleaseGIL/ ;
+  static int               addPreference( const QString& ) /ReleaseGIL/ ;
+  static int               addPreference( const QString&,
+                                          const int, const int = PT_Auto,
+                                          const QString& = QString(),
+                                         const QString& = QString() ) /ReleaseGIL/ ;
+  static QVariant          preferenceProperty( const int, const QString& ) /ReleaseGIL/ ;
+  static void              setPreferenceProperty( const int, 
+                                                  const QString&,
+                                                  const QVariant& ) /ReleaseGIL/ ;
+  static void              setPreferencePropertyWg( const int, 
+                                                    const QString&,    
+                                                    UserDefinedContent* ) /ReleaseGIL/ ;
+  static void              addPreferenceProperty( const int, 
+                                                  const QString&, 
+                                                 const int, 
+                                                 const QVariant& ) /ReleaseGIL/ ;
+
+  static void              message( const QString&, bool = true ) /ReleaseGIL/ ;
+  static void              clearMessages() /ReleaseGIL/ ;
+  
+  static QList<int>        getViews() /ReleaseGIL/ ;
+  static int               getActiveView() /ReleaseGIL/ ;
+  static QString           getViewType( const int ) /ReleaseGIL/ ;
+  static bool              setViewTitle( const int, const QString& ) /ReleaseGIL/ ;
+  static QString           getViewTitle( const int ) /ReleaseGIL/ ;
+  static bool              setViewSize( const int, const int, const int = 0 ) /ReleaseGIL/ ;
+  static QList<int>        findViews( const QString& ) /ReleaseGIL/ ;
+  static bool              activateView( const int ) /ReleaseGIL/ ;
+  static bool              activateViewManagerAndView( const int ) /ReleaseGIL/ ;
+  static QWidget*          getViewWidget( const int ) /ReleaseGIL/ ;
+  static int               createView( const QString&, bool visible = true, const int width = 0, const int height = 0, bool detached = false ) /ReleaseGIL/ ;
+  static int               createView( const QString&, QWidget* ) /ReleaseGIL/ ;
+  static bool              closeView( const int ) /ReleaseGIL/ ;
+  static int               cloneView( const int ) /ReleaseGIL/ ;
+  static void              setViewVisible( const int id, bool visible = true ) /ReleaseGIL/ ;
+  static bool              isViewVisible( const int id ) /ReleaseGIL/ ;
+  static void              setViewClosable( const int id, const bool ) /ReleaseGIL/ ;
+  static bool              isViewClosable( const int id ) /ReleaseGIL/ ;
+  
+  static bool              groupAllViews() /ReleaseGIL/ ;
+  static bool              splitView( const int, Orientation, Action ) /ReleaseGIL/ ;
+  static bool              moveView( const int, const int, const bool ) /ReleaseGIL/ ;
+  static QList<int>        neighbourViews( const int ) /ReleaseGIL/ ;
+  
+%If (ENABLE_PLOT2D)
+// start Plot2d-related functionality
+  static void              displayCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
+  static void              eraseCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
+  static void              eraseCurve(Plot2d_Curve*) /ReleaseGIL/ ;
+  static void              updateCurves( const int ) /ReleaseGIL/ ;
+  static QString           getPlot2dTitle(const int, ObjectType = MainTitle) /ReleaseGIL/ ;
+  static void              setPlot2dTitle(const int, const QString&, ObjectType = MainTitle, bool = true) /ReleaseGIL/ ;
+  static QList<double>     getPlot2dFitRangeByCurves(const int) /ReleaseGIL/ ;
+  static QList<double>     getPlot2dFitRangeCurrent(const int) /ReleaseGIL/ ;
+  static void              setPlot2dFitRange(const int, const double XMin, const double XMax, const double YMin, const double YMax ) /ReleaseGIL/ ;
+// end of Plot2d-related functionality
+%End
+
+  static void              processEvents();
+
+  static void              startPyLog(const QString&) /ReleaseGIL/ ;
+  static void              stopPyLog() /ReleaseGIL/ ;
 };