Example usage for com.badlogic.gdx.graphics Color WHITE

List of usage examples for com.badlogic.gdx.graphics Color WHITE

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics Color WHITE.

Prototype

Color WHITE

To view the source code for com.badlogic.gdx.graphics Color WHITE.

Click Source Link

Usage

From source file:com.ray3k.skincomposer.data.DrawableData.java

License:Open Source License

public DrawableData(FileHandle file) {
    this.file = file;
    Color temp = Utils.averageEdgeColor(file);
    if (Utils.brightness(temp) > .5f) {
        bgColor = Color.BLACK;/*from  w w  w  . j a v a 2s.  co  m*/
    } else {
        bgColor = Color.WHITE;
    }
    visible = true;
    this.name = proper(file.name());
}

From source file:com.ray3k.skincomposer.dialog.DialogColorPicker.java

License:Open Source License

public DialogColorPicker(Main main, String style, ColorListener listener, Color previousColor) {
    super("", main.getSkin(), style);

    if (previousColor == null) {
        selectedColor = new Color(Color.RED);
    } else {//from w  w  w . j  a  va2s  .c  o m
        this.previousColor = new Color(previousColor);
        selectedColor = new Color(previousColor);
    }

    this.skin = main.getSkin();
    this.main = main;
    this.listener = listener;

    spinnerStyle = new Spinner.SpinnerStyle(skin.get("spinner-minus-h", Button.ButtonStyle.class),
            skin.get("spinner-plus-h", Button.ButtonStyle.class),
            skin.get("default", TextField.TextFieldStyle.class));

    gradientAlpha = new GradientDrawable(new Color(1.0f, 0, 0, 0), new Color(1.0f, 0, 0, 0), Color.RED,
            Color.RED);
    Vector3 v = rgbToHsb(selectedColor.r, selectedColor.g, selectedColor.b);
    Color temp = hsbToRgb(v.x * 360.0f, 1.0f, 1.0f);
    gradientS = new GradientDrawable(Color.WHITE, temp, temp, Color.WHITE);
    gradientB = new GradientDrawable(Color.BLACK, Color.BLACK, Color.CLEAR, Color.CLEAR);
    gradientSB = new StackedDrawable(gradientS, gradientB);

    hueGradient = new Array<>();
    hueGradient.add(new GradientDrawable(Color.MAGENTA, Color.MAGENTA, Color.RED, Color.RED));
    hueGradient.add(new GradientDrawable(Color.BLUE, Color.BLUE, Color.MAGENTA, Color.MAGENTA));
    hueGradient.add(new GradientDrawable(Color.CYAN, Color.CYAN, Color.BLUE, Color.BLUE));
    hueGradient.add(new GradientDrawable(Color.GREEN, Color.GREEN, Color.CYAN, Color.CYAN));
    hueGradient.add(new GradientDrawable(Color.YELLOW, Color.YELLOW, Color.GREEN, Color.GREEN));
    hueGradient.add(new GradientDrawable(Color.RED, Color.RED, Color.YELLOW, Color.YELLOW));

    Drawable tinted = ((TextureRegionDrawable) skin.getDrawable("white")).tint(Color.LIGHT_GRAY);
    checker = new CheckerDrawable(skin.getDrawable("white"), tinted, 10.0f, 10.0f);
    alphaStack = new StackedDrawable(checker, gradientAlpha);

    Table root = getContentTable();
    Label label = new Label("Choose a Color", skin, "title");
    label.setAlignment(Align.center);
    root.add(label).growX();

    root.row();
    content = new Table(skin);
    root.add(content);

    addListener(new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.ESCAPE) {
                if (listener != null) {
                    listener.handle(new ColorListener.ColorEvent(null));
                }
                hide();
            }
            return false;
        }
    });

    populate();
}

From source file:com.ray3k.skincomposer.dialog.DialogColors.java

License:Open Source License

