-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDisplayWidget.cpp
81 lines (63 loc) · 2.28 KB
/
DisplayWidget.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "DisplayWidget.h"
#include "SceneManager.h"
DisplayWidget* DisplayWidget::m_pInstance = 0;
DisplayWidget::DisplayWidget()
: QWidget(0)
{
displayLbl = new QLabel("Display:");
sceneChk = new QCheckBox("Scene");
sceneChk->setCheckState(Qt::Checked);
physicsChk = new QCheckBox("Physics");
tilesChk = new QCheckBox("Tiles");
editModeLbl = new QLabel("Edit Mode:");
editModeCmb = new QComboBox();
editModeCmb->addItem("Scene");
editModeCmb->addItem("Physics");
editModeCmb->addItem("Tiles");
QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *displayLayout1 = new QHBoxLayout;
QHBoxLayout *displayLayout2 = new QHBoxLayout;
QHBoxLayout *editLayout = new QHBoxLayout;
displayLayout1->addWidget(displayLbl);
displayLayout1->addWidget(sceneChk);
displayLayout2->addWidget(physicsChk);
displayLayout2->addWidget(tilesChk);
editLayout->addWidget(editModeLbl);
editLayout->addWidget(editModeCmb);
mainLayout->addLayout(displayLayout1);
mainLayout->addLayout(displayLayout2);
mainLayout->addLayout(editLayout);
mainLayout->addStretch();
setLayout(mainLayout);
layout()->setContentsMargins(5,0,0,0);
connect(sceneChk, SIGNAL(clicked()),this, SLOT(sceneChecked()));
connect(physicsChk, SIGNAL(clicked()),this, SLOT(physicsChecked()));
connect(tilesChk, SIGNAL(clicked()),this, SLOT(tilesChecked()));
connect(editModeCmb, SIGNAL(activated(QString)),this, SLOT(currentModeChanged(QString)));
setFixedHeight(sizeHint().height());
setFixedWidth(150);
}
DisplayWidget *DisplayWidget::getInstance() {
if (m_pInstance == 0) {
m_pInstance = new DisplayWidget();
}
return m_pInstance;
}
void DisplayWidget::sceneChecked() {
SceneManager::getInstance()->setDisplayScene(!SceneManager::getInstance()->getDisplayScene());
}
void DisplayWidget::physicsChecked() {
SceneManager::getInstance()->setDisplayPhysics(!SceneManager::getInstance()->getDisplayPhysics());
}
void DisplayWidget::tilesChecked() {
SceneManager::getInstance()->setDisplayTiles(!SceneManager::getInstance()->getDisplayTiles());
}
void DisplayWidget::currentModeChanged(QString mode) {
if (mode == "Scene") {
SceneManager::getInstance()->setEditMode(0);
} else if (mode == "Physics") {
SceneManager::getInstance()->setEditMode(1);
} else if (mode == "Tiles") {
SceneManager::getInstance()->setEditMode(2);
}
}