Search in sources :

Example 36 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.

the class DialogDrawables method refreshDrawableDisplay.

private void refreshDrawableDisplay() {
    contentGroup.clear();
    if (drawables.size == 0) {
        Label label = new Label("No drawables have been added!", getSkin());
        contentGroup.addActor(label);
    }
    for (DrawableData drawable : drawables) {
        Button drawableButton;
        if (property != null || customProperty != null) {
            drawableButton = new Button(getSkin(), "color-base");
            drawableButton.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    result(drawable);
                    hide();
                }
            });
            drawableButton.addListener(main.getHandListener());
        } else {
            drawableButton = new Button(getSkin(), "color-base-static");
        }
        contentGroup.addActor(drawableButton);
        Table table = new Table();
        drawableButton.add(table).width(sizes[MathUtils.floor(zoomSlider.getValue())]).height(sizes[MathUtils.floor(zoomSlider.getValue())]);
        ClickListener fixDuplicateTouchListener = new ClickListener() {

            @Override
            public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                event.setBubbles(false);
                return super.touchDown(event, x, y, pointer, button);
            }
        };
        // color wheel
        if (!drawable.customized && !drawable.tiled) {
            Button button = new Button(getSkin(), "colorwheel");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    newTintedDrawable(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("New Tinted Drawable", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else {
            table.add();
        }
        // swatches
        if (!drawable.customized && !drawable.tiled) {
            Button button = new Button(getSkin(), "swatches");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    colorSwatchesDialog(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("Tinted Drawable from Colors", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else {
            table.add();
        }
        // tiles button (NOT FOR TINTS OR CUSTOM DRAWABLES)
        if (!drawable.customized && drawable.tint == null && drawable.tintName == null) {
            ;
            Button button = new Button(getSkin(), "tiles");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    tiledDrawableDialog(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("Tiled Drawable", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else {
            table.add();
        }
        // tiled settings
        if (drawable.tiled) {
            Button button = new Button(getSkin(), "settings-small");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    tiledDrawableSettingsDialog(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("Tiled Drawable Settings", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else // rename (ONLY FOR TINTS)
        if (drawable.tint != null || drawable.tintName != null) {
            Button button = new Button(getSkin(), "settings-small");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    renameDrawableDialog(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("Rename Tinted Drawable", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else // settings for custom drawables
        if (drawable.customized) {
            Button button = new Button(getSkin(), "settings-small");
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    renameCustomDrawableDialog(drawable);
                    event.setBubbles(false);
                }
            });
            button.addListener(fixDuplicateTouchListener);
            if (property == null && customProperty == null) {
                button.addListener(main.getHandListener());
            }
            table.add(button);
            TextTooltip toolTip = new TextTooltip("Rename Custom Drawable", main.getTooltipManager(), getSkin());
            button.addListener(toolTip);
        } else {
            table.add();
        }
        // delete
        Button button = new Button(getSkin(), "delete-small");
        button.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                deleteDrawable(drawable);
                event.setBubbles(false);
            }
        });
        button.addListener(fixDuplicateTouchListener);
        if (property == null && customProperty == null) {
            button.addListener(main.getHandListener());
        }
        table.add(button).expandX().right();
        TextTooltip toolTip = new TextTooltip("Delete Drawable", main.getTooltipManager(), getSkin());
        button.addListener(toolTip);
        // preview
        table.row();
        Container bg = new Container();
        bg.setClip(true);
        bg.setBackground(getSkin().getDrawable("white"));
        bg.setColor(drawable.bgColor);
        Image image = new Image(drawablePairs.get(drawable));
        if (MathUtils.isZero(zoomSlider.getValue())) {
            image.setScaling(Scaling.fit);
            bg.fill(false);
        } else {
            image.setScaling(Scaling.stretch);
            bg.fill();
        }
        bg.setActor(image);
        table.add(bg).colspan(5).grow();
        // name
        table.row();
        Label label = new Label(drawable.name, getSkin());
        label.setEllipsis("...");
        label.setEllipsis(true);
        label.setAlignment(Align.center);
        table.add(label).colspan(5).growX().width(sizes[MathUtils.floor(zoomSlider.getValue())]);
        // Tooltip
        toolTip = new TextTooltip(drawable.name, main.getTooltipManager(), getSkin());
        label.addListener(toolTip);
    }
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) DrawableData(com.ray3k.skincomposer.data.DrawableData) Container(com.badlogic.gdx.scenes.scene2d.ui.Container) TextTooltip(com.badlogic.gdx.scenes.scene2d.ui.TextTooltip) Button(com.badlogic.gdx.scenes.scene2d.ui.Button) TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Example 37 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.

the class RootTable method addFileMenu.

private void addFileMenu() {
    Table table = new Table();
    table.defaults().padRight(2.0f);
    add(table).expandX().left().padTop(2.0f);
    MenuButtonGroup menuButtonGroup = new MenuButtonGroup();
    fileMenu = new MenuButton("File", getSkin());
    fileMenu.addListener(main.getHandListener());
    fileMenu.getMenuList().addListener(main.getHandListener());
    menuButtonGroup.add(fileMenu);
    table.add(fileMenu).padLeft(2.0f);
    recentFilesButton = new MenuItem("Recent Files...", RootTableEnum.RECENT_FILES);
    fileMenu.setItems(new MenuItem("New", RootTableEnum.NEW), new MenuItem("Open...", RootTableEnum.OPEN), recentFilesButton, new MenuItem("Save", RootTableEnum.SAVE), new MenuItem("Save As...", RootTableEnum.SAVE_AS), new MenuItem("Welcome Screen...", RootTableEnum.WELCOME), new MenuItem("Import...", RootTableEnum.IMPORT), new MenuItem("Export...", RootTableEnum.EXPORT), new MenuItem("Exit", RootTableEnum.EXIT));
    if (Utils.isMac()) {
        fileMenu.setShortcuts("⌘+N", "⌘+O", null, "⌘+S", "Shift+⌘+S", null, null, "⌘+E");
    } else {
        fileMenu.setShortcuts("Ctrl+N", "Ctrl+O", null, "Ctrl+S", "Shift+Ctrl+S", null, null, "Ctrl+E");
    }
    fileMenu.addListener(new MenuBarListener(fileMenu));
    editMenu = new MenuButton("Edit", getSkin());
    editMenu.addListener(main.getHandListener());
    editMenu.getMenuList().addListener(main.getHandListener());
    menuButtonGroup.add(editMenu);
    table.add(editMenu);
    undoButton = new MenuItem("Undo", RootTableEnum.UNDO);
    redoButton = new MenuItem("Redo", RootTableEnum.REDO);
    editMenu.setItems(undoButton, redoButton);
    if (Utils.isMac()) {
        editMenu.setShortcuts("⌘+Z", "⌘+Y");
    } else {
        editMenu.setShortcuts("Ctrl+Z", "Ctrl+Y");
    }
    editMenu.setDisabled(undoButton, true);
    editMenu.setDisabled(redoButton, true);
    editMenu.addListener(new MenuBarListener(editMenu));
    MenuButton<MenuItem> menuButton = new MenuButton("Project", getSkin());
    menuButton.addListener(main.getHandListener());
    menuButton.getMenuList().addListener(main.getHandListener());
    menuButtonGroup.add(menuButton);
    table.add(menuButton);
    menuButton.setItems(new MenuItem("Settings...", RootTableEnum.SETTINGS), new MenuItem("Colors...", RootTableEnum.COLORS), new MenuItem("Fonts...", RootTableEnum.FONTS), new MenuItem("Drawables...", RootTableEnum.DRAWABLES), new MenuItem("Refresh Atlas", RootTableEnum.REFRESH_ATLAS));
    menuButton.setShortcuts(null, null, null, null, "F5");
    menuButton.addListener(new MenuBarListener(menuButton));
    menuButton = new MenuButton("Help", getSkin());
    menuButton.addListener(main.getHandListener());
    menuButton.getMenuList().addListener(main.getHandListener());
    menuButtonGroup.add(menuButton);
    table.add(menuButton);
    menuButton.setItems(new MenuItem("About...", RootTableEnum.ABOUT));
    menuButton.addListener(new MenuBarListener(menuButton));
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table)

Example 38 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.

the class LobbyScreen method initUI.

@Override
protected void initUI() {
    // backgroundTexture = assetManager.get(BACKGROUND_IMAGE_PATH);
    Sound clickSound = assetManager.get(BUTTON_SOUND);
    // mainTable.setBackground(skin.getDrawable("parchment-small"));
    ImageTextButton leaveButton = new ImageTextButton("Verlassen", skin);
    leaveButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            game.getNetworkHandler().disconnect();
            game.pushScreen("mainMenu");
            return true;
        }
    });
    NetworkHandler netHandler = game.getNetworkHandler();
    readyUpLobbyButton = new ImageTextButton("Bereit", skin);
    if (netHandler.isHost()) {
        readyUpLobbyButton.setDisabled(true);
        readyUpLobbyButton.setText("Spiel starten");
    }
    readyUpLobbyButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            getLocalPlayer().toggleReady();
            netHandler.onLocalPlayerChange(getLocalPlayer());
            updateLobbyUI();
            return true;
        }
    });
    Table playerTable = new Table();
    Table settingsTable = new Table();
    Table buttonTable = new Table();
    Table chatTable = new Table();
    // settings table + player table
    buttonTable.add(readyUpLobbyButton).bottom().padBottom(20).row();
    buttonTable.add(leaveButton);
    Table chatInputTable = new Table();
    ImageTextButton sendButton = new ImageTextButton("Senden", skin);
    TextField chatInputField = new TextField("", skin);
    chatInputField.setTextFieldListener(new TextFieldListener() {

        @Override
        public void keyTyped(TextField textField, char key) {
            if (!textField.getText().isEmpty() && (key == (char) 13)) {
                // Enter
                clickSound.play(1F);
                netHandler.sendChatMessage(chatInputField.getText());
                onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
                chatInputField.setText("");
            }
        }
    });
    sendButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (!chatInputField.getText().isEmpty()) {
                clickSound.play(1F);
                netHandler.sendChatMessage(chatInputField.getText());
                onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
                chatInputField.setText("");
            }
            return true;
        }
    });
    messagesArea = new TextArea("", skin);
    messagesArea.setDisabled(true);
    ScrollPane messagesPane = new ScrollPane(messagesArea);
    chatInputTable.add(chatInputField).left().width(325).padRight(15);
    chatInputTable.add(sendButton);
    chatTable.debug();
    chatTable.add(messagesPane).height(125).width(425).top().row();
    chatTable.add(chatInputTable).left().padTop(10).width(425).bottom();
    playerSlots = new Table[6];
    playerSlots[0] = new Table();
    playerSlots[1] = new Table();
    playerSlots[2] = new Table();
    playerSlots[3] = new Table();
    playerSlots[4] = new Table();
    playerSlots[5] = new Table();
    playerTable.add(playerSlots[0]).height(25).width(425).row();
    playerTable.add(playerSlots[1]).height(25).width(425).row();
    playerTable.add(playerSlots[2]).height(25).width(425).row();
    playerTable.add(playerSlots[3]).height(25).width(425).row();
    playerTable.add(playerSlots[4]).height(25).width(425).row();
    playerTable.add(playerSlots[5]).height(25).width(425).row();
    mainTable.add(playerTable).width(425).height(155);
    mainTable.add(settingsTable).width(155).row();
    mainTable.add(chatTable).height(165).bottom();
    mainTable.add(buttonTable).height(165);
    mainTable.setDebug(true);