public void populate() {
    colorTable.clear();//from w  w  w .j a v  a2 s. co m

    if (colors.size > 0) {
        colorTable.defaults().padTop(5.0f);
        for (ColorData color : colors) {
            Button button = new Button(skin, "color-base");
            button.addListener(main.getHandListener());
            Label label = new Label(color.toString(), skin, "white");
            label.setTouchable(Touchable.disabled);

            float brightness = Utils.brightness(color.color);
            Color borderColor;
            if (brightness > .35f) {
                borderColor = Color.BLACK;
                label.setColor(borderColor);
            } else {
                borderColor = Color.WHITE;
                label.setColor(borderColor);
            }

            Color bgColor = new Color(color.color.r, color.color.g, color.color.b, 1.0f);
            Table table = new Table(skin);
            table.setBackground("white");
            table.setColor(bgColor);
            table.add(label).pad(3.0f);

            if (styleProperty == null && !selectingForTintedDrawable) {
                table.addCaptureListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        event.setBubbles(false);
                        populate();
                    }
                });
                table.addCaptureListener(new InputListener() {
                    @Override
                    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                        event.setBubbles(false);
                        return true;
                    }
                });
            }
            Table borderTable = new Table(skin);
            borderTable.setBackground("white");
            borderTable.setColor(borderColor);
            borderTable.add(table).growX().pad(1.0f);

            button.add(borderTable).growX();

            //rename button
            Button renameButton = new Button(skin, "settings-small");
            renameButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    renameDialog(color);

                    event.setBubbles(false);
                }
            });
            renameButton.addListener(new InputListener() {
                @Override
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                    event.setBubbles(false);
                    return true;
                }

            });
            button.add(renameButton).padLeft(10.0f);

            //recolor button
            Button recolorButton = new Button(skin, "colorwheel");
            recolorButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    recolorDialog(color);

                    event.setBubbles(false);
                }
            });
            recolorButton.addListener(new InputListener() {
                @Override
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                    event.setBubbles(false);
                    return true;
                }

            });
            button.add(recolorButton);

            label = new Label("(" + ((int) (color.color.r * 255)) + ", " + ((int) (color.color.g * 255)) + ", "
                    + ((int) (color.color.b * 255)) + ", " + ((int) (color.color.a * 255)) + ")", skin);
            label.setTouchable(Touchable.disabled);
            label.setAlignment(Align.center);

            if (styleProperty == null && !selectingForTintedDrawable) {
                label.addCaptureListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        event.setBubbles(false);
                        populate();
                    }
                });
                label.addCaptureListener(new InputListener() {
                    @Override
                    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                        event.setBubbles(false);
                        return true;
                    }

                });
            }
            button.add(label).padLeft(5.0f).minWidth(160.0f);

            //delete color button
            Button closeButton = new Button(skin, "delete-small");
            final ColorData deleteColor = color;
            closeButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    colors.removeValue(deleteColor, true);

                    //clear style properties that use this color.
                    for (Array<StyleData> datas : jsonData.getClassStyleMap().values()) {
                        for (StyleData data : datas) {
                            for (StyleProperty property : data.properties.values()) {
                                if (property != null && property.type.equals(Color.class)
                                        && property.value != null
                                        && property.value.equals(deleteColor.getName())) {
                                    property.value = null;
                                }
                            }
                        }
                    }

                    //delete tinted drawables based on this color.
                    for (DrawableData drawableData : new Array<>(projectData.getAtlasData().getDrawables())) {
                        if (drawableData.tintName != null
                                && drawableData.tintName.equals(deleteColor.getName())) {
                            projectData.getAtlasData().getDrawables().removeValue(drawableData, true);

                            //clear any style properties based on this tinted drawable.
                            for (Array<StyleData> styleDatas : jsonData.getClassStyleMap().values()) {
                                for (StyleData styleData : styleDatas) {
                                    for (StyleProperty styleProperty : styleData.properties.values()) {
                                        if (styleProperty != null && styleProperty.type.equals(Drawable.class)
                                                && styleProperty.value != null
                                                && styleProperty.value.equals(drawableData.toString())) {
                                            styleProperty.value = null;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    main.getUndoableManager().clearUndoables();

                    main.getRootTable().refreshStyleProperties(true);
                    main.getRootTable().refreshPreview();

                    event.setBubbles(false);
                    populate();
                }
            });
            closeButton.addListener(new InputListener() {
                @Override
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                    event.setBubbles(false);
                    return true;
                }

            });

            button.add(closeButton).padLeft(5.0f);
            if (styleProperty == null && !selectingForTintedDrawable) {
                button.setTouchable(Touchable.childrenOnly);
            } else {
                setObject(button, color);
                final ColorData result = color;
                button.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        result(result);
                        hide();
                    }
                });
            }
            colorTable.add(button).growX();
            colorTable.row();
        }
    } else {
        colorTable.add(new Label("No colors have been set!", skin, "required"));
    }
}

