1 package net.mograsim.logic.model.editor;
3 import org.eclipse.swt.SWT;
5 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
6 import net.mograsim.logic.model.editor.ui.EditorGUI;
8 public class EditorUserInput
10 private final EditorGUI gui;
12 public EditorUserInput(Editor editor)
14 this.gui = editor.gui;
15 gui.logicCanvas.addListener(SWT.MouseDown, e ->
17 Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
21 editor.handleManager.click(clicked, e.stateMask);
29 gui.logicCanvas.addMouseMoveListener(e ->
31 Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
32 editor.stateManager.mouseMoved(dest.x, dest.y);
35 gui.logicCanvas.addListener(SWT.KeyDown, e ->
40 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
41 editor.stateManager.copy();
44 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
45 editor.stateManager.paste();
48 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
49 editor.stateManager.duplicate();
52 editor.stateManager.grab();
55 editor.stateManager.delete();
58 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
62 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
63 editor.stateManager.add();
66 editor.stateManager.boxSelect();
74 public Point getCanvasMousePosition()
76 return new Point(gui.logicCanvas.toControl(gui.display.getCursorLocation()));
79 public Point getWorldMousePosition()
81 return gui.logicCanvas.canvasToWorldCoords(getCanvasMousePosition());