package net.mograsim.logic.model.editor;
+import static net.mograsim.logic.model.preferences.RenderPreferences.ACTION_BUTTON;
+
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
import net.mograsim.logic.model.editor.ui.EditorGUI;
public EditorUserInput(Editor editor)
{
this.gui = editor.gui;
- gui.logicCanvas.addMouseListener(new MouseListener()
+ gui.logicCanvas.addListener(SWT.MouseDown, e ->
{
- @Override
- public void mouseDoubleClick(MouseEvent e)
- {
- // TODO Auto-generated method stub
- }
-
- @Override
- public void mouseDown(MouseEvent e)
- {
- Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
- switch (e.button)
- {
- case 1:
- editor.handleManager.click(clicked, e.stateMask);
- break;
- }
-
- }
-
- @Override
- public void mouseUp(MouseEvent e)
- {
- }
+ Point clicked = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
+ if (e.button == editor.renderPrefs.getInt(ACTION_BUTTON))
+ editor.handleManager.click(clicked, e.stateMask);
});
- gui.logicCanvas.addMouseMoveListener((e) ->
+ gui.logicCanvas.addMouseMoveListener(e ->
{
Point dest = editor.gui.logicCanvas.canvasToWorldCoords(e.x, e.y);
editor.stateManager.mouseMoved(dest.x, dest.y);
});
- gui.logicCanvas.addKeyListener(new KeyListener()
+ gui.logicCanvas.addListener(SWT.KeyDown, e ->
{
-
- @Override
- public void keyReleased(KeyEvent e)
- {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void keyPressed(KeyEvent e)
+ switch (e.keyCode)
{
- switch (e.keyCode)
- {
- case 'c':
- if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
- editor.stateManager.copy();
- break;
- case 'v':
- if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
- editor.stateManager.paste();
- break;
- case 'd':
- if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
- editor.stateManager.duplicate();
- break;
- case 'g':
- editor.stateManager.grab();
- break;
- case 'r':
- editor.stateManager.delete();
- break;
- case 's':
- if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
- editor.save();
- break;
- case 'a':
- if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
- editor.stateManager.add();
- break;
- case 'h':
- editor.stateManager.boxSelect();
- break;
- }
-
+ case 'c':
+ if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
+ editor.stateManager.copy();
+ break;
+ case 'v':
+ if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
+ editor.stateManager.paste();
+ break;
+ case 'd':
+ if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
+ editor.stateManager.duplicate();
+ break;
+ case 'g':
+ editor.stateManager.grab();
+ break;
+ case 'r':
+ editor.stateManager.delete();
+ break;
+ case 's':
+ if ((e.stateMask & SWT.CTRL) == SWT.CTRL)
+ editor.save();
+ break;
+ case 'a':
+ if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT)
+ editor.stateManager.add();
+ break;
+ case 'h':
+ editor.stateManager.boxSelect();
+ break;
+ default:
+ // don't react
}
});
}