/* # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of # Freiburg # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ */ #ifndef PVSCLIENTGUI_H_ #define PVSCLIENTGUI_H_ #include #include #include "../util/room.h" class ServerConnection; class VncWindow; class BlankScreen; class QMenu; namespace Ui { class Toolbar; } class Toolbar : public QWidget { Q_OBJECT public: explicit Toolbar(QWidget *parent = nullptr); explicit Toolbar(const QByteArray& sessionName, QWidget *parent = nullptr); explicit Toolbar(bool autoConnect, QWidget *parent = nullptr); ~Toolbar() override; private: Ui::Toolbar *_ui{}; QMenu *_menu{}; QAction *_acnDisconnect{}; QAction *_acnConnect{}; QAction *_acnInformation{}; QAction *_acnAbout{}; QAction *_acnQuit{}; QTimer _showTimer; QTimer _hideTimer; int _hideCountdown; QTimer _blinkTimer; VncWindow *_vnc{}; const QPixmap _cam32, _beWatchedEye; QPoint _lastDragPos; int _yPos{}; int _yPosHidden{}; void enterEvent(QEvent* e) override; void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; static QList myRooms(); static QString identifyMgrIP(); void init(); void initButtonsAndMenus(); private slots: void onVncServerIsRunning(int port); void onDisconnected(ServerConnection* connection); void onConnected(ServerConnection* connection); void onServerAttentionChanged(bool on); void onDoDisconnect(); void onBtnAttention(); void exit(); void cameraBlink(); void showBar(); void hideBar(); void delayedShowBar(); void delayedHideBar(); void showAboutDialog(); void showInformationDialog(); void setToolbarPosition(const QRect &geometry); }; #endif /* PVSCLIENTGUI_H_ */