Search in sources :

Example 6 with ScrollPane

use of com.badlogic.gdx.scenes.scene2d.ui.ScrollPane in project gdx-skineditor by cobolfoo.

the class NinePatchEditorDialog method refreshImage.

/**
	 * 
	 */
private void refreshImage() {
    float newX = imgWidth * currentZoom;
    float newY = imgHeight * currentZoom;
    image.setSize(newX, newY);
    cellImage.width(newX).height(newY);
    tableEditor.setWidth(newX);
    tableEditor.setHeight(newY);
    ScrollPane sp = (ScrollPane) tableEditor.getParent();
    sp.layout();
}
Also used : ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane)

Example 7 with ScrollPane

use of com.badlogic.gdx.scenes.scene2d.ui.ScrollPane in project commons-gdx by gemserk.

the class Actors method twoOptionsDialog.

public static Actor twoOptionsDialog(String[] texts, final DialogListener dialogListener, String titleText, String firstOption, String secondOption, Skin skin) {
    Window window = new Window(titleText, skin);
    window.setMovable(false);
    TextButton firstOptionButton = new TextButton(firstOption, skin);
    TextButton secondOptionButton = new TextButton(secondOption, skin);
    firstOptionButton.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            dialogListener.optionSelected(0);
        }
    });
    secondOptionButton.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            dialogListener.optionSelected(1);
        }
    });
    window.defaults().spaceBottom(10);
    window.row().fill().expandX();
    for (int i = 0; i < texts.length; i++) {
        window.row().padLeft(20);
        Label label = new Label(texts[i], skin);
        label.setWrap(true);
        window.add(label).align(Align.left).colspan(2).fillX();
    }
    window.row().fill().expandX();
    window.add(firstOptionButton).align(Align.center).padLeft(20).padRight(20).expandX();
    window.add(secondOptionButton).align(Align.center).padLeft(20).padRight(20).expandX();
    ScrollPane scrollPane = new ScrollPane(window);
    scrollPane.setWidth(Gdx.graphics.getWidth() * 0.95f);
    scrollPane.setHeight(Gdx.graphics.getHeight() * 0.95f);
    scrollPane.setX(Gdx.graphics.getWidth() * 0.5f - scrollPane.getWidth() * 0.5f);
    scrollPane.setY(Gdx.graphics.getHeight() * 0.5f - scrollPane.getHeight() * 0.5f);
    return scrollPane;
}
Also used : Window(com.badlogic.gdx.scenes.scene2d.ui.Window) TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Example 8 with ScrollPane

use of com.badlogic.gdx.scenes.scene2d.ui.ScrollPane in project libgdx by libgdx.

the class ScrollPane2Test method create.

public void create() {
    stage = new Stage();
    Gdx.input.setInputProcessor(stage);
    skin = new Skin(Gdx.files.internal("data/uiskin.json"));
    ScrollPane pane2 = new ScrollPane(new Image(new Texture("data/group-debug.png")), skin);
    pane2.setScrollingDisabled(false, true);
    // pane2.setCancelTouchFocus(false);
    pane2.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            event.stop();
            return true;
        }
    });
    Table mytable = new Table();
    mytable.debug();
    mytable.add(new Image(new Texture("data/group-debug.png")));
    mytable.row();
    mytable.add(new Image(new Texture("data/group-debug.png")));
    mytable.row();
    mytable.add(pane2).size(100);
    mytable.row();
    mytable.add(new Image(new Texture("data/group-debug.png")));
    mytable.row();
    mytable.add(new Image(new Texture("data/group-debug.png")));
    ScrollPane pane = new ScrollPane(mytable, skin);
    pane.setScrollingDisabled(true, false);
    // pane.setCancelTouchFocus(false);
    if (false) {
        // This sizes the pane to the size of it's contents.
        pane.pack();
        // Then the height is hardcoded, leaving the pane the width of it's contents.
        pane.setHeight(Gdx.graphics.getHeight());
    } else {
        // This shows a hardcoded size.
        pane.setWidth(300);
        pane.setHeight(Gdx.graphics.getHeight());
    }
    stage.addActor(pane);
}
Also used : Table(com.badlogic.gdx.scenes.scene2d.ui.Table) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Stage(com.badlogic.gdx.scenes.scene2d.Stage) Skin(com.badlogic.gdx.scenes.scene2d.ui.Skin) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) Texture(com.badlogic.gdx.graphics.Texture)

Example 9 with ScrollPane

