use of com.badlogic.gdx.scenes.scene2d.ui.Label 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.Label 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.Label 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.Label in project libgdx by libgdx.
the class UITest method create.
@Override
public void create() {
skin = new Skin(Gdx.files.internal("data/uiskin.json"));
texture1 = new Texture(Gdx.files.internal("data/badlogicsmall.jpg"));
texture2 = new Texture(Gdx.files.internal("data/badlogic.jpg"));
TextureRegion image = new TextureRegion(texture1);
TextureRegion imageFlipped = new TextureRegion(image);
imageFlipped.flip(true, true);
TextureRegion image2 = new TextureRegion(texture2);
// stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false, new PolygonSpriteBatch());
stage = new Stage(new ScreenViewport());
Gdx.input.setInputProcessor(stage);
// Group.debug = true;
ImageButtonStyle style = new ImageButtonStyle(skin.get(ButtonStyle.class));
style.imageUp = new TextureRegionDrawable(image);
style.imageDown = new TextureRegionDrawable(imageFlipped);
ImageButton iconButton = new ImageButton(style);
Button buttonMulti = new TextButton("Multi\nLine\nToggle", skin, "toggle");
Button imgButton = new Button(new Image(image), skin);
Button imgToggleButton = new Button(new Image(image), skin, "toggle");
Label myLabel = new Label("this is some text.", skin);
myLabel.setWrap(true);
Table t = new Table();
t.row();
t.add(myLabel);
t.layout();
final CheckBox checkBox = new CheckBox(" Continuous rendering", skin);
checkBox.setChecked(true);
final Slider slider = new Slider(0, 10, 1, false, skin);
slider.setAnimateDuration(0.3f);
TextField textfield = new TextField("", skin);
textfield.setMessageText("Click here!");
textfield.setAlignment(Align.center);
final SelectBox selectBox = new SelectBox(skin);
selectBox.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
System.out.println(selectBox.getSelected());
}
});
selectBox.setItems("Android1", "Windows1 long text in item", "Linux1", "OSX1", "Android2", "Windows2", "Linux2", "OSX2", "Android3", "Windows3", "Linux3", "OSX3", "Android4", "Windows4", "Linux4", "OSX4", "Android5", "Windows5", "Linux5", "OSX5", "Android6", "Windows6", "Linux6", "OSX6", "Android7", "Windows7", "Linux7", "OSX7");
selectBox.setSelected("Linux6");
Image imageActor = new Image(image2);
ScrollPane scrollPane = new ScrollPane(imageActor);
List list = new List(skin);
list.setItems(listEntries);
list.getSelection().setMultiple(true);
list.getSelection().setRequired(false);
// list.getSelection().setToggle(true);
ScrollPane scrollPane2 = new ScrollPane(list, skin);
scrollPane2.setFlickScroll(false);
SplitPane splitPane = new SplitPane(scrollPane, scrollPane2, false, skin, "default-horizontal");
fpsLabel = new Label("fps:", skin);
// configures an example of a TextField in password mode.
final Label passwordLabel = new Label("Textfield in password mode: ", skin);
final TextField passwordTextField = new TextField("", skin);
passwordTextField.setMessageText("password");
passwordTextField.setPasswordCharacter('*');
passwordTextField.setPasswordMode(true);
buttonMulti.addListener(new TextTooltip("This is a tooltip! This is a tooltip! This is a tooltip! This is a tooltip! This is a tooltip! This is a tooltip!", skin));
Table tooltipTable = new Table(skin);
tooltipTable.pad(10).background("default-round");
tooltipTable.add(new TextButton("Fancy tooltip!", skin));
imgButton.addListener(new Tooltip(tooltipTable));
// window.debug();
Window window = new Window("Dialog", skin);
window.getTitleTable().add(new TextButton("X", skin)).height(window.getPadTop());
window.setPosition(0, 0);
window.defaults().spaceBottom(10);
window.row().fill().expandX();
window.add(iconButton);
window.add(buttonMulti);
window.add(imgButton);
window.add(imgToggleButton);
window.row();
window.add(checkBox);
window.add(slider).minWidth(100).fillX().colspan(3);
window.row();
window.add(selectBox).maxWidth(100);
window.add(textfield).minWidth(100).expandX().fillX().colspan(3);
window.row();
window.add(splitPane).fill().expand().colspan(4).maxHeight(200);
window.row();
window.add(passwordLabel).colspan(2);
window.add(passwordTextField).minWidth(100).expandX().fillX().colspan(2);
window.row();
window.add(fpsLabel).colspan(4);
window.pack();
// stage.addActor(new Button("Behind Window", skin));
stage.addActor(window);
textfield.setTextFieldListener(new TextFieldListener() {
public void keyTyped(TextField textField, char key) {
if (key == '\n')
textField.getOnscreenKeyboard().show(false);
}
});
slider.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
Gdx.app.log("UITest", "slider: " + slider.getValue());
}
});
iconButton.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
new Dialog("Some Dialog", skin, "dialog") {
protected void result(Object object) {
System.out.println("Chosen: " + object);
}
}.text("Are you enjoying this demo?").button("Yes", true).button("No", false).key(Keys.ENTER, true).key(Keys.ESCAPE, false).show(stage);
}
});
checkBox.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
Gdx.graphics.setContinuousRendering(checkBox.isChecked());
}
});
}
use of com.badlogic.gdx.scenes.scene2d.ui.Label in project libgdx by libgdx.
the class TableLayoutTest method create.
public void create() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Label nameLabel = new Label("Name:", skin);
TextField nameText = new TextField("", skin);
Label addressLabel = new Label("Address:", skin);
TextField addressText = new TextField("", skin);
Table table = new Table();
stage.addActor(table);
table.setSize(260, 195);
table.setPosition(190, 142);
// table.align(Align.right | Align.bottom);
table.debug();
TextureRegion upRegion = skin.getRegion("default-slider-knob");
TextureRegion downRegion = skin.getRegion("default-slider-knob");
BitmapFont buttonFont = skin.getFont("default-font");
TextButton button = new TextButton("Button 1", skin);
button.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
System.out.println("touchDown 1");
return false;
}
});
table.add(button);
// table.setTouchable(Touchable.disabled);
Table table2 = new Table();
stage.addActor(table2);
table2.setFillParent(true);
table2.bottom();
TextButton button2 = new TextButton("Button 2", skin);
button2.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
System.out.println("2!");
}
});
button2.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
System.out.println("touchDown 2");
return false;
}
});
table2.add(button2);
}
Aggregations