1 #ifndef INCLUDE__BasicBlockWidget_hxx
2 #define INCLUDE__BasicBlockWidget_hxx
5 #include "disassembler/BasicBlock.hxx"
13 class BasicBlockWidget : public QObject, public QGraphicsItem
17 BasicBlockWidget(const QString& name, BasicBlock * block, Mainwindow * mainwindow);
19 void addItem(uint8_t* bytes, size_t num_bytes, QString line, const QString& href);
20 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
22 QRectF boundingRect() const;
23 std::array<QPointF, 3> getExits() const;
25 void mouseMoveEvent(QGraphicsSceneMouseEvent * event)
26 { QGraphicsItem::mouseMoveEvent(event); scene()->update(); }
28 QPointF getEntry() const
29 { return mapToScene(QPointF(width/2, 0)); }
31 void addPrevious(BasicBlockWidget * widget)
32 { previous.push_back(widget); }
34 void addNext(BasicBlockWidget * left, BasicBlockWidget * right)
35 { next[0] = left; next[1] = right; }
37 BasicBlockWidget ** getNext()
40 QString getName() const
43 uint32_t width, height;
45 QGraphicsTextItem _widget;
48 Mainwindow* mainwindow;
49 std::vector<BasicBlockWidget*> previous;
50 BasicBlockWidget* next[2];