package com.nutiteq.ui;
/**
* General interface for panning strategy
*/
public interface PanningStrategy {
/**
* Start panning 'thread'
*/
void start();
/**
* Quit panning 'thread'
*/
void quit();
/**
* Start panning with directions information. Also notify if panning was
* started by key controls or some other event (for example on screen controls
* with stylus)
*
* @param xMove
* change on x axis
* @param yMove
* change on y axis
* @param panningWithKeys
* has panning been started by key events
*/
void startPanning(final int xMove, final int yMove, final boolean panningWithKeys);
/**
* Is panning implementation still running
*
* @return if panning 'thread' is still working
*/
boolean isPanning();
/**
* Stop current pan action.
*/
void stopPanning();
/**
* Notify panning 'thread' about key repeated events
*
* @param keyCode
* code for key repeated
*/
void keyRepeated(final int keyCode);
/**
* Will be called from library, after strategy has been entered into
* {@link com.nutiteq.MapComponent} or {@link com.nutiteq.MapItem}
*
* @param pannableObject
* map object on which to perform panning actions
*/
void setMapComponent(final Pannable pannableObject);
}