/** * Copyright 2010 Michael A. MacDonald */ package android.androidVNC; import android.os.Handler; import android.os.SystemClock; import android.view.MotionEvent; /** * Specialization of panner that moves the mouse instead of panning the screen * * @author Michael A. MacDonald * */ class MouseMover extends Panner { public MouseMover(VncCanvasActivity act, Handler hand) { super(act, hand); } /* (non-Javadoc) * @see java.lang.Runnable#run() */ @Override public void run() { long interval = SystemClock.uptimeMillis() - lastSent; lastSent += interval; double scale = (double)interval / 50.0; VncCanvas canvas = activity.vncCanvas; //Log.v(TAG, String.format("panning %f %d %d", scale, (int)((double)velocity.x * scale), (int)((double)velocity.y * scale))); if ( canvas.processPointerEvent((int)(canvas.mouseX + ((double)velocity.x * scale)), (int)(canvas.mouseY + ((double)velocity.y * scale)), MotionEvent.ACTION_MOVE, 0, false, false)) { if (updater.updateVelocity(velocity, interval)) { handler.postDelayed(this, 50); } else { //Log.v(TAG, "Updater requests stop"); stop(); } } else { //Log.v(TAG, "Panning failed"); stop(); } } }