Search in sources :

Example 66 with Table

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

the class DialogDrawables method tiledDrawableDialog.

private void tiledDrawableDialog(DrawableData drawable) {
    DialogColors dialog = new DialogColors(main, (StyleProperty) null, true, (ColorData colorData) -> {
        if (colorData != null) {
            final Spinner minWidthSpinner = new Spinner(0.0f, 1.0f, true, Spinner.Orientation.HORIZONTAL, getSkin());
            final Spinner minHeightSpinner = new Spinner(0.0f, 1.0f, true, Spinner.Orientation.HORIZONTAL, getSkin());
            TextField textField = new TextField("", getSkin()) {

                @Override
                public void next(boolean up) {
                    if (up) {
                        getStage().setKeyboardFocus(minHeightSpinner.getTextField());
                        minHeightSpinner.getTextField().selectAll();
                    } else {
                        getStage().setKeyboardFocus(minWidthSpinner.getTextField());
                        minWidthSpinner.getTextField().selectAll();
                    }
                }
            };
            Dialog tileDialog = new Dialog("New Tiled Drawable", getSkin(), "bg") {

                @Override
                protected void result(Object object) {
                    super.result(object);
                    if (object instanceof Boolean && (boolean) object == true) {
                        tiledDrawable(drawable, colorData, (float) minWidthSpinner.getValue(), (float) minHeightSpinner.getValue(), textField.getText());
                    }
                    getStage().setScrollFocus(scrollPane);
                }

                @Override
                public Dialog show(Stage stage) {
                    Dialog dialog = super.show(stage);
                    stage.setKeyboardFocus(textField);
                    return dialog;
                }
            };
            tileDialog.getTitleTable().padLeft(5.0f);
            tileDialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
            tileDialog.getButtonTable().padBottom(15.0f);
            tileDialog.getContentTable().add(new Label("Please enter a name for the TiledDrawable: ", getSkin()));
            tileDialog.button("OK", true);
            tileDialog.button("Cancel", false).key(Keys.ESCAPE, false);
            TextButton okButton = (TextButton) tileDialog.getButtonTable().getCells().first().getActor();
            okButton.setDisabled(true);
            okButton.addListener(main.getHandListener());
            tileDialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
            tileDialog.getContentTable().row();
            textField.setText(drawable.name);
            textField.selectAll();
            tileDialog.getContentTable().add(textField);
            Vector2 dimensions = Utils.imageDimensions(drawable.file);
            tileDialog.getContentTable().row();
            Table table = new Table();
            table.defaults().space(10.0f);
            tileDialog.getContentTable().add(table);
            Label label = new Label("MinWidth:", getSkin());
            table.add(label);
            minWidthSpinner.setValue(dimensions.x);
            minWidthSpinner.setMinimum(0.0f);
            table.add(minWidthSpinner).minWidth(150.0f);
            minWidthSpinner.setTransversalPrevious(textField);
            minWidthSpinner.setTransversalNext(minHeightSpinner.getTextField());
            table.row();
            label = new Label("MinHeight:", getSkin());
            table.add(label);
            minHeightSpinner.setValue(dimensions.y);
            minHeightSpinner.setMinimum(0.0f);
            table.add(minHeightSpinner).minWidth(150.0f);
            minHeightSpinner.setTransversalPrevious(minWidthSpinner.getTextField());
            minHeightSpinner.setTransversalNext(textField);
            textField.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    boolean disable = !DrawableData.validate(textField.getText());
                    if (!disable) {
                        for (DrawableData data : main.getAtlasData().getDrawables()) {
                            if (data.name.equals(textField.getText())) {
                                disable = true;
                                break;
                            }
                        }
                    }
                    okButton.setDisabled(disable);
                }
            });
            textField.setTextFieldListener(new TextField.TextFieldListener() {

                @Override
                public void keyTyped(TextField textField, char c) {
                    if (c == '\n') {
                        if (!okButton.isDisabled()) {
                            tiledDrawable(drawable, colorData, (float) minWidthSpinner.getValue(), (float) minHeightSpinner.getValue(), textField.getText());
                            tileDialog.hide();
                        }
                    }
                }
            });
            textField.addListener(main.getIbeamListener());
            tileDialog.show(getStage());
        }
    });
    dialog.setFillParent(true);
    dialog.show(getStage());
    dialog.refreshTable();
}
Also used : TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Spinner(com.ray3k.skincomposer.Spinner) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) ColorData(com.ray3k.skincomposer.data.ColorData) DrawableData(com.ray3k.skincomposer.data.DrawableData) Vector2(com.badlogic.gdx.math.Vector2) Dialog(com.badlogic.gdx.scenes.scene2d.ui.Dialog) Actor(com.badlogic.gdx.scenes.scene2d.Actor) TextField(com.badlogic.gdx.scenes.scene2d.ui.TextField) Stage(com.badlogic.gdx.scenes.scene2d.Stage) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 67 with Table

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

