blob: 28fb72d5a7d7be3b2602608bd72782d688134ed1 [file] [log] [blame]
/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.badlogic.gdx;
import com.badlogic.gdx.Input.Buttons;
/** An InputProcessor is used to receive input events from the keyboard and the touch screen (mouse on the desktop). For this it
* has to be registered with the {@link Input#setInputProcessor(InputProcessor)} method. It will be called each frame before the
* call to {@link ApplicationListener#render()}. Each method returns a boolean in case you want to use this with the
* {@link InputMultiplexer} to chain input processors.
*
* @author mzechner */
public interface InputProcessor {
/** Called when a key was pressed
*
* @param keycode one of the constants in {@link Input.Keys}
* @return whether the input was processed */
public boolean keyDown (int keycode);
/** Called when a key was released
*
* @param keycode one of the constants in {@link Input.Keys}
* @return whether the input was processed */
public boolean keyUp (int keycode);
/** Called when a key was typed
*
* @param character The character
* @return whether the input was processed */
public boolean keyTyped (char character);
/** Called when the screen was touched or a mouse button was pressed. The button parameter will be {@link Buttons#LEFT} on iOS.
* @param screenX The x coordinate, origin is in the upper left corner
* @param screenY The y coordinate, origin is in the upper left corner
* @param pointer the pointer for the event.
* @param button the button
* @return whether the input was processed */
public boolean touchDown (int screenX, int screenY, int pointer, int button);
/** Called when a finger was lifted or a mouse button was released. The button parameter will be {@link Buttons#LEFT} on iOS.
* @param pointer the pointer for the event.
* @param button the button
* @return whether the input was processed */
public boolean touchUp (int screenX, int screenY, int pointer, int button);
/** Called when a finger or the mouse was dragged.
* @param pointer the pointer for the event.
* @return whether the input was processed */
public boolean touchDragged (int screenX, int screenY, int pointer);
/** Called when the mouse was moved without any buttons being pressed. Will not be called on iOS.
* @return whether the input was processed */
public boolean mouseMoved (int screenX, int screenY);
/** Called when the mouse wheel was scrolled. Will not be called on iOS.
* @param amount the scroll amount, -1 or 1 depending on the direction the wheel was scrolled.
* @return whether the input was processed. */
public boolean scrolled (int amount);
}