Search in sources :

Example 61 with Bounds

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;
    }
}
Also used : CanvasObject(com.cburch.draw.model.CanvasObject) Bounds(com.cburch.logisim.data.Bounds) Location(com.cburch.logisim.data.Location)

Example 62 with Bounds

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);
    }
}
Also used : Bounds(com.cburch.logisim.data.Bounds)

Example 63 with Bounds

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);
}
Also used : BitWidth(com.cburch.logisim.data.BitWidth) Graphics(java.awt.Graphics) Bounds(com.cburch.logisim.data.Bounds)

Example 64 with Bounds

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();
}
Also used : Graphics(java.awt.Graphics) Bounds(com.cburch.logisim.data.Bounds) Direction(com.cburch.logisim.data.Direction)

Example 65 with Bounds

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);
}
Also used : Bounds(com.cburch.logisim.data.Bounds) Direction(com.cburch.logisim.data.Direction)

Aggregations

Bounds (com.cburch.logisim.data.Bounds)199 Graphics (java.awt.Graphics)71 Direction (com.cburch.logisim.data.Direction)29 Location (com.cburch.logisim.data.Location)29 BitWidth (com.cburch.logisim.data.BitWidth)20 Graphics2D (java.awt.Graphics2D)20 Font (java.awt.Font)19 Component (com.cburch.logisim.comp.Component)14 Color (java.awt.Color)14 FontMetrics (java.awt.FontMetrics)12 Value (com.cburch.logisim.data.Value)9 Circuit (com.cburch.logisim.circuit.Circuit)7 Port (com.cburch.logisim.instance.Port)7 Instance (com.cburch.logisim.instance.Instance)6 InstanceDataSingleton (com.cburch.logisim.instance.InstanceDataSingleton)6 Handle (com.cburch.draw.model.Handle)5 RadixOption (com.cburch.logisim.circuit.RadixOption)5 CanvasObject (com.cburch.draw.model.CanvasObject)3 Wire (com.cburch.logisim.circuit.Wire)3 ComponentFactory (com.cburch.logisim.comp.ComponentFactory)3