Example usage for com.badlogic.gdx.scenes.scene2d InputListener InputListener

List of usage examples for com.badlogic.gdx.scenes.scene2d InputListener InputListener

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d InputListener InputListener.

Prototype

InputListener

Source Link

Usage

From source file:broken.shotgun.throwthemoon.stages.GameStage.java

License:Open Source License

public GameStage(final AssetManager manager) {
    super(new StretchViewport(WIDTH, HEIGHT));

    this.manager = manager;

    loadLevel();//from   w ww. j a  v a  2  s  . c  om

    loadSounds();

    loadFont();

    random = new Random(System.currentTimeMillis());
    fadingOut = false;

    background = new Background(manager);
    chain = new MoonChain(manager);
    player = new Player(manager);
    moon = new Moon(manager);

    moonImpactMeter = new MoonImpactMeter(moon);

    screenFadeActor = new Actor();
    screenFadeActor.setBounds(0, 0, WIDTH, HEIGHT);
    screenFadeActor.setColor(Color.CLEAR);

    levelDebugRenderer = new LevelDebugRenderer();
    screenLogger = new StringBuilder();

    uiBatch = new SpriteBatch();
    renderer = new ShapeRenderer();
    renderer.setAutoShapeType(true);

    touchPoint = new Vector2();

    resetLevel();

    debug = isDebug();
    setDebugAll(debug);

    Gdx.input.setInputProcessor(this);

    addListener(new ActorGestureListener() {
        @Override
        public void touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer == 0 && !(event.getTarget() instanceof Enemy || event.getTarget() instanceof Boss
                    || (boss != null && event.getTarget() instanceof MoonChain))) {
                player.moveTo(touchPoint.set(x, y));
            }

            // FIXME replace String.format with StringBuilder for HTML
            if (isDebug())
                Gdx.app.log("GameStage", String.format("touchDown %s %s", event.getType().toString(),
                        event.getTarget().toString()));
            super.touchDown(event, x, y, pointer, button);
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer == 0 && player.isWalking()) {
                player.stop();
            }
            super.touchUp(event, x, y, pointer, button);
        }

        @Override
        public void pan(InputEvent event, float x, float y, float deltaX, float deltaY) {
            if (boss == null || (boss != null && !(event.getTarget() instanceof MoonChain))) {
                player.moveTo(touchPoint.set(x, y));
            }

            super.pan(event, x, y, deltaX, deltaY);
        }

        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            player.performAttack(count);

            float deltaX = ((player.getX() + player.getOriginX()) - x);
            player.setFlipX(deltaX > 0);

            // FIXME replace String.format with StringBuilder for HTML
            if (isDebug()) {
                Actor target = event.getTarget();
                Gdx.app.log("GameStage",
                        String.format("tap type:%s target:%s [target x=%.2f y=%.2f] count:%d [x:%.2f, y:%.2f]",
                                event.getType().toString(), target.toString(), target.getX(), target.getY(),
                                count, x, y));
            }
            super.tap(event, x, y, count, button);
        }

        @Override
        public void fling(InputEvent event, float velocityX, float velocityY, int button) {
            Gdx.app.log("GameStage",
                    String.format("fling velocityX:%.2f velocityY:%.2f", velocityX, velocityY));
            if (player.isMoonThrowEnabled() && velocityY < 0 && chain.isAttached()
                    && event.getTarget() instanceof MoonChain) {
                int multiplier = (boss != null && boss.isDefeated()) ? 10 : 2;
                moon.addDistance(velocityY * multiplier);
                chain.animatePull();
            }
            super.fling(event, velocityX, velocityY, button);
        }

    });

    addListener(new InputListener() {
        int attackCounter = 0;

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            switch (keycode) {
            case Input.Keys.D:
                if (debug && player.isMoonThrowEnabled() && !moon.isFalling()) {
                    moon.startFalling();
                }
                break;
            case Input.Keys.K:
                if (debug) {
                    clearAllEnemies();
                }
                break;
            case Input.Keys.SPACE:
                attackCounter++;
                player.performAttack(attackCounter);
                return true;
            case Input.Keys.LEFT:
                player.velocity.x = -7;
                player.startWalkState();
                return true;
            case Input.Keys.RIGHT:
                player.velocity.x = 7;
                player.startWalkState();
                return true;
            case Input.Keys.UP:
                player.velocity.y = 7;
                player.startWalkState();
                return true;
            case Input.Keys.DOWN:
                player.velocity.y = -7;
                player.startWalkState();
                return true;
            }

            return super.keyDown(event, keycode);
        }

        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            switch (keycode) {
            case Input.Keys.LEFT:
            case Input.Keys.RIGHT:
                player.velocity.x = 0;
                return true;
            case Input.Keys.UP:
            case Input.Keys.DOWN:
                player.velocity.y = 0;
                return true;
            }
            return super.keyUp(event, keycode);
        }
    });
}

