editor_window.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "editor_window.h"
  2. #include <QAction>
  3. #include <QLabel>
  4. #include <QMenuBar>
  5. #include <QToolBar>
  6. #include <QVBoxLayout>
  7. #include <QWidget>
  8. namespace MapEditor {
  9. EditorWindow::EditorWindow(QWidget *parent) : QMainWindow(parent) {
  10. setupUI();
  11. setupMenus();
  12. setWindowTitle("Standard of Iron - Map Editor");
  13. resize(1200, 800);
  14. }
  15. EditorWindow::~EditorWindow() = default;
  16. void EditorWindow::setupUI() {
  17. auto centralWidget = new QWidget(this);
  18. setCentralWidget(centralWidget);
  19. auto layout = new QVBoxLayout(centralWidget);
  20. m_renderWidget =
  21. new QLabel("Map Editor Render Area\n(OpenGL widget would go here)", this);
  22. static_cast<QLabel *>(m_renderWidget)->setAlignment(Qt::AlignCenter);
  23. static_cast<QLabel *>(m_renderWidget)
  24. ->setStyleSheet("QLabel { background-color: #2c3e50; color: white; "
  25. "border: 1px solid #34495e; }");
  26. layout->addWidget(m_renderWidget);
  27. }
  28. void EditorWindow::setupMenus() {
  29. auto fileMenu = menuBar()->addMenu("&File");
  30. auto newAction = new QAction("&New", this);
  31. newAction->setShortcut(QKeySequence::New);
  32. connect(newAction, &QAction::triggered, this, &EditorWindow::newMap);
  33. fileMenu->addAction(newAction);
  34. auto openAction = new QAction("&Open", this);
  35. openAction->setShortcut(QKeySequence::Open);
  36. connect(openAction, &QAction::triggered, this, &EditorWindow::openMap);
  37. fileMenu->addAction(openAction);
  38. auto saveAction = new QAction("&Save", this);
  39. saveAction->setShortcut(QKeySequence::Save);
  40. connect(saveAction, &QAction::triggered, this, &EditorWindow::saveMap);
  41. fileMenu->addAction(saveAction);
  42. fileMenu->addSeparator();
  43. auto exitAction = new QAction("E&xit", this);
  44. exitAction->setShortcut(QKeySequence::Quit);
  45. connect(exitAction, &QAction::triggered, this, &QWidget::close);
  46. fileMenu->addAction(exitAction);
  47. auto toolbar = addToolBar("Main");
  48. toolbar->addAction(newAction);
  49. toolbar->addAction(openAction);
  50. toolbar->addAction(saveAction);
  51. }
  52. void EditorWindow::newMap() {}
  53. void EditorWindow::openMap() {}
  54. void EditorWindow::saveMap() {}
  55. } // namespace MapEditor