+#include "BasicBlockWidget.hxx"
+BasicBlockWidget::BasicBlockWidget(const QString& name, BasicBlock * block)
+ : width(270), height(45)
+ , name(name), block(block)
+ , _proxy(this) {
+ next[0] = NULL; next[1] = NULL;
+ _proxy.setWidget(&_widget);
+ _widget.setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::LinksAccessibleByMouse);
+ _proxy.setPos(5, 20);
+ if (width < 270) width = 270;
+}
+
+void BasicBlockWidget::addItem(uint8_t* bytes, size_t num_bytes,
+ const QString& line) {
+ QString bytestring;
+
+ for (size_t i(0); i < num_bytes; ++i) {
+ const char * hexdigits = "0123456789ABCDEF";
+ bytestring += hexdigits[(bytes[i] >> 4) & 0xF];
+ bytestring += hexdigits[bytes[i] & 0xF];
+ bytestring += ' ';
+ }
+
+ QString old_text = _widget.text();
+ if (old_text == "") {
+ old_text = "<table style=\"background-color: #ddddff;\">";
+ }
+ QString new_text =
+ old_text.remove("</table>") +
+ "<tr><td>" + bytestring +
+ "</td><td>" + line +
+ "</td><td>" + "" +
+ "</td></tr></table>";
+
+ _widget.setText(new_text);
+ _widget.resize(_widget.sizeHint().width(), _widget.sizeHint().height());
+ width = 12 + _widget.sizeHint().width();
+ height = 25 + _widget.sizeHint().height();
+
+ if (width < 250) width = 250;
+}