From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java

License:Open Source License

/**
 * Displays the high score dialog.//from  ww  w.j a va 2 s  . co  m
 */
public void highScoreDialog() {
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("High Score", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    Label label = new Label("Enter your name:", labelStyle);
    label.setScale(.5f);
    label.setWrap(true);
    label.setAlignment(Align.center);
    final TextField nameField = new TextField("", game.assets.skin);
    dialog.add(label).width(500).pad(50);
    dialog.add(nameField);
    dialog.add(okButton).bottom();
    nameField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (key == (char) 13) {
                    displayHighScores(name);
                }
            }
        }
    });
    okButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    displayHighScores(name);
                }
            }
        }
    });
    dialog.addListener(new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (keycode == Keys.ENTER) {
                    displayHighScores(name);
                    return true;
                }
            }
            return false;
        }
    });
    dialog.show(stage);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Displays the results dialog.//from  w  ww  .  j  a  va2s . co  m
 */
public void dialog() {
    message = formatString(answerField.getText());
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("Results", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    if (checkAnswer() == -1) {
        Label label = new Label("Invalid answer. Please try again.", labelStyle);
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    canvas.setColor(drawColor);
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    dialog.hide();
                    return true;
                }
                return false;
            }
        });
    } else {
        Label label = new Label("Your answer was: " + message + ". " + "The correct answer was: " + answer
                + ". " + "You get " + checkAnswer() + " back!", labelStyle);
        game.save.addScore(checkAnswer());
        game.save.setLives(player.getLives());
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.cancel();
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                    return true;
                }
                return false;
            }
        });
    }
    dialog.show(stage);
}

From source file:com.advancedtelematic.toyapp.AboutScreen.java

@Override
public void show() {
    super.show();
    Gdx.input.setCatchBackKey(true);//from ww  w .j  av  a  2s  .c o  m
    getStage().addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.BACK || keycode == Input.Keys.ESCAPE) {
                app.setScreen(app.getMainScreen());
                return true;
            } else {
                return false;
            }
        }
    });
}

From source file:com.agateau.ui.menu.GridMenuItem.java

License:Apache License

public GridMenuItem(Menu menu) {
    mMenu = menu;/*from   ww w.j  a v  a 2  s  .  c  o  m*/
    mStyle = mMenu.getSkin().get(GridMenuItemStyle.class);
    addListener(new InputListener() {
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer == 0 && button != 0) {
                return false;
            }
            GridMenuItem.this.touchDown(x, y);
            return true;
        }
    });
}

From source file:com.agateau.ui.menu.MenuItemGroup.java

License:Apache License

public MenuItemGroup(Menu menu) {
    mMenu = menu;/*  w w  w  .  ja  v a 2 s .  co  m*/
    mGroup.addListener(new InputListener() {
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            MenuItem item = getItemAt(x, y);
            if (item != null) {
                setCurrentItem(item);
            }
            return false;
        }
    });
}

From source file:com.agateau.ui.RefreshHelper.java

License:Apache License

