Files
86Box/src/qt/qt_mediamenu.hpp

124 lines
3.2 KiB
C++
Raw Normal View History

#pragma once
#include <memory>
#include <QObject>
#include <QMap>
#include "qt_mediahistorymanager.hpp"
extern "C" {
#include <86box/86box.h>
}
class QMenu;
2024-03-20 21:25:14 +05:00
class MediaMenu : public QObject {
Q_OBJECT
public:
2022-11-19 08:49:04 -05:00
MediaMenu(QWidget *parent);
2022-11-19 08:49:04 -05:00
void refresh(QMenu *parentMenu);
// because some 86box C-only code needs to call zip and
// mo eject directly
static std::shared_ptr<MediaMenu> ptr;
void cassetteNewImage();
void cassetteSelectImage(bool wp);
2022-11-19 08:49:04 -05:00
void cassetteMount(const QString &filename, bool wp);
2024-08-27 05:09:35 +02:00
void cassetteMenuSelect(int slot);
void cassetteEject();
void cassetteUpdateMenu();
void cartridgeSelectImage(int i);
2022-11-19 08:49:04 -05:00
void cartridgeMount(int i, const QString &filename);
void cartridgeEject(int i);
2024-08-27 05:09:35 +02:00
void cartridgeMenuSelect(int index, int slot);
void cartridgeUpdateMenu(int i);
void floppyNewImage(int i);
void floppySelectImage(int i, bool wp);
2022-11-19 08:49:04 -05:00
void floppyMount(int i, const QString &filename, bool wp);
void floppyEject(int i);
void floppyMenuSelect(int index, int slot);
void floppyExportTo86f(int i);
void floppyUpdateMenu(int i);
void cdromMute(int i);
2024-05-19 21:17:57 +02:00
void cdromMount(int i, int dir, const QString &arg);
2022-11-19 08:49:04 -05:00
void cdromMount(int i, const QString &filename);
void cdromEject(int i);
void cdromReload(int index, int slot);
void updateImageHistory(int index, int slot, ui::MediaType type);
void clearImageHistory();
void cdromUpdateMenu(int i);
void zipNewImage(int i);
void zipSelectImage(int i, bool wp);
2022-11-19 08:49:04 -05:00
void zipMount(int i, const QString &filename, bool wp);
void zipEject(int i);
2024-08-27 05:09:35 +02:00
void zipReloadPrev(int i);
void zipReload(int index, int slot);
void zipUpdateMenu(int i);
void moNewImage(int i);
void moSelectImage(int i, bool wp);
2022-11-19 08:49:04 -05:00
void moMount(int i, const QString &filename, bool wp);
void moEject(int i);
2024-08-27 05:09:35 +02:00
void moReloadPrev(int i);
void moReload(int index, int slot);
void moUpdateMenu(int i);
void nicConnect(int i);
void nicDisconnect(int i);
void nicUpdateMenu(int i);
2022-11-19 08:49:04 -05:00
2024-03-20 21:25:14 +05:00
public slots:
void cdromUpdateUi(int i);
signals:
void onCdromUpdateUi(int i);
private:
2022-11-19 08:49:04 -05:00
QWidget *parentWidget = nullptr;
2022-11-19 08:49:04 -05:00
QMenu *cassetteMenu = nullptr;
QMap<int, QMenu *> cartridgeMenus;
QMap<int, QMenu *> floppyMenus;
QMap<int, QMenu *> cdromMenus;
QMap<int, QMenu *> zipMenus;
QMap<int, QMenu *> moMenus;
QMap<int, QMenu *> netMenus;
2022-11-19 08:49:04 -05:00
QString getMediaOpenDirectory();
ui::MediaHistoryManager mhm;
const QByteArray driveLetters = QByteArrayLiteral("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
int cassetteRecordPos;
int cassettePlayPos;
int cassetteRewindPos;
int cassetteFastFwdPos;
int cassetteEjectPos;
2024-08-27 05:09:35 +02:00
int cassetteImageHistoryPos[MAX_PREV_IMAGES];
int cartridgeEjectPos;
2024-08-27 05:09:35 +02:00
int cartridgeImageHistoryPos[MAX_PREV_IMAGES];
int floppyExportPos;
int floppyEjectPos;
2024-08-27 05:09:35 +02:00
int floppyImageHistoryPos[MAX_PREV_IMAGES];
int cdromMutePos;
int cdromEjectPos;
int cdromImageHistoryPos[MAX_PREV_IMAGES];
int zipEjectPos;
2024-08-27 05:09:35 +02:00
int zipImageHistoryPos[MAX_PREV_IMAGES];
int moEjectPos;
2024-08-27 05:09:35 +02:00
int moImageHistoryPos[MAX_PREV_IMAGES];
int netDisconnPos;
friend class MachineStatus;
};