use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.
the class CircuitAppearance method getBounds.
private Bounds getBounds(boolean relativeToAnchor) {
Bounds ret = null;
Location offset = null;
for (CanvasObject o : getObjectsFromBottom()) {
if (o instanceof AppearanceElement) {
Location loc = ((AppearanceElement) o).getLocation();
if (o instanceof AppearanceAnchor) {
offset = loc;
}
if (ret == null) {
ret = Bounds.create(loc);
} else {
ret = ret.add(loc);
}
} else {
if (ret == null) {
ret = o.getBounds();
} else {
ret = ret.add(o.getBounds());
}
}
}
if (ret == null) {
return Bounds.EMPTY_BOUNDS;
} else if (relativeToAnchor && offset != null) {
return ret.translate(-offset.getX(), -offset.getY());
} else {
return ret;
}
}
use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.
the class ManagedComponent method expose.
//
// user interface methods
//
public void expose(ComponentDrawContext context) {
Bounds bounds = getBounds();
java.awt.Component dest = context.getDestination();
if (bounds != null) {
dest.repaint(bounds.getX() - 5, bounds.getY() - 5, bounds.getWidth() + 10, bounds.getHeight() + 10);
}
}
use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.
the class ShiftRegisterPoker method paint.
@Override
public void paint(InstancePainter painter) {
int loc = this.loc;
if (loc < 0)
return;
BitWidth widObj = painter.getAttributeValue(StdAttr.WIDTH);
Bounds bds = painter.getInstance().getBounds();
int len = (widObj.getWidth() + 3) / 4;
int boxXpos = ((ShiftRegister.SymbolWidth - 30) / 2 + 30) - (len * 4) + bds.getX() + 10;
int y = bds.getY() + 82 + loc * 20;
Graphics g = painter.getGraphics();
g.setColor(Color.RED);
g.drawRect(boxXpos, y, 2 + len * 8, 16);
}
use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.
the class BitSelector method paintInstance.
@Override
public void paintInstance(InstancePainter painter) {
Graphics g = painter.getGraphics();
Direction facing = painter.getAttributeValue(StdAttr.FACING);
Plexers.drawTrapezoid(g, painter.getBounds(), facing, 9);
Bounds bds = painter.getBounds();
g.setColor(Color.BLACK);
GraphicsUtil.drawCenteredText(g, "Sel", bds.getX() + bds.getWidth() / 2, bds.getY() + bds.getHeight() / 2);
painter.drawPorts();
}
use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.
the class BitSelector method getOffsetBounds.
@Override
public Bounds getOffsetBounds(AttributeSet attrs) {
Direction facing = attrs.getValue(StdAttr.FACING);
Bounds base = Bounds.create(-30, -15, 30, 30);
return base.rotate(Direction.EAST, facing, 0, 0);
}
Aggregations