private void installEventListener(Stage stage) {
    if (stage == null) {
        return;/*from  w  w  w .j ava 2  s .  c om*/
    }
    stage.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.F5) {
                NLog.i("Refreshing");
                Gdx.app.postRunnable(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            refresh();
                        } catch (Exception exc) {
                            NLog.e("Refresh failed: %s", exc);
                        }
                    }
                });
                return true;
            }
            return false;
        }
    });
}

From source file:com.ahsgaming.valleyofbones.screens.LevelScreen.java

License:Apache License

@Override
public void resize(int width, int height) {
    stage.setViewport(800 * VOBGame.SCALE, 480 * VOBGame.SCALE, true);
    stage.clear();/* w w w.  j av  a 2s  .  co  m*/

    stage.addListener(new LevelScreenInputListener(this));

    stage.addListener(new InputListener() {
        @Override
        public boolean scrolled(InputEvent event, float x, float y, int amount) {
            zoom((amount > 0 ? 1.1f : 1 / 1.1f));

            return super.scrolled(event, x, y, amount); //To change body of overridden methods use File | Settings | File Templates.
        }
    });

    mapCamera.setToOrtho(false, stage.getCamera().viewportWidth * mapScale.x,
            stage.getCamera().viewportHeight * mapScale.y); // TODO
    //        mapScale = new Vector2(800f / width, 480f / height);

    grpLevel.setBounds(0, 0, stage.getWidth(), stage.getHeight());
    stage.addActor(grpLevel);

    // panels
    // TODO add back upgrade panel
    //        stage.addActor(upgradePanel);
    //        upgradePanel.setAnchor(0, 64);

    stage.addActor(unitBuildPanel);
    unitBuildPanel.setPosition(0, 0);
    //        buildingBuildPanel.setPosition(0, 0);

    stage.addActor(selectionPanel);
    selectionPanel.setPosition(stage.getWidth() * 0.5f - selectionPanel.getWidth() * 0.5f,
            -selectionPanel.getHeight() + 3 * VOBGame.SCALE);

    turnPanel.setPosition(stage.getWidth() * 0.5f - turnPanel.getWidth() * 0.5f,
            stage.getHeight() - turnPanel.getHeight() + 3 * VOBGame.SCALE);
    stage.addActor(turnPanel);

    stage.addActor(menuButton);

    menuPanel.resize(stage.getWidth(), stage.getHeight());
}

From source file:com.ahsgaming.valleyofbones.screens.MPGameSetupScreen.java

License:Apache License

