Salome HOME
Features and plugins loading mechanisms
[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 }
15
16 XGUI_MainMenu::~XGUI_MainMenu(void)
17 {
18 }
19
20 XGUI_Workbench* XGUI_MainMenu::addWorkbench(const QString& theId, const QString& theTitle)
21 {
22   QDockWidget* aDock = new QDockWidget(myDesktop);
23   aDock->setFeatures(QDockWidget::DockWidgetVerticalTitleBar);
24   aDock->setAllowedAreas(Qt::TopDockWidgetArea);
25   QString aTitle = theTitle;
26   if (aTitle.isEmpty()) {
27     aTitle = tr(theId.toLatin1().constData());
28   }
29   aDock->setWindowTitle(aTitle);
30   aDock->setMinimumHeight(30);
31   aDock->setContentsMargins(0, 0, 0, 0);
32
33   XGUI_Workbench* aPage = new XGUI_Workbench(aDock);
34   aPage->setObjectName(theId);
35   aDock->setWidget(aPage);
36
37   myDesktop->addDockWidget(Qt::TopDockWidgetArea, aDock);
38   if (myMenuTabs.length() > 1) {
39     myDesktop->tabifyDockWidget(myMenuTabs.last(), aDock);
40   }
41
42   myMenuTabs.append(aDock);
43   return aPage;
44 }
45
46 /*
47  * Searches for already created workbench with given name.
48  */
49 XGUI_Workbench* XGUI_MainMenu::findWorkbench(const QString& theObjName)
50 {
51   return myDesktop->findChild<XGUI_Workbench*>(theObjName);
52 }