//Copyright (C) 2006 Dominic Letourneau (Dominic.Letourneau@USherbrooke.ca)
#ifndef _QTTERMINAL_H_
#define _QTTERMINAL_H_
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsEllipseItem>
#include <QGraphicsTextItem>
#include <QGraphicsRectItem>
#include <string>
#include "UITerminal.h"
namespace FD
{
class QtNode;
class QtLink;
class QtNetTerminal;
class QtTerminal : public QObject, public QGraphicsRectItem
{
Q_OBJECT;
public:
enum {INPUT,OUTPUT,VIRTUAL};
QtTerminal(QtNode *node, std::string name="", int type = INPUT ,float x = 0, float y = 0);
QtTerminal(QtNode *node, UITerminal *uiTerminal);
int getType(){return m_type;}
void setType(int type) {m_type = type;}
QtNode* getQtNode(){return m_node;}
std::string getName();
UITerminal * getUITerminal() {return m_uiTerminal;}
QtNetTerminal* addNetTerminal(UINetTerminal *netTerminal);
signals:
void positionChanged(float x, float y);
void newLinkCreated(UITerminal* from, UITerminal* to);
protected:
//QT events
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent * event);
virtual QVariant itemChange ( GraphicsItemChange change, const QVariant & value );
QGraphicsTextItem *m_label;
QtNode *m_node;
int m_type;
QtTerminal* m_virtualQtTerminal;
QtLink* m_virtualQtLink;
bool m_linking;
UITerminal *m_uiTerminal;
QtNetTerminal* m_netTerminal;
};
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1