2 // File : QAD_RightFrame.cxx
3 // Created : Thu Jun 14 14:51:52 2001
4 // Author : Nicolas REJNERI
7 // Copyright : Open CASCADE
10 #include "QAD_RightFrame.h"
11 #include "QAD_Application.h"
12 #include "QAD_Desktop.h"
13 #include "QAD_StudyFrame.h"
14 #include "QAD_Tools.h"
15 #include <qvaluelist.h>
18 #include <qmessagebox.h>
20 // Open CASCADE Include
21 #include <OSD_SharedLibrary.hxx>
24 \class QAD_RightFrame QAD_RightFrame.h
25 \brief Frame window which contains QAD_ViewFrame, QAD_PyInterp and QAD_Message.
28 typedef QAD_ViewFrame* View(QAD_RightFrame*);
34 QAD_RightFrame::QAD_RightFrame(QWidget *parent, const char *name,
35 QAD_PyInterp* interp, ViewType vt)
36 : QAD_Splitter( Qt::Vertical, parent, name )
38 this->setCompressEnabled( true );
41 QAD_Desktop* Desktop = QAD_Application::getDesktop();
42 int DesktopHeight = Desktop->getMainFrame()->width();
43 int DesktopWidth = Desktop->getMainFrame()->height();
47 OSD_SharedLibrary SharedLib = OSD_SharedLibrary();
52 if (myViewType == VIEW_OCC) {
53 if ( dir = getenv("SALOME_SITE_DIR")) {
54 dir = QAD_Tools::addSlash(dir) ;
56 dir = QAD_Tools::addSlash(dir) ;
57 dir = dir + "salome" ;
58 dir = QAD_Tools::addSlash(dir) ;
60 dir = dir + "libOCCViewer.dll" ;
62 dir = dir + "libOCCViewer.so" ;
64 MESSAGE ( " GUI library = " << dir )
65 fileInfo.setFile(dir) ;
66 if (fileInfo.exists()) {
67 ComponentLib = fileInfo.fileName();
71 MESSAGE (" Not found ")
74 if ( (dir = getenv("SALOME_ROOT_DIR")) && !found ) {
75 dir = QAD_Tools::addSlash(dir) ;
77 dir = QAD_Tools::addSlash(dir) ;
78 dir = dir + "salome" ;
79 dir = QAD_Tools::addSlash(dir) ;
81 dir = dir + "libOCCViewer.dll" ;
83 dir = dir + "libOCCViewer.so" ;
85 MESSAGE ( " GUI library = " << dir )
86 fileInfo.setFile(dir) ;
87 if (fileInfo.exists()) {
88 ComponentLib = fileInfo.fileName();
92 MESSAGE (" Not found ")
95 if ( (dir = getenv("KERNEL_ROOT_DIR")) && !found ) {
96 dir = QAD_Tools::addSlash(dir) ;
98 dir = QAD_Tools::addSlash(dir) ;
99 dir = dir + "salome" ;
100 dir = QAD_Tools::addSlash(dir) ;
102 dir = dir + "libOCCViewer.dll" ;
104 dir = dir + "libOCCViewer.so" ;
106 MESSAGE ( " GUI library = " << dir )
107 fileInfo.setFile(dir) ;
108 if (fileInfo.exists()) {
109 ComponentLib = fileInfo.fileName();
113 MESSAGE (" Not found ")
115 } else if (myViewType == VIEW_VTK) {
117 if ( dir = getenv("SALOME_SITE_DIR")) {
118 dir = QAD_Tools::addSlash(dir) ;
120 dir = QAD_Tools::addSlash(dir) ;
121 dir = dir + "salome" ;
122 dir = QAD_Tools::addSlash(dir) ;
124 dir = dir + "libVTKViewer.dll" ;
126 dir = dir + "libVTKViewer.so" ;
128 MESSAGE ( " GUI library = " << dir );
129 fileInfo.setFile(dir) ;
130 if (fileInfo.exists()) {
131 ComponentLib = fileInfo.fileName();
135 MESSAGE (" Not found ");
138 if ( (dir = getenv("SALOME_ROOT_DIR")) && !found ) {
139 dir = QAD_Tools::addSlash(dir) ;
141 dir = QAD_Tools::addSlash(dir) ;
142 dir = dir + "salome" ;
143 dir = QAD_Tools::addSlash(dir) ;
145 dir = dir + "libVTKViewer.dll" ;
147 dir = dir + "libVTKViewer.so" ;
149 MESSAGE ( " GUI library = " << dir );
150 fileInfo.setFile(dir) ;
151 if (fileInfo.exists()) {
152 ComponentLib = fileInfo.fileName();
156 MESSAGE (" Not found ");
159 if ( (dir = getenv("KERNEL_ROOT_DIR")) && !found ) {
160 dir = QAD_Tools::addSlash(dir) ;
162 dir = QAD_Tools::addSlash(dir) ;
163 dir = dir + "salome" ;
164 dir = QAD_Tools::addSlash(dir) ;
166 dir = dir + "libVTKViewer.dll" ;
168 dir = dir + "libVTKViewer.so" ;
170 MESSAGE ( " GUI library = " << dir );
171 fileInfo.setFile(dir) ;
172 if (fileInfo.exists()) {
173 ComponentLib = fileInfo.fileName();
177 MESSAGE (" Not found ");
179 } else if (myViewType == VIEW_GRAPHSUPERV) {
180 if ( dir = getenv("SALOME_SITE_DIR")){
181 dir = QAD_Tools::addSlash(dir) ;
183 dir = QAD_Tools::addSlash(dir) ;
184 dir = dir + "salome" ;
185 dir = QAD_Tools::addSlash(dir) ;
187 dir = dir + "libSUPERVGraph.dll" ;
189 dir = dir + "libSUPERVGraph.so" ;
191 MESSAGE ( " GUI library = " << dir )
192 fileInfo.setFile(dir) ;
193 if (fileInfo.exists()) {
194 ComponentLib = fileInfo.fileName() ;
198 MESSAGE (" Not found ")
201 if ( (dir = getenv("SALOME_ROOT_DIR")) && !found ) {
202 dir = QAD_Tools::addSlash(dir) ;
204 dir = QAD_Tools::addSlash(dir) ;
205 dir = dir + "salome" ;
206 dir = QAD_Tools::addSlash(dir) ;
208 dir = dir + "libSUPERVGraph.dll" ;
210 dir = dir + "libSUPERVGraph.so" ;
212 MESSAGE ( " GUI library = " << dir )
213 fileInfo.setFile(dir) ;
214 if (fileInfo.exists()) {
215 ComponentLib = fileInfo.fileName() ;
219 MESSAGE (" Not found ")
222 if ( (dir = getenv("KERNEL_ROOT_DIR")) && !found ) {
223 dir = QAD_Tools::addSlash(dir) ;
225 dir = QAD_Tools::addSlash(dir) ;
226 dir = dir + "salome" ;
227 dir = QAD_Tools::addSlash(dir) ;
229 dir = dir + "libSUPERVGraph.dll" ;
231 dir = dir + "libSUPERVGraph.so" ;
233 MESSAGE ( " GUI library = " << dir )
234 fileInfo.setFile(dir) ;
235 if (fileInfo.exists()) {
236 ComponentLib = fileInfo.fileName() ;
240 MESSAGE (" Not found ")
242 } else if (myViewType == VIEW_PLOT2D) {
243 if ( dir = getenv("SALOME_SITE_DIR")){
244 dir = QAD_Tools::addSlash(dir) ;
246 dir = QAD_Tools::addSlash(dir) ;
247 dir = dir + "salome" ;
248 dir = QAD_Tools::addSlash(dir) ;
250 dir = dir + "libPlot2d.dll" ;
252 dir = dir + "libPlot2d.so" ;
254 MESSAGE ( " GUI library = " << dir )
255 fileInfo.setFile(dir) ;
256 if (fileInfo.exists()) {
257 ComponentLib = fileInfo.fileName() ;
261 MESSAGE (" Not found ")
264 if ( (dir = getenv("SALOME_ROOT_DIR")) && !found ) {
265 dir = QAD_Tools::addSlash(dir) ;
267 dir = QAD_Tools::addSlash(dir) ;
268 dir = dir + "salome" ;
269 dir = QAD_Tools::addSlash(dir) ;
271 dir = dir + "libPlot2d.dll" ;
273 dir = dir + "libPlot2d.so" ;
275 MESSAGE ( " GUI library = " << dir )
276 fileInfo.setFile(dir) ;
277 if (fileInfo.exists()) {
278 ComponentLib = fileInfo.fileName() ;
282 MESSAGE (" Not found ")
285 if ( (dir = getenv("KERNEL_ROOT_DIR")) && !found ) {
286 dir = QAD_Tools::addSlash(dir) ;
288 dir = QAD_Tools::addSlash(dir) ;
289 dir = dir + "salome" ;
290 dir = QAD_Tools::addSlash(dir) ;
292 dir = dir + "libPlot2d.dll" ;
294 dir = dir + "libPlot2d.so" ;
296 MESSAGE ( " GUI library = " << dir )
297 fileInfo.setFile(dir) ;
298 if (fileInfo.exists()) {
299 ComponentLib = fileInfo.fileName() ;
303 MESSAGE (" Not found ")
306 QMessageBox::critical( this,
308 tr("undefined view type") );
312 SharedLib.SetName( strdup(ComponentLib) );
314 bool ok = SharedLib.DlOpen(OSD_RTLD_LAZY);
316 QMessageBox::critical( this,
318 tr( SharedLib.DlError() ) );
321 OSD_Function osdF = SharedLib.DlSymb("createView");
322 if ( osdF != NULL ) {
323 View (*f1) = (QAD_ViewFrame* (*) (QAD_RightFrame*)) osdF;
324 myViewFrame = (*f1)(this);
326 QMessageBox::critical( this,
328 tr("createView undefined") );
333 QValueList<int> sizes;
335 myViewFrame->setMinimumSize( 1, 1 );
336 vsplitter = new QAD_Splitter( Qt::Horizontal, this );
337 vsplitter->setMinimumSize( 1, 1 );
338 vsplitter->setCompressEnabled( true );
339 myPyEditor = new QAD_PyEditor(_interp, vsplitter ,"Python Interpreter");
340 myPyEditor->setMinimumSize( 1, 1 );
341 myMessage = new QAD_Message( vsplitter ,"Message");
342 myMessage->setMinimumSize( 1, 1 );
344 sizes.append( 0.48 * DesktopHeight );
345 sizes.append( 0.16 * DesktopHeight );
348 sizes.append( 0.25 * DesktopWidth );
349 sizes.append( 0.25 * DesktopWidth );
350 vsplitter->setSizes( sizes );
356 QAD_RightFrame::~QAD_RightFrame()
360 QAD_ViewFrame* QAD_RightFrame::getViewFrame() const
366 Returns reference to the message window [ static ]
368 QAD_Message* QAD_RightFrame::getMessage() const
374 Returns the Python interpreter that belongs to this study
376 QAD_PyInterp* QAD_RightFrame::get_PyInterp(void)
382 Returns reference to the Python window [ static ]
384 QAD_PyEditor* QAD_RightFrame::getPyEditor() const
392 void QAD_RightFrame::compressUp()
394 QSplitterPHandle* h = getHandleAfter(myViewFrame);
402 void QAD_RightFrame::unCompressUp()
404 QSplitterPHandle* h = getHandleAfter(myViewFrame);
406 h->unCompressBefore();
410 Compress Python Interpreter and Messages windows
412 void QAD_RightFrame::compressBottom()
414 QSplitterPHandle* h = getHandleAfter(myViewFrame);
420 Uncompress Python Interpreter and Messages windows
422 void QAD_RightFrame::unCompressBottom()
424 QSplitterPHandle* h = getHandleAfter(myViewFrame);
426 h->unCompressAfter();