From source file:com.ray3k.skincomposer.dialog.DialogColors.java

License:Open Source License

private void renameDialog(ColorData color) {
    TextField textField = new TextField("", skin);
    TextButton okButton;/*from  w  w  w  .  j  a  v a2 s  .  c om*/

    Dialog dialog = new Dialog("Rename Color?", skin, "bg") {
        @Override
        protected void result(Object object) {
            if ((boolean) object) {
                renameColor(color, textField.getText());
            }
        }

        @Override
        public Dialog show(Stage stage) {
            Dialog dialog = super.show(stage);
            main.getStage().setKeyboardFocus(textField);
            return dialog;
        }
    };

    dialog.getTitleTable().padLeft(5.0f);

    float brightness = Utils.brightness(color.color);
    Color borderColor;
    if (brightness > .35f) {
        borderColor = Color.BLACK;
    } else {
        borderColor = Color.WHITE;
    }

    Table bg = new Table(skin);
    bg.setBackground("white");
    bg.setColor(borderColor);
    dialog.getContentTable().add(bg);

    Label label = new Label(color.getName(), skin, "white");
    label.setColor(color.color);
    bg.add(label).pad(10);

    dialog.getContentTable().row();
    label = new Label("What do you want to rename the color to?", skin);
    dialog.getContentTable().add(label);

    dialog.getContentTable().row();
    textField.setText(color.getName());
    textField.selectAll();
    textField.addListener(main.getIbeamListener());
    dialog.getContentTable().add(textField);
    dialog.getCell(dialog.getContentTable()).pad(15.0f);

    dialog.button("OK", true);
    dialog.button("Cancel", false).key(Keys.ESCAPE, false);
    okButton = (TextButton) dialog.getButtonTable().getCells().first().getActor();
    okButton.setDisabled(true);
    okButton.addListener(main.getHandListener());
    dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
    dialog.getButtonTable().padBottom(15.0f);

    textField.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            boolean disable = !ColorData.validate(textField.getText());
            if (!disable) {
                for (ColorData data : jsonData.getColors()) {
                    if (data.getName().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()) {
                    renameColor(color, textField.getText());
                    dialog.hide();
                }
            }
        }
    });

    textField.setFocusTraversal(false);
    dialog.show(getStage());
}

From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java

License:Open Source License