// updateLobbyUI();
}
Also used : ImageTextButton(com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) TextArea(com.badlogic.gdx.scenes.scene2d.ui.TextArea) Sound(com.badlogic.gdx.audio.Sound) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) NewChatMessagEvent(de.gg.event.NewChatMessagEvent) TextField(com.badlogic.gdx.scenes.scene2d.ui.TextField) NetworkHandler(de.gg.network.NetworkHandler) TextFieldListener(com.badlogic.gdx.scenes.scene2d.ui.TextField.TextFieldListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 39 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.

the class ServerBrowserScreen method initUI.

@Override
protected void initUI() {
    backgroundTexture = assetManager.get(BACKGROUND_IMAGE_PATH);
    Sound clickSound = assetManager.get(BUTTON_SOUND);
    // mainTable.setBackground(skin.getDrawable("parchment-small"));
    Table serverTable = new Table();
    ScrollPane pane = new ScrollPane(serverTable);
    // TODO gegen echte Server-Daten austauschen
    String ip = "127.0.0.1";
    int port = 12345;
    ImageTextButton joinButton = new ImageTextButton("Beitreten", skin);
    joinButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            game.getNetworkHandler().setUpConnectionAsClient(ip, port);
            connectingDialog = new Dialog("Verbinden...", skin);
            connectingDialog.text("Spiel beitreten...");
            connectingDialog.show(stage);
            return true;
        }
    });
    ImageTextButton backButton = new ImageTextButton("Zur�ck", skin);
    backButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            game.pushScreen("mainMenu");
            return true;
        }
    });
    ImageTextButton createLobbyButton = new ImageTextButton("Spiel erstellen", skin);
    createLobbyButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            game.pushScreen("lobbyCreation");
            return true;
        }
    });
    ImageTextButton directConnectButton = new ImageTextButton("Direkt verbinden", skin);
    directConnectButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            clickSound.play(1F);
            TextField portInputField = new TextField("55789", skin);
            portInputField.setTextFieldFilter(new TextField.TextFieldFilter.DigitsOnlyFilter());
            TextField ipInputField = new TextField("127.0.0.1", skin);
            Dialog dialog = new Dialog("Direkt verbinden", skin) {

                public void result(Object obj) {
                    if ((Boolean) obj) {
                        game.getNetworkHandler().setUpConnectionAsClient(ipInputField.getText(), Integer.valueOf(portInputField.getText()));
                        connectingDialog = new Dialog("Verbinden...", skin);
                        connectingDialog.text("Spiel beitreten...");
                        connectingDialog.show(stage);
                    }
                }
            };
            dialog.text("IP: ").button("Zur�ck", false).button("Verbinden", true).key(Keys.ENTER, true).key(Keys.ESCAPE, false);
            dialog.getContentTable().add(ipInputField).width(170).row();
            dialog.getContentTable().add(new Label("Port:", skin));
            dialog.getContentTable().add(portInputField).width(90).left();
            dialog.show(stage);
            return true;
        }
    });
    Table buttonTable = new Table();
    buttonTable.add(backButton);
    buttonTable.add(createLobbyButton).padLeft(55);
    buttonTable.add(directConnectButton).padLeft(55);
    serverTable.left().top().add(new Image((Texture) assetManager.get(TICK_IMAGE_PATH))).padRight(15).padLeft(12);
    serverTable.add(new Label("Spiel 2", skin)).expandX();
    serverTable.add(joinButton).padRight(12);
    serverTable.row().padTop(20);
    mainTable.add(serverTable).width(580).height(405).row();
    mainTable.add(buttonTable).height(50).bottom();
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) ImageTextButton(com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) Sound(com.badlogic.gdx.audio.Sound) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) Texture(com.badlogic.gdx.graphics.Texture) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Dialog(com.badlogic.gdx.scenes.scene2d.ui.Dialog) TextField(com.badlogic.gdx.scenes.scene2d.ui.TextField) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 40 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.

