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) {}
44 gui.logicCanvas.addMouseMoveListener((e) ->
46 Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
47 editor.stateManager.mouseMoved(dest.x, dest.y);
50 gui.logicCanvas.addKeyListener(new KeyListener()
54 public void keyReleased(KeyEvent e)
56 // TODO Auto-generated method stub
61 public void keyPressed(KeyEvent e)
66 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
67 editor.stateManager.copy();
70 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
71 editor.stateManager.paste();
74 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
75 editor.stateManager.duplicate();
78 editor.stateManager.grab();
81 editor.stateManager.delete();
84 if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
88 if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
89 editor.stateManager.add();
92 editor.stateManager.boxSelect();
100 public Point getCanvasMousePosition()
102 return new Point(gui.logicCanvas.toControl(gui.display.getCursorLocation()));
105 public Point getWorldMousePosition()
107 return gui.logicCanvas.canvasToWorldCoords(getCanvasMousePosition());