Salome HOME
Transparent background on toolbars of ViewWindow
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.cpp
1 #include "XGUI_MainWindow.h"
2 #include "XGUI_MainMenu.h"
3 #include "XGUI_ViewWindow.h"
4 #include "XGUI_Viewer.h"
5
6 #include <QMdiArea>
7 #include <QTreeWidget>
8 #include <QDockWidget>
9 #include <QTextEdit>
10 #include <QLabel>
11 #include <QToolBar>
12 #include <QToolButton>
13 #include <QTreeWidgetItem>
14 #include <QLayout>
15 #include <QLineEdit>
16 #include <QGroupBox>
17 #include <QFormLayout>
18 #include <QDoubleSpinBox>
19 #include <QPushButton>
20 #include <QScrollArea>
21 #include <QComboBox>
22
23 XGUI_MainWindow::XGUI_MainWindow(QWidget* parent) :
24     QMainWindow(parent), myObjectBrowser(0)
25 {
26     setWindowTitle(tr("WINDOW_TITLE"));
27     myMenuBar = new XGUI_MainMenu(this);
28
29     QDockWidget* aDoc = new QDockWidget(this);
30     aDoc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
31     aDoc->setWindowTitle(tr("OBJECT_BROWSER_TITLE"));
32     myObjectBrowser = new QTreeWidget(aDoc);
33     myObjectBrowser->setColumnCount(1);
34     myObjectBrowser->setHeaderHidden(true);
35     aDoc->setWidget(myObjectBrowser);
36     addDockWidget(Qt::LeftDockWidgetArea, aDoc);
37     //aDoc->hide();
38
39     aDoc = new QDockWidget(this);
40     aDoc->setFeatures(QDockWidget::AllDockWidgetFeatures | QDockWidget::DockWidgetVerticalTitleBar);
41     aDoc->setMinimumHeight(0);
42     aDoc->setWindowTitle("Console");
43     QTextEdit* aTextEdt = new QTextEdit(aDoc);
44     aTextEdt->setText(">>>");
45     aDoc->setWidget(aTextEdt);
46     aTextEdt->setMinimumHeight(0);
47     addDockWidget(Qt::BottomDockWidgetArea, aDoc);
48
49     QMdiArea* aMdiArea = new QMdiArea(this);
50     setCentralWidget(aMdiArea);
51
52     myViewer = new XGUI_Viewer(this);
53     //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
54     //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
55
56     fillObjectBrowser();
57     addPropertyPanel();
58 }
59
60 XGUI_MainWindow::~XGUI_MainWindow(void)
61 {
62 }
63
64 //******************************************************
65 QMdiArea* XGUI_MainWindow::mdiArea() const
66 {
67     return static_cast<QMdiArea*>(centralWidget());
68 }
69
70
71 //******************************************************
72 void XGUI_MainWindow::showObjectBrowser()
73 {
74     myObjectBrowser->parentWidget()->show();
75 }
76
77 //******************************************************
78 void XGUI_MainWindow::hideObjectBrowser()
79 {
80     myObjectBrowser->parentWidget()->hide();
81 }
82
83 //******************************************************
84 void XGUI_MainWindow::fillObjectBrowser()
85 {
86     QStringList aNames;
87     aNames << "Parameters" << "Constructions";
88     aNames << "Part 1" << "Part 2" << "Part 3";
89     aNames << "Properties";
90
91     QStringList aIcons;
92     aIcons << ":pictures/params_folder.png";
93     aIcons << ":pictures/constr_folder.png";
94     aIcons << ":pictures/part_ico.png";
95     aIcons << ":pictures/part_ico.png";
96     aIcons << ":pictures/part_ico.png";
97     aIcons << ":pictures/properties.png";
98
99     QList<QTreeWidgetItem*> aItems;
100     foreach(QString aName, aNames) {
101         QTreeWidgetItem* aItem = new QTreeWidgetItem(myObjectBrowser);
102         aItem->setText(0, aName);
103         aItems.append(aItem);
104     }
105     for(int i = 0; i < aItems.length(); i++) {
106         aItems[i]->setIcon(0, QIcon(aIcons[i]));
107     }
108     myObjectBrowser->addTopLevelItems(aItems);
109
110     for (int i = 2; i < 5; i++) {
111         QTreeWidgetItem* aItem = new QTreeWidgetItem(aItems[i]);
112         aItem->setText(0, "Parameters");
113         aItem->setIcon(0, QIcon(":pictures/params_folder.png"));
114
115         aItem = new QTreeWidgetItem(aItems[i]);
116         aItem->setText(0, "Construction");
117         aItem->setIcon(0, QIcon(":pictures/constr_folder.png"));
118
119         aItem = new QTreeWidgetItem(aItems[i]);
120         aItem->setText(0, "Bodies");
121         aItem->setIcon(0, QIcon(":pictures/part_ico.png"));
122
123         aItem = new QTreeWidgetItem(aItems[i]);
124         aItem->setText(0, "Features");
125         aItem->setIcon(0, QIcon(":pictures/features.png"));
126     }
127 }
128
129
130 void XGUI_MainWindow::addPropertyPanel()
131 {
132     QDockWidget* aPropPanel = new QDockWidget(this);
133     aPropPanel->setWindowTitle("Point");
134
135     QWidget* aContent = new QWidget(aPropPanel);
136     QVBoxLayout* aMainLay = new QVBoxLayout(aContent);
137     aMainLay->setContentsMargins(3,3,3,3);
138     aPropPanel->setWidget(aContent);
139
140     /*QWidget* aNameWgt = new QWidget(aContent);
141     QHBoxLayout* aNameLay = new QHBoxLayout(aNameWgt);
142     aNameLay->setContentsMargins(0,0,0,0);
143     aMainLay->addWidget(aNameWgt);
144
145     aNameLay->addWidget(new QLabel("Name", aNameWgt));
146     aNameLay->addWidget(new QLineEdit(aNameWgt));*/
147
148     QComboBox* aCombo = new QComboBox(aContent);
149     aCombo->addItem("By coordinates");
150     aMainLay->addWidget(aCombo);
151
152     QWidget* aGrpBox1 = new QWidget(aContent);
153     //aGrpBox1->setFlat(true);
154     QFormLayout* aFrmLay = new QFormLayout(aGrpBox1);
155     aFrmLay->setContentsMargins(0, 6, 0, 0);
156     aMainLay->addWidget(aGrpBox1);
157
158
159     QLabel* aLbl = new QLabel(aGrpBox1);
160     aLbl->setPixmap(QPixmap(":pictures/x_point.png"));
161     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
162
163     aLbl = new QLabel(aGrpBox1);
164     aLbl->setPixmap(QPixmap(":pictures/y_point.png"));
165     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
166
167     aLbl = new QLabel(aGrpBox1);
168     aLbl->setPixmap(QPixmap(":pictures/z_point.png"));
169     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
170     
171
172 /*    aGrpBox1 = new QGroupBox("Normal vector", aContent);
173     aGrpBox1->setFlat(true);
174     aFrmLay = new QFormLayout(aGrpBox1);
175     aFrmLay->setContentsMargins(0, 6, 0, 0);
176     aMainLay->addWidget(aGrpBox1);
177
178     aLbl = new QLabel(aGrpBox1);
179     aLbl->setPixmap(QPixmap(":pictures/x_size.png"));
180     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
181
182     aLbl = new QLabel(aGrpBox1);
183     aLbl->setPixmap(QPixmap(":pictures/y_size.png"));
184     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
185
186     aLbl = new QLabel(aGrpBox1);
187     aLbl->setPixmap(QPixmap(":pictures/z_size.png"));
188     aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));*/
189     
190     aMainLay->addStretch(1);
191
192     QFrame* aFrm = new QFrame(aContent);
193     aFrm->setFrameStyle(QFrame::Sunken);
194     aFrm->setFrameShape(QFrame::Panel);
195     QHBoxLayout* aBtnLay = new QHBoxLayout(aFrm);
196     aBtnLay->setContentsMargins(0, 0, 0, 0);
197     aMainLay->addWidget(aFrm);
198
199     QPushButton* aBtn = new QPushButton(QIcon(":pictures/button_help.png"), "", aFrm);
200     aBtn->setFlat(true);
201     aBtnLay->addWidget(aBtn);
202     aBtnLay->addStretch(1);
203     aBtn = new QPushButton(QIcon(":pictures/button_ok.png"), "", aFrm);
204     aBtn->setFlat(true);
205     aBtnLay->addWidget(aBtn);
206     aBtn = new QPushButton(QIcon(":pictures/button_cancel.png"), "", aFrm);
207     aBtn->setFlat(true);
208     aBtnLay->addWidget(aBtn);
209
210     addDockWidget(Qt::RightDockWidgetArea, aPropPanel);
211 }