public void setupScreen() {

    Label gameTypeLbl = new Label("Multiplayer", getSkin(), "medium");

    Table table = new Table(getSkin());
    table.setFillParent(true);/*from www.  ja  v  a  2  s  .c  o m*/
    stage.addActor(table);

    table.add(gameTypeLbl).colspan(2).center();
    table.row().minWidth(600);

    Table playerTable = new Table(getSkin());
    playerTable.setBackground(getSkin().getDrawable("default-pane"));

    playerTable.add().padBottom(10).width(30);
    playerTable.add().padBottom(10).width(30);
    playerTable.add(new Label("Name", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Race", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Color", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Ready", getSkin(), "small-grey")).padBottom(10).row();

    pList = new Array<Player>();
    pList.addAll(game.getPlayers());

    for (final Player p : pList) {
        playerTable.add("P" + ((pList.indexOf(p, true) + 1))).padLeft(10);
        if (pList.indexOf(p, true) == 0) {
            Image host = new Image(game.getTextureManager().getSpriteFromAtlas("assets", "king-small"));
            playerTable.add(host).size(host.getWidth() / VOBGame.SCALE, host.getHeight() / VOBGame.SCALE)
                    .padLeft(10).padRight(10);
        } else {
            if (config.isHost) {
                Image btn = getRemovePlayerButton(p.getPlayerId());
                playerTable.add(btn).size(btn.getWidth() / VOBGame.SCALE, btn.getHeight() / VOBGame.SCALE)
                        .padLeft(10).padRight(10);
            } else {
                playerTable.add().padLeft(10).padRight(10);
            }
        }

        playerTable.add(new Label(String.format("%s (%d)", p.getPlayerName(), p.getPlayerId()), getSkin()))
                .left().expandX();

        if (p == client.getPlayer() || (config.isHost && p.isAI())) {

            SelectBox raceSelect = new SelectBox(Prototypes.getRaces().toArray(), getSkin());
            playerTable.add(raceSelect).expandX();
            raceSelect.setSelection(p.getRace());

            raceSelect.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                    update.id = p.getPlayerId();
                    update.race = ((SelectBox) actor).getSelection();
                    update.color = 0;
                    while (update.color < Player.AUTOCOLORS.length
                            && !p.getPlayerColor().equals(Player.AUTOCOLORS[update.color])) {
                        update.color++;
                    }
                    update.ready = p.isReady();
                    if (client instanceof MPGameClient)
                        ((MPGameClient) client).sendPlayerUpdate(update);
                }
            });

        } else {
            playerTable.add(p.getRace());
        }

        Image color = new Image(getSkin().getDrawable("white-hex"));
        color.setColor(p.getPlayerColor());
        playerTable.add(color).expandX().width(color.getWidth());

        if (p == client.getPlayer() || (config.isHost && p.isAI())) {
            color.addListener(new ClickListener() {
                @Override
                public void clicked(InputEvent event, float x, float y) {
                    super.clicked(event, x, y);
                    int i = 0;
                    while (i < Player.AUTOCOLORS.length
                            && !Player.AUTOCOLORS[i].equals(event.getTarget().getColor())) {
                        i++;
                    }
                    i++;

                    i %= Player.AUTOCOLORS.length;
                    event.getTarget().setColor(Player.AUTOCOLORS[i]);

                    KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                    update.id = p.getPlayerId();
                    update.race = p.getRace();
                    update.color = i;
                    update.ready = p.isReady();
                    if (client instanceof MPGameClient)
                        ((MPGameClient) client).sendPlayerUpdate(update);
                }
            });
        }

        CheckBox chkReady = new CheckBox("", getSkin());
        playerTable.add(chkReady).expandX();

        chkReady.setChecked(p.isReady());
        if (p != client.getPlayer())
            chkReady.setDisabled(true);

        chkReady.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                update.id = p.getPlayerId();
                update.race = p.getRace();
                update.color = 0;
                while (update.color < Player.AUTOCOLORS.length
                        && !p.getPlayerColor().equals(Player.AUTOCOLORS[update.color])) {
                    update.color++;
                }
                update.ready = !p.isReady();
                if (client instanceof MPGameClient)
                    ((MPGameClient) client).sendPlayerUpdate(update);
            }
        });

        playerTable.row().padBottom(5).padTop(5);
    }

    if (pList.size < 2 && config.isHost) {
        TextButton addAI = new TextButton(" Add AI Player ", getSkin(), "small");
        addAI.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                super.clicked(event, x, y);

                game.addAIPlayer();
            }
        });
        playerTable.add();
        playerTable.add();
        playerTable.add(addAI).colspan(5).left();
    }

    table.add(playerTable).fillX().colspan(2);

    table.row();

    sList = game.getSpectators();
    if (sList.keySet().size() > 0) {
        table.add("Spectators").colspan(2).left();
        table.row();

        Table spectatorTable = new Table(getSkin());
        spectatorTable.setBackground(getSkin().getDrawable("default-pane"));

        for (Integer id : sList.keySet()) {
            if (config.isHost) {
                Image btn = getRemovePlayerButton(id);
                spectatorTable.add(btn).size(btn.getWidth() / VOBGame.SCALE, btn.getHeight() / VOBGame.SCALE)
                        .padLeft(10).padRight(10);
            }
            spectatorTable.add(sList.get(id)).expandX().left();
            spectatorTable.row().expandX().padBottom(5).padTop(5);
        }

        table.add(spectatorTable).fillX().colspan(2);
        table.row();
    }

    ChangeListener updateListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            needsUpdate = true;
        }
    };

    Table setupTable = new Table(getSkin());

    chkSpectators = new CheckBox(" Allow Spectators?", getSkin());
    chkSpectators.setChecked(config.allowSpectate);
    chkSpectators.setDisabled(!config.isHost);
    chkSpectators.addListener(updateListener);
    setupTable.add(chkSpectators).colspan(2).left().padTop(4).row();

    Label mapLbl = new Label("Map:", getSkin());
    setupTable.add(mapLbl).left();

    if (config.isHost) {
        needsUpdate = true; // always send an update on setup, just so we're all on the same page

        JsonReader reader = new JsonReader();
        JsonValue val = reader.parse(Gdx.files.internal("maps/maps.json").readString());

        Array<String> maps = new Array<String>();
        for (JsonValue v : val) {
            maps.add(v.asString());
        }

        mapSelect = new SelectBox(maps.toArray(), getSkin());
        mapSelect.setSelection(config.mapName);

        mapSelect.addListener(updateListener);

        setupTable.add(mapSelect).left().padTop(4).padBottom(4).fillX();
    } else {
        lblMap = new Label(config.mapName, getSkin());
        setupTable.add(lblMap).left();
    }
    setupTable.row();

    setupTable.add("Rules:").left();
    if (config.isHost) {
        Array<VOBGame.RuleSet> ruleSets = game.getRuleSets();
        String[] items = new String[ruleSets.size];
        for (int i = 0; i < ruleSets.size; i++) {
            items[i] = ruleSets.get(i).name;
        }
        ruleSelect = new SelectBox(items, getSkin());
        setupTable.add(ruleSelect).left().padBottom(4).fillX();
        ruleSelect.setSelection(config.ruleSet);

        ruleSelect.addListener(updateListener);
    } else {
        lblRule = new Label(game.getRuleSets().get(config.ruleSet).name, getSkin());
        setupTable.add(lblRule).left();
    }
    setupTable.row();

    setupTable.add("Starting Locations:").left();
    if (config.isHost) {
        spawnSelect = new SelectBox(spawnTypes, getSkin());
        setupTable.add(spawnSelect).left().padBottom(4).fillX();
        spawnSelect.setSelection(config.spawnType);

        spawnSelect.addListener(updateListener);
    } else {
        lblSpawn = new Label(spawnTypes[config.spawnType], getSkin());
        setupTable.add(lblSpawn).left();
    }
    setupTable.row();

    setupTable.add("First Move:").left();
    if (config.isHost) {
        moveSelect = new SelectBox(firstMoves, getSkin());
        setupTable.add(moveSelect).left().padBottom(4).fillX();
        moveSelect.setSelection(config.firstMove);

        moveSelect.addListener(updateListener);
    } else {
        lblMove = new Label(firstMoves[config.firstMove], getSkin());
        setupTable.add(lblMove).left();
    }
    setupTable.row();

    setupTable.add("Timing Rules:").colspan(2).left().row();

    Table timingTable = new Table(getSkin());
    setupTable.add(timingTable).colspan(2).fillX();

    timingTable.add("Base:").left().expandX();
    if (config.isHost) {
        baseTime = new SelectBox(new String[] { "30", "60", "90" }, getSkin());
        timingTable.add(baseTime).expandX().padLeft(4);
        baseTime.setSelection(Integer.toString(config.baseTimer));
        baseTime.addListener(updateListener);
    } else {
        lblBaseTime = new Label(Integer.toString(config.baseTimer), getSkin());
        timingTable.add(lblBaseTime).expandX().padLeft(4);
    }

    timingTable.add("Action:").left().expandX().padLeft(4);
    if (config.isHost) {
        actionTime = new SelectBox(new String[] { "0", "15", "30" }, getSkin());
        timingTable.add(actionTime).expandX().padLeft(4);
        actionTime.setSelection(Integer.toString(config.actionBonusTime));
        actionTime.addListener(updateListener);
    } else {
        lblActionTime = new Label(Integer.toString(config.actionBonusTime), getSkin());
        timingTable.add(lblActionTime).expandX().padLeft(4);
    }

    timingTable.add("Unit:").left().expandX().padLeft(4);
    if (config.isHost) {
        unitTime = new SelectBox(new String[] { "0", "3", "5" }, getSkin());
        timingTable.add(unitTime).expandX().padLeft(4);
        unitTime.setSelection(Integer.toString(config.unitBonusTime));
        unitTime.addListener(updateListener);
    } else {
        lblUnitTime = new Label(Integer.toString(config.unitBonusTime), getSkin());
        timingTable.add(lblUnitTime).expandX().padLeft(4);
    }

    table.add(setupTable).fillX();

    Table controlTable = new Table(getSkin());

    Sprite mapThumb = game.getTextureManager().getSpriteFromAtlas("assets", config.mapName);
    if (mapThumb != null) {
        controlTable.add(new Image(mapThumb)).colspan(2).row();
    }

    if (config.isHost) {
        isHost = true;
        TextButton start = new TextButton("Start Game", getSkin());
        start.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                super.clicked(event, x, y);
                if (game.getPlayers().size >= 2)
                    game.sendStartGame();
            }
        });
        controlTable.add().expand();
        controlTable.add(start).padTop(4).right();

        controlTable.row();
    }

    TextButton cancel = new TextButton("Cancel", getSkin(), "cancel");
    cancel.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            game.setScreen(game.getMainMenuScreen());
            game.closeGame();
        }
    });

    controlTable.add();
    controlTable.add(cancel).fillX().padTop(4).right();

    table.add(controlTable).fillX().row();

    if (chatTable == null) {
        chatTable = new Table(getSkin());
        chatScroll = new ScrollPane(chatTable, getSkin());
        chatScroll.setFadeScrollBars(false);
        chatTable.padLeft(20);
    }
    table.add(chatScroll).colspan(2).fillX().height(100);

    table.row();

    Table chatBox = new Table(getSkin());
    final TextField chatMsgText = new TextField("", getSkin());
    if (chatListener != null) {
        stage.removeListener(chatListener);
    }
    stage.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (stage.getKeyboardFocus() == chatMsgText && keycode == Input.Keys.ENTER
                    && chatMsgText.getText().length() > 0) {
                Gdx.app.log(LOG, "Chat: " + chatMsgText.getText());
                client.sendChat(chatMsgText.getText());
                chatMsgText.setText("");
                return false;
            }
            return super.keyUp(event, keycode);
        }
    });

    chatBox.add(chatMsgText).expandX().fillX();
    TextButton chatMsgSend = new TextButton("Send", getSkin(), "small");
    chatMsgSend.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y); //To change body of overridden methods use File | Settings | File Templates.

            if (chatMsgText.getText().length() > 0) {
                Gdx.app.log(LOG, "Chat: " + chatMsgText.getText());
                client.sendChat(chatMsgText.getText());
                chatMsgText.setText("");
            }
        }
    });
    chatBox.add(chatMsgSend).fillY().fillX();
    table.add(chatBox).colspan(2).fillX();
    chatHistory = new Array<String>();
}

From source file:com.aia.hichef.ui.n.MyDialog.java

License:Apache License

/**
 * If this key is pressed, {@link #result(Object)} is called with the
 * specified object./*  w ww  .  j  a  v a  2  s .c  o  m*/
 * 
 * @see Keys
 */
public MyDialog key(final int keycode, final Object object) {
    addListener(new InputListener() {
        public boolean keyDown(InputEvent event, int keycode2) {
            if (keycode == keycode2) {
                result(object);
                if (!cancelHide)
                    hide();
                cancelHide = false;
            }
            return false;
        }
    });
    return this;
}