Search in sources :

Example 1 with ResizeWidget

use of com.ray3k.stripe.ResizeWidget in project skin-composer by raeleus.

the class Dialog9Patch method populate.

private void populate() {
    var root = getContentTable();
    root.clear();
    root.pad(10);
    var horizontalGroup = new HorizontalGroup();
    horizontalGroup.space(5.0f);
    horizontalGroup.wrap();
    horizontalGroup.wrapSpace(5.0f);
    horizontalGroup.center();
    root.add(horizontalGroup).growX();
    var textButton = new TextButton("Load Image", getSkin());
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            showLoadImageDialog();
        }
    });
    textButton = new TextButton("Reset", getSkin());
    textButton.setName("reset-button");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinnerItem = (Spinner) findActor("spinner-padding-left");
            spinnerItem.setValue(ninePatchLeftOriginal);
            widget.setPaddingLeft(ninePatchLeftOriginal);
            ninePatchLeft = ninePatchLeftOriginal;
            spinnerItem = (Spinner) findActor("spinner-padding-right");
            spinnerItem.setValue(ninePatchRightOriginal);
            widget.setPaddingRight(ninePatchRightOriginal);
            ninePatchRight = ninePatchRightOriginal;
            spinnerItem = (Spinner) findActor("spinner-padding-bottom");
            spinnerItem.setValue(ninePatchBottomOriginal);
            widget.setPaddingBottom(ninePatchBottomOriginal);
            ninePatchBottom = ninePatchBottomOriginal;
            spinnerItem = (Spinner) findActor("spinner-padding-top");
            spinnerItem.setValue(ninePatchTopOriginal);
            widget.setPaddingTop(ninePatchTopOriginal);
            ninePatchTop = ninePatchTopOriginal;
            spinnerItem = (Spinner) findActor("spinner-content-left");
            spinnerItem.setValue(ninePatchContentLeftOriginal);
            widget.setContentLeft(ninePatchContentLeftOriginal);
            ninePatchContentLeft = ninePatchContentLeftOriginal;
            spinnerItem = (Spinner) findActor("spinner-content-right");
            spinnerItem.setValue(ninePatchContentRightOriginal);
            widget.setContentRight(ninePatchContentRightOriginal);
            ninePatchContentRight = ninePatchContentRightOriginal;
            spinnerItem = (Spinner) findActor("spinner-content-bottom");
            spinnerItem.setValue(ninePatchContentBottomOriginal);
            widget.setContentBottom(ninePatchContentBottomOriginal);
            ninePatchContentBottom = ninePatchContentBottomOriginal;
            spinnerItem = (Spinner) findActor("spinner-content-top");
            spinnerItem.setValue(ninePatchContentTopOriginal);
            widget.setContentTop(ninePatchContentTopOriginal);
            ninePatchContentTop = ninePatchContentTopOriginal;
            updatePreviewSplits();
        }
    });
    textButton = new TextButton("Auto Patches", getSkin());
    textButton.setName("auto-button");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            autoPatches();
        }
    });
    textButton = new TextButton("Load Patches From File", getSkin());
    textButton.setName("load-patches-button");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            showLoadPatchesDialog();
        }
    });
    textButton = new TextButton("Batch Apply to File(s)", getSkin());
    textButton.setName("batch-button");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            showBatchApplyDialog();
        }
    });
    root.row();
    var image = new Image(getSkin(), "welcome-separator");
    root.add(image).growX().space(15.0f);
    image.setScaling(Scaling.stretch);
    var top = new Table();
    top.setTouchable(Touchable.enabled);
    var bottom = new Table();
    bottom.setBackground(getSkin().getDrawable("white"));
    bottom.setTouchable(Touchable.enabled);
    root.row();
    var splitPane = new SplitPane(top, bottom, true, getSkin());
    splitPane.setName("split");
    root.add(splitPane).grow();
    splitPane.addListener(verticalResizeListener);
    var table = new Table();
    top.add(table).growX();
    var spinner = new Spinner(0, 1, true, Spinner.Orientation.HORIZONTAL, getSkin());
    spinner.setName("spinner-padding-left");
    spinner.setValue(ninePatchLeft);
    spinner.setMinimum(0);
    table.add(spinner).expandX().left().padLeft(50.0f);
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchLeft = spinner.getValueAsInt();
            widget.setPaddingLeft(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(false);
            var otherSpinner = (Spinner) findActor("spinner-padding-right");
            otherSpinner.setMaximum(widget.getRegionWidth() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    var label = new Label("STRETCH REGION", getSkin());
    table.add(label);
    spinner = new Spinner(0, 1, true, Spinner.Orientation.HORIZONTAL_FLIPPED, getSkin(), "horizontal-reversed");
    spinner.setName("spinner-padding-right");
    spinner.setValue(ninePatchRight);
    spinner.setMinimum(0);
    table.add(spinner).expandX().right().padRight(50.0f);
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchRight = spinner.getValueAsInt();
            widget.setPaddingRight(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(false);
            var otherSpinner = (Spinner) findActor("spinner-padding-left");
            otherSpinner.setMaximum(widget.getRegionWidth() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    top.row();
    table = new Table();
    top.add(table).grow();
    var subTable = new Table();
    table.add(subTable).growY();
    spinner = new Spinner(0, 1, true, Spinner.Orientation.VERTICAL_FLIPPED, getSkin(), "vertical-reversed");
    spinner.setName("spinner-padding-top");
    spinner.setValue(ninePatchTop);
    spinner.setMinimum(0);
    subTable.add(spinner).expandY().top();
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchTop = spinner.getValueAsInt();
            widget.setPaddingTop(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(false);
            var otherSpinner = (Spinner) findActor("spinner-padding-bottom");
            otherSpinner.setMaximum(widget.getRegionHeight() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    subTable.row();
    var group = new Table();
    group.setTransform(true);
    subTable.add(group).size(0).minHeight(100.0f);
    label = new Label("STRETCH REGION", getSkin());
    group.add(label);
    group.setOriginY(50.0f);
    group.rotateBy(90.0f);
    subTable.row();
    spinner = new Spinner(0, 1, true, Spinner.Orientation.VERTICAL, getSkin(), "vertical");
    spinner.setName("spinner-padding-bottom");
    spinner.setValue(ninePatchBottom);
    spinner.setMinimum(0);
    subTable.add(spinner).expandY().bottom();
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchBottom = spinner.getValueAsInt();
            widget.setPaddingBottom(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(false);
            var otherSpinner = (Spinner) findActor("spinner-padding-top");
            otherSpinner.setMaximum(widget.getRegionHeight() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    var ninePatchWidget = new NinePatchWidget(getSkin());
    ninePatchWidget.setName("ninePatchWidget");
    ninePatchWidget.setTouchable(Touchable.enabled);
    table.add(ninePatchWidget).grow().pad(5.0f);
    ninePatchWidget.getPaddingButton().addListener(handListener);
    ninePatchWidget.addListener((NinePatchWidget.HandleType handle, int value) -> {
        switch(handle) {
            case PADDING_LEFT:
                var spinnerItem = (Spinner) findActor("spinner-padding-left");
                spinnerItem.setValue(value);
                ninePatchLeft = value;
                var otherSpinner = (Spinner) findActor("spinner-padding-right");
                otherSpinner.setMaximum(ninePatchWidget.getRegionWidth() - value);
                break;
            case PADDING_RIGHT:
                spinnerItem = (Spinner) findActor("spinner-padding-right");
                spinnerItem.setValue(value);
                ninePatchRight = value;
                otherSpinner = (Spinner) findActor("spinner-padding-left");
                otherSpinner.setMaximum(ninePatchWidget.getRegionWidth() - value);
                break;
            case PADDING_BOTTOM:
                spinnerItem = (Spinner) findActor("spinner-padding-bottom");
                spinnerItem.setValue(value);
                ninePatchBottom = value;
                otherSpinner = (Spinner) findActor("spinner-padding-top");
                otherSpinner.setMaximum(ninePatchWidget.getRegionHeight() - value);
                break;
            case PADDING_TOP:
                spinnerItem = (Spinner) findActor("spinner-padding-top");
                spinnerItem.setValue(value);
                ninePatchTop = value;
                otherSpinner = (Spinner) findActor("spinner-padding-bottom");
                otherSpinner.setMaximum(ninePatchWidget.getRegionHeight() - value);
                break;
            case CONTENT_LEFT:
                spinnerItem = (Spinner) findActor("spinner-content-left");
                spinnerItem.setValue(value);
                ninePatchContentLeft = value;
                otherSpinner = (Spinner) findActor("spinner-content-right");
                otherSpinner.setMaximum(ninePatchWidget.getRegionWidth() - value);
                break;
            case CONTENT_RIGHT:
                spinnerItem = (Spinner) findActor("spinner-content-right");
                spinnerItem.setValue(value);
                ninePatchContentRight = value;
                otherSpinner = (Spinner) findActor("spinner-content-left");
                otherSpinner.setMaximum(ninePatchWidget.getRegionWidth() - value);
                break;
            case CONTENT_BOTTOM:
                spinnerItem = (Spinner) findActor("spinner-content-bottom");
                spinnerItem.setValue(value);
                ninePatchContentBottom = value;
                otherSpinner = (Spinner) findActor("spinner-content-top");
                otherSpinner.setMaximum(ninePatchWidget.getRegionHeight() - value);
                break;
            case CONTENT_TOP:
                spinnerItem = (Spinner) findActor("spinner-content-top");
                spinnerItem.setValue(value);
                ninePatchContentTop = value;
                otherSpinner = (Spinner) findActor("spinner-content-bottom");
                otherSpinner.setMaximum(ninePatchWidget.getRegionHeight() - value);
                break;
        }
        updatePreviewSplits();
    });
    var inputListener = new InputListener() {

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            getStage().setScrollFocus(ninePatchWidget);
        }

        @Override
        public boolean scrolled(InputEvent event, float x, float y, float amountX, float amountY) {
            var slider = (Slider) findActor("top-zoom");
            slider.setValue(slider.getValue() - amountY * 3);
            return true;
        }
    };
    ninePatchWidget.addCaptureListener(inputListener);
    subTable = new Table();
    table.add(subTable).growY();
    spinner = new Spinner(0, 1, true, Spinner.Orientation.VERTICAL_FLIPPED, getSkin(), "vertical-reversed");
    spinner.setName("spinner-content-top");
    spinner.setValue(ninePatchContentTop);
    spinner.setMinimum(0);
    subTable.add(spinner).expandY().top();
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchContentTop = spinner.getValueAsInt();
            widget.setContentTop(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(true);
            var otherSpinner = (Spinner) findActor("spinner-content-bottom");
            otherSpinner.setMaximum(widget.getRegionHeight() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    subTable.row();
    group = new Table();
    group.setTransform(true);
    subTable.add(group).size(0).minHeight(100.0f);
    label = new Label("CONTENT", getSkin());
    group.add(label);
    group.setOriginY(50.0f);
    group.rotateBy(-90);
    subTable.row();
    spinner = new Spinner(0, 1, true, Spinner.Orientation.VERTICAL, getSkin(), "vertical");
    spinner.setName("spinner-content-bottom");
    spinner.setValue(ninePatchContentBottom);
    spinner.setMinimum(0);
    subTable.add(spinner).expandY().bottom();
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchContentBottom = spinner.getValueAsInt();
            widget.setContentBottom(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(true);
            var otherSpinner = (Spinner) findActor("spinner-content-top");
            otherSpinner.setMaximum(widget.getRegionHeight() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    top.row().padBottom(15.0f);
    table = new Table();
    top.add(table).growX();
    spinner = new Spinner(0, 1, true, Spinner.Orientation.HORIZONTAL, getSkin());
    spinner.setName("spinner-content-left");
    spinner.setValue(ninePatchContentLeft);
    spinner.setMinimum(0);
    table.add(spinner).expandX().left().padLeft(50.0f);
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchContentLeft = spinner.getValueAsInt();
            widget.setContentLeft(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(true);
            var otherSpinner = (Spinner) findActor("spinner-content-right");
            otherSpinner.setMaximum(widget.getRegionWidth() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    label = new Label("CONTENT", getSkin());
    table.add(label);
    spinner = new Spinner(0, 1, true, Spinner.Orientation.HORIZONTAL_FLIPPED, getSkin(), "horizontal-reversed");
    spinner.setName("spinner-content-right");
    spinner.setValue(ninePatchContentRight);
    spinner.setMinimum(0);
    table.add(spinner).expandX().right().padRight(50.0f);
    spinner.getButtonMinus().addListener(handListener);
    spinner.getButtonPlus().addListener(handListener);
    spinner.getTextField().addListener(ibeamListener);
    spinner.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            var spinner = (Spinner) actor;
            ninePatchContentRight = spinner.getValueAsInt();
            widget.setContentRight(spinner.getValueAsInt());
            widget.getPaddingButton().setChecked(true);
            var otherSpinner = (Spinner) findActor("spinner-content-left");
            otherSpinner.setMaximum(widget.getRegionWidth() - spinner.getValueAsInt());
            updatePreviewSplits();
        }
    });
    top.row();
    table = new Table();
    table.pad(5);
    top.add(table).growX();
    table.defaults().space(5);
    var imageButton = new ImageButton(getSkin(), "grid-light");
    imageButton.setName("grid-light");
    imageButton.setProgrammaticChangeEvents(false);
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            if (((ImageButton) actor).isChecked()) {
                widget.setGridType(NinePatchWidget.GridType.LIGHT);
            } else {
                widget.setGridType(NinePatchWidget.GridType.NONE);
            }
            ((ImageButton) findActor("grid-dark")).setChecked(false);
        }
    });
    imageButton = new ImageButton(getSkin(), "grid-dark");
    imageButton.setName("grid-dark");
    imageButton.setProgrammaticChangeEvents(false);
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var widget = (NinePatchWidget) findActor("ninePatchWidget");
            if (((ImageButton) actor).isChecked()) {
                widget.setGridType(NinePatchWidget.GridType.DARK);
            } else {
                widget.setGridType(NinePatchWidget.GridType.NONE);
            }
            ((ImageButton) findActor("grid-light")).setChecked(false);
        }
    });
    imageButton = new ImageButton(getSkin(), "resize");
    table.add(imageButton).expandX().right();
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            zoomAndRecenter();
        }
    });
    var slider = new Slider(1, 50, 1, false, getSkin(), "zoom-horizontal");
    slider.setName("top-zoom");
    table.add(slider);
    slider.addListener(handListener);
    slider.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var slider = (Slider) findActor("top-zoom");
            ninePatchWidget.setZoom((int) slider.getValue());
        }
    });
    label = new Label("Preview", getSkin(), "title");
    bottom.add(label);
    bottom.row();
    var resizer = new ResizeWidget(null, getSkin());
    resizer.setTouchable(Touchable.enabled);
    resizer.setName("resizer");
    table = new Table();
    resizer.setActor(table);
    if (previewZoomed == null) {
        resizer.setMinWidth(100);
        resizer.setMinHeight(100);
    } else {
        resizer.setMinWidth(previewZoomed.getTotalWidth());
        resizer.setMinHeight(previewZoomed.getTotalHeight());
        table.setBackground(new NinePatchDrawable(previewZoomed));
    }
    resizer.setResizingFromCenter(true);
    resizer.getBottomLeftHandle().addListener(neResizeListener);
    resizer.getBottomRightHandle().addListener(nwResizeListener);
    resizer.getTopLeftHandle().addListener(nwResizeListener);
    resizer.getTopRightHandle().addListener(neResizeListener);
    resizer.getBottomHandle().addListener(verticalResizeListener);
    resizer.getTopHandle().addListener(verticalResizeListener);
    resizer.getLeftHandle().addListener(horizontalResizeListener);
    resizer.getRightHandle().addListener(horizontalResizeListener);
    resizer.addListener(new InputListener() {

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            getStage().setScrollFocus(resizer);
        }

        @Override
        public boolean scrolled(InputEvent event, float x, float y, float amountX, float amountY) {
            var slider = (Slider) findActor("bottom-zoom");
            slider.setValue(slider.getValue() - amountY * 5);
            return true;
        }
    });
    var scrollPane = new ScrollPane(resizer, getSkin());
    scrollPane.setName("scroll");
    scrollPane.setFlickScroll(false);
    scrollPane.setFadeScrollBars(false);
    bottom.add(scrollPane).grow();
    bottom.row();
    table = new Table();
    table.padLeft(5);
    table.padRight(5);
    bottom.add(table).growX();
    table.defaults().space(5);
    label = new Label("Content:", getSkin());
    table.add(label);
    var selectBox = new SelectBox<String>(getSkin());
    selectBox.setName("contentSelectBox");
    table.add(selectBox);
    selectBox.setItems("None", "Text", "Color", "Drawable");
    selectBox.addListener(handListener);
    selectBox.getList().addListener(handListener);
    selectBox.getList().addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            selectBox.fire(new ChangeListener.ChangeEvent());
        }
    });
    selectBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            switch(selectBox.getSelected()) {
                case "None":
                    updatePreviewContentActor(null);
                    break;
                case "Text":
                    dialogFactory.showInputDialog("Text Content", "Enter the text to be displayed inside of the preview:", "Lorem Ipsum", new DialogFactory.InputDialogListener() {

                        @Override
                        public void confirmed(String text) {
                            dialogFactory.showDialogColors(new StyleProperty(), (colorData, pressedCancel) -> {
                                if (colorData == null) {
                                    selectBox.setSelected("None");
                                } else {
                                    var label = new Label(text, getSkin(), "white");
                                    label.setAlignment(Align.center);
                                    label.setColor(colorData.color);
                                    label.setUserObject("Text");
                                    updatePreviewContentActor(label);
                                }
                            }, null);
                        }

                        @Override
                        public void cancelled() {
                            selectBox.setSelected("None");
                        }
                    });
                    break;
                case "Color":
                    dialogFactory.showDialogColors(new StyleProperty(), (colorData, pressedCancel) -> {
                        if (colorData == null) {
                            selectBox.setSelected("None");
                        } else {
                            var image = new Image(getSkin(), "white");
                            image.setScaling(Scaling.stretch);
                            image.setColor(colorData.color);
                            image.setUserObject("Color");
                            updatePreviewContentActor(image);
                        }
                    }, null);
                    break;
                case "Drawable":
                    var dialog = dialogFactory.showDialogDrawables(true, new DialogDrawables.DialogDrawablesListener() {

                        @Override
                        public void confirmed(DrawableData drawable, DialogDrawables dialog) {
                            var image = new Image(drawablePairs.get(drawable));
                            image.setScaling(Scaling.none);
                            image.setUserObject("Drawable");
                            updatePreviewContentActor(image);
                        }

                        @Override
                        public void emptied(DialogDrawables dialog) {
                            selectBox.setSelected("None");
                        }

                        @Override
                        public void cancelled(DialogDrawables dialog) {
                            selectBox.setSelected("None");
                        }
                    }, null);
                    dialog.setShowing9patchButton(false);
                    break;
            }
        }
    });
    imageButton = new ImageButton(getSkin(), "color");
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            dialogFactory.showDialogColorPicker(previewBGcolor, new DialogColorPicker.ColorListener() {

                @Override
                public void selected(Color color) {
                    if (color != null) {
                        previewBGcolor.set(color);
                        bottom.setColor(color);
                    }
                }
            });
        }
    });
    var toolTip = new TextTooltip("Background color for preview pane.", tooltipManager, getSkin());
    imageButton.addListener(toolTip);
    slider = new Slider(1.0f, 100.0f, 1.0f, false, getSkin(), "zoom-horizontal");
    slider.setName("bottom-zoom");
    slider.setValue(1.0f);
    table.add(slider).expandX().right();
    slider.addListener(handListener);
    slider.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var slider = (Slider) findActor("bottom-zoom");
            var zoom = slider.getValue();
            if (previewZoomed != null) {
                previewZoomed.setLeftWidth(preview.getLeftWidth() * zoom);
                previewZoomed.setRightWidth(preview.getRightWidth() * zoom);
                previewZoomed.setTopHeight(preview.getTopHeight() * zoom);
                previewZoomed.setBottomHeight(preview.getBottomHeight() * zoom);
                if (preview.getPadLeft() != -1) {
                    previewZoomed.setPadLeft(preview.getPadLeft() * zoom);
                }
                if (preview.getPadRight() != -1) {
                    previewZoomed.setPadRight(preview.getPadRight() * zoom);
                }
                if (preview.getPadTop() != -1) {
                    previewZoomed.setPadTop(preview.getPadTop() * zoom);
                }
                if (preview.getPadBottom() != -1) {
                    previewZoomed.setPadBottom(preview.getPadBottom() * zoom);
                }
                var table = new Table();
                resizer.setActor(table);
                resizer.setMinWidth(previewZoomed.getTotalWidth() + previewZoomed.getPadLeft() + preview.getPadRight());
                resizer.setMinHeight(previewZoomed.getTotalHeight() + previewZoomed.getPadTop() + preview.getPadBottom());
                table.setBackground(new NinePatchDrawable(previewZoomed));
                updatePreviewContentActor(previewContentActor);
                if (previewContentActor != null) {
                    var selectBox = (SelectBox<String>) findActor("contentSelectBox");
                    var listeners = new Array<EventListener>(selectBox.getListeners());
                    for (var listener : listeners) {
                        if (listener instanceof ChangeListener) {
                            selectBox.removeListener(listener);
                        }
                    }
                    selectBox.setSelected((String) previewContentActor.getUserObject());
                    for (var listener : listeners) {
                        if (listener instanceof ChangeListener) {
                            selectBox.addListener(listener);
                        }
                    }
                }
            }
        }
    });
    getButtonTable().clearChildren();
    getButtonTable().pad(10);
    getButtonTable().defaults().space(10).minWidth(100);
    textButton = new TextButton("Save", getSkin());
    textButton.setName("save-button");
    getButtonTable().add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            dialogFactory.showDialogLoading(() -> {
                String defaultPath = loadedFile.path();
                if (!defaultPath.toLowerCase(Locale.ROOT).endsWith(".9.png")) {
                    defaultPath = loadedFile.sibling(loadedFile.nameWithoutExtension() + ".9.png").path();
                }
                String[] filterPatterns = { "*.9.png" };
                File file = desktopWorker.saveDialog("Save nine patch file as...", defaultPath, filterPatterns, "Nine Patch files");
                if (file != null) {
                    Gdx.app.postRunnable(() -> {
                        FileHandle fileHandle = new FileHandle(file);
                        if (fileHandle.extension() == null || !fileHandle.name().toLowerCase(Locale.ROOT).endsWith(".9.png")) {
                            fileHandle = fileHandle.sibling(fileHandle.nameWithoutExtension() + ".9.png");
                        }
                        saveNinePatch(fileHandle);
                        projectData.setLastDrawablePath(fileHandle.parent().path() + "/");
                        hide();
                        for (var listener : listeners) {
                            listener.fileSaved(fileHandle);
                        }
                    });
                }
            });
        }
    });
    textButton = new TextButton("Cancel", getSkin());
    button(textButton, false);
    textButton.addListener(handListener);
    key(Keys.ESCAPE, false);
    updateDisabled();
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) MathUtils(com.badlogic.gdx.math.MathUtils) Array(com.badlogic.gdx.utils.Array) Scaling(com.badlogic.gdx.utils.Scaling) Utils(com.ray3k.skincomposer.utils.Utils) Spinner(com.ray3k.stripe.Spinner) Gdx(com.badlogic.gdx.Gdx) Texture(com.badlogic.gdx.graphics.Texture) ResizeWidget(com.ray3k.stripe.ResizeWidget) Locale(java.util.Locale) NinePatchWidget(com.ray3k.skincomposer.NinePatchWidget) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) PixmapIO(com.badlogic.gdx.graphics.PixmapIO) com.badlogic.gdx.scenes.scene2d(com.badlogic.gdx.scenes.scene2d) NinePatch(com.badlogic.gdx.graphics.g2d.NinePatch) DrawableData(com.ray3k.skincomposer.data.DrawableData) com.badlogic.gdx.scenes.scene2d.ui(com.badlogic.gdx.scenes.scene2d.ui) Pixmap(com.badlogic.gdx.graphics.Pixmap) FilesDroppedListener(com.ray3k.skincomposer.FilesDroppedListener) Align(com.badlogic.gdx.utils.Align) Color(com.badlogic.gdx.graphics.Color) com.badlogic.gdx.scenes.scene2d.utils(com.badlogic.gdx.scenes.scene2d.utils) File(java.io.File) Keys(com.badlogic.gdx.Input.Keys) ResizeFourArrowListener(com.ray3k.skincomposer.ResizeFourArrowListener) Main(com.ray3k.skincomposer.Main) ObjectMap(com.badlogic.gdx.utils.ObjectMap) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) Spinner(com.ray3k.stripe.Spinner) FileHandle(com.badlogic.gdx.files.FileHandle) DrawableData(com.ray3k.skincomposer.data.DrawableData) Color(com.badlogic.gdx.graphics.Color) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) NinePatchWidget(com.ray3k.skincomposer.NinePatchWidget) ResizeWidget(com.ray3k.stripe.ResizeWidget) File(java.io.File)

