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);
}
}
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();
}
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());
}
}
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));
}
}
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);
}
}
Aggregations