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;
7 import net.mograsim.preferences.Preferences;
9 public class EditorUserInput
11 private final EditorGUI gui;
13 public EditorUserInput(Editor editor)
15 this.gui = editor.gui;
16 gui.logicCanvas.addListener(SWT.MouseDown, e ->
18 Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
19 if (e.button == Preferences.current().getInt("net.mograsim.logic.model.button.action"))
20 editor.handleManager.click(clicked, e.stateMask);
23 gui.logicCanvas.addMouseMoveListener(e ->
25 Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
26 editor.stateManager.mouseMoved(dest.x, dest.y);
29 gui.logicCanvas.addListener(SWT.KeyDown, e ->
34 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
35 editor.stateManager.copy();
38 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
39 editor.stateManager.paste();
42 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
43 editor.stateManager.duplicate();
46 editor.stateManager.grab();
49 editor.stateManager.delete();
52 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
56 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
57 editor.stateManager.add();
60 editor.stateManager.boxSelect();
68 public Point getCanvasMousePosition()
70 return new Point(gui.logicCanvas.toControl(gui.display.getCursorLocation()));
73 public Point getWorldMousePosition()
75 return gui.logicCanvas.canvasToWorldCoords(getCanvasMousePosition());