Salome HOME
Merge Qt5 porting.
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / SalomePyQt.sip
1 // Copyright (C) 2007-2015  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 QtGui/QtGuimod.sip
32 %Import QtCore/QtCoremod.sip
33 %If (Qt_5_0_0 -)
34 %Import QtWidgets/QtWidgetsmod.sip
35 %End
36 %Import 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 <SalomePyQt.h>
47 %End
48
49 class SALOME_Selection : QObject
50 {
51 %TypeHeaderCode
52 #include <SalomePyQt.h>
53 %End
54
55 public:
56   void Clear() /ReleaseGIL/ ;
57   void ClearIObjects() /ReleaseGIL/ ;
58   void ClearFilters() /ReleaseGIL/ ;
59
60 private:
61   SALOME_Selection( QObject* /TransferThis/ );
62
63 signals:
64   void currentSelectionChanged();
65 };
66
67 enum MenuName {
68   File        = 1,
69   View        = 2,
70   Edit        = 3,
71   Preferences = 4,
72   Tools       = 5,
73   Window      = 6,
74   Help        = 7  
75 };
76
77 enum WindowType {
78   WT_ObjectBrowser,
79   WT_PyConsole,
80   WT_LogWindow,
81 %If (ENABLE_CORBA)
82   WT_NoteBook,
83 %End
84   WT_User
85 };
86
87 enum PrefType { 
88   PT_Auto,
89   PT_Space,
90   PT_Bool, 
91   PT_Color,
92   PT_String, 
93   PT_Selector, 
94   PT_DblSpin, 
95   PT_IntSpin, 
96   PT_Double, 
97   PT_Integer, 
98   PT_GroupBox, 
99   PT_Tab, 
100   PT_Frame, 
101   PT_Font, 
102   PT_DirList, 
103   PT_File, 
104 };
105
106 enum Orientation {
107   Horizontal = 0, 
108   Vertical   = 1  
109 };
110
111 enum Action {
112   MoveWidget   = 0, 
113   LeaveWidget  = 1, 
114   SplitAt      = 2  
115 };
116
117 class QtxAction : QWidgetAction
118 {
119 %TypeHeaderCode
120 #include <QtxAction.h>
121 %End
122
123 %ConvertToSubClassCode
124     if ( qobject_cast<QtxAction*>( sipCpp ) )
125       sipClass = sipClass_QtxAction;
126     else
127       sipClass = NULL;
128 %End
129
130 public:
131   explicit QtxAction( QObject* /TransferThis/ = 0, bool = false );
132   QtxAction( const QString&, const QString&, int, QObject* /TransferThis/, bool = false );
133   QtxAction( const QString&, const QIcon&, const QString&, int, QObject* /TransferThis/, bool = false );
134   virtual ~QtxAction();
135
136 private:
137   QtxAction( const QtxAction& );
138 };
139
140 class QtxActionSet : QtxAction
141 {
142 %TypeHeaderCode
143 #include <QtxActionSet.h>
144 %End
145
146 %ConvertToSubClassCode
147     if ( qobject_cast<QtxActionSet*>( sipCpp ) )
148       sipClass = sipClass_QtxActionSet;
149     else
150       sipClass = NULL;
151 %End
152
153 public:
154   explicit QtxActionSet( QObject* /TransferThis/ = 0 );
155   virtual ~QtxActionSet();
156
157   QList<QAction*> actions() const;
158   void            setActions( const QList<QAction*>& );
159
160   void            insertActions( const QList<QAction*>&, const int = -1 );
161
162   int             insertAction( QAction*, const int id = -1, const int = -1 );
163   int             insertAction( const QString&, const int id = -1, const int = -1 );
164   int             insertAction( const QString&, const QIcon&, const int id = -1, const int = -1 );
165
166   void            removeAction( QAction* );
167   void            removeAction( const int );
168
169   void            clear();
170
171 signals:
172   void            triggered( int );
173   void            triggered( QAction* );
174
175 private:
176   QtxActionSet( const QtxActionSet& );
177 };
178
179 class QtxActionGroup : QtxActionSet
180 {
181 %TypeHeaderCode
182 #include <QtxActionGroup.h>
183 %End
184
185 %ConvertToSubClassCode
186     if ( qobject_cast<QtxActionGroup*>( sipCpp ) )
187       sipClass = sipClass_QtxActionGroup;
188     else
189       sipClass = NULL;
190 %End
191
192 public:
193   explicit QtxActionGroup( QObject* /TransferThis/ = 0 );
194   QtxActionGroup( QObject* /TransferThis/, const bool );
195   virtual ~QtxActionGroup();
196
197   bool isExclusive() const;
198   bool usesDropDown() const;
199
200   void add( QAction* );
201
202 public slots:
203   void setExclusive( const bool );
204   void setUsesDropDown( const bool );
205
206 signals:
207   void selected( QAction* );
208
209 private:
210   QtxActionGroup( const QtxActionGroup& );
211 };
212
213 enum VisibilityState 
214 {
215   ShownState,
216   HiddenState,
217   UnpresentableState 
218 };
219
220 class SalomePyQt
221 {
222 %TypeHeaderCode
223 #include <SalomePyQt.h>
224 %End
225
226 public:
227 /* KeepReference is necessary on method getDesktop with SIP >= 4.15.5 to avoid garbage collection of
228    the Python objects added to the desktop. This causes a small memory leak (the wrapper around desktop
229    object is never garbage collected) but since this object contains only references this is not
230    considered a big problem. With versions < 4.15, it seems that this reference was kept implicitly.
231    No proper solution was found for versions between 4.15 and 4.15.4 (included), so those versions
232    should not be used to compile GUI module.
233 */
234 %If (SIP_4_15_5 - )
235   static QWidget*          getDesktop() /ReleaseGIL,KeepReference/ ;
236 %End
237 %If ( - SIP_4_15_5)
238   static QWidget*          getDesktop() /ReleaseGIL/ ;
239 %End
240
241   static QWidget*          getMainFrame() /ReleaseGIL/ ;
242   static QMenuBar*         getMainMenuBar() /ReleaseGIL/ ;
243   static QMenu*            getPopupMenu( const MenuName ) /ReleaseGIL/ ;
244   static QMenu*            getPopupMenu( const QString& ) /ReleaseGIL/ ;
245   static QTreeView*        getObjectBrowser() /ReleaseGIL/ ;
246   static SALOME_Selection* getSelection() /Factory,ReleaseGIL/ ;
247   static int               getStudyId() /ReleaseGIL/ ;
248   static void              putInfo( const QString&, const int = 0 ) /ReleaseGIL/ ;
249   static const QString     getActiveComponent() /ReleaseGIL/ ;
250   static SIP_PYOBJECT      getActivePythonModule() /ReleaseGIL/ ;
251   static bool              activateModule( const QString& ) /ReleaseGIL/ ;
252   static void              updateObjBrowser( const int = 0, bool =  true ) /ReleaseGIL/ ;
253   
254   static bool              isModified() /ReleaseGIL/ ;
255   static void              setModified( bool ) /ReleaseGIL/ ;
256
257   static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool ) /ReleaseGIL/ ;
258   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ;
259   static QString           getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ;
260                          
261   static QString           createObject( const QString& = QString("") )  /ReleaseGIL/ ;
262   static QString           createObject( const QString&,
263                                          const QString&,
264                                          const QString&,
265                                          const QString& = QString("") )  /ReleaseGIL/ ;
266
267   static void              setName(const QString& ,const QString& ) /ReleaseGIL/ ;
268   static void              setIcon(const QString& ,const QString& ) /ReleaseGIL/ ;
269   static void              setToolTip(const QString& ,const QString& ) /ReleaseGIL/ ;
270   static QString           getName(const QString& ) /ReleaseGIL/ ;
271   static QString           getToolTip(const QString& ) /ReleaseGIL/ ;
272
273   static void              setVisibilityState( const QString&, VisibilityState );
274   static VisibilityState   getVisibilityState( const QString& );
275
276   static void              setObjectPosition( const QString&, int );
277   static int               getObjectPosition( const QString& );
278
279   static void              setColor( const QString&, const QColor& ) /ReleaseGIL/ ;
280   static QColor            getColor( const QString& ) /ReleaseGIL/ ;
281
282   static void              setReference( const QString& ,const QString& ) /ReleaseGIL/ ; 
283   static QString           getReference( const QString& ) /ReleaseGIL/ ;
284
285   static void              removeObject(const QString&  )    /ReleaseGIL/ ;
286   static void              removeChildren(const QString& = QString("")  ) /ReleaseGIL/ ;
287   static void              removeChild(const QString& = QString("")  ) /ReleaseGIL/ ;
288   static QStringList       getChildren(const QString&=QString("") , const bool = false) /ReleaseGIL/ ;
289
290   static QIcon             loadIcon( const QString&, const QString& ) /ReleaseGIL/ ;
291   static void              helpContext( const QString&, const QString& ) /ReleaseGIL/ ;
292
293   static bool              dumpView( const QString&, const int = 0 ) /ReleaseGIL/ ;
294
295   static int               defaultMenuGroup() /ReleaseGIL/ ;
296
297   static int               createTool( const QString&, const QString& = QString() ) /ReleaseGIL/ ;
298   static int               createTool( const int,  const int,      const int = -1 ) /ReleaseGIL/ ;
299   static int               createTool( const int,  const QString&, const int = -1 ) /ReleaseGIL/ ;
300   static int               createTool( QAction*,   const int,      const int = -1, const int = -1 ) /ReleaseGIL/ ;
301   static int               createTool( QAction*,   const QString&, const int = -1, const int = -1 ) /ReleaseGIL/ ;
302
303   static int               createMenu( const QString&, const int,
304                                        const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
305   static int               createMenu( const QString&, const QString&, 
306                                        const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ;
307   static int               createMenu( const int,      const int,
308                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
309   static int               createMenu( const int,      const QString&, 
310                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
311   static int               createMenu( QAction*,       const int,      const int = -1, 
312                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
313   static int               createMenu( QAction*,       const QString&, const int = -1, 
314                                        const int = -1, const int = -1 ) /ReleaseGIL/ ;
315   static QAction*          createSeparator() /ReleaseGIL/ ;
316
317   static QAction*          createAction( const int, const QString&, 
318                                          const QString& = QString(), const QString& = QString(), 
319                                          const QString& = QString(), const int = 0, const bool = false ) /ReleaseGIL/ ;
320
321   static QtxActionGroup*   createActionGroup( const int, const bool = true ) /ReleaseGIL/ ;
322
323   static QAction*          action( const int ) /ReleaseGIL/ ;
324   static int               actionId( const QAction* ) /ReleaseGIL/ ;
325
326   static void              addSetting    ( const QString&, const QString&, const double ) /ReleaseGIL/ ;
327   static void              addSetting    ( const QString&, const QString&, const int /Constrained/ ) /ReleaseGIL/ ;
328   static void              addSetting    ( const QString&, const QString&, const bool, const int ) /ReleaseGIL/ ;
329   static void              addSetting    ( const QString&, const QString&, const QString& ) /ReleaseGIL/ ;
330   static void              addSetting    ( const QString&, const QString&, const QColor& ) /ReleaseGIL/ ;
331   static int               integerSetting( const QString&, const QString&, const int = 0 ) /ReleaseGIL/ ;
332   static double            doubleSetting ( const QString&, const QString&, const double = 0 ) /ReleaseGIL/ ;
333   static bool              boolSetting   ( const QString&, const QString&, const bool = false ) /ReleaseGIL/ ;
334   static QString           stringSetting ( const QString&, const QString&, const QString& = QString("") ) /ReleaseGIL/ ;
335   static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() ) /ReleaseGIL/ ;
336   static void              removeSetting ( const QString&, const QString& ) /ReleaseGIL/ ;
337   static bool              hasSetting    ( const QString&, const QString& ) /ReleaseGIL/ ;
338
339 // obsolete
340   static void              addStringSetting( const QString&, const QString&, bool = true ) /ReleaseGIL/ ;
341   static void              addIntSetting   ( const QString&, const int,      bool = true ) /ReleaseGIL/ ;
342   static void              addDoubleSetting( const QString&, const double,   bool = true ) /ReleaseGIL/ ;
343   static void              addBoolSetting  ( const QString&, const bool,     bool = true ) /ReleaseGIL/ ;
344   static void              removeSettings  ( const QString& ) /ReleaseGIL/ ;
345   static QString           getSetting      ( const QString& ) /ReleaseGIL/ ;
346
347   static int               addGlobalPreference( const QString& ) /ReleaseGIL/ ;
348   static int               addPreference( const QString& ) /ReleaseGIL/ ;
349   static int               addPreference( const QString&,
350                                           const int, const int = PT_Auto,
351                                           const QString& = QString(),
352                                           const QString& = QString() ) /ReleaseGIL/ ;
353   static QVariant          preferenceProperty( const int, const QString& ) /ReleaseGIL/ ;
354   static void              setPreferenceProperty( const int, 
355                                                   const QString&,
356                                                   const QVariant& ) /ReleaseGIL/ ;
357   static void              addPreferenceProperty( const int, 
358                                                   const QString&, 
359                                                   const int, 
360                                                   const QVariant& ) /ReleaseGIL/ ;
361
362   static void              message( const QString&, bool = true ) /ReleaseGIL/ ;
363   static void              clearMessages() /ReleaseGIL/ ;
364   
365   static QList<int>        getViews() /ReleaseGIL/ ;
366   static int               getActiveView() /ReleaseGIL/ ;
367   static QString           getViewType( const int ) /ReleaseGIL/ ;
368   static bool              setViewTitle( const int, const QString& ) /ReleaseGIL/ ;
369   static QString           getViewTitle( const int ) /ReleaseGIL/ ;
370   static bool              setViewSize( const int, const int, const int = 0 ) /ReleaseGIL/ ;
371   static QList<int>        findViews( const QString& ) /ReleaseGIL/ ;
372   static bool              activateView( const int ) /ReleaseGIL/ ;
373   static int               createView( const QString&, bool visible = true, const int width = 0, const int height = 0 ) /ReleaseGIL/ ;
374   static int               createView( const QString&, QWidget* ) /ReleaseGIL/ ;
375   static bool              closeView( const int ) /ReleaseGIL/ ;
376   static int               cloneView( const int ) /ReleaseGIL/ ;
377   static void              setViewVisible( const int id, bool visible = true ) /ReleaseGIL/ ;
378   static bool              isViewVisible( const int id ) /ReleaseGIL/ ;
379   static void              setViewClosable( const int id, const bool ) /ReleaseGIL/ ;
380   static bool              isViewClosable( const int id ) /ReleaseGIL/ ;
381   
382   static bool              groupAllViews() /ReleaseGIL/ ;
383   static bool              splitView( const int, Orientation, Action ) /ReleaseGIL/ ;
384   static bool              moveView( const int, const int, const bool ) /ReleaseGIL/ ;
385   static QList<int>        neighbourViews( const int ) /ReleaseGIL/ ;
386   
387 %If (ENABLE_PLOT2D)
388 // start Plot2d-related functionality
389   static void              displayCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
390   static void              eraseCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ;
391   static void              eraseCurve(Plot2d_Curve*) /ReleaseGIL/ ;
392   static void              updateCurves( const int ) /ReleaseGIL/ ;
393   static QString           getPlot2dTitle(const int, ObjectType = MainTitle) /ReleaseGIL/ ;
394   static void              setPlot2dTitle(const int, const QString&, ObjectType = MainTitle, bool = true) /ReleaseGIL/ ;
395   static QList<double>     getPlot2dFitRangeByCurves(const int) /ReleaseGIL/ ;
396   static QList<double>     getPlot2dFitRangeCurrent(const int) /ReleaseGIL/ ;
397   static void              setPlot2dFitRange(const int, const double XMin, const double XMax, const double YMin, const double YMax ) /ReleaseGIL/ ;
398 // end of Plot2d-related functionality
399 %End
400
401   static void              processEvents();
402
403   static void              startPyLog(const QString&) /ReleaseGIL/ ;
404   static void              stopPyLog() /ReleaseGIL/ ;
405 };