/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputAdapter; import com.badlogic.gdx.math.Vector2; import com.happydroids.droidtowers.input.InputSystem; class GridObjectPopOverCloser extends InputAdapter { private final GridObjectPopOver objectPopOver; public GridObjectPopOverCloser(GridObjectPopOver objectPopOver) { this.objectPopOver = objectPopOver; } private boolean checkTouchPoint(int screenX, int screenY) { Vector2 touchDown = new Vector2(screenX, screenY); objectPopOver.getStage().screenToStageCoordinates(touchDown); objectPopOver.stageToLocalCoordinates(touchDown); if (objectPopOver.hit(touchDown.x, touchDown.y, true) == null) { closePopOver(); } return false; } private void closePopOver() { objectPopOver.remove(); InputSystem.instance().removeInputProcessor(this); } @Override public boolean touchDown(int x, int y, int pointer, int button) { return checkTouchPoint(x, y); } @Override public boolean touchDragged(int x, int y, int pointer) { return checkTouchPoint(x, y); } @Override public boolean touchUp(int screenX, int screenY, int pointer, int button) { return checkTouchPoint(screenX, screenY); } @Override public boolean keyDown(int keycode) { if ((keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK)) { closePopOver(); return true; } return false; } }