use of com.badlogic.gdx.scenes.scene2d.ui.ScrollPane in project libgdx by libgdx.

the class ScrollPaneScrollBarsTest method create.

public void create() {
    float width = Gdx.graphics.getWidth();
    float height = Gdx.graphics.getHeight();
    float btnWidth = 200;
    float btnHeight = 40;
    stage = new Stage();
    Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
    Gdx.input.setInputProcessor(stage);
    final TextButton fadeBtn = new TextButton("Fade: " + doFade, skin);
    fadeBtn.setSize(btnWidth, btnHeight);
    fadeBtn.setPosition(0, height - fadeBtn.getHeight());
    stage.addActor(fadeBtn);
    fadeBtn.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            doFade = !doFade;
            fadeBtn.setText("Fade: " + doFade);
            for (ScrollPane pane : scrollPanes) {
                pane.setFadeScrollBars(doFade);
            }
        }
    });
    final TextButton onTopBtn = new TextButton("ScrollbarsOnTop: " + doOnTop, skin);
    onTopBtn.setSize(btnWidth, btnHeight);
    onTopBtn.setPosition(0 + fadeBtn.getWidth() + 20, height - onTopBtn.getHeight());
    stage.addActor(onTopBtn);
    onTopBtn.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            doOnTop = !doOnTop;
            onTopBtn.setText("ScrollbarOnTop: " + doOnTop);
            onTopBtn.invalidate();
            for (ScrollPane pane : scrollPanes) {
                pane.setScrollbarsOnTop(doOnTop);
            }
        }
    });
    // Gdx.graphics.setVSync(false);
    float gap = 8;
    float x = gap;
    float y = gap;
    float contWidth = width / 2 - gap * 1.5f;
    float contHeight = height / 4.5f - gap * 1.25f;
    bottomLeft = new Table();
    bottomLeft.setPosition(x, y);
    bottomLeft.setSize(contWidth, contHeight);
    stage.addActor(bottomLeft);
    bottomRight = new Table();
    bottomRight.setSize(contWidth, contHeight);
    x = bottomLeft.getX() + bottomLeft.getWidth() + gap;
    bottomRight.setPosition(x, y);
    stage.addActor(bottomRight);
    topLeft = new Table();
    topLeft.setSize(contWidth, contHeight);
    x = bottomLeft.getX();
    y = bottomLeft.getY() + bottomLeft.getHeight() + gap;
    topLeft.setPosition(x, y);
    stage.addActor(topLeft);
    topRight = new Table();
    topRight.setSize(contWidth, contHeight);
    x = bottomRight.getX();
    y = topLeft.getY();
    topRight.setPosition(x, y);
    stage.addActor(topRight);
    horizOnlyTop = new Table();
    horizOnlyTop.setSize(contWidth, contHeight);
    x = topRight.getX();
    y = topRight.getY() + topRight.getHeight() + gap;
    horizOnlyTop.setPosition(x, y);
    stage.addActor(horizOnlyTop);
    horizOnlyBottom = new Table();
    horizOnlyBottom.setSize(contWidth, contHeight);
    x = topLeft.getX();
    y = topLeft.getY() + topLeft.getHeight() + gap;
    horizOnlyBottom.setPosition(x, y);
    stage.addActor(horizOnlyBottom);
    vertOnlyLeft = new Table();
    vertOnlyLeft.setSize(contWidth, contHeight);
    x = horizOnlyBottom.getX();
    y = horizOnlyBottom.getY() + horizOnlyBottom.getHeight() + gap;
    vertOnlyLeft.setPosition(x, y);
    stage.addActor(vertOnlyLeft);
    vertOnlyRight = new Table();
    vertOnlyRight.setSize(contWidth, contHeight);
    x = horizOnlyTop.getX();
    y = horizOnlyTop.getY() + horizOnlyTop.getHeight() + gap;
    vertOnlyRight.setPosition(x, y);
    stage.addActor(vertOnlyRight);
    Table bottomLeftTable = new Table();
    Table bottomRightTable = new Table();
    Table topLeftTable = new Table();
    Table topRightTable = new Table();
    Table horizOnlyTopTable = new Table();
    Table horizOnlyBottomTable = new Table();
    Table vertOnlyLeftTable = new Table();
    Table vertOnlyRightTable = new Table();
    final ScrollPane bottomLeftScroll = new ScrollPane(bottomLeftTable, skin);
    bottomLeftScroll.setScrollBarPositions(true, false);
    final ScrollPane bottomRightScroll = new ScrollPane(bottomRightTable, skin);
    bottomRightScroll.setScrollBarPositions(true, true);
    final ScrollPane topLeftScroll = new ScrollPane(topLeftTable, skin);
    topLeftScroll.setScrollBarPositions(false, false);
    final ScrollPane topRightScroll = new ScrollPane(topRightTable, skin);
    topRightScroll.setScrollBarPositions(false, true);
    final ScrollPane horizOnlyTopScroll = new ScrollPane(horizOnlyTopTable, skin);
    horizOnlyTopScroll.setScrollBarPositions(false, true);
    final ScrollPane horizOnlyBottomScroll = new ScrollPane(horizOnlyBottomTable, skin);
    horizOnlyBottomScroll.setScrollBarPositions(true, true);
    final ScrollPane vertOnlyLeftScroll = new ScrollPane(vertOnlyLeftTable, skin);
    vertOnlyLeftScroll.setScrollBarPositions(true, false);
    final ScrollPane vertOnlyRightScroll = new ScrollPane(vertOnlyRightTable, skin);
    vertOnlyRightScroll.setScrollBarPositions(true, true);
    ScrollPane[] panes = new ScrollPane[] { bottomLeftScroll, bottomRightScroll, topLeftScroll, topRightScroll, horizOnlyTopScroll, horizOnlyBottomScroll, vertOnlyLeftScroll, vertOnlyRightScroll };
    for (ScrollPane pane : panes) {
        scrollPanes.add(pane);
    }
    Table[] tables = new Table[] { bottomLeftTable, bottomRightTable, topLeftTable, topRightTable, horizOnlyTopTable, horizOnlyBottomTable, vertOnlyLeftTable, vertOnlyRightTable };
    for (Table t : tables) t.defaults().expandX().fillX();
    horizOnlyTopTable.add(new Label("HORIZONTAL-ONLY-TOP verify HORIZONTAL scroll bar is on the TOP and properly aligned", skin)).row();
    horizOnlyTopTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
    horizOnlyBottomTable.add(new Label("HORIZONTAL-ONLY-BOTTOM verify HORIZONTAL scroll bar is on the BOTTOM and properly aligned", skin)).row();
    horizOnlyBottomTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
    for (int i = 0; i < 12; i++) {
        bottomLeftTable.add(new Label(i + " BOTTOM-LEFT verify scroll bars are on the BOTTOM and the LEFT, and are properly aligned", skin)).row();
        bottomLeftTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
        bottomRightTable.add(new Label(i + " BOTTOM-RIGHT verify scroll bars are on the BOTTOM and the RIGHT, and are properly aligned", skin)).row();
        bottomRightTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
        topLeftTable.add(new Label(i + " TOP-LEFT verify scroll bars are on the TOP and the LEFT, and are properly aligned", skin)).row();
        topLeftTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
        topRightTable.add(new Label(i + " TOP-RIGHT verify scroll bars are on the TOP and the RIGHT, and are properly aligned", skin)).row();
        topRightTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
        vertOnlyLeftTable.add(new Label("VERT-ONLY-LEFT", skin)).row();
        vertOnlyLeftTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
        vertOnlyRightTable.add(new Label("VERT-ONLY-RIGHT", skin)).row();
        vertOnlyRightTable.add(new Image(skin.getDrawable("default-rect"))).height(20).row();
    }
    bottomLeft.add(bottomLeftScroll).expand().fill().colspan(4);
    bottomRight.add(bottomRightScroll).expand().fill().colspan(4);
    topLeft.add(topLeftScroll).expand().fill().colspan(4);
    topRight.add(topRightScroll).expand().fill().colspan(4);
    horizOnlyTop.add(horizOnlyTopScroll).expand().fill().colspan(4);
    horizOnlyBottom.add(horizOnlyBottomScroll).expand().fill().colspan(4);
    vertOnlyLeft.add(vertOnlyLeftScroll).expand().fill().colspan(4);
    vertOnlyRight.add(vertOnlyRightScroll).expand().fill().colspan(4);
    for (ScrollPane pane : scrollPanes) {
        pane.setFadeScrollBars(doFade);
        pane.setScrollbarsOnTop(doOnTop);
    }
}
Also used : TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Actor(com.badlogic.gdx.scenes.scene2d.Actor) Stage(com.badlogic.gdx.scenes.scene2d.Stage) Skin(com.badlogic.gdx.scenes.scene2d.ui.Skin) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 10 with ScrollPane

