95 lines
2.0 KiB
C++
95 lines
2.0 KiB
C++
#ifndef ITEMCONTROLHANDLE_H
|
||
#define ITEMCONTROLHANDLE_H
|
||
|
||
#include <QGraphicsRectItem>
|
||
|
||
enum HandleType
|
||
{
|
||
T_none = 0,
|
||
T_resize, //调整大小
|
||
T_rotate, //旋转
|
||
T_editShape, //编辑形状
|
||
T_text, //文本
|
||
T_lineIn, //入线口
|
||
T_lineOut, //出线口
|
||
T_lineInOut //双端线
|
||
};
|
||
|
||
enum HandleTag
|
||
{
|
||
H_none = 0,
|
||
H_leftTop,
|
||
H_top,
|
||
H_rightTop,
|
||
H_right,
|
||
H_rightBottom,
|
||
H_bottom,
|
||
H_leftBottom,
|
||
H_left, //8
|
||
H_rotate_leftTop,
|
||
H_rotate_rightTop,
|
||
H_rotate_rightBottom,
|
||
H_rotate_leftBottom, //12
|
||
H_edit,
|
||
H_textCaption = 40, //标题文本
|
||
H_textCurrent, //电流
|
||
h_textVoltage, //电压
|
||
H_connect = 50 //连接操作点从50开始,前面预留
|
||
};
|
||
|
||
enum PortPos
|
||
{
|
||
P_top = 0,
|
||
P_down,
|
||
P_left,
|
||
P_right
|
||
};
|
||
|
||
const int HNDLE_SIZE = 8;
|
||
|
||
class GraphicsBaseItem;
|
||
|
||
class ItemControlHandle : public QObject,public QGraphicsItem
|
||
{
|
||
Q_OBJECT
|
||
Q_INTERFACES(QGraphicsItem)
|
||
public:
|
||
ItemControlHandle(QGraphicsItem *parent);
|
||
virtual ~ItemControlHandle();
|
||
|
||
public:
|
||
virtual int getSize();
|
||
virtual void move(double, double);
|
||
|
||
virtual void setText(QString);
|
||
virtual QString getText() const;
|
||
|
||
void setType(HandleType ht) { m_type = ht; }
|
||
HandleType getType() { return m_type; }
|
||
|
||
void setTag(int ht) { m_tag = ht; }
|
||
int getTag() { return m_tag; }
|
||
|
||
void setEnable(bool b){m_enable = b;}
|
||
bool enable(){return m_enable;}
|
||
|
||
void setIfShow(bool b){m_ifShow = b;}
|
||
bool ifShow(){return m_ifShow;}
|
||
|
||
GraphicsBaseItem* getParentPtr() const {return _parent;}
|
||
void setParent(GraphicsBaseItem* p) {_parent = p;}
|
||
protected:
|
||
|
||
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent*) override;
|
||
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent*) override;
|
||
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
|
||
protected:
|
||
HandleType m_type;
|
||
int m_tag;
|
||
bool m_enable;
|
||
bool m_ifShow;
|
||
GraphicsBaseItem* _parent;
|
||
};
|
||
|
||
#endif
|