private void colorSwatchesDialog(DrawableData drawableData) {
    DialogColors dialog = new DialogColors(getSkin(), "dialog", null, true, dialogFactory, jsonData,
            projectData, atlasData, main, (ColorData colorData) -> {
                if (colorData != null) {
                    final DrawableData tintedDrawable = new DrawableData(drawableData.file);
                    tintedDrawable.tintName = colorData.getName();

                    //Fix background color for new, tinted drawable
                    Color temp = Utils.averageEdgeColor(tintedDrawable.file, colorData.color);

                    if (Utils.brightness(temp) > .5f) {
                        tintedDrawable.bgColor = Color.BLACK;
                    } else {
                        tintedDrawable.bgColor = Color.WHITE;
                    }//from ww w  . j ava2 s .c  o m

                    final TextField textField = new TextField(drawableData.name, getSkin());
                    final TextButton button = new TextButton("OK", getSkin());
                    button.setDisabled(!DrawableData.validate(textField.getText())
                            || checkIfNameExists(textField.getText()));
                    button.addListener(main.getHandListener());
                    textField.addListener(new ChangeListener() {
                        @Override
                        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                            button.setDisabled(!DrawableData.validate(textField.getText())
                                    || checkIfNameExists(textField.getText()));
                        }
                    });
                    textField.addListener(main.getIbeamListener());

                    Dialog approveDialog = new Dialog("TintedDrawable...", getSkin(), "bg") {
                        @Override
                        protected void result(Object object) {
                            if (object instanceof Boolean && (boolean) object) {
                                tintedDrawable.name = textField.getText();
                                atlasData.getDrawables().add(tintedDrawable);
                                projectData.setChangesSaved(false);
                            }
                        }

                        @Override
                        public boolean remove() {
                            gatherDrawables();
                            produceAtlas();
                            sortBySelectedMode();
                            getStage().setScrollFocus(scrollPane);
                            return super.remove();
                        }
                    };
                    approveDialog.addCaptureListener(new InputListener() {
                        @Override
                        public boolean keyDown(InputEvent event, int keycode2) {
                            if (keycode2 == Input.Keys.ENTER) {
                                if (!button.isDisabled()) {
                                    tintedDrawable.name = textField.getText();
                                    atlasData.getDrawables().add(tintedDrawable);
                                    projectData.setChangesSaved(false);
                                    approveDialog.hide();
                                }
                            }
                            return false;
                        }
                    });

                    approveDialog.getTitleTable().padLeft(5.0f);
                    approveDialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
                    approveDialog.getButtonTable().padBottom(15.0f);

                    approveDialog.text("What is the name of the new tinted drawable?");

                    Drawable drawable = drawablePairs.get(drawableData);
                    Drawable preview = null;
                    if (drawable instanceof SpriteDrawable) {
                        preview = ((SpriteDrawable) drawable).tint(colorData.color);
                    } else if (drawable instanceof NinePatchDrawable) {
                        preview = ((NinePatchDrawable) drawable).tint(colorData.color);
                    }
                    if (preview != null) {
                        approveDialog.getContentTable().row();
                        Table table = new Table();
                        table.setBackground(preview);
                        approveDialog.getContentTable().add(table);
                    }

                    approveDialog.getContentTable().row();
                    approveDialog.getContentTable().add(textField).growX();

                    approveDialog.button(button, true);
                    approveDialog.button("Cancel", false);
                    approveDialog.getButtonTable().getCells().get(1).getActor()
                            .addListener(main.getHandListener());
                    approveDialog.key(Input.Keys.ESCAPE, false);
                    approveDialog.show(getStage());
                    getStage().setKeyboardFocus(textField);
                    textField.selectAll();

                    textField.setFocusTraversal(false);
                }
            });
    dialog.setFillParent(true);
    dialog.show(getStage());
    dialog.populate();
}

From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java

License:Open Source License

/**
 * Creates a TintedDrawable based on the provided DrawableData. Prompts
 * user for a Color and name.// ww w .ja  v a  2 s.  c  o  m
 * @param drawableData 
 */
