diff options
Diffstat (limited to 'qtmips_gui/coreview/junction.cpp')
-rw-r--r-- | qtmips_gui/coreview/junction.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/qtmips_gui/coreview/junction.cpp b/qtmips_gui/coreview/junction.cpp new file mode 100644 index 0000000..271284c --- /dev/null +++ b/qtmips_gui/coreview/junction.cpp @@ -0,0 +1,36 @@ +#include "junction.h" + +using namespace coreview; + +////////////////////// +#define DOT_SIZE 4 +////////////////////// + +Junction::Junction() : QGraphicsItem(nullptr) { } + +Junction::~Junction() { + for (int i = 0; i < cons.size(); i++) + delete cons[i]; +} + +QRectF Junction::boundingRect() const { + return QRectF(-DOT_SIZE/2, -DOT_SIZE/2, DOT_SIZE, DOT_SIZE); +} + +void Junction::paint(QPainter *painter, const QStyleOptionGraphicsItem *option __attribute__((unused)), QWidget *widget __attribute__((unused))) { + painter->setBrush(QBrush(QColor(0, 0, 0))); + painter->drawEllipse(-DOT_SIZE/2, -DOT_SIZE/2, DOT_SIZE, DOT_SIZE); +} + +void Junction::setPos(qreal x, qreal y) { + QGraphicsItem::setPos(x, y); + foreach (Connector *con, cons) + con->setPos(x, y); +} + +Connector *Junction::new_connector(qreal angle) { + Connector*n = new Connector(angle); + cons.append(n); + setPos(x(), y()); // set connector's position + return n; +} |