Search in sources :

Example 41 with Bounds

use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.

the class RectangularTool method mousePressed.

@Override
public void mousePressed(Canvas canvas, MouseEvent e) {
    Location loc = Location.create(e.getX(), e.getY());
    Bounds bds = Bounds.create(loc);
    dragStart = loc;
    lastMouseX = loc.getX();
    lastMouseY = loc.getY();
    active = canvas.getModel() != null;
    repaintArea(canvas, bds);
}
Also used : Bounds(com.cburch.logisim.data.Bounds) Location(com.cburch.logisim.data.Location)

Example 42 with Bounds

use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.

the class CounterPoker method paint.

/**
 * Draws an indicator that the caret is being selected. Here, we'll draw a
 * red rectangle around the value.
 */
@Override
public void paint(InstancePainter painter) {
    Bounds bds = painter.getBounds();
    BitWidth width = painter.getAttributeValue(StdAttr.WIDTH);
    int len = (width.getWidth() + 3) / 4;
    Graphics g = painter.getGraphics();
    g.setColor(Color.RED);
    // width of caret rectangle
    int wid = 7 * len + 2;
    // height of caret rectangle
    int ht = 16;
    g.drawRect(bds.getX() + (bds.getWidth() - wid) / 2, bds.getY() + (bds.getHeight() - ht) / 2, wid, ht);
    g.setColor(Color.BLACK);
}
Also used : BitWidth(com.cburch.logisim.data.BitWidth) Graphics(java.awt.Graphics) Bounds(com.cburch.logisim.data.Bounds)

Example 43 with Bounds

use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.

the class GrayCounter method paintInstance.

@Override
public void paintInstance(InstancePainter painter) {
    // This is essentially the same as with SimpleGrayCounter, except for
    // the invocation of painter.drawLabel to make the label be drawn.
    painter.drawBounds();
    painter.drawClock(0, Direction.EAST);
    painter.drawPort(1);
    painter.drawLabel();
    if (painter.getShowState()) {
        BitWidth width = painter.getAttributeValue(StdAttr.WIDTH);
        CounterData state = CounterData.get(painter, width);
        Bounds bds = painter.getBounds();
        GraphicsUtil.drawCenteredText(painter.getGraphics(), StringUtil.toHexString(width.getWidth(), state.getValue().toIntValue()), bds.getX() + bds.getWidth() / 2, bds.getY() + bds.getHeight() / 2);
    }
}
Also used : BitWidth(com.cburch.logisim.data.BitWidth) Bounds(com.cburch.logisim.data.Bounds)

Example 44 with Bounds

use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.

the class GrayCounter method configureNewInstance.

/**
 * The configureNewInstance method is invoked every time a new instance is
 * created. In the superclass, the method doesn't do anything, since the new
 * instance is pretty thoroughly configured already by default. But
 * sometimes you need to do something particular to each instance, so you
 * would override the method. In this case, we need to set up the location
 * for its label.
 */
@Override
protected void configureNewInstance(Instance instance) {
    Bounds bds = instance.getBounds();
    instance.setTextField(StdAttr.LABEL, StdAttr.LABEL_FONT, bds.getX() + bds.getWidth() / 2, bds.getY() - 3, GraphicsUtil.H_CENTER, GraphicsUtil.V_BASELINE);
}
Also used : Bounds(com.cburch.logisim.data.Bounds)

Example 45 with Bounds

use of com.cburch.logisim.data.Bounds in project logisim-evolution by reds-heig.

the class SimpleGrayCounter method paintInstance.

@Override
public void paintInstance(InstancePainter painter) {
    painter.drawBounds();
    // draw a triangle on port 0
    painter.drawClock(0, Direction.EAST);
    // draw port 1 as just a dot
    painter.drawPort(1);
    // printer output), then skip this.
    if (painter.getShowState()) {
        CounterData state = CounterData.get(painter, BIT_WIDTH);
        Bounds bds = painter.getBounds();
        GraphicsUtil.drawCenteredText(painter.getGraphics(), StringUtil.toHexString(BIT_WIDTH.getWidth(), state.getValue().toIntValue()), bds.getX() + bds.getWidth() / 2, bds.getY() + bds.getHeight() / 2);
    }
}
Also used : Bounds(com.cburch.logisim.data.Bounds)

Aggregations

Bounds (com.cburch.logisim.data.Bounds)133 Graphics (java.awt.Graphics)50 Direction (com.cburch.logisim.data.Direction)27 Location (com.cburch.logisim.data.Location)24 BitWidth (com.cburch.logisim.data.BitWidth)21 Component (com.cburch.logisim.comp.Component)11 Color (java.awt.Color)10 FontMetrics (java.awt.FontMetrics)10 Value (com.cburch.logisim.data.Value)7 Font (java.awt.Font)7 Circuit (com.cburch.logisim.circuit.Circuit)6 Port (com.cburch.logisim.instance.Port)6 Handle (com.cburch.draw.model.Handle)5 CanvasObject (com.cburch.draw.model.CanvasObject)4 Instance (com.cburch.logisim.instance.Instance)4 InstanceDataSingleton (com.cburch.logisim.instance.InstanceDataSingleton)4 ComponentFactory (com.cburch.logisim.comp.ComponentFactory)3 AttributeSet (com.cburch.logisim.data.AttributeSet)3 Project (com.cburch.logisim.proj.Project)3 Dimension (java.awt.Dimension)3