1 package net.mograsim.logic.model.editor;
3 import static net.mograsim.logic.model.preferences.RenderPreferences.ACTION_BUTTON;
5 import org.eclipse.swt.SWT;
7 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
8 import net.mograsim.logic.model.editor.ui.EditorGUI;
10 public class EditorUserInput
12 private final EditorGUI gui;
14 public EditorUserInput(Editor editor)
16 this.gui = editor.gui;
17 gui.logicCanvas.addListener(SWT.MouseDown, e ->
19 Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
20 if (e.button == editor.renderPrefs.getInt(ACTION_BUTTON))
21 editor.handleManager.click(clicked, e.stateMask);
24 gui.logicCanvas.addMouseMoveListener(e ->
26 Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
27 editor.stateManager.mouseMoved(dest.x, dest.y);
30 gui.logicCanvas.addListener(SWT.KeyDown, e ->
35 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
36 editor.stateManager.copy();
39 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
40 editor.stateManager.paste();
43 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
44 editor.stateManager.duplicate();
47 editor.stateManager.grab();
50 editor.stateManager.delete();
53 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
57 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
58 editor.stateManager.add();
61 editor.stateManager.boxSelect();
69 public Point getCanvasMousePosition()
71 return new Point(gui.logicCanvas.toControl(gui.display.getCursorLocation()));
74 public Point getWorldMousePosition()
76 return gui.logicCanvas.canvasToWorldCoords(getCanvasMousePosition());