diff --git a/CMakeLists.txt b/CMakeLists.txt index 22294821..2c13d634 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -179,8 +179,8 @@ set(RENDERER_SW_SOURCE_FILES src/core/renderer_sw/renderer_sw.cpp) # Frontend source files if(ENABLE_QT_GUI) - set(FRONTEND_SOURCE_FILES src/panda_qt/main.cpp src/panda_qt/screen.cpp) - set(FRONTEND_HEADER_FILES include/panda_qt/screen.hpp) + set(FRONTEND_SOURCE_FILES src/panda_qt/main.cpp src/panda_qt/screen.cpp src/panda_qt/main_window.cpp) + set(FRONTEND_HEADER_FILES include/panda_qt/screen.hpp include/panda_qt/main_window.hpp) source_group("Source Files\\Qt" FILES ${FRONTEND_SOURCE_FILES}) source_group("Header Files\\Qt" FILES ${FRONTEND_HEADER_FILES}) diff --git a/include/panda_qt/main_window.hpp b/include/panda_qt/main_window.hpp new file mode 100644 index 00000000..5bb4f80c --- /dev/null +++ b/include/panda_qt/main_window.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include +#include + +#include "panda_qt/screen.hpp" + +class MainWindow : public QMainWindow { + Q_OBJECT + + private: + ScreenWidget screen; + + public: + MainWindow(QApplication* app, QWidget* parent = nullptr); +}; \ No newline at end of file diff --git a/src/panda_qt/main.cpp b/src/panda_qt/main.cpp index 34e71915..56391e65 100644 --- a/src/panda_qt/main.cpp +++ b/src/panda_qt/main.cpp @@ -1,18 +1,12 @@ #include -#include +#include "panda_qt/main_window.hpp" #include "panda_qt/screen.hpp" int main(int argc, char *argv[]) { QApplication app(argc, argv); - QWidget window; + MainWindow window(&app); - window.resize(320, 240); window.show(); - window.setWindowTitle("Alber"); - ScreenWidget screen(&window); - screen.show(); - screen.resize(320, 240); - return app.exec(); } \ No newline at end of file diff --git a/src/panda_qt/main_window.cpp b/src/panda_qt/main_window.cpp new file mode 100644 index 00000000..50b06adc --- /dev/null +++ b/src/panda_qt/main_window.cpp @@ -0,0 +1,10 @@ +#include "panda_qt/main_window.hpp" + +MainWindow::MainWindow(QApplication* app, QWidget* parent) : QMainWindow(parent), screen(this) { + setWindowTitle("Alber"); + // Enable drop events for loading ROMs + setAcceptDrops(true); + + resize(320, 240); + screen.show(); +} \ No newline at end of file diff --git a/src/panda_qt/screen.cpp b/src/panda_qt/screen.cpp index 62cac106..496edb47 100644 --- a/src/panda_qt/screen.cpp +++ b/src/panda_qt/screen.cpp @@ -20,6 +20,8 @@ #ifdef PANDA3DS_ENABLE_OPENGL ScreenWidget::ScreenWidget(QWidget* parent) : QWidget(parent) { // Create a native window for use with our graphics API of choice + resize(320, 240); + setAutoFillBackground(false); setAttribute(Qt::WA_NativeWindow, true); setAttribute(Qt::WA_NoSystemBackground, true);