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