use of com.cburch.logisim.gui.main.Canvas in project logisim-evolution by reds-heig.
the class SubcircuitPoker method paint.
@Override
public void paint(InstancePainter painter) {
if (painter.getDestination() instanceof Canvas && painter.getData() instanceof CircuitState) {
Bounds bds = painter.getInstance().getBounds();
int cx = bds.getX() + bds.getWidth() / 2;
int cy = bds.getY() + bds.getHeight() / 2;
int tx = cx + 3;
int ty = cy + 3;
int[] xp = { tx - 1, cx + 8, cx + 10, tx + 1 };
int[] yp = { ty + 1, cy + 10, cy + 8, ty - 1 };
Graphics g = painter.getGraphics();
if (mouseDown) {
g.setColor(MAGNIFYING_INTERIOR_DOWN);
} else {
g.setColor(MAGNIFYING_INTERIOR);
}
g.fillOval(cx - 5, cy - 5, 10, 10);
g.setColor(Color.BLACK);
g.drawOval(cx - 5, cy - 5, 10, 10);
g.fillPolygon(xp, yp, xp.length);
}
}
use of com.cburch.logisim.gui.main.Canvas in project logisim-evolution by reds-heig.
the class Project method setCircuitState.
public void setCircuitState(CircuitState value) {
if (value == null || circuitState == value)
return;
CircuitState old = circuitState;
Circuit oldCircuit = old == null ? null : old.getCircuit();
Circuit newCircuit = value.getCircuit();
boolean circuitChanged = old == null || oldCircuit != newCircuit;
if (circuitChanged) {
Canvas canvas = frame == null ? null : frame.getCanvas();
if (canvas != null) {
if (tool != null)
tool.deselect(canvas);
Selection selection = canvas.getSelection();
if (selection != null) {
Action act = SelectionActions.dropAll(selection);
if (act != null) {
doAction(act);
}
}
if (tool != null)
tool.select(canvas);
}
if (oldCircuit != null) {
for (CircuitListener l : circuitListeners) {
oldCircuit.removeCircuitListener(l);
}
}
}
circuitState = value;
stateMap.put(circuitState.getCircuit(), circuitState);
simulator.setCircuitState(circuitState);
if (circuitChanged) {
fireEvent(ProjectEvent.ACTION_SET_CURRENT, oldCircuit, newCircuit);
if (newCircuit != null) {
for (CircuitListener l : circuitListeners) {
newCircuit.addCircuitListener(l);
}
}
}
fireEvent(ProjectEvent.ACTION_SET_STATE, old, circuitState);
}
use of com.cburch.logisim.gui.main.Canvas in project logisim-evolution by reds-heig.
the class Project method setTool.
public void setTool(Tool value) {
if (tool == value)
return;
Tool old = tool;
Canvas canvas = frame.getCanvas();
if (old != null)
old.deselect(canvas);
Selection selection = canvas.getSelection();
if (selection != null && !selection.isEmpty()) {
if (value == null || !getOptions().getMouseMappings().containsSelectTool()) {
Action act = SelectionActions.anchorAll(selection);
/*
* Circuit circuit = canvas.getCircuit(); CircuitMutation xn =
* new CircuitMutation(circuit); if (value == null) { Action act
* = SelectionActions.dropAll(selection); if (act != null) {
* doAction(act); } } else if
* (!getOptions().getMouseMappings().containsSelectTool()) {
* Action act = SelectionActions.dropAll(selection);
*/
if (act != null) {
doAction(act);
}
}
/*
* if (!xn.isEmpty()) doAction(xn.toAction(null));
*/
}
startupScreen = false;
tool = value;
if (tool != null)
tool.select(frame.getCanvas());
fireEvent(ProjectEvent.ACTION_SET_TOOL, old, tool);
}
Aggregations