Search in sources :

Example 1 with Canvas

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);
    }
}
Also used : Graphics(java.awt.Graphics) Canvas(com.cburch.logisim.gui.main.Canvas) Bounds(com.cburch.logisim.data.Bounds)

Example 2 with Canvas

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);
}
Also used : CircuitState(com.cburch.logisim.circuit.CircuitState) CircuitListener(com.cburch.logisim.circuit.CircuitListener) Selection(com.cburch.logisim.gui.main.Selection) Canvas(com.cburch.logisim.gui.main.Canvas) Circuit(com.cburch.logisim.circuit.Circuit)

Example 3 with Canvas

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);
}
Also used : Selection(com.cburch.logisim.gui.main.Selection) Canvas(com.cburch.logisim.gui.main.Canvas) Tool(com.cburch.logisim.tools.Tool) AddTool(com.cburch.logisim.tools.AddTool)

Aggregations

Canvas (com.cburch.logisim.gui.main.Canvas)3 Selection (com.cburch.logisim.gui.main.Selection)2 Circuit (com.cburch.logisim.circuit.Circuit)1 CircuitListener (com.cburch.logisim.circuit.CircuitListener)1 CircuitState (com.cburch.logisim.circuit.CircuitState)1 Bounds (com.cburch.logisim.data.Bounds)1 AddTool (com.cburch.logisim.tools.AddTool)1 Tool (com.cburch.logisim.tools.Tool)1 Graphics (java.awt.Graphics)1