This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
YASMIN/ui/menu/MainMenu.cpp
2016-09-28 12:16:45 +02:00

79 lines
2.3 KiB
C++

#include "MainMenu.h"
#include "../Icons.h"
#include <QPushButton>
#include <QGridLayout>
#include <QLabel>
#include <Indoor/Assertions.h>
#include "../UIHelper.h"
MainMenu::MainMenu(QWidget* parent) : QWidget(parent) {
QGridLayout* lay = new QGridLayout(this);
int row = 0;
int col = 0;
btnLoadMap = getButton("load");
Assert::isTrue(connect(btnLoadMap, &QPushButton::clicked, this, &MainMenu::onLoadButton), "connect() failed");
lay->addWidget(btnLoadMap, row, col, 1,1,Qt::AlignTop); ++col;
btnDebug = getButton("bug");
Assert::isTrue(connect(btnDebug, &QPushButton::clicked, this, &MainMenu::onDebugButton), "connect() failed");
lay->addWidget(btnDebug, row, col, 1,1,Qt::AlignTop); ++col;
btnCamera = getButton("camera");
Assert::isTrue(connect(btnCamera, &QPushButton::clicked, this, &MainMenu::onCameraButton), "connect() failed");
lay->addWidget(btnCamera, row, col, 1,1,Qt::AlignTop); ++col;
btnTransparent = getButton("wall");
Assert::isTrue(connect(btnTransparent, &QPushButton::clicked, this, &MainMenu::onTransparentButton), "connect() failed");
lay->addWidget(btnTransparent, row, col, 1,1,Qt::AlignTop); ++col;
btn3D = getButton("cube");
Assert::isTrue(connect(btn3D, &QPushButton::clicked, this, &MainMenu::on3DButton), "connect() failed");
lay->addWidget(btn3D, row, col, 1,1,Qt::AlignTop); ++col;
btnStart = getButton("run");
Assert::isTrue(connect(btnStart, &QPushButton::clicked, this, &MainMenu::onStartButton), "connect() failed");
lay->addWidget(btnStart, row, col, 1,1,Qt::AlignTop); ++col;
}
static inline void setButtonSize(QPushButton* btn, int size) {
const int border = 4;
btn->setMinimumHeight(size+border);
btn->setMaximumHeight(size+border);
btn->setMinimumWidth(size+border);
btn->setMaximumWidth(size+border);
}
void MainMenu::resizeEvent(QEvent* evt) {
const int s = UIHelper::getButtonSize(this->parent());
setButtonSize(btnLoadMap, s);
setButtonSize(btnDebug, s);
setButtonSize(btnCamera, s);
setButtonSize(btnTransparent, s);
setButtonSize(btnStart, s);
setButtonSize(btn3D, s);
}
QPushButton* MainMenu::getButton(const std::string& icon) {
const int size = UIHelper::getButtonSize(this->parent());
QPushButton* btn = new QPushButton(Icons::getIcon(icon, size), "");
btn->setIconSize(QSize(size,size));
setButtonSize(btn, size);
return btn;
}