]> SALOME platform Git repositories - modules/shaper.git/blob - src/XGUI/XGUI_MainWindow.cpp
Salome HOME
"GUI" stubs for testing of CMake building procedures, preliminary examples of GUI
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.cpp
1 #include "XGUI_MainWindow.h"
2 #include "XGUI_MainMenu.h"
3
4 #include <QMdiArea>
5 #include <QTreeWidget>
6 #include <QDockWidget>
7 #include <QTextEdit>
8 #include <QMdiSubWindow>
9 #include <QLabel>
10 #include <QToolBar>
11 #include <QToolButton>
12 #include <QAction>
13 #include <QTreeWidgetItem>
14
15 XGUI_MainWindow::XGUI_MainWindow(QWidget* parent) :
16     QMainWindow(parent), myObjectBrowser(0)
17 {
18     //menuBar();
19     myMenuBar = new XGUI_MainMenu(this);
20
21     QDockWidget* aDoc = new QDockWidget(this);
22     aDoc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
23     aDoc->setWindowTitle(tr("OBJECT_BROWSER_TITLE"));
24     myObjectBrowser = new QTreeWidget(aDoc);
25     myObjectBrowser->setColumnCount(1);
26     myObjectBrowser->setHeaderHidden(true);
27     aDoc->setWidget(myObjectBrowser);
28     addDockWidget(Qt::LeftDockWidgetArea, aDoc);
29     aDoc->hide();
30
31     aDoc = new QDockWidget(this);
32     aDoc->setFeatures(QDockWidget::AllDockWidgetFeatures | QDockWidget::DockWidgetVerticalTitleBar);
33     aDoc->setMinimumHeight(20);
34     aDoc->setWindowTitle("Console");
35     QTextEdit* aTextEdt = new QTextEdit(aDoc);
36     aTextEdt->setText(">>>");
37     aTextEdt->setMinimumHeight(20);
38     aDoc->setWidget(aTextEdt);
39     addDockWidget(Qt::BottomDockWidgetArea, aDoc);
40
41     QMdiArea* aMdiArea = new QMdiArea(this);
42     setCentralWidget(aMdiArea);
43
44     aMdiArea->addSubWindow(getSubWindow(), Qt::FramelessWindowHint);
45
46     fillObjectBrowser();
47
48 }
49
50
51 QWidget* XGUI_MainWindow::getSubWindow()
52 {
53     QMdiSubWindow* aSub = new QMdiSubWindow(this);
54     QLabel* aLbl = new QLabel(aSub);
55     aLbl->setFrameStyle(QFrame::Sunken);
56     aLbl->setFrameShape(QFrame::Panel);
57     aLbl->setPixmap(QPixmap(":pictures/ViewPort.png"));
58     aLbl->setScaledContents(true);
59     aSub->setWidget(aLbl);
60
61     QStringList aPictures;
62     aPictures<<":pictures/occ_view_camera_dump.png"<<":pictures/occ_view_style_switch.png";
63     aPictures<<":pictures/occ_view_triedre.png"<<":pictures/occ_view_fitall.png";
64     aPictures<<":pictures/occ_view_fitarea.png"<<":pictures/occ_view_zoom.png";
65     aPictures<<":pictures/occ_view_pan.png"<<":pictures/occ_view_glpan.png";
66     aPictures<<":pictures/occ_view_rotate.png"<<":pictures/occ_view_front.png";
67     aPictures<<":pictures/occ_view_back.png"<<":pictures/occ_view_left.png";
68     aPictures<<":pictures/occ_view_right.png"<<":pictures/occ_view_top.png";
69     aPictures<<":pictures/occ_view_bottom.png"<<":pictures/occ_view_clone.png";
70
71     QToolBar* aBar = new QToolBar(aSub);
72     aBar->setGeometry(0,0,500,30);
73
74     QAction* aBtn;
75     foreach(QString aName, aPictures) {
76         aBtn = new QAction(aBar);
77         aBtn->setIcon(QIcon(aName));
78         aBar->addAction(aBtn);
79     }
80     
81     aBar = new QToolBar(aSub);
82     aBar->setGeometry(615,0,100,25);
83     QStringList aWndIcons;
84     aWndIcons<<":pictures/wnd_minimize.png"<<":pictures/wnd_maximize.png"<<":pictures/wnd_close.png";
85     foreach(QString aName, aWndIcons) {
86         aBtn = new QAction(aBar);
87         aBtn->setIcon(QIcon(aName));
88         aBar->addAction(aBtn);
89     }
90
91     return aSub;
92 }
93
94
95 XGUI_MainWindow::~XGUI_MainWindow(void)
96 {
97 }
98
99 //******************************************************
100 void XGUI_MainWindow::showObjectBrowser()
101 {
102     myObjectBrowser->parentWidget()->show();
103 }
104
105 //******************************************************
106 void XGUI_MainWindow::hideObjectBrowser()
107 {
108     myObjectBrowser->parentWidget()->hide();
109 }
110
111 //******************************************************
112 void XGUI_MainWindow::fillObjectBrowser()
113 {
114     QStringList aNames;
115     aNames << "Parameters" << "Constructions";
116     aNames << "Part 1" << "Part 2" << "Part 3";
117     aNames << "Properties";
118
119     QStringList aIcons;
120     aIcons << ":pictures/params_folder.png";
121     aIcons << ":pictures/constr_folder.png";
122     aIcons << ":pictures/part_ico.png";
123     aIcons << ":pictures/part_ico.png";
124     aIcons << ":pictures/part_ico.png";
125     aIcons << ":pictures/properties.png";
126
127     QList<QTreeWidgetItem*> aItems;
128     foreach(QString aName, aNames) {
129         QTreeWidgetItem* aItem = new QTreeWidgetItem(myObjectBrowser);
130         aItem->setText(0, aName);
131         aItems.append(aItem);
132     }
133     for(int i = 0; i < aItems.length(); i++) {
134         aItems[i]->setIcon(0, QIcon(aIcons[i]));
135     }
136     myObjectBrowser->addTopLevelItems(aItems);
137
138     for (int i = 2; i < 5; i++) {
139         QTreeWidgetItem* aItem = new QTreeWidgetItem(aItems[i]);
140         aItem->setText(0, "Parameters");
141         aItem->setIcon(0, QIcon(":pictures/params_folder.png"));
142
143         aItem = new QTreeWidgetItem(aItems[i]);
144         aItem->setText(0, "Construction");
145         aItem->setIcon(0, QIcon(":pictures/constr_folder.png"));
146
147         aItem = new QTreeWidgetItem(aItems[i]);
148         aItem->setText(0, "Bodies");
149         aItem->setIcon(0, QIcon(":pictures/part_ico.png"));
150
151         aItem = new QTreeWidgetItem(aItems[i]);
152         aItem->setText(0, "Features");
153         aItem->setIcon(0, QIcon(":pictures/features.png"));
154     }
155 }