Version: 6.3.1

src/SALOME_PYQT/SalomePyQt/SalomePyQt.h

Go to the documentation of this file.
00001 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 // File   : SalomePyQt.h
00024 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
00025 //
00026 #ifndef SALOME_PYQT_H
00027 #define SALOME_PYQT_H
00028 
00029 #include <QObject>
00030 #include <QString>
00031 #include <QColor>
00032 
00033 #include <LightApp_Application.h>
00034 #include <LightApp_Preferences.h>
00035 
00036 class LightApp_SelectionMgr;
00037 class LightApp_Application;
00038 class QMenuBar;
00039 class QMenu;
00040 class QWidget;
00041 class QAction;
00042 class QTreeView;
00043 class QtxActionGroup;
00044 
00045 class SALOME_Selection : public QObject
00046 {
00047   Q_OBJECT
00048 
00049 public:
00050   ~SALOME_Selection();
00051   static SALOME_Selection* GetSelection( LightApp_Application* );
00052 
00053   void Clear();
00054   void ClearIObjects();
00055   void ClearFilters();
00056 
00057 signals:
00058   void currentSelectionChanged();
00059 
00060 private slots:
00061   void onSelMgrDestroyed();
00062 
00063 private:
00064   LightApp_SelectionMgr* mySelMgr;
00065   SALOME_Selection( QObject* );
00066 };
00067 
00068 enum MenuName {
00069   File        = 1,
00070   View        = 2,
00071   Edit        = 3,
00072   Preferences = 4,
00073   Tools       = 5,
00074   Window      = 6,
00075   Help        = 7  
00076 };
00077 
00078 enum {
00079   WT_ObjectBrowser = LightApp_Application::WT_ObjectBrowser,
00080   WT_PyConsole     = LightApp_Application::WT_PyConsole,
00081   WT_LogWindow     = LightApp_Application::WT_LogWindow,
00082   WT_User          = LightApp_Application::WT_User
00083 };
00084 
00085 enum { 
00086   PT_Auto     = LightApp_Preferences::Auto,
00087   PT_Space    = LightApp_Preferences::Space,
00088   PT_Bool     = LightApp_Preferences::Bool, 
00089   PT_Color    = LightApp_Preferences::Color,
00090   PT_String   = LightApp_Preferences::String, 
00091   PT_Selector = LightApp_Preferences::Selector, 
00092   PT_DblSpin  = LightApp_Preferences::DblSpin, 
00093   PT_IntSpin  = LightApp_Preferences::IntSpin, 
00094   PT_Double   = LightApp_Preferences::Double, 
00095   PT_Integer  = LightApp_Preferences::Integer, 
00096   PT_GroupBox = LightApp_Preferences::GroupBox, 
00097   PT_Tab      = LightApp_Preferences::Tab, 
00098   PT_Frame    = LightApp_Preferences::Frame, 
00099   PT_Font     = LightApp_Preferences::Font, 
00100   PT_DirList  = LightApp_Preferences::DirList, 
00101   PT_File     = LightApp_Preferences::File, 
00102 };
00103 
00105 enum Orientation {
00106   Horizontal = 0, 
00107   Vertical   = 1  
00108 };
00109 
00111 enum Action {
00112   MoveWidget   = 0, 
00113   LeaveWidget  = 1, 
00114   SplitAt      = 2  
00115 };
00116 
00117 class SalomePyQt
00118 {
00119 public:
00120   static QWidget*          getDesktop();
00121   static QWidget*          getMainFrame();
00122   static QMenuBar*         getMainMenuBar();
00123   static QMenu*            getPopupMenu( const MenuName );
00124   static QMenu*            getPopupMenu( const QString& );
00125   static QTreeView*        getObjectBrowser();
00126   static SALOME_Selection* getSelection();
00127   static int               getStudyId();
00128   static void              putInfo( const QString&, const int = 0 );
00129   static const QString     getActiveComponent();
00130   static void              updateObjBrowser( const int = 0, bool = true );
00131 
00132   static QString           getFileName         ( QWidget*, const QString&, const QStringList&, const QString&, bool );
00133   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& );
00134   static QString           getExistingDirectory( QWidget*, const QString&, const QString& );
00135 
00136   static QString           createObject(const QString& parent = QString(""));
00137   static QString           createObject(const QString& name,
00138                                         const QString& iconname,
00139                                         const QString& tooltip,
00140                                         const QString& parent = QString(""));
00141 
00142   static void              removeObject( const QString& obj);
00143   static void              removeChild( const QString& obj = QString(""));
00144   static QStringList       getChildren(const QString& obj = QString(""), const bool rec = false);
00145   static void              setName(const QString& obj,const QString& name);
00146   static void              setIcon(const QString& obj,const QString& iconname);
00147   static void              setToolTip(const QString& obj,const QString& tooltip);
00148   static QString           getName(const QString& obj);
00149   static QString           getToolTip(const QString& obj);
00150 
00151   static QIcon             loadIcon( const QString&, const QString& );
00152 
00153   static void              helpContext( const QString&, const QString& );
00154 
00155   static bool              dumpView( const QString& );
00156 
00157   static int               defaultMenuGroup();
00158 
00159   static int               createTool( const QString& );
00160   static int               createTool( const int,  const int,      const int = -1 );
00161   static int               createTool( const int,  const QString&, const int = -1 );
00162   static int               createTool( QAction*, const int,      const int = -1, const int = -1 );
00163   static int               createTool( QAction*, const QString&, const int = -1, const int = -1 );
00164 
00165   static int               createMenu( const QString&, const int = -1,
00166                                        const int = -1, const int = -1, const int = -1 );
00167   static int               createMenu( const QString&, const QString& = QString(), 
00168                                        const int = -1, const int = -1, const int = -1 );
00169   static int               createMenu( const int,      const int = -1,
00170                                        const int = -1, const int = -1 );
00171   static int               createMenu( const int,      const QString& = QString(), 
00172                                        const int = -1, const int = -1 );
00173   static int               createMenu( QAction*,     const int,      const int = -1, 
00174                                        const int = -1, const int = -1 );
00175   static int               createMenu( QAction*,     const QString&, const int = -1, 
00176                                        const int = -1, const int = -1 );
00177 
00178   static QAction*          createSeparator();
00179 
00180   static QAction*          createAction( const int, const QString&,
00181                                          const QString& = QString(), const QString& = QString(), 
00182                                          const QString& = QString(), const int = 0, const bool = false );
00183   
00184   static QtxActionGroup*   createActionGroup( const int, const bool = true );
00185 
00186   static QAction*          action( const int );
00187   static int               actionId( const QAction* );
00188 
00189   static void              addSetting    ( const QString&, const QString&, const double );
00190   static void              addSetting    ( const QString&, const QString&, const int );
00191   static void              addSetting    ( const QString&, const QString&, const bool, const int );
00192   static void              addSetting    ( const QString&, const QString&, const QString& );
00193   static void              addSetting    ( const QString&, const QString&, const QColor& );
00194   static int               integerSetting( const QString&, const QString&, const int = 0 );
00195   static double            doubleSetting ( const QString&, const QString&, const double = 0 );
00196   static bool              boolSetting   ( const QString&, const QString&, const bool = 0 );
00197   static QString           stringSetting ( const QString&, const QString&, const QString& = QString("") );
00198   static QColor            colorSetting  ( const QString&, const QString&, const QColor& = QColor() );
00199   static void              removeSetting ( const QString&, const QString& );
00200   static bool              hasSetting    ( const QString&, const QString& );
00201   // obsolete
00202   static void              addStringSetting( const QString&, const QString&, bool = true );
00203   static void              addIntSetting   ( const QString&, const int,      bool = true );
00204   static void              addBoolSetting  ( const QString&, const bool,     bool = true );
00205   static void              addDoubleSetting( const QString&, const double,   bool = true );
00206   static void              removeSettings  ( const QString& );
00207   static QString           getSetting      ( const QString& );
00208 
00209   static int               addGlobalPreference( const QString& );
00210   static int               addPreference( const QString& );
00211   static int               addPreference( const QString&,
00212                                           const int, const int = PT_Auto,
00213                                           const QString& = QString(),
00214                                           const QString& = QString() );
00215   static QVariant          preferenceProperty( const int, const QString& );
00216   static void              setPreferenceProperty( const int, 
00217                                                   const QString&,
00218                                                   const QVariant& );
00219   static void              addPreferenceProperty( const int,
00220                                                   const QString&,
00221                                                   const int,
00222                                                   const QVariant& );
00223 
00224   static void              message( const QString&, bool = true );
00225   static void              clearMessages();
00226   
00227   static QList<int>        getViews();
00228   static int               getActiveView();
00229   static QString           getViewType( const int );
00230   static bool              setViewTitle( const int, const QString& );
00231   static QString           getViewTitle( const int );
00232   static QList<int>        findViews( const QString& );
00233   static bool              activateView( const int );
00234   static int               createView( const QString& );
00235   static int               createView( const QString&, QWidget* );
00236   static bool              closeView( const int );
00237   static int               cloneView( const int );
00238   static bool              isViewVisible( const int );
00239   static void              setViewClosable( const int, const bool );
00240   static bool              isViewClosable( const int );
00241 
00242   static bool              groupAllViews();
00243   static bool              splitView( const int, const Orientation, const Action );
00244   static bool              moveView( const int, const int, const bool );
00245   static QList<int>        neighbourViews( const int );
00246 };
00247 
00248 #endif // SALOME_PYQT_H
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS