Salome HOME
Re-factoring: interfaces removed from "XGUI", "GeomModule" renamed to "PartSet"
[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& theTitle)
22 {
23     QDockWidget* aDoc = new QDockWidget(myDesktop);
24     QString workbenchObjName = theTitle + "_Workbench";
25     aDoc->setObjectName(workbenchObjName);
26     aDoc->setFeatures(QDockWidget::DockWidgetVerticalTitleBar);
27     aDoc->setAllowedAreas(Qt::TopDockWidgetArea);
28     aDoc->setWindowTitle(theTitle);
29     aDoc->setMinimumHeight(30);
30     aDoc->setContentsMargins(0, 0, 0, 0);
31
32     XGUI_Workbench* aPage = new XGUI_Workbench(aDoc);
33     aDoc->setWidget(aPage);
34
35     myDesktop->addDockWidget(Qt::TopDockWidgetArea, aDoc);
36     if (myMenuTabs.length() > 1) {
37         myDesktop->tabifyDockWidget(myMenuTabs.last(), aDoc);
38     }
39
40     myMenuTabs.append(aDoc);
41     return aPage;
42 }
43
44 /*
45  * Searches for already created workbench with given name.
46  */
47 XGUI_Workbench* XGUI_MainMenu::findWorkbench(const QString& theObjName)
48 {
49   QDockWidget* aDoc = myDesktop->findChild<QDockWidget*>(theObjName);
50   if(aDoc) {
51     return dynamic_cast<XGUI_Workbench*>(aDoc->widget());
52   }
53   return NULL;
54 }
55
56
57 XGUI_MenuGroupPanel* XGUI_MainMenu::addGroup(int thePageId)
58 {
59     XGUI_Workbench* aPage = dynamic_cast<XGUI_Workbench*>(myMenuTabs[thePageId]->widget());
60     return aPage->addGroup();
61 }
62