Salome HOME
efce9ab2c0bca4aacc50089f752d041dd8094ab4
[modules/shaper.git] / src / XGUI / XGUI_MainMenu.cpp
1 #include "XGUI_MainMenu.h"
2 #include "XGUI_Workbench.h"
3 #include "XGUI_MainWindow.h"
4
5 #include <QLayout>
6 #include <QTabWidget>
7 #include <QLabel>
8 #include <QDockWidget>
9
10 XGUI_MainMenu::XGUI_MainMenu(XGUI_MainWindow *parent)
11     : QObject(parent), myDesktop(parent)
12 {
13   parent->setTabPosition(Qt::TopDockWidgetArea, QTabWidget::North);
14   myGeneralPage = addWorkbench(tr("General"));
15 }
16
17 XGUI_MainMenu::~XGUI_MainMenu(void)
18 {
19 }
20
21 XGUI_Workbench* XGUI_MainMenu::addWorkbench(const QString& theId, const QString& theTitle)
22 {
23   QDockWidget* aDock = new QDockWidget(myDesktop);
24   aDock->setFeatures(QDockWidget::DockWidgetVerticalTitleBar);
25   aDock->setAllowedAreas(Qt::TopDockWidgetArea);
26   QString aTitle = theTitle;
27   if (aTitle.isEmpty()) {
28     aTitle = tr(theId.toLatin1().constData());
29   }
30   aDock->setWindowTitle(aTitle);
31   aDock->setMinimumHeight(30);
32   aDock->setContentsMargins(0, 0, 0, 0);
33
34   XGUI_Workbench* aPage = new XGUI_Workbench(aDock);
35   aPage->setObjectName(theId);
36   aDock->setWidget(aPage);
37
38   myDesktop->addDockWidget(Qt::TopDockWidgetArea, aDock);
39   if (myMenuTabs.length() > 1) {
40     myDesktop->tabifyDockWidget(myMenuTabs.last(), aDock);
41   }
42
43   myMenuTabs.append(aDock);
44   return aPage;
45 }
46
47 /*
48  * Searches for already created workbench with given name.
49  */
50 XGUI_Workbench* XGUI_MainMenu::findWorkbench(const QString& theObjName)
51 {
52   return myDesktop->findChild<XGUI_Workbench*>(theObjName);
53 }