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