the class DialogSettings method populate.

public void populate() {
    Table t = getContentTable();
    getButtonTable().padBottom(15.0f);
    Label label = new Label("Settings", main.getSkin(), "title");
    t.add(label).colspan(2);
    t.row();
    TextButton textButton = new TextButton("Open temp/log directory", main.getSkin());
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            try {
                Utils.openFileExplorer(Gdx.files.local("temp/"));
            } catch (Exception e) {
                Gdx.app.error(getClass().getName(), "Error opening temp folder", e);
                main.getDialogFactory().showDialogError("Folder Error...", "Error opening temp folder.\n\nOpen log?");
            }
        }
    });
    textButton.addListener(main.getHandListener());
    t.add(textButton).colspan(2).padTop(15.0f);
    t.row();
    textButton = new TextButton("Open preferences directory", main.getSkin());
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            try {
                Utils.openFileExplorer(Gdx.files.external(".prefs/"));
            } catch (Exception e) {
                Gdx.app.error(getClass().getName(), "Error opening preferences folder", e);
                main.getDialogFactory().showDialogError("Folder Error...", "Error opening preferences folder.\n\nOpen log?");
            }
        }
    });
    textButton.addListener(main.getHandListener());
    t.add(textButton).colspan(2);
    if (main.getProjectData().areChangesSaved() && main.getProjectData().getSaveFile().exists()) {
        t.row();
        textButton = new TextButton("Open project/import directory", main.getSkin());
        textButton.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                try {
                    Utils.openFileExplorer(main.getProjectData().getSaveFile().sibling(main.getProjectData().getSaveFile().nameWithoutExtension() + "_data"));
                } catch (Exception e) {
                    Gdx.app.error(getClass().getName(), "Error opening project folder", e);
                    main.getDialogFactory().showDialogError("Folder Error...", "Error opening project folder\n\nOpen log?");
                }
            }
        });
        textButton.addListener(main.getHandListener());
        t.add(textButton).colspan(2);
    }
    t.row();
    textButton = new TextButton("Open texture packer settings file", main.getSkin());
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            try {
                Utils.openFileExplorer(Gdx.files.local("texturepacker/defaults.json"));
            } catch (Exception e) {
                Gdx.app.error(getClass().getName(), "Error opening defaults.json", e);
                main.getDialogFactory().showDialogError("File Error...", "Error opening defaults.json\n\nOpen log?");
            }
        }
    });
    textButton.addListener(main.getHandListener());
    t.add(textButton).colspan(2);
    t.row();
    label = new Label("Max Number of Undos: ", main.getSkin());
    t.add(label).right().padTop(10.0f);
    Spinner spinner3 = new Spinner(main.getProjectData().getMaxUndos(), 1.0, true, Orientation.HORIZONTAL, getSkin());
    spinner3.setMinimum(1.0);
    spinner3.setMaximum(100.0);
    spinner3.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            maxUndos = (int) spinner3.getValue();
        }
    });
    spinner3.addListener(new FocusListener() {

        @Override
        public void keyboardFocusChanged(FocusListener.FocusEvent event, Actor actor, boolean focused) {
            maxUndos = (int) spinner3.getValue();
        }
    });
    spinner3.getTextField().addListener(main.getIbeamListener());
    spinner3.getButtonMinus().addListener(main.getHandListener());
    spinner3.getButtonPlus().addListener(main.getHandListener());
    t.add(spinner3).minWidth(150.0f).left().padTop(10.0f);
    t.row();
    final ImageTextButton checkBox = new ImageTextButton("Keep resources relative?", getSkin(), "checkbox");
    checkBox.setChecked(resourcesRelative);
    checkBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            resourcesRelative = checkBox.isChecked();
        }
    });
    t.add(checkBox).padTop(10.0f).colspan(2);
    t.row();
    final ImageTextButton welcomeCheckBox = new ImageTextButton("Show welcome screen?", getSkin(), "checkbox");
    welcomeCheckBox.setChecked(allowingWelcome);
    welcomeCheckBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            allowingWelcome = welcomeCheckBox.isChecked();
        }
    });
    t.add(welcomeCheckBox).padTop(10.0f).colspan(2);
    t.row();
    label = new Label("Exported JSON Format:", getSkin());
    t.add(label).right().padTop(10.0f);
    final SelectBox<ExportFormat> exportFormatSelectBox = new SelectBox(getSkin());
    exportFormatSelectBox.setItems(ExportFormat.MINIMAL, ExportFormat.JAVASCRIPT, ExportFormat.JSON);
    exportFormatSelectBox.setSelected(exportFormat);
    exportFormatSelectBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            exportFormat = exportFormatSelectBox.getSelected();
        }
    });
    t.add(exportFormatSelectBox).left().padTop(10.0f);
    ;
    button("OK", true);
    button("Cancel", false);
    getButtonTable().getCells().first().getActor().addListener(main.getHandListener());
    getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
    key(Keys.ESCAPE, false);
}
Also used : ImageTextButton(com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton) TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) ImageTextButton(com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton) Spinner(com.ray3k.skincomposer.Spinner) SelectBox(com.badlogic.gdx.scenes.scene2d.ui.SelectBox) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) FocusListener(com.badlogic.gdx.scenes.scene2d.utils.FocusListener)