private void newTintedDrawable(DrawableData drawableData) {
    Color previousColor = Color.WHITE;
    if (drawableData.tint != null) {
        previousColor = drawableData.tint;
    }
    dialogFactory.showDialogColorPicker(previousColor, new DialogColorPicker.ColorListener() {
        @Override
        public void selected(Color color) {
            if (color != null) {
                final DrawableData tintedDrawable = new DrawableData(drawableData.file);
                tintedDrawable.tint = color;

                //Fix background color for new, tinted drawable
                Color temp = Utils.averageEdgeColor(tintedDrawable.file, tintedDrawable.tint);

                if (Utils.brightness(temp) > .5f) {
                    tintedDrawable.bgColor = Color.BLACK;
                } else {
                    tintedDrawable.bgColor = Color.WHITE;
                }

                final TextField textField = new TextField(drawableData.name, getSkin());
                final TextButton button = new TextButton("OK", getSkin());
                button.setDisabled(
                        !DrawableData.validate(textField.getText()) || checkIfNameExists(textField.getText()));
                textField.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        button.setDisabled(!DrawableData.validate(textField.getText())
                                || checkIfNameExists(textField.getText()));
                    }
                });
                textField.addListener(main.getIbeamListener());

                Dialog dialog = new Dialog("TintedDrawable...", getSkin(), "bg") {
                    @Override
                    protected void result(Object object) {
                        if (object instanceof Boolean && (boolean) object) {
                            tintedDrawable.name = textField.getText();
                            atlasData.getDrawables().add(tintedDrawable);
                            projectData.setChangesSaved(false);
                        }
                    }

                    @Override
                    public boolean remove() {
                        gatherDrawables();
                        produceAtlas();
                        sortBySelectedMode();
                        getStage().setScrollFocus(scrollPane);
                        return super.remove();
                    }
                };
                dialog.getTitleTable().getCells().first().padLeft(5.0f);
                dialog.addCaptureListener(new InputListener() {
                    @Override
                    public boolean keyDown(InputEvent event, int keycode2) {
                        if (keycode2 == Input.Keys.ENTER) {
                            if (!button.isDisabled()) {
                                tintedDrawable.name = textField.getText();
                                atlasData.getDrawables().add(tintedDrawable);
                                projectData.setChangesSaved(false);
                                dialog.hide();
                            }
                        }
                        return false;
                    }
                });
                dialog.text("What is the name of the new tinted drawable?");
                dialog.getContentTable().getCells().first().pad(10.0f);

                Drawable drawable = drawablePairs.get(drawableData);
                Drawable preview = null;
                if (drawable instanceof SpriteDrawable) {
                    preview = ((SpriteDrawable) drawable).tint(color);
                } else if (drawable instanceof NinePatchDrawable) {
                    preview = ((NinePatchDrawable) drawable).tint(color);
                }
                if (preview != null) {
                    dialog.getContentTable().row();
                    Table table = new Table();
                    table.setBackground(preview);
                    dialog.getContentTable().add(table);
                }

                dialog.getContentTable().row();
                dialog.getContentTable().add(textField).growX().pad(10.0f);

                dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f);
                dialog.button(button, true);
                button.addListener(main.getHandListener());
                dialog.button("Cancel", false);
                dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
                dialog.key(Input.Keys.ESCAPE, false);
                dialog.show(getStage());
                getStage().setKeyboardFocus(textField);
                textField.selectAll();
                textField.setFocusTraversal(false);
            }
        }
    });
}

From source file:com.ray3k.skincomposer.dialog.DialogFonts.java

License:Open Source License

