1 package net.mograsim.logic.model.editor;
3 import org.eclipse.swt.SWT;
4 import org.eclipse.swt.events.KeyEvent;
5 import org.eclipse.swt.events.KeyListener;
6 import org.eclipse.swt.events.MouseEvent;
7 import org.eclipse.swt.events.MouseListener;
9 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
10 import net.mograsim.logic.model.editor.ui.EditorGUI;
12 public class EditorUserInput
14 private final EditorGUI gui;
16 public EditorUserInput(Editor editor)
18 this.gui = editor.gui;
19 gui.logicCanvas.addMouseListener(new MouseListener()
22 public void mouseDoubleClick(MouseEvent e)
24 // TODO Auto-generated method stub
28 public void mouseDown(MouseEvent e)
30 Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
34 editor.handleManager.click(clicked, e.stateMask);
41 public void mouseUp(MouseEvent e)
46 gui.logicCanvas.addMouseMoveListener((e) ->
48 Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
49 editor.stateManager.mouseMoved(dest.x, dest.y);
52 gui.logicCanvas.addKeyListener(new KeyListener()
56 public void keyReleased(KeyEvent e)
58 // TODO Auto-generated method stub
63 public void keyPressed(KeyEvent e)
68 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
69 editor.stateManager.copy();
72 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
73 editor.stateManager.paste();
76 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
77 editor.stateManager.duplicate();
80 editor.stateManager.grab();
83 editor.stateManager.delete();
86 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
90 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
91 editor.stateManager.add();
94 editor.stateManager.boxSelect();
102 public Point getCanvasMousePosition()
104 return new Point(gui.logicCanvas.toControl(gui.display.getCursorLocation()));
107 public Point getWorldMousePosition()
109 return gui.logicCanvas.canvasToWorldCoords(getCanvasMousePosition());