1 // Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // File : SalomePyQt.h
24 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
35 #include <LightApp_Application.h>
36 #include <LightApp_Preferences.h>
37 #include <Plot2d_ViewFrame.h>
39 class LightApp_SelectionMgr;
48 class SALOME_Selection : public QObject
54 static SALOME_Selection* GetSelection( LightApp_Application* );
61 void currentSelectionChanged();
64 void onSelMgrDestroyed();
67 LightApp_SelectionMgr* mySelMgr;
68 SALOME_Selection( QObject* );
82 WT_ObjectBrowser = LightApp_Application::WT_ObjectBrowser,
83 WT_PyConsole = LightApp_Application::WT_PyConsole,
84 WT_LogWindow = LightApp_Application::WT_LogWindow,
85 WT_User = LightApp_Application::WT_User
89 PT_Auto = LightApp_Preferences::Auto,
90 PT_Space = LightApp_Preferences::Space,
91 PT_Bool = LightApp_Preferences::Bool,
92 PT_Color = LightApp_Preferences::Color,
93 PT_String = LightApp_Preferences::String,
94 PT_Selector = LightApp_Preferences::Selector,
95 PT_DblSpin = LightApp_Preferences::DblSpin,
96 PT_IntSpin = LightApp_Preferences::IntSpin,
97 PT_Double = LightApp_Preferences::Double,
98 PT_Integer = LightApp_Preferences::Integer,
99 PT_GroupBox = LightApp_Preferences::GroupBox,
100 PT_Tab = LightApp_Preferences::Tab,
101 PT_Frame = LightApp_Preferences::Frame,
102 PT_Font = LightApp_Preferences::Font,
103 PT_DirList = LightApp_Preferences::DirList,
104 PT_File = LightApp_Preferences::File,
109 Horizontal = 0, //!< Horizontal orientation
110 Vertical = 1 //!< Vertical orientation
113 //! Action of splitting corresponding to QtxWorkstack::SplitType enumeration
115 MoveWidget = 0, //!< move specified widget to the new area, other views stay in the previous area
116 LeaveWidget = 1, //!< specified widget stays in the old area, all other views are moved to the new area
117 SplitAt = 2 //!< the view area is splitted in such a way, that specified view and all views which follow it, are moved to the new area
120 //! Type of titles in Plot3d View
123 MainTitle = Plot2d_ViewFrame::MainTitle,
124 XTitle = Plot2d_ViewFrame::XTitle,
125 YTitle = Plot2d_ViewFrame::YTitle,
126 Y2Title = Plot2d_ViewFrame::Y2Title,
127 XAxis = Plot2d_ViewFrame::XAxis,
128 YAxis = Plot2d_ViewFrame::YAxis,
129 Y2Axis = Plot2d_ViewFrame::Y2Axis
134 ShownState, //!< Object is shown in viewer
135 HiddenState, //!< Object is hidden in viewer
136 UnpresentableState //!< Unpresentable object
143 static QWidget* getDesktop();
144 static QWidget* getMainFrame();
145 static QMenuBar* getMainMenuBar();
146 static QMenu* getPopupMenu( const MenuName );
147 static QMenu* getPopupMenu( const QString& );
148 static QTreeView* getObjectBrowser();
149 static SALOME_Selection* getSelection();
150 static int getStudyId();
151 static void putInfo( const QString&, const int = 0 );
152 static const QString getActiveComponent();
153 static PyObject* getActivePythonModule();
154 static bool activateModule( const QString& );
155 static void updateObjBrowser( const int = 0, bool = true );
157 static bool isModified();
158 static void setModified( bool );
160 static QString getFileName ( QWidget*, const QString&, const QStringList&, const QString&, bool );
161 static QStringList getOpenFileNames ( QWidget*, const QString&, const QStringList&, const QString& );
162 static QString getExistingDirectory( QWidget*, const QString&, const QString& );
164 static QString createObject( const QString& parent = QString() );
165 static QString createObject( const QString&, const QString&, const QString&, const QString& = QString() );
167 static void removeObject( const QString&);
168 static void removeChildren( const QString& = QString() );
169 static QStringList getChildren( const QString& = QString(), const bool = false );
170 static void setName( const QString&, const QString& );
171 static void setIcon( const QString&, const QString& );
172 static void setToolTip( const QString&, const QString& );
173 static QString getName( const QString& );
174 static QString getToolTip( const QString& );
176 static void setVisibilityState( const QString&, VisibilityState );
177 static VisibilityState getVisibilityState( const QString& );
179 static void setObjectPosition( const QString&, int );
180 static int getObjectPosition( const QString& );
183 static void setColor( const QString&, const QColor& );
184 static QColor getColor( const QString& );
186 static void setReference( const QString&, const QString& );
187 static QString getReference( const QString& );
189 static QIcon loadIcon( const QString&, const QString& );
191 static void helpContext( const QString&, const QString& );
193 static bool dumpView( const QString&, const int = 0 );
195 static int defaultMenuGroup();
197 static int createTool( const QString& );
198 static int createTool( const int, const int, const int = -1 );
199 static int createTool( const int, const QString&, const int = -1 );
200 static int createTool( QAction*, const int, const int = -1, const int = -1 );
201 static int createTool( QAction*, const QString&, const int = -1, const int = -1 );
203 static int createMenu( const QString&, const int = -1,
204 const int = -1, const int = -1, const int = -1 );
205 static int createMenu( const QString&, const QString& = QString(),
206 const int = -1, const int = -1, const int = -1 );
207 static int createMenu( const int, const int = -1,
208 const int = -1, const int = -1 );
209 static int createMenu( const int, const QString& = QString(),
210 const int = -1, const int = -1 );
211 static int createMenu( QAction*, const int, const int = -1,
212 const int = -1, const int = -1 );
213 static int createMenu( QAction*, const QString&, const int = -1,
214 const int = -1, const int = -1 );
216 static QAction* createSeparator();
218 static QAction* createAction( const int, const QString&,
219 const QString& = QString(), const QString& = QString(),
220 const QString& = QString(), const int = 0, const bool = false );
222 static QtxActionGroup* createActionGroup( const int, const bool = true );
224 static QAction* action( const int );
225 static int actionId( const QAction* );
227 static void addSetting ( const QString&, const QString&, const double );
228 static void addSetting ( const QString&, const QString&, const int );
229 static void addSetting ( const QString&, const QString&, const bool, const int );
230 static void addSetting ( const QString&, const QString&, const QString& );
231 static void addSetting ( const QString&, const QString&, const QColor& );
232 static int integerSetting( const QString&, const QString&, const int = 0 );
233 static double doubleSetting ( const QString&, const QString&, const double = 0 );
234 static bool boolSetting ( const QString&, const QString&, const bool = 0 );
235 static QString stringSetting ( const QString&, const QString&, const QString& = QString("") );
236 static QColor colorSetting ( const QString&, const QString&, const QColor& = QColor() );
237 static void removeSetting ( const QString&, const QString& );
238 static bool hasSetting ( const QString&, const QString& );
240 static int addGlobalPreference( const QString& );
241 static int addPreference( const QString& );
242 static int addPreference( const QString&,
243 const int, const int = PT_Auto,
244 const QString& = QString(),
245 const QString& = QString() );
246 static QVariant preferenceProperty( const int, const QString& );
247 static void setPreferenceProperty( const int, const QString&, const QVariant& );
248 static void addPreferenceProperty( const int, const QString&, const int, const QVariant& );
250 static void message( const QString&, bool = true );
251 static void clearMessages();
253 static QList<int> getViews();
254 static int getActiveView();
255 static QString getViewType( const int );
256 static bool setViewTitle( const int, const QString& );
257 static QString getViewTitle( const int );
258 static QList<int> findViews( const QString& );
259 static bool activateView( const int );
260 static int createView( const QString&, bool visible = true, const int width = 0, const int height = 0 );
261 static int createView( const QString&, QWidget* );
262 static bool closeView( const int );
263 static int cloneView( const int );
264 static void setViewVisible( const int id, bool visible = true );
265 static bool isViewVisible( const int );
266 static void setViewClosable( const int, const bool );
267 static bool isViewClosable( const int );
269 static bool groupAllViews();
270 static bool splitView( const int, const Orientation, const Action );
271 static bool moveView( const int, const int, const bool );
272 static QList<int> neighbourViews( const int );
274 static void displayCurve(const int, Plot2d_Curve*);
275 static void eraseCurve(const int, Plot2d_Curve*);
276 static void eraseCurve(Plot2d_Curve*);
277 static void updateCurves( const int );
278 static QString getPlot2dTitle(const int, ObjectType = MainTitle);
279 static void setPlot2dTitle(const int, const QString&, ObjectType = MainTitle, bool = true);
280 static QList<double> getPlot2dFitRangeByCurves(const int);
281 static QList<double> getPlot2dFitRangeCurrent(const int);
282 static void setPlot2dFitRange(const int, const double XMin, const double XMax, const double YMin, const double YMax);
284 // the following methods are obsolete
285 static void addStringSetting( const QString&, const QString&, bool = true );
286 static void addIntSetting ( const QString&, const int, bool = true );
287 static void addBoolSetting ( const QString&, const bool, bool = true );
288 static void addDoubleSetting( const QString&, const double, bool = true );
289 static void removeSettings ( const QString& );
290 static QString getSetting ( const QString& );
292 static void removeChild( const QString& = QString() );
295 #endif // SALOME_PYQT_H