Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / SalomePyQt.h
1 // Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
2 // 
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either 
6 // version 2.1 of the License.
7 // 
8 // This library is distributed in the hope that it will be useful 
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public  
14 // License along with this library; if not, write to the Free Software 
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/
18 //
19 //=============================================================================
20 // File      : SalomePyQt.h
21 // Created   : 25/04/05
22 // Author    : Vadim SANDLER
23 // Project   : SALOME
24 // Copyright : 2003-2005 CEA/DEN, EDF R&D
25 // $Header   : $
26 //=============================================================================
27
28 #ifndef SALOME_PYQT_H
29 #define SALOME_PYQT_H
30
31 #include <qstring.h>
32 #include <qobject.h>
33 #include <qcolor.h>
34
35 #include <LightApp_Application.h>
36
37 class LightApp_SelectionMgr;
38 class SalomeApp_Application;
39 class QMenuBar;
40 class QPopupMenu;
41 class QWidget;
42 class QtxAction;
43
44 class SALOME_Selection : public QObject
45 {
46   Q_OBJECT
47
48 public:
49   ~SALOME_Selection();
50   static SALOME_Selection* GetSelection( SalomeApp_Application* );
51
52   void Clear();
53   void ClearIObjects();
54   void ClearFilters();
55
56 signals:
57   void currentSelectionChanged();
58
59 private slots:
60   void onSelMgrDestroyed();
61
62 private:
63   LightApp_SelectionMgr* mySelMgr;
64   SALOME_Selection( QObject* );
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 {
78   WT_ObjectBrowser = LightApp_Application::WT_ObjectBrowser,
79   WT_PyConsole     = LightApp_Application::WT_PyConsole,
80   WT_LogWindow     = LightApp_Application::WT_LogWindow,
81   WT_User          = LightApp_Application::WT_User
82 };
83
84 class SalomePyQt
85 {
86 public:
87   static QWidget*          getDesktop();
88   static QWidget*          getMainFrame();
89   static QMenuBar*         getMainMenuBar();
90   static QPopupMenu*       getPopupMenu( const MenuName );
91   static SALOME_Selection* getSelection();
92   static int               getStudyId();
93   static void              putInfo( const QString&, const int = 0 );
94   static const QString     getActiveComponent();
95   static void              updateObjBrowser( const int = 0, bool = true );
96
97   static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool );
98   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& );
99   static QString           getExistingDirectory( QWidget*, const QString&, const QString& );
100
101   static void              helpContext( const QString&, const QString& );
102
103   static bool              dumpView( const QString& );
104
105   static int               defaultMenuGroup();
106
107   static int               createTool( const QString& );
108   static int               createTool( const int,  const int,      const int = -1 );
109   static int               createTool( const int,  const QString&, const int = -1 );
110   static int               createTool( QtxAction*, const int,      const int = -1, const int = -1 );
111   static int               createTool( QtxAction*, const QString&, const int = -1, const int = -1 );
112
113   static int               createMenu( const QString&, const int = -1,
114                                        const int = -1, const int = -1, const int = -1 );
115   static int               createMenu( const QString&, const QString& = QString::null, 
116                                        const int = -1, const int = -1, const int = -1 );
117   static int               createMenu( const int,      const int = -1,
118                                        const int = -1, const int = -1 );
119   static int               createMenu( const int,      const QString& = QString::null, 
120                                        const int = -1, const int = -1 );
121   static int               createMenu( QtxAction*,     const int,      const int = -1, 
122                                        const int = -1, const int = -1 );
123   static int               createMenu( QtxAction*,     const QString&, const int = -1, 
124                                        const int = -1, const int = -1 );
125
126   static QtxAction*        createSeparator();
127
128   static QtxAction*        createAction( const int, const QString&,
129                                          const QString& = QString::null, const QString& = QString::null, 
130                                          const QString& = QString::null, const int = 0, const bool = false );
131
132   static QtxAction*        action( const int );
133   static int               actionId( const QtxAction* );
134
135   static bool              clearMenu( const int = 0, const int = 0,
136                                       const bool = true );
137
138   static void              addSetting    ( const QString&, const QString&, const double );
139   static void              addSetting    ( const QString&, const QString&, const int );
140   static void              addSetting    ( const QString&, const QString&, const QString& );
141   static void              addSetting    ( const QString&, const QString&, const QColor& );
142   static int               integerSetting( const QString&, const QString&, const int = 0 );
143   static double            doubleSetting ( const QString&, const QString&, const int = 0 );
144   static bool              boolSetting   ( const QString&, const QString&, const bool = 0 );
145   static QString           stringSetting ( const QString&, const QString&, const QString& = QString("") );
146   static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() );
147   static void              removeSetting ( const QString&, const QString& );
148   // obsolete
149   static void              addStringSetting( const QString&, const QString&, bool = true );
150   static void              addIntSetting   ( const QString&, const int,      bool = true );
151   static void              addDoubleSetting( const QString&, const double,   bool = true );
152   static void              removeSettings  ( const QString& );
153   static QString           getSetting      ( const QString& );
154 };
155
156 #endif // SALOME_PYQT_H