Salome HOME
Initial version
[tools/install.git] / src / helpwindow.cpp
1 //  File      : HelpWindow.cpp
2 //  Created   : Thu Dec 18 12:01:00 2002
3 //  Author    : Vasily Rusyaev 
4 //  Project   : SALOME Professional
5 //  Module    : InstallWizard
6 //  Copyright : 2003 CEA/DEN, EDF R&D
7 //  $Header$ 
8
9 #include "helpwindow.h"
10 #include <qstatusbar.h>
11 #include <qtoolbar.h>
12 #include <qtoolbutton.h>
13 #include <qiconset.h>
14 #include <qlabel.h>
15 #include <qstringlist.h> 
16 #include <qapplication.h>
17 #include <qdesktopwidget.h>
18 #include <qdir.h> 
19 #include <qfile.h>
20
21 #include "icons.h" 
22
23 #define  DEFAULT_WIDTH    800
24 #define  DEFAULT_HEIGHT   700
25
26 extern QString myVersion;
27 /*!
28   Constructor
29 */
30 HelpWindow::HelpWindow() : QMainWindow( 0, "SalomeProHelpWindow", WDestructiveClose )
31 {
32   QString hlpFile = QDir::currentDirPath() + "/doc/readme.html";
33   QString hlpDir = ".";
34   // caption
35   setCaption( tr("SALOME Professional %1 Installation Wizard Help").arg(myVersion) );
36   // icon
37   setIcon( QPixmap( (const char**)image0_data ) );
38   // create browser
39   browser = new QTextBrowser( this );
40   browser->mimeSourceFactory()->setFilePath( hlpDir );
41   browser->setFrameStyle( QFrame::Panel | QFrame::Sunken );
42   setCentralWidget( browser );
43   // set source directory
44   if ( !hlpFile.isEmpty() )
45     browser->setSource( hlpFile );
46   // toolbar
47   QToolBar* toolbar = new QToolBar( this );
48   addToolBar( toolbar, "Toolbar" );
49   QToolButton* button;
50   // --> back
51   button = new QToolButton( QIconSet( (const char**)back ), 
52                             tr( "Backward" ), 
53                             "", 
54                             browser, 
55                             SLOT( backward() ), 
56                             toolbar );
57   button->setEnabled( FALSE );
58   connect( browser, SIGNAL( backwardAvailable( bool ) ), button, SLOT( setEnabled( bool ) ) );
59   // --> forward
60   button = new QToolButton( QIconSet( (const char**)forward ), 
61                             tr( "Forward" ), 
62                             "", 
63                             browser, 
64                             SLOT( forward() ), 
65                             toolbar );
66   button->setEnabled( FALSE );
67   connect( browser, SIGNAL( forwardAvailable( bool ) ),  button, SLOT( setEnabled( bool ) ) );
68   // --> home
69   button = new QToolButton( QIconSet( (const char**)home ), 
70                             tr( "Home" ), 
71                             "", 
72                             browser, 
73                             SLOT( home() ), 
74                             toolbar );
75   toolbar->addSeparator();
76   // --> logo
77   QLabel* logo = new QLabel( toolbar, "logo" );
78   logo->setPixmap( QPixmap( (const char**)image1_data ) );
79   logo->setAlignment( AlignRight | AlignVCenter );
80   logo->setScaledContents( false );
81   toolbar->setStretchableWidget( logo );
82   setRightJustification( TRUE );
83   // disable docking of toolbar
84   setDockEnabled( Qt::DockLeft,    FALSE );
85   setDockEnabled( Qt::DockRight,   FALSE );
86   setDockEnabled( Qt::DockBottom,  FALSE );
87   setDockEnabled( Qt::DockTornOff, FALSE );
88   // disable dock menu
89   setDockMenuEnabled ( FALSE ) ;
90   // connect signals
91   connect( browser, SIGNAL( highlighted( const QString&) ), statusBar(), SLOT( message( const QString&)) );
92   // set focus
93   browser->setFocus();
94   // initial size
95   QSize sz = qApp->desktop()->size();
96   int x = ( sz.width()  - DEFAULT_WIDTH )  / 2;
97   int y = ( sz.height() - DEFAULT_HEIGHT ) / 2;
98   setGeometry( x, y, DEFAULT_WIDTH, DEFAULT_HEIGHT );
99 }
100
101 /*!
102   Destructor
103 */
104 HelpWindow::~HelpWindow()
105 {}
106
107 /*!
108   Creates Help window ane return pointer to it if help file exists,
109   otherwise returns 0 [ static ]
110 */
111 HelpWindow* HelpWindow::openHelp()
112 {
113   if ( QFile::exists( QDir::currentDirPath() + "/doc/readme.html" ) )
114     return new HelpWindow();
115   else
116     return 0;
117 }