/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.input; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputAdapter; import com.happydroids.droidtowers.DroidTowersGame; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.gui.Dialog; import com.happydroids.droidtowers.gui.OnClickCallback; import com.happydroids.droidtowers.scenes.MainMenuScene; import com.happydroids.droidtowers.scenes.components.SceneManager; import static com.badlogic.gdx.Application.ApplicationType.Applet; public class QuitGameInputAdapter extends InputAdapter { private boolean mainMenuIsActive; private Dialog quitGameDialog; @Override public boolean keyDown(int keycode) { if (keycode != Input.Keys.ESCAPE && keycode != Input.Keys.BACK || !TowerAssetManager.preloadFinished()) { return false; } mainMenuIsActive = SceneManager.activeScene() instanceof MainMenuScene; if (Gdx.app.getType().equals(Applet) && mainMenuIsActive) { return false; } quitGameDialog = new Dialog(DroidTowersGame.getRootUiStage()); quitGameDialog .setTitle("Awe, don't leave me.") .setMessage("Are you sure you want to exit " + (mainMenuIsActive ? "the game?" : "to the Main Menu?")) .addButton("No way!", new OnClickCallback() { @Override public void onClick(Dialog dialog) { dialog.dismiss(); } }) .addButton("Yes", new OnClickCallback() { @Override public void onClick(Dialog dialog) { dialog.dismiss(); if (mainMenuIsActive) { Gdx.app.exit(); } else { SceneManager.changeScene(MainMenuScene.class); } } }) .show(); return true; } }