Example usage for com.badlogic.gdx.scenes.scene2d.ui Container setClip

List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Container setClip

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.ui Container setClip.

Prototype

public void setClip(boolean enabled) 

Source Link

Document

Causes the contents to be clipped if they exceed the container bounds.

Usage

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

License:Open Source License

private void refreshDrawableDisplay() {
    contentGroup.clear();//from  w ww .  j  a  v a 2s . c  o  m

    TooltipManager manager = new TooltipManager();
    manager.animations = false;
    manager.initialTime = .4f;
    manager.resetTime = 0.0f;
    manager.subsequentTime = 0.0f;
    manager.hideAll();
    manager.instant();

    if (drawables.size == 0) {
        Label label = new Label("No drawables have been added!", getSkin());
        contentGroup.addActor(label);
    }

    for (DrawableData drawable : drawables) {
        Button drawableButton;

        if (property != null) {
            drawableButton = new Button(getSkin(), "color-base");
            drawableButton.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                    result(drawable);
                    hide();
                }
            });
            drawableButton.addListener(main.getHandListener());
        } else {
            drawableButton = new Button(getSkin(), "color-base-static");
        }
        contentGroup.addActor(drawableButton);

        Table table = new Table();
        drawableButton.add(table).width(sizes[MathUtils.floor(zoomSlider.getValue())])
                .height(sizes[MathUtils.floor(zoomSlider.getValue())]);

        ClickListener fixDuplicateTouchListener = new ClickListener() {
            @Override
            public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                event.setBubbles(false);
                return super.touchDown(event, x, y, pointer, button);
            }
        };

        //color wheel
        Button button = new Button(getSkin(), "colorwheel");
        button.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                newTintedDrawable(drawable);
                event.setBubbles(false);
            }
        });
        button.addListener(fixDuplicateTouchListener);
        if (property == null) {
            button.addListener(main.getHandListener());
        }
        table.add(button);

        //swatches
        button = new Button(getSkin(), "swatches");
        button.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                colorSwatchesDialog(drawable);
                event.setBubbles(false);
            }
        });
        button.addListener(fixDuplicateTouchListener);
        if (property == null) {
            button.addListener(main.getHandListener());
        }
        table.add(button);

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

        //delete
        button = new Button(getSkin(), "delete-small");
        button.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                deleteDrawable(drawable);
                event.setBubbles(false);
            }
        });
        button.addListener(fixDuplicateTouchListener);
        if (property == null) {
            button.addListener(main.getHandListener());
        }
        table.add(button).expandX().right();

        //preview
        table.row();
        Container bg = new Container();
        bg.setClip(true);
        bg.setBackground(getSkin().getDrawable("white"));
        bg.setColor(drawable.bgColor);
        Image image = new Image(drawablePairs.get(drawable));
        if (MathUtils.isZero(zoomSlider.getValue())) {
            image.setScaling(Scaling.fit);
            bg.fill(false);
        } else {
            image.setScaling(Scaling.stretch);
            bg.fill();
        }
        bg.setActor(image);
        table.add(bg).colspan(4).grow();

        //name
        table.row();
        Label label = new Label(drawable.name, getSkin());
        label.setEllipsis("...");
        label.setEllipsis(true);
        label.setAlignment(Align.center);
        table.add(label).colspan(4).growX().width(sizes[MathUtils.floor(zoomSlider.getValue())]);

        //Tooltip
        TextTooltip toolTip = new TextTooltip(drawable.name, manager, getSkin());
        label.addListener(toolTip);
    }
}