Search in sources :

Example 96 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project skin-composer by raeleus.

the class BigSpinner method addWidgets.

private void addWidgets() {
    buttonMinus = new Button(style.buttonMinusStyle);
    buttonPlus = new Button(style.buttonPlusStyle);
    textField = new TextField("", style.textFieldStyle) {

        @Override
        public void next(boolean up) {
            if (up) {
                if (transversalPrevious != null) {
                    getStage().setKeyboardFocus(transversalPrevious);
                    if (transversalPrevious instanceof TextField) {
                        ((TextField) transversalPrevious).selectAll();
                    }
                } else {
                    super.next(up);
                }
            } else {
                if (transversalNext != null) {
                    getStage().setKeyboardFocus(transversalNext);
                    if (transversalNext instanceof TextField) {
                        ((TextField) transversalNext).selectAll();
                    }
                } else {
                    super.next(up);
                }
            }
        }
    };
    textField.setAlignment(Align.center);
    textField.addListener(new InputListener() {

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.UP) {
                addValue();
                fire(new ChangeListener.ChangeEvent());
            } else if (keycode == Keys.DOWN) {
                subtractValue();
                fire(new ChangeListener.ChangeEvent());
            }
            return false;
        }
    });
    textField.setTextFieldFilter(new TextField.TextFieldFilter() {

        @Override
        public boolean acceptChar(TextField textField1, char c) {
            boolean returnValue = false;
            if ((c >= 48 && c <= 57) || c == 45 || (!rounding && c == 46)) {
                returnValue = true;
            }
            return returnValue;
        }
    });
    updateText();
    if (null != orientation)
        switch(orientation) {
            case HORIZONTAL:
                add(buttonMinus);
                add(textField).prefWidth(style.textFieldStyle.background.getMinWidth()).minWidth(style.textFieldStyle.background.getMinWidth()).growX();
                add(buttonPlus);
                break;
            case HORIZONTAL_FLIPPED:
                add(buttonPlus);
                add(textField).prefWidth(style.textFieldStyle.background.getMinWidth()).minWidth(style.textFieldStyle.background.getMinWidth()).growX();
                add(buttonMinus);
                break;
            case VERTICAL:
                add(buttonPlus);
                row();
                add(textField).prefWidth(style.textFieldStyle.background.getMinWidth()).minWidth(style.textFieldStyle.background.getMinWidth()).growX();
                row();
                add(buttonMinus);
                break;
            case VERTICAL_FLIPPED:
                add(buttonMinus);
                row();
                add(textField).prefWidth(style.textFieldStyle.background.getMinWidth()).minWidth(style.textFieldStyle.background.getMinWidth()).growX();
                row();
                add(buttonPlus);
                break;
            case RIGHT_STACK:
                {
                    add(textField).prefWidth(style.textFieldStyle.background.getMinWidth()).minWidth(style.textFieldStyle.background.getMinWidth()).growX();
                    VerticalGroup group = new VerticalGroup();
                    add(group);
                    group.addActor(buttonPlus);
                    group.addActor(buttonMinus);
                    break;
                }
            case LEFT_STACK:
                {
                    VerticalGroup group = new VerticalGroup();
                    add(group);
                    group.addActor(buttonPlus);
                    group.addActor(buttonMinus);
                    add(textField).prefWidth(35.0f).minWidth(35.0f).growX();
                    break;
                }
            default:
                break;
        }
    buttonMinus.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            subtractValue();
        }
    });
    buttonPlus.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            addValue();
        }
    });
    textField.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            BigSpinner parent = (BigSpinner) actor;
            String text = textField.getText();
            if (text.matches("\\-?(\\d+\\.?\\d*)|(\\.\\d+)")) {
                BigDecimal value = new BigDecimal(text);
                if (usingMinimum && value.compareTo(parent.value) < 0) {
                    value = parent.minimum;
                } else if (usingMaximum && value.compareTo(parent.value) > 0) {
                    value = parent.maximum;
                }
                parent.value = value;
            } else {
                if (usingMinimum) {
                    parent.value = parent.minimum;
                } else {
                    parent.value = BigDecimal.valueOf(0);
                }
            }
        }
    });
    textField.addListener(new FocusListener() {

        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            BigSpinner parent = (BigSpinner) textField.getParent();
            if (usingMinimum && parent.value.compareTo(parent.minimum) < 0) {
                parent.value = parent.minimum;
            }
            if (usingMaximum && parent.value.compareTo(parent.maximum) > 0) {
                parent.value = parent.maximum;
            }
            parent.updateText();
        }
    });
    final BigSpinner spinner = this;
    addCaptureListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            event.setTarget(spinner);
        }
    });
}
Also used : BigDecimal(java.math.BigDecimal) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) FocusListener(com.badlogic.gdx.scenes.scene2d.utils.FocusListener)