use of com.badlogic.gdx.scenes.scene2d.ui.ScrollPane in project libgdx by libgdx.

the class ScrollPaneTest method create.

public void create() {
    stage = new Stage();
    Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
    Gdx.input.setInputProcessor(stage);
    // Gdx.graphics.setVSync(false);
    container = new Table();
    stage.addActor(container);
    container.setFillParent(true);
    Table table = new Table();
    // table.debug();
    final ScrollPane scroll = new ScrollPane(table, skin);
    InputListener stopTouchDown = new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            event.stop();
            return false;
        }
    };
    table.pad(10).defaults().expandX().space(4);
    for (int i = 0; i < 100; i++) {
        table.row();
        table.add(new Label(i + "uno", skin)).expandX().fillX();
        TextButton button = new TextButton(i + "dos", skin);
        table.add(button);
        button.addListener(new ClickListener() {

            public void clicked(InputEvent event, float x, float y) {
                System.out.println("click " + x + ", " + y);
            }
        });
        Slider slider = new Slider(0, 100, 1, false, skin);
        // Stops touchDown events from propagating to the FlickScrollPane.
        slider.addListener(stopTouchDown);
        table.add(slider);
        table.add(new Label(i + "tres long0 long1 long2 long3 long4 long5 long6 long7 long8 long9 long10 long11 long12", skin));
    }
    final TextButton flickButton = new TextButton("Flick Scroll", skin.get("toggle", TextButtonStyle.class));
    flickButton.setChecked(true);
    flickButton.addListener(new ChangeListener() {

        public void changed(ChangeEvent event, Actor actor) {
            scroll.setFlickScroll(flickButton.isChecked());
        }
    });
    final TextButton fadeButton = new TextButton("Fade Scrollbars", skin.get("toggle", TextButtonStyle.class));
    fadeButton.setChecked(true);
    fadeButton.addListener(new ChangeListener() {

        public void changed(ChangeEvent event, Actor actor) {
            scroll.setFadeScrollBars(fadeButton.isChecked());
        }
    });
    final TextButton smoothButton = new TextButton("Smooth Scrolling", skin.get("toggle", TextButtonStyle.class));
    smoothButton.setChecked(true);
    smoothButton.addListener(new ChangeListener() {

        public void changed(ChangeEvent event, Actor actor) {
            scroll.setSmoothScrolling(smoothButton.isChecked());
        }
    });
    final TextButton onTopButton = new TextButton("Scrollbars On Top", skin.get("toggle", TextButtonStyle.class));
    onTopButton.addListener(new ChangeListener() {

        public void changed(ChangeEvent event, Actor actor) {
            scroll.setScrollbarsOnTop(onTopButton.isChecked());
        }
    });
    container.add(scroll).expand().fill().colspan(4);
    container.row().space(10).padBottom(10);
    container.add(flickButton).right().expandX();
    container.add(onTopButton);
    container.add(smoothButton);
    container.add(fadeButton).left().expandX();
}
Also used : TextButton(com.badlogic.gdx.scenes.scene2d.ui.TextButton) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) Slider(com.badlogic.gdx.scenes.scene2d.ui.Slider) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) ScrollPane(com.badlogic.gdx.scenes.scene2d.ui.ScrollPane) Actor(com.badlogic.gdx.scenes.scene2d.Actor) Stage(com.badlogic.gdx.scenes.scene2d.Stage) TextButtonStyle(com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle) Skin(com.badlogic.gdx.scenes.scene2d.ui.Skin) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Aggregations

ScrollPane (com.badlogic.gdx.scenes.scene2d.ui.ScrollPane)15 Table (com.badlogic.gdx.scenes.scene2d.ui.Table)11 Stage (com.badlogic.gdx.scenes.scene2d.Stage)9 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)9 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)9 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)9 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)6 Actor (com.badlogic.gdx.scenes.scene2d.Actor)5 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)5 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)5 List (com.badlogic.gdx.scenes.scene2d.ui.List)4 Window (com.badlogic.gdx.scenes.scene2d.ui.Window)4 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)3 Slider (com.badlogic.gdx.scenes.scene2d.ui.Slider)3 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)3 Texture (com.badlogic.gdx.graphics.Texture)2 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)2 Button (com.badlogic.gdx.scenes.scene2d.ui.Button)2 CheckBox (com.badlogic.gdx.scenes.scene2d.ui.CheckBox)2 ImageButton (com.badlogic.gdx.scenes.scene2d.ui.ImageButton)2