1 #ifndef INCLUDE__BasicBlockWidget_hxx
2 #define INCLUDE__BasicBlockWidget_hxx
10 #include <log4cxx/logger.h>
15 class BasicBlockWidget : public QObject, public QGraphicsItem
19 BasicBlockWidget(const QString& name, BasicBlock * block, Mainwindow * mainwindow);
21 void addItem(uint8_t* bytes, size_t num_bytes, QString line, const QString& href);
22 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
24 QRectF boundingRect() const;
25 std::array<QPointF, 3> getExits() const;
27 void mouseMoveEvent(QGraphicsSceneMouseEvent * event)
28 { QGraphicsItem::mouseMoveEvent(event); scene()->update(); }
30 QPointF getEntry() const
31 { return mapToScene(QPointF(width/2, 0)); }
33 void addPrevious(BasicBlockWidget * widget)
34 { previous.push_back(widget); }
36 void addNext(BasicBlockWidget * left, BasicBlockWidget * right)
37 { next[0] = left; next[1] = right; }
39 BasicBlockWidget ** getNext()
42 QString getName() const
45 uint32_t width, height;
47 std::unique_ptr<QGraphicsTextItem> _widget;
50 Mainwindow* mainwindow;
51 std::vector<BasicBlockWidget*> previous;
52 BasicBlockWidget* next[2];
53 log4cxx::LoggerPtr logger;