package Roguelike.UI; import Roguelike.Screens.GameScreen; import com.badlogic.gdx.Game; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Event; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.ui.Table; /** * Makes a given tooltip actor visible when the actor this listener is attached * to was hovered. It will also hide the tooltip when the mouse is not hovering * anymore. * * @author Daniel Holderbaum */ public class TooltipListener extends InputListener { private Tooltip tooltip; public TooltipListener(Tooltip tooltip) { this.tooltip = tooltip; } @Override public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { tooltip.show( event, x, y, false ); tooltip.openTooltip = tooltip; } @Override public boolean mouseMoved (InputEvent event, float x, float y) { tooltip.show( event, x, y, false ); tooltip.openTooltip = tooltip; return true; } @Override public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) { tooltip.setVisible(false); tooltip.openTooltip = null; } @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { return GameScreen.Instance.examineMode; } @Override public void touchUp (InputEvent event, float x, float y, int pointer, int button) { if (GameScreen.Instance.examineMode) { tooltip.show( event, x, y, false ); tooltip.openTooltip = tooltip; } } }