public void populate() {
    fontsTable.clear();/*from ww  w. jav a  2s  . co m*/
    fontsTable.defaults().growX().pad(5.0f);

    if (fonts.size == 0) {
        fontsTable.add(new Label("No fonts have been set!", skin));
    } else {
        for (FontData font : fonts) {
            Button button = new Button(skin, "color-base");
            Label label = new Label(font.getName(), skin);
            label.setTouchable(Touchable.disabled);
            button.add(label).left();
            button.addListener(main.getHandListener());

            Button renameButton = new Button(skin, "settings-small");
            renameButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    renameDialog(font);

                    event.setBubbles(false);
                }
            });
            renameButton.addListener(new InputListener() {
                @Override
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                    event.setBubbles(false);
                    return true;
                }

            });
            button.add(renameButton).padLeft(15.0f);
            LabelStyle style = new LabelStyle();
            style.font = fontMap.get(font);
            style.fontColor = Color.WHITE;
            label = new Label("Lorem Ipsum", style);
            label.setAlignment(Align.center);
            label.setTouchable(Touchable.disabled);
            Table bg = new Table(skin);
            bg.setBackground("white");
            BitmapFontData bf = new BitmapFontData(font.file, false);
            if (bf.imagePaths.length > 0) {
                FileHandle file = new FileHandle(bf.imagePaths[0]);
                if (!file.exists()) {
                    file = bf.fontFile.sibling(bf.fontFile.nameWithoutExtension() + ".png");
                }
                if (Utils.brightness(Utils.averageEdgeColor(file)) < .5f) {
                    bg.setColor(Color.WHITE);
                } else {
                    bg.setColor(Color.BLACK);
                }
            }
            bg.add(label).pad(5.0f).grow();
            button.add(bg).padLeft(15).growX();

            Button closeButton = new Button(skin, "delete-small");
            final FontData deleteFont = font;
            closeButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    fonts.removeValue(deleteFont, true);
                    BitmapFontData bitmapFontData = new BitmapFontData(deleteFont.file, false);
                    for (String path : bitmapFontData.imagePaths) {
                        FileHandle imagefile = new FileHandle(path);
                        drawables.removeValue(new DrawableData(imagefile), false);
                    }

                    for (Array<StyleData> datas : jsonData.getClassStyleMap().values()) {
                        for (StyleData data : datas) {
                            for (StyleProperty property : data.properties.values()) {
                                if (property != null && property.type.equals(BitmapFont.class)
                                        && property.value != null
                                        && property.value.equals(deleteFont.getName())) {
                                    property.value = null;
                                }
                            }
                        }
                    }

                    main.getUndoableManager().clearUndoables();

                    main.getRootTable().refreshStyleProperties(true);
                    main.getRootTable().refreshPreview();

                    event.setBubbles(false);
                    populate();
                }
            });
            closeButton.addListener(new InputListener() {
                @Override
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                    event.setBubbles(false);
                    return true;
                }

            });
            button.add(closeButton).padLeft(5.0f).right();

            if (styleProperty == null) {
                button.setTouchable(Touchable.childrenOnly);
            } else {
                final FontData fontResult = font;
                button.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        result(fontResult);
                        hide();
                    }
                });
            }

            fontsTable.add(button);
            fontsTable.row();
        }
    }
}

From source file:com.ray3k.skincomposer.dialog.DialogFonts.java

License:Open Source License

private void renameDialog(FontData font) {
    TextField textField = new TextField("", skin);
    TextButton okButton;//from  w  ww.  jav a2s  .  co  m

    Dialog dialog = new Dialog("Rename Font?", skin, "bg") {
        @Override
        protected void result(Object object) {
            if ((boolean) object) {
                renameFont(font, textField.getText());
            }
        }

        @Override
        public Dialog show(Stage stage) {
            Dialog dialog = super.show(stage);
            main.getStage().setKeyboardFocus(textField);
            return dialog;
        }
    };
    dialog.getContentTable().padLeft(10.0f).padRight(10.0f);

    dialog.getTitleTable().padLeft(5.0f);

    Table bg = new Table(skin);
    bg.setBackground("white");
    bg.setColor(Color.WHITE);
    dialog.getContentTable().add(bg);

    Label label = new Label(font.getName(), skin, "white");
    label.setColor(Color.BLACK);
    bg.add(label).pad(10);

    dialog.getContentTable().row();
    label = new Label("What do you want to rename the font to?", skin);
    dialog.getContentTable().add(label);

    dialog.getContentTable().row();
    textField.setText(font.getName());
    textField.selectAll();
    textField.addListener(main.getIbeamListener());
    dialog.getContentTable().add(textField);

    dialog.button("OK", true);
    dialog.button("Cancel", false).key(Keys.ESCAPE, false);
    okButton = (TextButton) dialog.getButtonTable().getCells().first().getActor();
    okButton.setDisabled(true);
    okButton.addListener(main.getHandListener());
    dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());

    dialog.getButtonTable().padBottom(15.0f);

    textField.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            boolean disable = !FontData.validate(textField.getText());
            if (!disable) {
                for (ColorData data : jsonData.getColors()) {
                    if (data.getName().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()) {
                    renameFont(font, textField.getText());
                    dialog.hide();
                }
            }
        }
    });

    textField.setFocusTraversal(false);

    dialog.show(getStage());
}

