Salome HOME
Merge remote-tracking branch 'origin/V8_3_BR' into ngr/python3_dev
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / SalomePyQt.sip
1 // Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 // File   : SalomePyQt.sip
23 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
24 //
25
26 %Module SalomePyQt
27
28 %Feature ENABLE_CORBA
29 %Feature ENABLE_PLOT2D
30
31 %Import QtCore/QtCoremod.sip
32 %Import QtGui/QtGuimod.sip
33 %If (Qt_5_0_0 -)
34 %Import QtWidgets/QtWidgetsmod.sip
35 %End
36 %Import QtXml/QtXmlmod.sip
37
38 %If (ENABLE_PLOT2D)
39 %Include SalomePyQt_Plot2d.sip
40 %End
41
42 %ExportedHeaderCode
43 #include <QtxAction.h>
44 #include <QtxActionSet.h>
45 #include <QtxActionGroup.h>
46 #include <QtxTreeView.h>
47 #include <SalomePyQt.h>
48 %End
49
50 class SALOME_Selection : QObject
51 {
52 %TypeHeaderCode
53 #include <SalomePyQt.h>
54 %End
55
56 public:
57   void Clear() /ReleaseGIL/ ;
58   void ClearIObjects() /ReleaseGIL/ ;
59   void ClearFilters() /ReleaseGIL/ ;
60
61 private:
62   SALOME_Selection( QObject* /TransferThis/ );
63
64 signals:
65   void currentSelectionChanged();
66 };
67
68 enum MenuName {
69   File        = 1,
70   View        = 2,
71   Edit        = 3,
72   Preferences = 4,
73   Tools       = 5,
74   Window      = 6,
75   Help        = 7  
76 };
77
78 enum WindowType {
79   WT_ObjectBrowser,
80   WT_PyConsole,
81   WT_LogWindow,
82 %If (ENABLE_CORBA)
83   WT_NoteBook,
84 %End
85   WT_User
86 };
87
88 enum PrefType { 
89   PT_Auto,
90   PT_Space,
91   PT_Bool, 
92   PT_Color,
93   PT_String, 
94   PT_Selector, 
95   PT_DblSpin, 
96   PT_IntSpin, 
97   PT_Double, 
98   PT_Integer, 
99   PT_GroupBox, 
100   PT_Tab, 
101   PT_Frame, 
102   PT_Font, 
103   PT_DirList, 
104   PT_File, 
105 };
106
107 enum Orientation {
108   Horizontal = 0, 
109   Vertical   = 1  
110 };
111
112 enum Action {
113   MoveWidget   = 0, 
114   LeaveWidget  = 1, 
115   SplitAt      = 2  
116 };
117
118 class QtxAction : QWidgetAction
119 {
120 %TypeHeaderCode
121 #include <QtxAction.h>
122 %End
123
124 %ConvertToSubClassCode
125     if ( qobject_cast<QtxAction*>( sipCpp ) )
126       sipClass = sipClass_QtxAction;
127     else
128       sipClass = NULL;
129 %End
130
131 public:
132   explicit QtxAction( QObject* /TransferThis/ = 0, bool = false );
133   QtxAction( const QString&, const QString&, int, QObject* /TransferThis/, bool = false );
134   QtxAction( const QString&, const QIcon&, const QString&, int, QObject* /TransferThis/, bool = false );
135   virtual ~QtxAction();
136
137 private:
138   QtxAction( const QtxAction& );
139 };
140
141 class QtxActionSet : QtxAction
142 {
143 %TypeHeaderCode
144 #include <QtxActionSet.h>
145 %End
146
147 %ConvertToSubClassCode
148     if ( qobject_cast<QtxActionSet*>( sipCpp ) )
149       sipClass = sipClass_QtxActionSet;
150     else
151       sipClass = NULL;
152 %End
153
154 public:
155   explicit QtxActionSet( QObject* /TransferThis/ = 0 );
156   virtual ~QtxActionSet();
157
158   QList<QAction*> actions() const;
159   void            setActions( const QList<QAction*>& );
160
161   void            insertActions( const QList<QAction*>&, const int = -1 );
162
163   int             insertAction( QAction*, const int id = -1, const int = -1 );
164   int             insertAction( const QString&, const int id = -1, const int = -1 );
165   int             insertAction( const QString&, const QIcon&, const int id = -1, const int = -1 );
166
167   void            removeAction( QAction* );
168   void            removeAction( const int );
169
170   void            clear();
171
172 signals:
173   void            triggered( int );
174   void            triggered( QAction* );
175
176 private:
177   QtxActionSet( const QtxActionSet& );
178 };
179
180 class QtxActionGroup : QtxActionSet
181 {
182 %TypeHeaderCode
183 #include <QtxActionGroup.h>
184 %End
185
186 %ConvertToSubClassCode
187     if ( qobject_cast<QtxActionGroup*>( sipCpp ) )
188       sipClass = sipClass_QtxActionGroup;
189     else
190       sipClass = NULL;
191 %End
192
193 public:
194   explicit QtxActionGroup( QObject* /TransferThis/ = 0 );
195   QtxActionGroup( QObject* /TransferThis/, const bool );
196   virtual ~QtxActionGroup();
197
198   bool isExclusive() const;
199   bool usesDropDown() const;
200
201   void add( QAction* );
202
203 public slots:
204   void setExclusive( const bool );
205   void setUsesDropDown( const bool );
206
207 signals:
208   void selected( QAction* );
209
210 private:
211   QtxActionGroup( const QtxActionGroup& );
212 };
213
214 class QtxTreeView : public QTreeView
215 {
216 %TypeHeaderCode
217 #include <QtxTreeView.h>
218 %End
219
220 %ConvertToSubClassCode
221     if ( qobject_cast<QtxTreeView*>( sipCpp ) )
222       sipClass = sipClass_QtxTreeView;
223     else
224       sipClass = NULL;
225 %End
226
227 public:
228   explicit QtxTreeView( QWidget* /TransferThis/ = 0 );
229   QtxTreeView( const bool, QWidget* /TransferThis/ = 0  );
230   virtual ~QtxTreeView();
231
232 signals:
233   void     sortingEnabled( bool );
234   void     selectionChanged();
235
236 private:
237   QtxTreeView( const QtxTreeView& );
238 };
239
240 enum VisibilityState 
241 {
242   ShownState,
243   HiddenState,
244   UnpresentableState 
245 };
246
247 class SalomePyQt
248 {
249 %TypeHeaderCode
250 #include <SalomePyQt.h>
251 %End
252
253 public:
254 /* KeepReference is necessary on method getDesktop with SIP >= 4.15.5 to avoid garbage collection of
255    the Python objects added to the desktop. This causes a small memory leak (the wrapper around desktop
256    object is never garbage collected) but since this object contains only references this is not
257    considered a big problem. With versions < 4.15, it seems that this reference was kept implicitly.
258    No proper solution was found for versions between 4.15 and 4.15.4 (included), so those versions
259    should not be used to compile GUI module.
260 */
261 %If (SIP_4_15_5 - )
262   static QWidget*          getDesktop() /ReleaseGIL,KeepReference/ ;
263 %End
264 %If ( - SIP_4_15_5)
265   static QWidget*          getDesktop() /ReleaseGIL/ ;
266 %End
267
268   static QWidget*          getMainFrame() /ReleaseGIL/ ;
269   static QMenuBar*         getMainMenuBar() /ReleaseGIL/ ;
270   static QMenu*            getPopupMenu( const MenuName ) /ReleaseGIL/ ;
271   static QMenu*            getPopupMenu( const QString& ) /ReleaseGIL/ ;
272   static QTreeView*        getObjectBrowser() /ReleaseGIL/ ;
273   static void              enableSelector() /ReleaseGIL/ ;
274   static void              disableSelector() /ReleaseGIL/ ;
275   static SALOME_Selection* getSelection() /Factory,ReleaseGIL/ ;
276   static void              setSelection( const QStringList& ) /ReleaseGIL/ ;
277   static int               getStudyId() /ReleaseGIL/ ;
278   static void              putInfo( const QString&, const int = 0 ) /ReleaseGIL/ ;
279   static const QString     getActiveComponent() /ReleaseGIL/ ;
280   static SIP_PYOBJECT      getActivePythonModule() /ReleaseGIL/ ;
281   static bool              activateModule( const QString& ) /ReleaseGIL/ ;
282   static void              updateObjBrowser( const int = 0, bool =  true ) /ReleaseGIL/ ;
283   
284   static bool              isModified() /ReleaseGIL/ ;
285   static void              setModified( bool ) /ReleaseGIL/ ;
286
287   static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool ) /ReleaseGIL/ ;
288   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ;
289   static QString           getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ;
290                          
291   static void              createRoot() /ReleaseGIL/ ;
292   static QString           createObject( const QString& = QString("") )  /ReleaseGIL/ ;
293   static QString           createObject( const QString&,
294                                          const QString&,
295                                          const QString&,
296                                          const QString& = QString("") )  /ReleaseGIL/ ;
297
298   static void              setName(const QString& ,const QString& ) /ReleaseGIL/ ;
299   static void              setIcon(const QString& ,const QString& ) /ReleaseGIL/ ;
300   static void              setToolTip(const QString& ,const QString& ) /ReleaseGIL/ ;
301   static QString           getName(const QString& ) /ReleaseGIL/ ;
302   static QString           getToolTip(const QString& ) /ReleaseGIL/ ;
303
304   static void              setVisibilityState( const QString&, VisibilityState );
305   static VisibilityState   getVisibilityState( const QString& );
306
307   static void              setObjectPosition( const QString&, int );
308   static int               getObjectPosition( const QString& );
309
310   static void              setColor( const QString&, const QColor& ) /ReleaseGIL/ ;
311   static QColor            getColor( const QString& ) /ReleaseGIL/ ;
312
313   static void              setReference( const QString& ,const QString& ) /ReleaseGIL/ ; 
314   static QString           getReference( const QString& ) /ReleaseGIL/ ;
315
316   static void              removeObject(const QString&  )    /ReleaseGIL/ ;
317   static void              removeChildren(const QString& = QString("")  ) /ReleaseGIL/ ;
318   static void              removeChild(const QString& = QString("")  ) /ReleaseGIL/ ;
319   static QStringList       getChildren(const QString&=QString("") , const bool = false) /ReleaseGIL/ ;
320
321   static QIcon             loadIcon( const QString&, const QString& ) /ReleaseGIL/ ;
322   static void              helpContext( const QString&, const QString& ) /ReleaseGIL/ ;
323
324   static bool              dumpView( const QString&, const int = 0 ) /ReleaseGIL/ ;
325
326   static int               defaultMenuGroup() /ReleaseGIL/ ;
327
328   static int               createTool( const QString&, const QString& = QString() ) /ReleaseGIL/ ;
329   static int               createTool( const int,  const int,      const int = -1 ) /ReleaseGIL/ ;
330   static int               createTool( const int,  const QString&, const int = -1 ) /ReleaseGIL/ ;
331   static int               createTool( QAction*,   const int,      const int = -1, const int = -1 ) /ReleaseGIL/ ;
332   static int               createTool( QAction*,   const QString&, const int = -1, const int = -1 ) /ReleaseGIL/ ;
333
334   static int               createMenu( const QString&, const int,
335                                        const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
336   static int               createMenu( const QString&, const QString&, 
337                                        const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
338   static int               createMenu( const int,      const int,
339                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
340   static int               createMenu( const int,      const QString&, 
341                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
342   static int               createMenu( QAction*,       const int,      const int = -1, 
343                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
344   static int               createMenu( QAction*,       const QString&, const int = -1, 
345                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
346   static QAction*          createSeparator() /ReleaseGIL/ ;
347
348   static QAction*          createAction( const int, const QString&, 
349                                          const QString& = QString(), const QString& = QString(), 
350                                          const QString& = QString(), const int = 0, const bool = false ) /ReleaseGIL/ ;
351
352   static QtxActionGroup*   createActionGroup( const int, const bool = true ) /ReleaseGIL/ ;
353
354   static QAction*          action( const int ) /ReleaseGIL/ ;
355   static int               actionId( const QAction* ) /ReleaseGIL/ ;
356
357   static QString           constant      ( const QString& ) /ReleaseGIL/ ;
358   static void              setConstant   ( const QString&, const QString& ) /ReleaseGIL/ ;
359   static void              addSetting    ( const QString&, const QString&, const double ) /ReleaseGIL/ ;
360   static void              addSetting    ( const QString&, const QString&, const int /Constrained/ ) /ReleaseGIL/ ;
361   static void              addSetting    ( const QString&, const QString&, const bool, const int ) /ReleaseGIL/ ;
362   static void              addSetting    ( const QString&, const QString&, const QString& ) /ReleaseGIL/ ;
363   static void              addSetting    ( const QString&, const QString&, const QColor& ) /ReleaseGIL/ ;
364   static void              addSetting    ( const QString&, const QString&, const QByteArray& ) /ReleaseGIL/ ;
365   static int               integerSetting( const QString&, const QString&, const int = 0 ) /ReleaseGIL/ ;
366   static double            doubleSetting ( const QString&, const QString&, const double = 0 ) /ReleaseGIL/ ;
367   static bool              boolSetting   ( const QString&, const QString&, const bool = false ) /ReleaseGIL/ ;
368   static QString           stringSetting ( const QString&, const QString&, const QString& = QString(""), const bool = true ) /ReleaseGIL/ ;
369   static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() ) /ReleaseGIL/ ;
370   static QByteArray        byteArraySetting( const QString&, const QString&, const QByteArray& = QByteArray() ) /ReleaseGIL/ ;
371   static void              removeSetting ( const QString&, const QString& ) /ReleaseGIL/ ;
372   static bool              hasSetting    ( const QString&, const QString& ) /ReleaseGIL/ ;
373   static QStringList       parameters    ( const QString& ) /ReleaseGIL/ ;
374   static QStringList       parameters    ( const QStringList& ) /ReleaseGIL/ ;
375
376 // obsolete
377   static void              addStringSetting( const QString&, const QString&, bool = true ) /ReleaseGIL/ ;
378   static void              addIntSetting   ( const QString&, const int,      bool = true ) /ReleaseGIL/ ;
379   static void              addDoubleSetting( const QString&, const double,   bool = true ) /ReleaseGIL/ ;
380   static void              addBoolSetting  ( const QString&, const bool,     bool = true ) /ReleaseGIL/ ;
381   static void              removeSettings  ( const QString& ) /ReleaseGIL/ ;
382   static QString           getSetting      ( const QString& ) /ReleaseGIL/ ;
383
384   static int               addGlobalPreference( const QString& ) /ReleaseGIL/ ;
385   static int               addPreference( const QString& ) /ReleaseGIL/ ;
386   static int               addPreference( const QString&,
387                                           const int, const int = PT_Auto,
388                                           const QString& = QString(),
389                                           const QString& = QString() ) /ReleaseGIL/ ;
390   static QVariant          preferenceProperty( const int, const QString& ) /ReleaseGIL/ ;
391   static void              setPreferenceProperty( const int, 
392                                                   const QString&,
393                                                   const QVariant& ) /ReleaseGIL/ ;
394   static void              addPreferenceProperty( const int, 
395                                                   const QString&, 
396                                                   const int, 
397                                                   const QVariant& ) /ReleaseGIL/ ;
398
399   static void              message( const QString&, bool = true ) /ReleaseGIL/ ;
400   static void              clearMessages() /ReleaseGIL/ ;
401   
402   static QList<int>        getViews() /ReleaseGIL/ ;
403   static int               getActiveView() /ReleaseGIL/ ;
404   static QString           getViewType( const int ) /ReleaseGIL/ ;
405   static bool              setViewTitle( const int, const QString& ) /ReleaseGIL/ ;
406   static QString           getViewTitle( const int ) /ReleaseGIL/ ;
407   static bool              setViewSize( const int, const int, const int = 0 ) /ReleaseGIL/ ;
408   static QList<int>        findViews( const QString& ) /ReleaseGIL/ ;
409   static bool              activateView( const int ) /ReleaseGIL/ ;
410   static bool              activateViewManagerAndView( const int ) /ReleaseGIL/ ;
411   static QWidget*          getViewWidget( const int ) /ReleaseGIL/ ;
412   static int               createView( const QString&, bool visible = true, const int width = 0, const int height = 0, bool detached = false ) /ReleaseGIL/ ;
413   static int               createView( const QString&, QWidget* ) /ReleaseGIL/ ;
414   static bool              closeView( const int ) /ReleaseGIL/ ;
415   static int               cloneView( const int ) /ReleaseGIL/ ;
416   static void              setViewVisible( const int id, bool visible = true ) /ReleaseGIL/ ;
417   static bool              isViewVisible( const int id ) /ReleaseGIL/ ;
418   static void              setViewClosable( const int id, const bool ) /ReleaseGIL/ ;
419   static bool              isViewClosable( const int id ) /ReleaseGIL/ ;
420   
421   static bool              groupAllViews() /ReleaseGIL/ ;
422   static bool              splitView( const int, Orientation, Action ) /ReleaseGIL/ ;
423   static bool              moveView( const int, const int, const bool ) /ReleaseGIL/ ;
424   static QList<int>        neighbourViews( const int ) /ReleaseGIL/ ;
425   
426 %If (ENABLE_PLOT2D)
427 // start Plot2d-related functionality
428   static void              displayCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
429   static void              eraseCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
430   static void              eraseCurve(Plot2d_Curve*) /ReleaseGIL/ ;
431   static void              updateCurves( const int ) /ReleaseGIL/ ;
432   static QString           getPlot2dTitle(const int, ObjectType = MainTitle) /ReleaseGIL/ ;
433   static void              setPlot2dTitle(const int, const QString&, ObjectType = MainTitle, bool = true) /ReleaseGIL/ ;
434   static QList<double>     getPlot2dFitRangeByCurves(const int) /ReleaseGIL/ ;
435   static QList<double>     getPlot2dFitRangeCurrent(const int) /ReleaseGIL/ ;
436   static void              setPlot2dFitRange(const int, const double XMin, const double XMax, const double YMin, const double YMax ) /ReleaseGIL/ ;
437 // end of Plot2d-related functionality
438 %End
439
440   static void              processEvents();
441
442   static void              startPyLog(const QString&) /ReleaseGIL/ ;
443   static void              stopPyLog() /ReleaseGIL/ ;
444 };