Example 68 with Table

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

the class RootTable method addPreview.

private void addPreview(Table top, InputListener scrollPaneListener) {
    Label label = new Label("Preview", getSkin(), "title");
    top.add(label);
    top.row();
    previewTable = new Table(getSkin());
    previewTable.setBackground("white");
    ScrollPane scrollPane = new ScrollPane(previewTable, getSkin());
    scrollPane.setFadeScrollBars(false);
    scrollPane.setFlickScroll(false);
    scrollPane.addListener(scrollPaneListener);
    top.add(scrollPane).grow().padTop(10.0f).padBottom(10.0f);
    refreshPreview();
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Label(com.badlogic.gdx.scenes.scene2d.ui.Label)

Example 69 with Table

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

the class RootTable method addStatusBar.

private void addStatusBar() {
    Table table = new Table();
    table.setBackground(getSkin().getDrawable("status-bar"));
    add(table).growX();
    statusLabel = new Label("", getSkin());
    statusLabel.setColor(1.0f, 1.0f, 1.0f, 0.0f);
    table.add(statusLabel).padLeft(10.0f);
    Label label = new Label("ver. " + Main.VERSION + "    RAY3K.WORDPRESS.COM    © 2018 Raymond \"Raeleus\" Buckley", getSkin());
    table.add(label).expandX().right().padRight(25.0f);
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Label(com.badlogic.gdx.scenes.scene2d.ui.Label)

Example 70 with Table

use of com.badlogic.gdx.scenes.scene2d.ui.Table in project bladecoder-adventure-engine by bladecoder.

the class Editor method create.

@Override
public void create() {
    Gdx.graphics.setWindowedMode(Math.max((int) (Gdx.graphics.getDisplayMode().width * 0.9), 1920 / 2), Math.max((int) (Gdx.graphics.getDisplayMode().height * 0.9), 1080 / 2));
    skin = new BladeSkin(Gdx.files.internal(SKIN));
    VisUI.load();
    FileChooser.setDefaultPrefsName("com.bladecoder.engineeditor.filechooser");
    /**
     * STAGE SETUP **
     */
    stage = new Stage(new ScreenViewport());
    Gdx.input.setInputProcessor(stage);
    setCtx();
    Message.init(skin);
    scnEditor = new ScnEditor(skin);
    scnEditor.setBackground("background");
    skin.getFont("default-font").getData().markupEnabled = true;
    // RIGHT PANEL
    ScenePanel scenePanel = new ScenePanel(skin);
    ActorPanel actorPanel = new ActorPanel(skin);
    Table rightPanel = new Table(skin);
    rightPanel.top().left();
    rightPanel.add(actorPanel).expand().fill().left();
    rightPanel.setBackground("background");
    SplitPane splitPaneRight = new SplitPane(scnEditor, rightPanel, false, skin);
    splitPaneRight.setSplitAmount(0.75f);
    // LEFT PANEL
    ProjectPanel projectPanel = new ProjectPanel(skin);
    Image img = new Image(Ctx.assetManager.getIcon("title"));
    img.setScaling(Scaling.none);
    img.setAlign(Align.left);
    Table leftPanel = new Table(skin);
    leftPanel.top().left().padLeft(10);
    leftPanel.add(img).expand().fill().padBottom(20).padTop(20).padLeft(0).left();
    leftPanel.row();
    leftPanel.add(new ProjectToolbar(skin)).expandX().fill().left();
    leftPanel.row();
    leftPanel.add(projectPanel).expand().fill().left();
    leftPanel.row();
    leftPanel.add(scenePanel).expand().fill().left();
    leftPanel.setBackground("background");
    SplitPane splitPaneLeft = new SplitPane(leftPanel, splitPaneRight, false, skin);
    splitPaneLeft.setFillParent(true);
    splitPaneLeft.setSplitAmount(0.25f);
    stage.addActor(splitPaneLeft);
    // LOAD LAST OPEN PROJECT
    String lastProject = Ctx.project.getEditorConfig().getProperty(Project.LAST_PROJECT_PROP, "");
    if (!lastProject.isEmpty() && new File(lastProject).exists()) {
        try {
            EditorLogger.debug("Loading last project: " + lastProject);
            Ctx.project.loadProject(new File(lastProject));
            if (!Ctx.project.checkVersion()) {
                new Dialog("Update Engine", skin) {

                    protected void result(Object object) {
                        if (((Boolean) object).booleanValue()) {
                            try {
                                Ctx.project.updateEngineVersion();
                                Message.showMsg(getStage(), "Project successfully updated.", 3);
                            } catch (IOException e1) {
                                String msg = "Something went wrong while updating the engine.\n\n" + e1.getClass().getSimpleName() + " - " + e1.getMessage();
                                Message.showMsgDialog(getStage(), "Error", msg);
                                EditorLogger.error(msg, e1);
                            }
                        }
                    }
                }.text("Your game uses an old (" + Ctx.project.getProjectBladeEngineVersion() + ") Engine version. Do you want to update the engine?").button("Yes", true).button("No", false).key(Keys.ENTER, true).key(Keys.ESCAPE, false).show(stage);
            }
        } catch (Exception e) {
            EditorLogger.error("Error loading last project.", e);
            Ctx.project.closeProject();
        }
    }
    stage.setScrollFocus(scnEditor.getScnWidget());
    stage.setKeyboardFocus(scnEditor.getScnWidget());
    // TooltipManager.getInstance().instant();
    TooltipManager.getInstance().initialTime = 0.2f;
    TooltipManager.getInstance().hideAll();
    TooltipManager.getInstance().subsequentTime = 0.2f;
}
Also used : ScenePanel(com.bladecoder.engineeditor.ui.ScenePanel) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) ScnEditor(com.bladecoder.engineeditor.scneditor.ScnEditor) ScreenViewport(com.badlogic.gdx.utils.viewport.ScreenViewport) SplitPane(com.badlogic.gdx.scenes.scene2d.ui.SplitPane) IOException(java.io.IOException) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) BladeSkin(com.bladecoder.engine.ui.BladeSkin) IOException(java.io.IOException) Dialog(com.badlogic.gdx.scenes.scene2d.ui.Dialog) Stage(com.badlogic.gdx.scenes.scene2d.Stage) ActorPanel(com.bladecoder.engineeditor.ui.ActorPanel) ProjectPanel(com.bladecoder.engineeditor.ui.ProjectPanel) File(java.io.File) ProjectToolbar(com.bladecoder.engineeditor.ui.ProjectToolbar)

Aggregations

Table (com.badlogic.gdx.scenes.scene2d.ui.Table)85 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)51 Stage (com.badlogic.gdx.scenes.scene2d.Stage)48 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)36 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)35 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)31 Actor (com.badlogic.gdx.scenes.scene2d.Actor)30 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)25 ScrollPane (com.badlogic.gdx.scenes.scene2d.ui.ScrollPane)21 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)18 Texture (com.badlogic.gdx.graphics.Texture)17 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)16 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)15 TextField (com.badlogic.gdx.scenes.scene2d.ui.TextField)14 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)13 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)12 ImageButton (com.badlogic.gdx.scenes.scene2d.ui.ImageButton)11 ImageTextButton (com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton)11 CheckBox (com.badlogic.gdx.scenes.scene2d.ui.CheckBox)9 Dialog (com.badlogic.gdx.scenes.scene2d.ui.Dialog)8