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 ")
94 } else if (myViewType == VIEW_VTK) {
96 if ( dir = getenv("SALOME_SITE_DIR")) {
97 dir = QAD_Tools::addSlash(dir) ;
99 dir = QAD_Tools::addSlash(dir) ;
100 dir = dir + "salome" ;
101 dir = QAD_Tools::addSlash(dir) ;
103 dir = dir + "libVTKViewer.dll" ;
105 dir = dir + "libVTKViewer.so" ;
107 MESSAGE ( " GUI library = " << dir );
108 fileInfo.setFile(dir) ;
109 if (fileInfo.exists()) {
110 ComponentLib = fileInfo.fileName();
114 MESSAGE (" Not found ");
117 if ( (dir = getenv("SALOME_ROOT_DIR")) && !found ) {
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 ");
137 } else if (myViewType == VIEW_GRAPHSUPERV) {
138 if ( dir = getenv("SALOME_SITE_DIR")){
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 + "libSUPERVGraph.dll" ;
147 dir = dir + "libSUPERVGraph.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("SALOME_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 + "libSUPERVGraph.dll" ;
168 dir = dir + "libSUPERVGraph.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_PLOT2D) {
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 + "libPlot2d.dll" ;
189 dir = dir + "libPlot2d.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 + "libPlot2d.dll" ;
210 dir = dir + "libPlot2d.so" ;
212 MESSAGE ( " GUI library = " << dir )
213 fileInfo.setFile(dir) ;
214 if (fileInfo.exists()) {
215 ComponentLib = fileInfo.fileName() ;
219 MESSAGE (" Not found ")
222 QMessageBox::critical( this,
224 tr("undefined view type") );
228 SharedLib.SetName( strdup(ComponentLib) );
230 bool ok = SharedLib.DlOpen(OSD_RTLD_LAZY);
232 QMessageBox::critical( this,
234 tr( SharedLib.DlError() ) );
237 OSD_Function osdF = SharedLib.DlSymb("createView");
238 if ( osdF != NULL ) {
239 View (*f1) = (QAD_ViewFrame* (*) (QAD_RightFrame*)) osdF;
240 myViewFrame = (*f1)(this);
242 QMessageBox::critical( this,
244 tr("createView undefined") );
249 QValueList<int> sizes;
251 myViewFrame->setMinimumSize( 1, 1 );
252 vsplitter = new QAD_Splitter( Qt::Horizontal, this );
253 vsplitter->setMinimumSize( 1, 1 );
254 vsplitter->setCompressEnabled( true );
255 myPyEditor = new QAD_PyEditor(_interp, vsplitter ,"Python Interpreter");
256 myPyEditor->setMinimumSize( 1, 1 );
257 myMessage = new QAD_Message( vsplitter ,"Message");
258 myMessage->setMinimumSize( 1, 1 );
260 sizes.append( 0.48 * DesktopHeight );
261 sizes.append( 0.16 * DesktopHeight );
264 sizes.append( 0.25 * DesktopWidth );
265 sizes.append( 0.25 * DesktopWidth );
266 vsplitter->setSizes( sizes );
272 QAD_RightFrame::~QAD_RightFrame()
276 QAD_ViewFrame* QAD_RightFrame::getViewFrame() const
282 Returns reference to the message window [ static ]
284 QAD_Message* QAD_RightFrame::getMessage() const
290 Returns the Python interpreter that belongs to this study
292 QAD_PyInterp* QAD_RightFrame::get_PyInterp(void)
298 Returns reference to the Python window [ static ]
300 QAD_PyEditor* QAD_RightFrame::getPyEditor() const
308 void QAD_RightFrame::compressUp()
310 QSplitterPHandle* h = getHandleAfter(myViewFrame);
318 void QAD_RightFrame::unCompressUp()
320 QSplitterPHandle* h = getHandleAfter(myViewFrame);
322 h->unCompressBefore();
326 Compress Python Interpreter and Messages windows
328 void QAD_RightFrame::compressBottom()
330 QSplitterPHandle* h = getHandleAfter(myViewFrame);
336 Uncompress Python Interpreter and Messages windows
338 void QAD_RightFrame::unCompressBottom()
340 QSplitterPHandle* h = getHandleAfter(myViewFrame);
342 h->unCompressAfter();