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