use of com.badlogic.gdx.scenes.scene2d.ui.Table in project libgdx by libgdx.
the class Scene2dTest method create.
public void create() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
final TextureRegion region = new TextureRegion(new Texture("data/badlogic.jpg"));
final Actor actor = new Actor() {
public void draw(Batch batch, float parentAlpha) {
Color color = getColor();
batch.setColor(color.r, color.g, color.b, parentAlpha);
batch.draw(region, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation());
}
};
actor.setBounds(15, 15, 100, 100);
actor.setOrigin(50, 50);
stage.addActor(actor);
actor.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
System.out.println("down");
return true;
}
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
System.out.println("up " + event.getTarget());
}
});
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
VerticalGroup g = new VerticalGroup().space(5).reverse().pad(5).fill();
for (int i = 0; i < 10; i++) g.addActor(new TextButton("button " + i, skin));
g.addActor(new TextButton("longer button", skin));
Table table = new Table().debug();
table.add(g);
table.pack();
table.setPosition(5, 100);
stage.addActor(table);
HorizontalGroup h = new HorizontalGroup().space(5).reverse().pad(5).fill();
for (int i = 0; i < 5; i++) h.addActor(new TextButton("button " + i, skin));
h.addActor(new TextButton("some taller\nbutton", skin));
table = new Table().debug();
table.add(h);
table.pack();
table.setPosition(130, 100);
stage.addActor(table);
table.toFront();
final TextButton button = new TextButton("Fancy Background", skin);
// button.addListener(new ClickListener() {
// public void clicked (InputEvent event, float x, float y) {
// System.out.println("click! " + x + " " + y);
// }
// });
button.addListener(new ActorGestureListener() {
public boolean longPress(Actor actor, float x, float y) {
System.out.println("long press " + x + ", " + y);
return true;
}
public void fling(InputEvent event, float velocityX, float velocityY, int button) {
System.out.println("fling " + velocityX + ", " + velocityY);
}
public void zoom(InputEvent event, float initialDistance, float distance) {
System.out.println("zoom " + initialDistance + ", " + distance);
}
public void pan(InputEvent event, float x, float y, float deltaX, float deltaY) {
event.getListenerActor().moveBy(deltaX, deltaY);
if (deltaX < 0)
System.out.println("panning " + deltaX + ", " + deltaY + " " + event.getTarget());
}
});
// button.addListener(new ChangeListener() {
// public void changed (ChangeEvent event, Actor actor) {
// // event.cancel();
// }
// });
button.setPosition(50, 50);
stage.addActor(button);
// List select = new List(skin);
// select.setBounds(200, 200, 100, 100);
// select.setItems(new Object[] {1, 2, 3, 4, 5});
// stage.addActor(select);
// stage.addListener(new ChangeListener() {
// public void changed (ChangeEvent event, Actor actor) {
// System.out.println(actor);
// }
// });
meow.setDuration(2);
actor.addAction(forever(sequence(moveBy(50, 0, 2), moveBy(-50, 0, 2), run(new Runnable() {
public void run() {
actor.setZIndex(0);
}
}))));
// actor.addAction(parallel(rotateBy(90, 2), rotateBy(90, 2)));
// actor.addAction(parallel(moveTo(250, 250, 2, elasticOut), color(RED, 6), delay(0.5f), rotateTo(180, 5, swing)));
// actor.addAction(forever(sequence(scaleTo(2, 2, 0.5f), scaleTo(1, 1, 0.5f), delay(0.5f))));
patch = new TiledDrawable(skin.getRegion("default-round"));
Window window = new Window("Moo", skin);
Label lbl = new Label("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", skin);
lbl.setWrap(true);
window.row();
window.add(lbl).width(400);
window.pack();
window.pack();
stage.addActor(window);
ImageTextButtonStyle style = new ImageTextButtonStyle(skin.get("default", TextButtonStyle.class));
style.imageUp = skin.getDrawable("default-round");
ImageTextButton buttonLeft = new ImageTextButton("HI IM LEFT", style);
ImageTextButton buttonRight = new ImageTextButton("HI IM RIGHT", style) {
{
clearChildren();
add(getLabel());
add(getImage());
}
};
CheckBox checkBoxLeft = new CheckBox("HI IM LEFT", skin, "default");
CheckBox checkBoxRight = new CheckBox("HI IM RIGHT", skin, "default") {
{
clearChildren();
add(getLabel());
add(getImage());
}
};
buttonLeft.setPosition(300, 400);
buttonRight.setPosition(300, 370);
checkBoxLeft.setPosition(150, 400);
checkBoxRight.setPosition(150, 370);
stage.addActor(buttonLeft);
stage.addActor(buttonRight);
stage.addActor(checkBoxLeft);
stage.addActor(checkBoxRight);
buttonLeft.debug();
buttonRight.debug();
checkBoxLeft.debug();
checkBoxRight.debug();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table 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);
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table 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);
}
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table 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();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project libgdx by libgdx.
the class TreeTest method create.
public void create() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Table table = new Table();
table.setFillParent(true);
stage.addActor(table);
final Tree tree = new Tree(skin);
final Node moo1 = new Node(new TextButton("moo1", skin));
final Node moo2 = new Node(new TextButton("moo2", skin));
final Node moo3 = new Node(new TextButton("moo3", skin));
final Node moo4 = new Node(new TextButton("moo4", skin));
final Node moo5 = new Node(new TextButton("moo5", skin));
tree.add(moo1);
tree.add(moo2);
moo2.add(moo3);
moo3.add(moo4);
tree.add(moo5);
moo5.getActor().addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
tree.remove(moo4);
}
});
table.add(tree).fill().expand();
}
Aggregations