#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include "timer.h" #include "ui_mainwindow.h" #include "../../Analyser/Static/StaticAnalyser.hpp" #include "../../Machines/Utility/MachineForTarget.hpp" #include "../../Outputs/OpenGL/ScanTarget.hpp" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT void createActions(); public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: std::unique_ptr ui; std::unique_ptr qTimer; std::unique_ptr timerThread; std::unique_ptr timer; // Initial setup stuff. Analyser::Static::TargetList targets; enum class UIPhase { NoFileSelected, RequestingROMs, RunningMachine } uiPhase = UIPhase::NoFileSelected; void launchMachine(); QString romRequestBaseText; std::vector missingRoms; // File drag and drop is supported. void dragEnterEvent(QDragEnterEvent* event) override; void dropEvent(QDropEvent* event) override; // Output. Outputs::Display::OpenGL::ScanTarget scanTarget; private slots: void open(); }; #endif // MAINWINDOW_H