#pragma once #include #include #include class QLabel; class QLineEdit; class QListWidget; class QPushButton; class GamesPanel : public QWidget { Q_OBJECT public: explicit GamesPanel(QWidget *parent = nullptr); void loadFromResponse(const QString &response); // GAM list (installed) void loadAllFromResponse(const QString &response); // GAM listall (full catalogue) signals: void commandRequested(const QString &cmd); private slots: void onAddClicked(); void onStartClicked(); private: void rebuildAvailable(); // Left pane QListWidget *m_availableList = nullptr; QPushButton *m_addBtn = nullptr; // Right pane QListWidget *m_installedList = nullptr; QLineEdit *m_timeEdit = nullptr; QLineEdit *m_countdownEdit = nullptr; QPushButton *m_startBtn = nullptr; QPushButton *m_stopBtn = nullptr; QMap m_allGames; // name -> code (GAM listall) QMap m_installedGames; // name -> code (GAM list) };