Example 97 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project skin-composer by raeleus.

the class CellListeners method cellAddCellListener.

public static EventListener cellAddCellListener(final DialogSceneComposerEvents events, SimActor simActor) {
    var simCell = (DialogSceneComposerModel.SimCell) simActor;
    var simTable = (SimTable) simActor.parent;
    var popTableClickListener = new PopTableClickListener(skin) {

        {
            getPopTable().key(Keys.ESCAPE, popTable::hide);
        }

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var table = new Table();
            popTable.add(table);
            var label = new Label("New Cell", skin, "scene-label-colored");
            table.add(label);
            table.row();
            var subTable = new Table();
            table.add(subTable);
            subTable.add();
            var button = new Button(skin, "scene-add-up");
            button.setDisabled(simCell.row == 0);
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell at the end of the row above.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddCellAbove();
                    popTable.hide();
                }
            });
            subTable.add();
            subTable.row();
            button = new Button(skin, "scene-add-left");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell to the left of the current one.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddCellToLeft();
                    popTable.hide();
                }
            });
            subTable.add();
            button = new Button(skin, "scene-add-right");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell to the right of the current one.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddCellToRight();
                    popTable.hide();
                }
            });
            subTable.row();
            subTable.add();
            button = new Button(skin, "scene-add-down");
            button.setDisabled(simCell.row == simTable.getRows() - 1);
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell at the end of the row below.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddCellBelow();
                    popTable.hide();
                }
            });
            subTable.add();
            table.row();
            label = new Label("New Row", skin, "scene-label-colored");
            table.add(label);
            table.row();
            subTable = new Table();
            table.add(subTable);
            button = new Button(skin, "scene-add-down-row");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new row below and adds a cell to it.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddRowBelow();
                    popTable.hide();
                }
            });
            button = new Button(skin, "scene-add-up-row");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new row above and adds a cell to it.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellAddRowAbove();
                    popTable.hide();
                }
            });
            var image = new Image(skin, "scene-menu-divider");
            popTable.add(image).space(10).growY();
            table = new Table();
            popTable.add(table);
            label = new Label("Duplicate Cell", skin, "scene-label-colored");
            table.add(label);
            table.row();
            subTable = new Table();
            table.add(subTable);
            subTable.add();
            button = new Button(skin, "scene-duplicate-up");
            subTable.add(button);
            button.setDisabled(simCell.row == 0);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Duplicates the cell to the row above.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellAbove();
                    popTable.hide();
                }
            });
            subTable.add();
            subTable.row();
            button = new Button(skin, "scene-duplicate-left");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell to the left of the current one.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellLeft();
                    popTable.hide();
                }
            });
            subTable.add();
            button = new Button(skin, "scene-duplicate-right");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new cell to the right of the current one.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellRight();
                    popTable.hide();
                }
            });
            subTable.row();
            subTable.add();
            button = new Button(skin, "scene-duplicate-down");
            subTable.add(button);
            button.setDisabled(simCell.row == simTable.getRows() - 1);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Duplicates the cell to the row below.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellBelow();
                    popTable.hide();
                }
            });
            subTable.add();
            table.row();
            label = new Label("Dup. to New Row", skin, "scene-label-colored");
            table.add(label);
            table.row();
            subTable = new Table();
            table.add(subTable);
            button = new Button(skin, "scene-duplicate-down-row");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new row below and adds a cell to it.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellNewRowBelow();
                    popTable.hide();
                }
            });
            button = new Button(skin, "scene-duplicate-up-row");
            subTable.add(button);
            button.addListener(handListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Creates a new row below and adds a cell to it.", tooltipManager, skin, "scene")));
            button.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellDuplicateCellNewRowAbove();
                    popTable.hide();
                }
            });
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : SimTable(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimTable) SimTable(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimTable) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) SimActor(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 98 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project skin-composer by raeleus.

the class CellListeners method cellColSpanListener.

public static EventListener cellColSpanListener(final DialogSceneComposerEvents events, SimActor simActor) {
    var simCell = (DialogSceneComposerModel.SimCell) simActor;
    var popTableClickListener = new PopTableClickListener(skin) {

        {
            getPopTable().key(Keys.ENTER, popTable::hide);
            getPopTable().key(Keys.NUMPAD_ENTER, popTable::hide);
            getPopTable().key(Keys.ESCAPE, popTable::hide);
        }

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var table = new Table();
            popTable.add(table);
            var label = new Label("Column Span:", skin, "scene-label-colored");
            table.add(label).colspan(2);
            table.row();
            var spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.colSpan);
            spinner.setMinimum(1);
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The column span of the cell.", tooltipManager, skin, "scene")));
            spinner.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.cellColSpan(spinner.getValueAsInt());
                }
            });
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : SimTable(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimTable) Spinner(com.ray3k.stripe.Spinner) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) SimActor(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 99 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project skin-composer by raeleus.

the class CellListeners method cellPaddingSpacingListener.

public static EventListener cellPaddingSpacingListener(final DialogSceneComposerEvents events, SimActor simActor) {
    var simCell = (DialogSceneComposerModel.SimCell) simActor;
    var popTableClickListener = new PopTableClickListener(skin) {

        {
            getPopTable().key(Keys.ENTER, popTable::hide);
            getPopTable().key(Keys.NUMPAD_ENTER, popTable::hide);
            getPopTable().key(Keys.ESCAPE, popTable::hide);
        }

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var changeListener = new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    Spinner paddingLeftSpinner = popTable.findActor("padding-left");
                    Spinner paddingRightSpinner = popTable.findActor("padding-right");
                    Spinner paddingTopSpinner = popTable.findActor("padding-top");
                    Spinner paddingBottomSpinner = popTable.findActor("padding-bottom");
                    Spinner spacingLeftSpinner = popTable.findActor("spacing-left");
                    Spinner spacingRightSpinner = popTable.findActor("spacing-right");
                    Spinner spacingTopSpinner = popTable.findActor("spacing-top");
                    Spinner spacingBottomSpinner = popTable.findActor("spacing-bottom");
                    Button paddingLinkButton = popTable.findActor("padding-link");
                    Button spacingLinkButton = popTable.findActor("spacing-link");
                    if (paddingLinkButton.isChecked() && actor instanceof Spinner) {
                        var val = (float) ((Spinner) actor).getValue();
                        paddingLeftSpinner.setValue(val);
                        paddingRightSpinner.setValue(val);
                        paddingTopSpinner.setValue(val);
                        paddingBottomSpinner.setValue(val);
                    }
                    if (spacingLinkButton.isChecked() && actor instanceof Spinner) {
                        var val = (float) ((Spinner) actor).getValue();
                        spacingLeftSpinner.setValue(val);
                        spacingRightSpinner.setValue(val);
                        spacingTopSpinner.setValue(val);
                        spacingBottomSpinner.setValue(val);
                    }
                    var paddingLeft = (float) paddingLeftSpinner.getValue();
                    var paddingRight = (float) paddingRightSpinner.getValue();
                    var paddingTop = (float) paddingTopSpinner.getValue();
                    var paddingBottom = (float) paddingBottomSpinner.getValue();
                    var spacingLeft = (float) spacingLeftSpinner.getValue();
                    var spacingRight = (float) spacingRightSpinner.getValue();
                    var spacingTop = (float) spacingTopSpinner.getValue();
                    var spacingBottom = (float) spacingBottomSpinner.getValue();
                    events.cellPaddingSpacing(paddingLeft, paddingRight, paddingTop, paddingBottom, spacingLeft, spacingRight, spacingTop, spacingBottom);
                }
            };
            var table = new Table();
            popTable.add(table);
            var label = new Label("Padding:", skin, "scene-label-colored");
            table.add(label).colspan(2);
            table.row();
            table.defaults().right().spaceRight(5);
            label = new Label("Left:", skin, "scene-label-colored");
            table.add(label);
            var spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.padLeft);
            spinner.setName("padding-left");
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The padding to the left of the cell. Stacks with other cell padding.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Right:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.padRight);
            spinner.setName("padding-right");
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The padding to the right of the cell. Stacks with other cell padding.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Top:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.padTop);
            spinner.setName("padding-top");
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The padding to the top of the cell. Stacks with other cell padding.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Bottom:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.padBottom);
            spinner.setName("padding-bottom");
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The padding to the bottom of the cell. Stacks with other cell padding.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            var button = new Button(skin, "scene-link");
            button.setName("padding-link");
            table.add(button).right().colspan(2);
            button.addListener(Main.handListener);
            button.addListener(changeListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Click to modify all padding values at once.", tooltipManager, skin, "scene")));
            var image = new Image(skin, "scene-menu-divider");
            popTable.add(image).space(10).growY();
            table = new Table();
            popTable.add(table);
            label = new Label("Spacing:", skin, "scene-label-colored");
            table.add(label).colspan(2);
            table.row();
            table.defaults().right().spaceRight(5);
            label = new Label("Left:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.spaceLeft);
            spinner.setName("spacing-left");
            spinner.setMinimum(0);
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The spacing to the left of the cell. Does not stack with other cell spacing.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Right:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.spaceRight);
            spinner.setName("spacing-right");
            spinner.setMinimum(0);
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The spacing to the right of the cell. Does not stack with other cell spacing.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Top:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.spaceTop);
            spinner.setName("spacing-top");
            spinner.setMinimum(0);
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The spacing to the top of the cell. Does not stack with other cell spacing.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            label = new Label("Bottom:", skin, "scene-label-colored");
            table.add(label);
            spinner = new Spinner(0, 1, true, Spinner.Orientation.RIGHT_STACK, skin, "scene");
            spinner.setValue(simCell.spaceBottom);
            spinner.setName("spacing-bottom");
            spinner.setMinimum(0);
            table.add(spinner);
            spinner.getTextField().addListener(ibeamListener);
            spinner.getButtonMinus().addListener(handListener);
            spinner.getButtonPlus().addListener(handListener);
            spinner.addListener(Main.fixTooltip(new TextTooltip("The spacing to the bottom of the cell. Does not stack with other cell spacing.", tooltipManager, skin, "scene")));
            spinner.addListener(changeListener);
            table.row();
            button = new Button(skin, "scene-link");
            button.setName("spacing-link");
            table.add(button).right().colspan(2);
            button.addListener(Main.handListener);
            button.addListener(changeListener);
            button.addListener(Main.fixTooltip(new TextTooltip("Click to modify all spacing values at once.", tooltipManager, skin, "scene")));
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : SimTable(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimTable) Spinner(com.ray3k.stripe.Spinner) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) SimActor(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 100 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project skin-composer by raeleus.

the class CheckBoxListeners method checkBoxNameListener.

public static EventListener checkBoxNameListener(final DialogSceneComposer dialogSceneComposer) {
    var simCheckBox = (DialogSceneComposerModel.SimCheckBox) dialogSceneComposer.simActor;
    var textField = new TextField("", skin, "scene");
    var popTableClickListener = new PopTableClickListener(skin) {

        {
            getPopTable().key(Keys.ESCAPE, popTable::hide);
        }

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            dialogSceneComposer.getStage().setKeyboardFocus(textField);
            textField.setSelection(0, textField.getText().length());
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var label = new Label("Name:", skin, "scene-label-colored");
            popTable.add(label);
            popTable.row();
            textField.setText(simCheckBox.name);
            popTable.add(textField).minWidth(TEXT_FIELD_WIDTH);
            textField.addListener(ibeamListener);
            textField.addListener(Main.fixTooltip(new TextTooltip("The name of the CheckBox to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene")));
            textField.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    dialogSceneComposer.events.checkBoxName(textField.getText());
                }
            });
            textField.addListener(new InputListener() {

                @Override
                public boolean keyDown(InputEvent event, int keycode) {
                    if (keycode == Input.Keys.ENTER || keycode == Keys.NUMPAD_ENTER) {
                        popTable.hide();
                        return true;
                    } else {
                        return false;
                    }
                }
            });
            dialogSceneComposer.getStage().setKeyboardFocus(textField);
            textField.setSelection(0, textField.getText().length());
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) SimActor(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Aggregations

ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)370 Actor (com.badlogic.gdx.scenes.scene2d.Actor)301 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)149 PopTableClickListener (com.ray3k.stripe.PopTableClickListener)129 SimActor (com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor)126 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)51 Table (com.badlogic.gdx.scenes.scene2d.ui.Table)49 Stage (com.badlogic.gdx.scenes.scene2d.Stage)48 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)44 Spinner (com.ray3k.stripe.Spinner)42 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)40 PopTable (com.ray3k.stripe.PopTable)39 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)36 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)30 Color (com.badlogic.gdx.graphics.Color)29 StyleSelectorPopTable (com.ray3k.skincomposer.dialog.scenecomposer.StyleSelectorPopTable)28 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)24 Texture (com.badlogic.gdx.graphics.Texture)23 FileHandle (com.badlogic.gdx.files.FileHandle)20 Slider (com.badlogic.gdx.scenes.scene2d.ui.Slider)19