Search in sources :

Example 36 with Bounds

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

the class Multiplexer method paintGhost.

@Override
public void paintGhost(InstancePainter painter) {
    Direction facing = painter.getAttributeValue(StdAttr.FACING);
    BitWidth select = painter.getAttributeValue(Plexers.ATTR_SELECT);
    Bounds bds = painter.getBounds();
    if (select.getWidth() == 1) {
        if (facing == Direction.EAST || facing == Direction.WEST) {
            Plexers.drawTrapezoid(painter.getGraphics(), Bounds.create(bds.getX(), bds.getY() + 5, bds.getWidth(), bds.getHeight() - 10), facing, 10);
        } else {
            Plexers.drawTrapezoid(painter.getGraphics(), Bounds.create(bds.getX() + 5, bds.getY(), bds.getWidth() - 10, bds.getHeight()), facing, 10);
        }
    } else {
        Plexers.drawTrapezoid(painter.getGraphics(), bds, facing, 20);
    }
}
Also used : BitWidth(com.cburch.logisim.data.BitWidth) Bounds(com.cburch.logisim.data.Bounds) Direction(com.cburch.logisim.data.Direction)

Example 37 with Bounds

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

the class PriorityEncoder method paintInstance.

@Override
public void paintInstance(InstancePainter painter) {
    Graphics g = painter.getGraphics();
    Direction facing = painter.getAttributeValue(StdAttr.FACING);
    painter.drawBounds();
    Bounds bds = painter.getBounds();
    g.setColor(Color.GRAY);
    int x0;
    int y0;
    int halign;
    if (facing == Direction.WEST) {
        x0 = bds.getX() + bds.getWidth() - 3;
        y0 = bds.getY() + 15;
        halign = GraphicsUtil.H_RIGHT;
    } else if (facing == Direction.NORTH) {
        x0 = bds.getX() + 10;
        y0 = bds.getY() + bds.getHeight() - 2;
        halign = GraphicsUtil.H_CENTER;
    } else if (facing == Direction.SOUTH) {
        x0 = bds.getX() + 10;
        y0 = bds.getY() + 12;
        halign = GraphicsUtil.H_CENTER;
    } else {
        x0 = bds.getX() + 3;
        y0 = bds.getY() + 15;
        halign = GraphicsUtil.H_LEFT;
    }
    GraphicsUtil.drawText(g, "0", x0, y0, halign, GraphicsUtil.V_BASELINE);
    g.setColor(Color.BLACK);
    GraphicsUtil.drawCenteredText(g, "Pri", 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 38 with Bounds

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

the class RectangularTool method draw.

@Override
public void draw(Canvas canvas, Graphics g) {
    Bounds bds = currentBounds;
    if (active && bds != null && bds != Bounds.EMPTY_BOUNDS) {
        g.setColor(Color.GRAY);
        drawShape(g, bds.getX(), bds.getY(), bds.getWidth(), bds.getHeight());
    }
}
Also used : Bounds(com.cburch.logisim.data.Bounds)

Example 39 with Bounds

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

the class RectangularTool method updateMouse.

private void updateMouse(Canvas canvas, int mx, int my, int mods) {
    Bounds oldBounds = currentBounds;
    Bounds bds = computeBounds(canvas, mx, my, mods);
    if (!bds.equals(oldBounds)) {
        currentBounds = bds;
        repaintArea(canvas, oldBounds.add(bds));
    }
}
Also used : Bounds(com.cburch.logisim.data.Bounds)

Example 40 with Bounds

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

the class RectangularTool method mouseReleased.

@Override
public void mouseReleased(Canvas canvas, MouseEvent e) {
    if (active) {
        Bounds oldBounds = currentBounds;
        Bounds bds = computeBounds(canvas, e.getX(), e.getY(), e.getModifiersEx());
        currentBounds = Bounds.EMPTY_BOUNDS;
        active = false;
        CanvasObject add = null;
        if (bds.getWidth() != 0 && bds.getHeight() != 0) {
            CanvasModel model = canvas.getModel();
            add = createShape(bds.getX(), bds.getY(), bds.getWidth(), bds.getHeight());
            canvas.doAction(new ModelAddAction(model, add));
            repaintArea(canvas, oldBounds.add(bds));
        }
        canvas.toolGestureComplete(this, add);
    }
}
Also used : CanvasObject(com.cburch.draw.model.CanvasObject) Bounds(com.cburch.logisim.data.Bounds) ModelAddAction(com.cburch.draw.actions.ModelAddAction) CanvasModel(com.cburch.draw.model.CanvasModel)

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