X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fstates%2FGrabState.java;fp=plugins%2Fnet.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fstates%2FGrabState.java;h=1b8447e07fd502c6b40e54dad3f34aa2c8e6a8a9;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=0000000000000000000000000000000000000000;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/GrabState.java b/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/GrabState.java new file mode 100644 index 00000000..1b8447e0 --- /dev/null +++ b/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/GrabState.java @@ -0,0 +1,41 @@ +package net.mograsim.logic.model.editor.states; + +import java.util.Map; + +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.mograsim.logic.model.editor.Editor; +import net.mograsim.logic.model.editor.handles.Handle; + +public class GrabState extends EditorState +{ + private Map offsets; + + public GrabState(Editor editor, StateManager manager) + { + super(editor, manager); + } + + @Override + public void onEntry() + { + offsets = editor.getSelection().calculateOffsets(); + } + + @Override + public void grab() + { + manager.setState(new SelectionState(editor, manager)); + } + + @Override + public void mouseMoved(double x, double y) + { + editor.moveHandles(x, y, offsets); + } + + @Override + public void clicked(Point clicked, int stateMask) + { + manager.setState(new SelectionState(editor, manager)); + } +}