Example 2 with ResizeWidget

use of com.ray3k.stripe.ResizeWidget in project skin-composer by raeleus.

the class Dialog9Patch method updatePreviewSplits.

private void updatePreviewSplits() {
    if (preview != null) {
        preview = new NinePatch(preview.getTexture(), ninePatchLeft, ninePatchRight, ninePatchTop, ninePatchBottom);
        preview.setPadding(ninePatchContentLeft, ninePatchContentRight, ninePatchContentTop, ninePatchContentBottom);
        previewZoomed = new NinePatch(preview);
        var resizer = (ResizeWidget) findActor("resizer");
        var table = (Table) resizer.getActor();
        table.setBackground(new NinePatchDrawable(previewZoomed));
    }
}
Also used : NinePatch(com.badlogic.gdx.graphics.g2d.NinePatch) ResizeWidget(com.ray3k.stripe.ResizeWidget)

Example 3 with ResizeWidget

use of com.ray3k.stripe.ResizeWidget in project skin-composer by raeleus.

the class DialogTenPatch method populate.

private void populate() {
    setSize(stage.getWidth(), stage.getHeight());
    var root = getContentTable();
    root.pad(10);
    root.clear();
    var top = new Table();
    top.setTouchable(Touchable.enabled);
    var bottom = new Table();
    bottom.setBackground(skin.getDrawable("white"));
    bottom.setTouchable(Touchable.enabled);
    var splitPane = new SplitPane(top, bottom, true, skin);
    splitPane.setSplitAmount(splitValue);
    root.add(splitPane).grow();
    splitPane.addListener(verticalResizeArrowListener);
    splitPane.addListener(new DragListener() {

        {
            setTapSquareSize(0f);
        }

        @Override
        public void drag(InputEvent event, float x, float y, int pointer) {
            super.drag(event, x, y, pointer);
            if (event.getListenerActor().equals(event.getTarget())) {
                tenPatchWidget.center();
            }
            splitValue = splitPane.getSplitAmount();
        }
    });
    var label = new Label("Ten Patch Editor", skin, "title-no-line");
    top.add(label);
    top.row();
    var table = new Table();
    top.add(table).growX().space(5);
    table.defaults().space(5);
    label = new Label("Name:", skin, "white");
    label.setName("nameLabel");
    table.add(label);
    var textField = new TextField(drawableData.name, skin);
    textField.setName("nameField");
    table.add(textField).growX();
    textField.addListener(ibeamListener);
    textField.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            drawableData.name = textField.getText();
            validateName();
        }
    });
    table.defaults().uniform().fill();
    var textButton = new TextButton("Save to File", skin);
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Runnable runnable = () -> {
                String[] filterPatterns = null;
                if (!Utils.isMac()) {
                    filterPatterns = new String[] { "*.png" };
                }
                var file = desktopWorker.saveDialog("Save as 9patch...", projectData.getLastDrawablePath(), filterPatterns, "Image files");
                if (file != null) {
                    Gdx.app.postRunnable(() -> {
                        var fileHandle = new FileHandle(file);
                        if (!fileHandle.name().toLowerCase(Locale.ROOT).endsWith(".9.png")) {
                            fileHandle = fileHandle.sibling(fileHandle.nameWithoutExtension() + ".9.png");
                        }
                        saveToImageFile(fileHandle);
                    });
                }
            };
            dialogFactory.showDialogLoading(runnable);
        }
    });
    textButton = new TextButton("Clear", skin);
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            drawableData.tenPatchData.clear();
        }
    });
    textButton = new TextButton("More info...", skin);
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            showAboutDialog();
        }
    });
    top.row();
    tenPatchWidget = new TenPatchWidget(skin);
    tenPatchWidget.setTenPatchData(drawableData.tenPatchData);
    tenPatchWidget.setTextureRegion(loadTextureFile(drawableData.file));
    top.add(tenPatchWidget).grow();
    tenPatchWidget.getStretchSwitchButton().addListener(handListener);
    tenPatchWidget.getModeSwitchButton().addListener(handListener);
    tenPatchWidget.addListener(new InputListener() {

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            getStage().setScrollFocus(tenPatchWidget);
        }

        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            zoomToMouse = false;
            if (pointer == -1) {
                if (getStage() != null) {
                    getStage().setScrollFocus(null);
                }
            }
        }

        @Override
        public boolean scrolled(InputEvent event, float x, float y, float amountX, float amountY) {
            zoomToMouse = true;
            Slider slider = findActor("ten-patch-zoom");
            slider.setValue(slider.getValue() - SCROLL_AMOUNT * amountY);
            return true;
        }
    });
    tenPatchWidget.addListener(new TenPatchWidget.TenPatchListener() {

        @Override
        public void valueChanged(TenPatchData tenPatchData) {
            updatePreview();
        }
    });
    top.row();
    table = new Table();
    table.pad(5);
    top.add(table).growX();
    table.defaults().space(5);
    var imageButton = new ImageButton(skin, "grid-light");
    imageButton.setName("grid-light");
    imageButton.setProgrammaticChangeEvents(false);
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var imageButton = (ImageButton) actor;
            if (imageButton.isChecked()) {
                tenPatchWidget.setGridMode(TenPatchWidget.GridMode.LIGHT);
            } else {
                tenPatchWidget.setGridMode(TenPatchWidget.GridMode.NONE);
            }
            imageButton = findActor("grid-dark");
            imageButton.setChecked(false);
        }
    });
    imageButton = new ImageButton(skin, "grid-dark");
    imageButton.setName("grid-dark");
    imageButton.setProgrammaticChangeEvents(false);
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var imageButton = (ImageButton) actor;
            if (imageButton.isChecked()) {
                tenPatchWidget.setGridMode(TenPatchWidget.GridMode.DARK);
            } else {
                tenPatchWidget.setGridMode(TenPatchWidget.GridMode.NONE);
            }
            imageButton = findActor("grid-light");
            imageButton.setChecked(false);
        }
    });
    imageButton = new ImageButton(skin, "resize");
    table.add(imageButton).expandX().right();
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            tenPatchWidget.zoomAndCenter();
            Slider slider = findActor("ten-patch-zoom");
            slider.setValue(tenPatchWidget.getZoomScale());
        }
    });
    var slider = new Slider(1, 100, 1f, false, skin, "zoom-horizontal");
    slider.setName("ten-patch-zoom");
    slider.setValue(1);
    table.add(slider);
    slider.addListener(handListener);
    slider.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            var slider = (Slider) actor;
            if (!zoomToMouse) {
                tenPatchWidget.setZoomScale(slider.getValue());
            } else {
                temp.set(Gdx.input.getX(), Gdx.input.getY());
                tenPatchWidget.screenToLocalCoordinates(temp);
                tenPatchWidget.setZoomScale(temp.x, temp.y, slider.getValue());
            }
        }
    });
    top.row();
    table = new Table();
    top.add(table).growX();
    table.defaults().space(3);
    table.pad(5);
    var imageTextButton = new ImageTextButton("Animation...", skin, "ten-patch-animation");
    table.add(imageTextButton);
    imageTextButton.addListener(handListener);
    imageTextButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var dialog = new DialogTenPatchAnimation(drawableData);
            dialog.addListener(new DialogTenPatchAnimation.DialogTenPatchAnimationListener() {

                @Override
                public void animationUpdated(DialogTenPatchAnimation.DialogTenPatchAnimationEvent event) {
                    updatePreview();
                }
            });
            dialog.show(getStage());
        }
    });
    textButton = new TextButton("Load Patches", skin);
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Runnable runnable = () -> {
                String[] filterPatterns = null;
                if (!Utils.isMac()) {
                    filterPatterns = new String[] { "*.9.png" };
                }
                var file = desktopWorker.openDialog("Load patches from file...", projectData.getLastDrawablePath(), filterPatterns, "Nine patch files");
                if (file != null) {
                    Gdx.app.postRunnable(() -> {
                        var fileHandle = new FileHandle(file);
                        if (fileHandle.name().toLowerCase(Locale.ROOT).endsWith(".9.png")) {
                            loadPatchesFromFile(fileHandle);
                        }
                    });
                }
            };
            dialogFactory.showDialogLoading(runnable);
        }
    });
    textButton = new TextButton("Auto Patches", skin);
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var pixmap = new Pixmap(fileHandle);
            if (fileHandle.path().toLowerCase(Locale.ROOT).endsWith(".9.png")) {
                var cropped = new Pixmap(pixmap.getWidth() - 2, pixmap.getHeight() - 2, Pixmap.Format.RGBA8888);
                cropped.setBlending(Pixmap.Blending.None);
                cropped.drawPixmap(pixmap, 0, 0, 1, 1, pixmap.getWidth() - 2, pixmap.getHeight() - 2);
                pixmap.dispose();
                pixmap = cropped;
            }
            var patches = Utils.calculatePatches(pixmap);
            drawableData.tenPatchData.horizontalStretchAreas.clear();
            drawableData.tenPatchData.horizontalStretchAreas.add(patches.left);
            drawableData.tenPatchData.horizontalStretchAreas.add(pixmap.getWidth() - patches.right - 1);
            drawableData.tenPatchData.verticalStretchAreas.clear();
            drawableData.tenPatchData.verticalStretchAreas.add(patches.bottom);
            drawableData.tenPatchData.verticalStretchAreas.add(pixmap.getHeight() - patches.top - 1);
            drawableData.tenPatchData.combineContiguousSretchAreas(true);
            drawableData.tenPatchData.removeInvalidStretchAreas(true);
            drawableData.tenPatchData.combineContiguousSretchAreas(false);
            drawableData.tenPatchData.removeInvalidStretchAreas(false);
            updatePreview();
            pixmap.dispose();
        }
    });
    imageTextButton = new ImageTextButton("More settings...", skin, "ten-patch-scrolling");
    table.add(imageTextButton);
    imageTextButton.addListener(handListener);
    imageTextButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var dialog = new DialogTenPatchSettings(drawableData, tenPatchDrawable);
            dialog.addListener(new DialogTenPatchSettings.DialogTenPatchSettingsListener() {

                @Override
                public void settingsUpdated(DialogTenPatchSettings.DialogTenPatchSettingsEvent event) {
                    updatePreview();
                }
            });
            dialog.show(getStage());
        }
    });
    label = new Label("Preview", skin, "title-no-line");
    bottom.add(label);
    bottom.row();
    table = new Table();
    bottom.add(table).grow();
    var resizer = new ResizeWidget(null, skin);
    resizer.setName("resizer");
    resizer.setTouchable(Touchable.enabled);
    resizer.setResizingFromCenter(true);
    resizer.setAllowDragging(false);
    var cursor = Utils.textureRegionToCursor(skin.getRegion("cursor_resize_ne"), 16, 16);
    var resizeFourArrowListener = new ResizeFourArrowListener(cursor);
    resizer.getBottomLeftHandle().addListener(resizeFourArrowListener);
    resizer.getTopRightHandle().addListener(resizeFourArrowListener);
    cursor = Utils.textureRegionToCursor(skin.getRegion("cursor_resize_nw"), 16, 16);
    resizeFourArrowListener = new ResizeFourArrowListener(cursor);
    resizer.getTopLeftHandle().addListener(resizeFourArrowListener);
    resizer.getBottomRightHandle().addListener(resizeFourArrowListener);
    cursor = Utils.textureRegionToCursor(skin.getRegion("cursor_resize_vertical"), 16, 16);
    resizeFourArrowListener = new ResizeFourArrowListener(cursor);
    resizer.getBottomHandle().addListener(resizeFourArrowListener);
    resizer.getTopHandle().addListener(resizeFourArrowListener);
    cursor = Utils.textureRegionToCursor(skin.getRegion("cursor_resize_horizontal"), 16, 16);
    resizeFourArrowListener = new ResizeFourArrowListener(cursor);
    resizer.getLeftHandle().addListener(resizeFourArrowListener);
    resizer.getRightHandle().addListener(resizeFourArrowListener);
    table.add(resizer).grow();
    String name = drawableData.file.nameWithoutExtension();
    var matcher = Pattern.compile(".*(?=\\.9$)").matcher(name);
    if (matcher.find()) {
        name = matcher.group();
    }
    originalRegion = atlasData.getAtlas().findRegion(name);
    tenPatchDrawable = new TenPatchDrawable(new int[0], new int[0], false, originalRegion);
    if (drawableData.tenPatchData.colorName != null) {
        tenPatchDrawable.getColor().set(jsonData.getColorByName(drawableData.tenPatchData.colorName).color);
    }
    tenPatchDrawable.setTiling(drawableData.tenPatchData.tile);
    table = new Table();
    table.setName("tenPatchTable");
    table.setBackground(tenPatchDrawable);
    resizer.setActor(table);
    layout();
    resizer.getStack().setSize(100, 100);
    bottom.row();
    table = new Table();
    table.setBackground(skin.getDrawable("white"));
    table.pad(5);
    bottom.add(table).growX();
    table.defaults().space(5);
    label = new Label("Content:", skin);
    table.add(label).right();
    var selectBox = new SelectBox<String>(skin);
    selectBox.setName("contentSelectBox");
    selectBox.setItems("None", "Text", "Color", "Drawable");
    table.add(selectBox);
    selectBox.addListener(handListener);
    selectBox.getList().addListener(handListener);
    selectBox.getList().addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            selectBox.fire(new ChangeListener.ChangeEvent());
        }
    });
    selectBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            createPreview();
        }
    });
    imageButton = new ImageButton(skin, "color");
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            dialogFactory.showDialogColors(new StyleProperty(), (colorData, pressedCancel) -> {
                if (colorData == null) {
                    previewColor.set(DEFAULT_PREVIEW_COLOR);
                } else {
                    previewColor.set(colorData.color);
                }
                updatePreview();
            }, null);
        }
    });
    label = new Label("Background:", skin);
    table.add(label).padLeft(15);
    imageButton = new ImageButton(skin, "color");
    table.add(imageButton);
    imageButton.addListener(handListener);
    imageButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            dialogFactory.showDialogColors(new StyleProperty(), (colorData, pressedCancel) -> {
                if (colorData == null) {
                    bottom.setColor(Color.WHITE);
                } else {
                    bottom.setColor(colorData.color);
                }
                updatePreview();
            }, null);
        }
    });
    table.add().expandX();
    root = getButtonTable();
    root.pad(10);
    root.clearChildren();
    root.defaults().uniform().fill();
    textButton = new TextButton("OK", skin);
    textButton.setName("okayButton");
    button(textButton, true);
    validateName();
    textButton.addListener(handListener);
    textButton = new TextButton("Cancel", skin);
    button(textButton, false);
    textButton.addListener(handListener);
    updatePreview();
    layout();
    tenPatchWidget.zoomAndCenter();
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) Array(com.badlogic.gdx.utils.Array) Scaling(com.badlogic.gdx.utils.Scaling) Utils(com.ray3k.skincomposer.utils.Utils) Gdx(com.badlogic.gdx.Gdx) Texture(com.badlogic.gdx.graphics.Texture) TenPatchDrawable(com.ray3k.tenpatch.TenPatchDrawable) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) ResizeWidget(com.ray3k.stripe.ResizeWidget) Vector2(com.badlogic.gdx.math.Vector2) Locale(java.util.Locale) IntArray(com.badlogic.gdx.utils.IntArray) TenPatchWidget(com.ray3k.skincomposer.TenPatchWidget) Actions(com.badlogic.gdx.scenes.scene2d.actions.Actions) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Input(com.badlogic.gdx.Input) PixmapIO(com.badlogic.gdx.graphics.PixmapIO) CrushMode(com.ray3k.tenpatch.TenPatchDrawable.CrushMode) com.badlogic.gdx.scenes.scene2d(com.badlogic.gdx.scenes.scene2d) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener) DrawableData(com.ray3k.skincomposer.data.DrawableData) com.badlogic.gdx.scenes.scene2d.ui(com.badlogic.gdx.scenes.scene2d.ui) Pixmap(com.badlogic.gdx.graphics.Pixmap) FilesDroppedListener(com.ray3k.skincomposer.FilesDroppedListener) Align(com.badlogic.gdx.utils.Align) Color(com.badlogic.gdx.graphics.Color) PopTable(com.ray3k.stripe.PopTable) DragListener(com.badlogic.gdx.scenes.scene2d.utils.DragListener) Keys(com.badlogic.gdx.Input.Keys) ResizeFourArrowListener(com.ray3k.skincomposer.ResizeFourArrowListener) Main(com.ray3k.skincomposer.Main) Pattern(java.util.regex.Pattern) LabelStyle(com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle) StageResizeListener(com.ray3k.skincomposer.StageResizeListener) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) FileHandle(com.badlogic.gdx.files.FileHandle) TenPatchWidget(com.ray3k.skincomposer.TenPatchWidget) ResizeFourArrowListener(com.ray3k.skincomposer.ResizeFourArrowListener) DragListener(com.badlogic.gdx.scenes.scene2d.utils.DragListener) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener) PopTable(com.ray3k.stripe.PopTable) TenPatchDrawable(com.ray3k.tenpatch.TenPatchDrawable) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) ResizeWidget(com.ray3k.stripe.ResizeWidget) Pixmap(com.badlogic.gdx.graphics.Pixmap)

