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