00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef GROUPNODE_H
00023 #define GROUPNODE_H
00024
00025 #include "node.h"
00026
00027 #define SUBSCALE 0.3
00028
00029 #ifndef DOXYGEN_IGNORE_THIS
00030
00031 class GroupNode : public Node
00032 {
00033 public:
00034 GroupNode(QString _name, SlateWindow *wind, QGraphicsItem * parent = 0, QGraphicsScene * scene = 0);
00035 ~GroupNode();
00036
00037 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00038 void addNode(Node *node);
00039 void updateLinksPos();
00040 void removeLink(Link *link);
00041 GroupInfo getInfo();
00042 void abstractView(bool mode);
00043 bool getAbstract() const { return abstractPaint; }
00044
00045 protected:
00046 void paintProps(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00047 void paintGroup(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00048 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
00049 void drawCurvArrow(const QRectF rectangle, QPainter *painter);
00050 void changeLinkToGroup(Link *link, bool toNode );
00051 QRectF outlineRect() const;
00052 void setHide(bool hide);
00053
00054 bool abstractPaint;
00055 QMap<Link *, Link *> internalLinks;
00056
00057 static uint maxId;
00058 static uint getNewId() { return ++maxId; }
00059 };
00060
00061 #endif
00062 #endif