summaryrefslogblamecommitdiffstats
path: root/src/server/connectionframe/connectionframe.h
blob: ccb32a8f3c626d3354e506db8f63b00110c2ef20 (plain) (tree)



















































                                                                       
                              























                                                                  
#ifndef _CONNECTIONFRAME_H_
#define _CONNECTIONFRAME_H_
#include <QtGui>

class Client;

class ConnectionFrame : public QGroupBox
{

Q_OBJECT

private:

	QString _computerId;

	QBoxLayout *_mainLayout;
	QBoxLayout *_iconLayout;
	QLabel *_lblUserName;
	QLabel *_lblHostName;

	QLabel *_icoCam, *_icoEye;
	QList<QLabel*> _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