From source file:com.ray3k.skincomposer.dialog.DialogFonts.java

License:Open Source License

private void fontNameDialog(Array<FileHandle> files, int index) {
    if (index < files.size) {
        try {/*from  w  w w.  ja v a  2s.  com*/
            final FileHandle fileHandle = files.get(index);

            final TextField textField = new TextField(FontData.filter(fileHandle.nameWithoutExtension()), skin);
            final Dialog nameDialog = new Dialog("Enter a name...", skin, "bg") {
                @Override
                protected void result(Object object) {
                    if ((Boolean) object) {
                        String name = textField.getText();

                        addFont(name, fileHandle);

                    }
                }

                @Override
                public boolean remove() {
                    fontNameDialog(files, index + 1);
                    return super.remove();
                }
            };

            nameDialog.getTitleTable().padLeft(5.0f);

            nameDialog.button("OK", true);
            nameDialog.button("Cancel", false);
            nameDialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener());
            nameDialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
            final TextButton button = (TextButton) nameDialog.getButtonTable().getCells().first().getActor();

            nameDialog.getButtonTable().padBottom(15.0f);

            textField.setTextFieldListener((TextField textField1, char c) -> {
                if (c == '\n') {
                    if (!button.isDisabled()) {
                        String name1 = textField1.getText();
                        if (addFont(name1, fileHandle)) {
                            nameDialog.hide();
                        }
                    }
                    main.getStage().setKeyboardFocus(textField1);
                }
            });

            textField.addListener(main.getIbeamListener());

            nameDialog.getContentTable().defaults().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
            nameDialog.text("Please enter a name for the new font: ");
            nameDialog.getContentTable().row();
            nameDialog.getContentTable().add(textField).growX();
            nameDialog.getContentTable().row();
            nameDialog.text("Preview:");
            nameDialog.getContentTable().row();

            LabelStyle previewStyle = new LabelStyle();
            previewStyle.font = new BitmapFont(fileHandle);
            Table table = new Table(skin);
            table.setBackground("white");
            BitmapFontData bitmapFontData = new BitmapFontData(fileHandle, false);
            if (Utils.brightness(Utils.averageEdgeColor(new FileHandle(bitmapFontData.imagePaths[0]))) > .5f) {
                table.setColor(Color.BLACK);
            } else {
                table.setColor(Color.WHITE);
            }
            table.add(new Label("Lorem Ipsum", previewStyle)).pad(5.0f);

            nameDialog.getContentTable().add(table);
            nameDialog.key(Keys.ESCAPE, false);
            button.setDisabled(!FontData.validate(textField.getText()));
            textField.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    boolean disable = !FontData.validate(textField.getText());
                    if (!disable) {
                        for (FontData data : jsonData.getFonts()) {
                            if (data.getName().equals(textField.getText())) {
                                disable = true;
                                break;
                            }
                        }
                    }
                    button.setDisabled(disable);
                }
            });
            nameDialog.setColor(1.0f, 1.0f, 1.0f, 0.0f);

            textField.setFocusTraversal(false);

            if (!Utils.doesImageFitBox(new FileHandle(bitmapFontData.imagePaths[0]),
                    projectData.getMaxTextureWidth(), projectData.getMaxTextureHeight())) {
                showAddFontSizeError(fileHandle.nameWithoutExtension());
            } else {
                nameDialog.show(getStage());
                getStage().setKeyboardFocus(textField);
                textField.selectAll();
            }
        } catch (Exception e) {
            Gdx.app.error(getClass().getName(), "Error creating preview font from file", e);
            main.getDialogFactory().showDialogError("Preview Error...",
                    "Error creating preview font from file. Check file paths.\n\nOpen log?");
        }
    }
}

