#ifndef MODE_H #define MODE_H #include #include #include #include #include #include #include "appwindow.h" class Mode : public QWidget { public: Mode(AppWindow *window, QString name); virtual void activate(); virtual void deactivate(); QString getName() const; static Mode *getActiveMode(); virtual void initializeDevice() = 0; virtual void deviceDisconnected(){}; protected: // call once the derived class is fully initialized void finalize(QWidget *centralWidget); AppWindow *window; std::set actions; std::set toolbars; std::set docks; private: static Mode *activeMode; static QWidget *cornerWidget; static QButtonGroup *modeButtonGroup; const QString name; QWidget *central; }; #endif // MODE_H