Aggregations

ResizeWidget (com.ray3k.stripe.ResizeWidget)3 Gdx (com.badlogic.gdx.Gdx)2 Keys (com.badlogic.gdx.Input.Keys)2 FileHandle (com.badlogic.gdx.files.FileHandle)2 Color (com.badlogic.gdx.graphics.Color)2 Pixmap (com.badlogic.gdx.graphics.Pixmap)2 PixmapIO (com.badlogic.gdx.graphics.PixmapIO)2 Texture (com.badlogic.gdx.graphics.Texture)2 NinePatch (com.badlogic.gdx.graphics.g2d.NinePatch)2 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)2 com.badlogic.gdx.scenes.scene2d (com.badlogic.gdx.scenes.scene2d)2 com.badlogic.gdx.scenes.scene2d.ui (com.badlogic.gdx.scenes.scene2d.ui)2 Align (com.badlogic.gdx.utils.Align)2 Array (com.badlogic.gdx.utils.Array)2 Scaling (com.badlogic.gdx.utils.Scaling)2 FilesDroppedListener (com.ray3k.skincomposer.FilesDroppedListener)2 Main (com.ray3k.skincomposer.Main)2 ResizeFourArrowListener (com.ray3k.skincomposer.ResizeFourArrowListener)2 DrawableData (com.ray3k.skincomposer.data.DrawableData)2 StyleProperty (com.ray3k.skincomposer.data.StyleProperty)2