From source file:com.ray3k.skincomposer.RootTable.java

License:Open Source License

public RootTable(Main main) {
    super(main.getSkin());
    this.stage = main.getStage();
    this.main = main;

    previewProperties = new ObjectMap<>();
    previewBgColor = new Color(Color.WHITE);

    spinnerStyle = new Spinner.SpinnerStyle(getSkin().get("spinner-minus-h", Button.ButtonStyle.class),
            getSkin().get("spinner-plus-h", Button.ButtonStyle.class),
            getSkin().get("spinner", TextField.TextFieldStyle.class));

    TextButtonStyle textButtonStyle = getSkin().get("file", TextButtonStyle.class);

    MenuButtonStyle menuButtonStyle = new MenuButton.MenuButtonStyle();
    menuButtonStyle.font = textButtonStyle.font;
    menuButtonStyle.up = textButtonStyle.up;
    menuButtonStyle.down = textButtonStyle.down;
    menuButtonStyle.over = textButtonStyle.over;
    menuButtonStyle.checked = textButtonStyle.checked;

    MenuListStyle menuListStyle = new MenuListStyle();
    menuListStyle.background = getSkin().getDrawable("list");
    menuListStyle.textButtonStyle = getSkin().get("menu-button", TextButtonStyle.class);
    menuListStyle.labelStyle = getSkin().get("white", LabelStyle.class);
    menuListStyle.disabledLabelStyle = getSkin().get("disabled", LabelStyle.class);

    menuButtonStyle.menuListStyle = menuListStyle;

    bfColorStyle = new BrowseFieldStyle(getSkin().get("color", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get(LabelStyle.class));
    bfDrawableStyle = new BrowseFieldStyle(getSkin().get("drawable", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get(LabelStyle.class));
    bfFontStyle = new BrowseFieldStyle(getSkin().get("font", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get(LabelStyle.class));
    bfColorStyleR = new BrowseFieldStyle(getSkin().get("color", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get("required", LabelStyle.class));
    bfDrawableStyleR = new BrowseFieldStyle(getSkin().get("drawable", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get("required", LabelStyle.class));
    bfFontStyleR = new BrowseFieldStyle(getSkin().get("font", ImageButtonStyle.class),
            getSkin().get("browse-field", TextButtonStyle.class), getSkin().get("required", LabelStyle.class));

    getSkin().add("default", menuButtonStyle);
    getSkin().add("default", menuListStyle);

    hSplitPaneDragListener = new DragListener() {
        @Override/* ww w.j  ava  2 s.  c  om*/
        public void dragStop(InputEvent event, float x, float y, int pointer) {
            Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            draggingCursor = false;
        }

        @Override
        public void dragStart(InputEvent event, float x, float y, int pointer) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.HorizontalResize);
                draggingCursor = true;
            }
        }
    };

    vSplitPaneDragListener = new DragListener() {
        @Override
        public void dragStop(InputEvent event, float x, float y, int pointer) {
            Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            draggingCursor = false;
        }

        @Override
        public void dragStart(InputEvent event, float x, float y, int pointer) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.VerticalResize);
                draggingCursor = true;
            }
        }

    };

    hSplitPaneInputListener = new InputListener() {
        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            }
        }

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.HorizontalResize);
            }
        }
    };

    vSplitPaneInputListener = new InputListener() {
        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            }
        }

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.VerticalResize);
            }
        }
    };

    scrollPaneListener = new ScrollPaneListener();
    previewFonts = new Array<>();
    drawablePairs = new ObjectMap<>();

    produceAtlas();

    main.getStage().addListener(new ShortcutListener(this));
}