snes9x/qt/src/EmuMainWindow.hpp

67 lines
1.7 KiB
C++
Raw Normal View History

2023-03-23 21:53:43 +00:00
#ifndef __EMU_MAIN_WINDOW_HPP
#define __EMU_MAIN_WINDOW_HPP
#include <QMainWindow>
#include <QTimer>
#include "EmuCanvas.hpp"
class EmuApplication;
class CheatsDialog;
2023-03-23 21:53:43 +00:00
class EmuMainWindow : public QMainWindow
{
2023-06-27 22:18:32 +00:00
Q_OBJECT
public Q_SLOTS:
void output(uint8_t *buffer, int width, int height, QImage::Format format, int bytes_per_line, double frame_rate);
2023-03-23 21:53:43 +00:00
public:
EmuMainWindow(EmuApplication *app);
~EmuMainWindow();
void toggleFullscreen();
bool createCanvas();
2023-03-23 21:53:43 +00:00
void destroyCanvas();
void recreateCanvas();
void setBypassCompositor(bool);
void setCoreActionsEnabled(bool);
bool event(QEvent *event) override;
bool eventFilter(QObject *, QEvent *event) override;
void resizeToMultiple(int multiple);
void populateRecentlyUsed();
void chooseState(bool save);
void pauseContinue();
bool isActivelyDrawing();
void openFile();
bool openFile(std::string filename);
void recreateUIAssets();
2023-07-16 19:00:11 +00:00
void shaderChanged();
void gameChanging();
2023-03-23 21:53:43 +00:00
std::vector<std::string> getDisplayDeviceList();
EmuApplication *app;
EmuCanvas *canvas;
private:
void idle();
void createWidgets();
static const size_t recent_menu_size = 10;
static const size_t state_items_size = 10;
std::unique_ptr<CheatsDialog> cheats_dialog;
2023-03-23 21:53:43 +00:00
bool manual_pause = false;
bool focus_pause = false;
2023-07-11 20:15:51 +00:00
bool minimized_pause = false;
2023-03-23 21:53:43 +00:00
bool using_stacked_widget = false;
QMenu *load_state_menu;
QMenu *save_state_menu;
QMenu *recent_menu;
QTimer mouse_timer;
bool cursor_visible = true;
QAction *shader_settings_item;
std::vector<QAction *> core_actions;
std::vector<QAction *> recent_menu_items;
};
#endif