the class BaseUIScreen method show.

@Override
public void show() {
    super.show();
    stage = new Stage(new ScreenViewport());
    mainTable = new Table();
    stage.addActor(mainTable);
    mainTable.setFillParent(true);
    mainTable.setDebug((boolean) game.showDebugStuff());
    game.getInputMultiplexer().addProcessor(stage);
    initUI();
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Stage(com.badlogic.gdx.scenes.scene2d.Stage) ScreenViewport(com.badlogic.gdx.utils.viewport.ScreenViewport)

Aggregations

Table (com.badlogic.gdx.scenes.scene2d.ui.Table)93 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)56 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)50 Stage (com.badlogic.gdx.scenes.scene2d.Stage)48 Actor (com.badlogic.gdx.scenes.scene2d.Actor)43 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)38 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)34 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)32 ScrollPane (com.badlogic.gdx.scenes.scene2d.ui.ScrollPane)25 TextField (com.badlogic.gdx.scenes.scene2d.ui.TextField)23 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)18 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)18 Texture (com.badlogic.gdx.graphics.Texture)17 Dialog (com.badlogic.gdx.scenes.scene2d.ui.Dialog)14 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)14 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)13 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)13 SelectBox (com.badlogic.gdx.scenes.scene2d.ui.SelectBox)13 Button (com.badlogic.gdx.scenes.scene2d.ui.Button)12 CheckBox (com.badlogic.gdx.scenes.scene2d.ui.CheckBox)12