#ifndef _CONNECTIONFRAME_H_ #define _CONNECTIONFRAME_H_ #include class Client; class ConnectionFrame : public QGroupBox { Q_OBJECT private: QString _computerId; QBoxLayout *_mainLayout; QBoxLayout *_iconLayout; QLabel *_lblUserName; QLabel *_lblHostName; QLabel *_icoCam, *_icoEye; QList _icons; QPixmap _remoteScreen; QPoint _clickPoint; QPoint _previousPosition; Client *_client; int _timerId, _timerCounter; bool _selected; bool _isTutor; void showDefaultThumb(); void updateColor(); QLabel* addIcon(const QIcon* icon); public: ConnectionFrame(QWidget* parent, int width, int height); virtual ~ConnectionFrame(); const QPixmap& getFramePixmap() const { return _remoteScreen; } void setSize(int width, int height); void assignClient(Client *client); void setSelection(bool selected); const inline bool selected() const { return _selected; } const QString& computerId() const { return _computerId; } Client* client() const { return _client; } inline const bool isTutor() const { return _isTutor; } void setTutor(bool b); protected: void mouseDoubleClickEvent(QMouseEvent* event); void mouseReleaseEvent(QMouseEvent* e); void enterEvent(QEvent* event); void leaveEvent(QEvent* event); void mousePressEvent(QMouseEvent* event); void mouseMoveEvent(QMouseEvent* event); void paintEvent(QPaintEvent *event); void timerEvent(QTimerEvent* event); signals: void frameMoved(ConnectionFrame* frame); void doubleClicked(ConnectionFrame* frame); void clicked(ConnectionFrame* frame); private slots: void onClientDisconnected(QObject* client); void onThumbUpdated(Client* client, const QPixmap& thumb); void onVncServerStateChange(Client* client); void onVncClientStateChange(Client* client); }; #endif