use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class DialogDrawables method refreshDrawableDisplay.
private void refreshDrawableDisplay() {
contentGroup.clear();
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 || customProperty != 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
if (!drawable.customized && !drawable.tiled) {
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 && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("New Tinted Drawable", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else {
table.add();
}
// swatches
if (!drawable.customized && !drawable.tiled) {
Button 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 && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("Tinted Drawable from Colors", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else {
table.add();
}
// tiles button (NOT FOR TINTS OR CUSTOM DRAWABLES)
if (!drawable.customized && drawable.tint == null && drawable.tintName == null) {
;
Button button = new Button(getSkin(), "tiles");
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
tiledDrawableDialog(drawable);
event.setBubbles(false);
}
});
button.addListener(fixDuplicateTouchListener);
if (property == null && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("Tiled Drawable", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else {
table.add();
}
// tiled settings
if (drawable.tiled) {
Button button = new Button(getSkin(), "settings-small");
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
tiledDrawableSettingsDialog(drawable);
event.setBubbles(false);
}
});
button.addListener(fixDuplicateTouchListener);
if (property == null && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("Tiled Drawable Settings", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else // rename (ONLY FOR TINTS)
if (drawable.tint != null || drawable.tintName != null) {
Button 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 && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("Rename Tinted Drawable", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else // settings for custom drawables
if (drawable.customized) {
Button button = new Button(getSkin(), "settings-small");
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
renameCustomDrawableDialog(drawable);
event.setBubbles(false);
}
});
button.addListener(fixDuplicateTouchListener);
if (property == null && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button);
TextTooltip toolTip = new TextTooltip("Rename Custom Drawable", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
} else {
table.add();
}
// delete
Button 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 && customProperty == null) {
button.addListener(main.getHandListener());
}
table.add(button).expandX().right();
TextTooltip toolTip = new TextTooltip("Delete Drawable", main.getTooltipManager(), getSkin());
button.addListener(toolTip);
// 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(5).grow();
// name
table.row();
Label label = new Label(drawable.name, getSkin());
label.setEllipsis("...");
label.setEllipsis(true);
label.setAlignment(Align.center);
table.add(label).colspan(5).growX().width(sizes[MathUtils.floor(zoomSlider.getValue())]);
// Tooltip
toolTip = new TextTooltip(drawable.name, main.getTooltipManager(), getSkin());
label.addListener(toolTip);
}
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class RootTable method addFileMenu.
private void addFileMenu() {
Table table = new Table();
table.defaults().padRight(2.0f);
add(table).expandX().left().padTop(2.0f);
MenuButtonGroup menuButtonGroup = new MenuButtonGroup();
fileMenu = new MenuButton("File", getSkin());
fileMenu.addListener(main.getHandListener());
fileMenu.getMenuList().addListener(main.getHandListener());
menuButtonGroup.add(fileMenu);
table.add(fileMenu).padLeft(2.0f);
recentFilesButton = new MenuItem("Recent Files...", RootTableEnum.RECENT_FILES);
fileMenu.setItems(new MenuItem("New", RootTableEnum.NEW), new MenuItem("Open...", RootTableEnum.OPEN), recentFilesButton, new MenuItem("Save", RootTableEnum.SAVE), new MenuItem("Save As...", RootTableEnum.SAVE_AS), new MenuItem("Welcome Screen...", RootTableEnum.WELCOME), new MenuItem("Import...", RootTableEnum.IMPORT), new MenuItem("Export...", RootTableEnum.EXPORT), new MenuItem("Exit", RootTableEnum.EXIT));
if (Utils.isMac()) {
fileMenu.setShortcuts("⌘+N", "⌘+O", null, "⌘+S", "Shift+⌘+S", null, null, "⌘+E");
} else {
fileMenu.setShortcuts("Ctrl+N", "Ctrl+O", null, "Ctrl+S", "Shift+Ctrl+S", null, null, "Ctrl+E");
}
fileMenu.addListener(new MenuBarListener(fileMenu));
editMenu = new MenuButton("Edit", getSkin());
editMenu.addListener(main.getHandListener());
editMenu.getMenuList().addListener(main.getHandListener());
menuButtonGroup.add(editMenu);
table.add(editMenu);
undoButton = new MenuItem("Undo", RootTableEnum.UNDO);
redoButton = new MenuItem("Redo", RootTableEnum.REDO);
editMenu.setItems(undoButton, redoButton);
if (Utils.isMac()) {
editMenu.setShortcuts("⌘+Z", "⌘+Y");
} else {
editMenu.setShortcuts("Ctrl+Z", "Ctrl+Y");
}
editMenu.setDisabled(undoButton, true);
editMenu.setDisabled(redoButton, true);
editMenu.addListener(new MenuBarListener(editMenu));
MenuButton<MenuItem> menuButton = new MenuButton("Project", getSkin());
menuButton.addListener(main.getHandListener());
menuButton.getMenuList().addListener(main.getHandListener());
menuButtonGroup.add(menuButton);
table.add(menuButton);
menuButton.setItems(new MenuItem("Settings...", RootTableEnum.SETTINGS), new MenuItem("Colors...", RootTableEnum.COLORS), new MenuItem("Fonts...", RootTableEnum.FONTS), new MenuItem("Drawables...", RootTableEnum.DRAWABLES), new MenuItem("Refresh Atlas", RootTableEnum.REFRESH_ATLAS));
menuButton.setShortcuts(null, null, null, null, "F5");
menuButton.addListener(new MenuBarListener(menuButton));
menuButton = new MenuButton("Help", getSkin());
menuButton.addListener(main.getHandListener());
menuButton.getMenuList().addListener(main.getHandListener());
menuButtonGroup.add(menuButton);
table.add(menuButton);
menuButton.setItems(new MenuItem("About...", RootTableEnum.ABOUT));
menuButton.addListener(new MenuBarListener(menuButton));
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class LobbyScreen method initUI.
@Override
protected void initUI() {
// backgroundTexture = assetManager.get(BACKGROUND_IMAGE_PATH);
Sound clickSound = assetManager.get(BUTTON_SOUND);
// mainTable.setBackground(skin.getDrawable("parchment-small"));
ImageTextButton leaveButton = new ImageTextButton("Verlassen", skin);
leaveButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
game.getNetworkHandler().disconnect();
game.pushScreen("mainMenu");
return true;
}
});
NetworkHandler netHandler = game.getNetworkHandler();
readyUpLobbyButton = new ImageTextButton("Bereit", skin);
if (netHandler.isHost()) {
readyUpLobbyButton.setDisabled(true);
readyUpLobbyButton.setText("Spiel starten");
}
readyUpLobbyButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
getLocalPlayer().toggleReady();
netHandler.onLocalPlayerChange(getLocalPlayer());
updateLobbyUI();
return true;
}
});
Table playerTable = new Table();
Table settingsTable = new Table();
Table buttonTable = new Table();
Table chatTable = new Table();
// settings table + player table
buttonTable.add(readyUpLobbyButton).bottom().padBottom(20).row();
buttonTable.add(leaveButton);
Table chatInputTable = new Table();
ImageTextButton sendButton = new ImageTextButton("Senden", skin);
TextField chatInputField = new TextField("", skin);
chatInputField.setTextFieldListener(new TextFieldListener() {
@Override
public void keyTyped(TextField textField, char key) {
if (!textField.getText().isEmpty() && (key == (char) 13)) {
// Enter
clickSound.play(1F);
netHandler.sendChatMessage(chatInputField.getText());
onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
chatInputField.setText("");
}
}
});
sendButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
if (!chatInputField.getText().isEmpty()) {
clickSound.play(1F);
netHandler.sendChatMessage(chatInputField.getText());
onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
chatInputField.setText("");
}
return true;
}
});
messagesArea = new TextArea("", skin);
messagesArea.setDisabled(true);
ScrollPane messagesPane = new ScrollPane(messagesArea);
chatInputTable.add(chatInputField).left().width(325).padRight(15);
chatInputTable.add(sendButton);
chatTable.debug();
chatTable.add(messagesPane).height(125).width(425).top().row();
chatTable.add(chatInputTable).left().padTop(10).width(425).bottom();
playerSlots = new Table[6];
playerSlots[0] = new Table();
playerSlots[1] = new Table();
playerSlots[2] = new Table();
playerSlots[3] = new Table();
playerSlots[4] = new Table();
playerSlots[5] = new Table();
playerTable.add(playerSlots[0]).height(25).width(425).row();
playerTable.add(playerSlots[1]).height(25).width(425).row();
playerTable.add(playerSlots[2]).height(25).width(425).row();
playerTable.add(playerSlots[3]).height(25).width(425).row();
playerTable.add(playerSlots[4]).height(25).width(425).row();
playerTable.add(playerSlots[5]).height(25).width(425).row();
mainTable.add(playerTable).width(425).height(155);
mainTable.add(settingsTable).width(155).row();
mainTable.add(chatTable).height(165).bottom();
mainTable.add(buttonTable).height(165);
mainTable.setDebug(true);
// updateLobbyUI();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class ServerBrowserScreen method initUI.
@Override
protected void initUI() {
backgroundTexture = assetManager.get(BACKGROUND_IMAGE_PATH);
Sound clickSound = assetManager.get(BUTTON_SOUND);
// mainTable.setBackground(skin.getDrawable("parchment-small"));
Table serverTable = new Table();
ScrollPane pane = new ScrollPane(serverTable);
// TODO gegen echte Server-Daten austauschen
String ip = "127.0.0.1";
int port = 12345;
ImageTextButton joinButton = new ImageTextButton("Beitreten", skin);
joinButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
game.getNetworkHandler().setUpConnectionAsClient(ip, port);
connectingDialog = new Dialog("Verbinden...", skin);
connectingDialog.text("Spiel beitreten...");
connectingDialog.show(stage);
return true;
}
});
ImageTextButton backButton = new ImageTextButton("Zur�ck", skin);
backButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
game.pushScreen("mainMenu");
return true;
}
});
ImageTextButton createLobbyButton = new ImageTextButton("Spiel erstellen", skin);
createLobbyButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
game.pushScreen("lobbyCreation");
return true;
}
});
ImageTextButton directConnectButton = new ImageTextButton("Direkt verbinden", skin);
directConnectButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
TextField portInputField = new TextField("55789", skin);
portInputField.setTextFieldFilter(new TextField.TextFieldFilter.DigitsOnlyFilter());
TextField ipInputField = new TextField("127.0.0.1", skin);
Dialog dialog = new Dialog("Direkt verbinden", skin) {
public void result(Object obj) {
if ((Boolean) obj) {
game.getNetworkHandler().setUpConnectionAsClient(ipInputField.getText(), Integer.valueOf(portInputField.getText()));
connectingDialog = new Dialog("Verbinden...", skin);
connectingDialog.text("Spiel beitreten...");
connectingDialog.show(stage);
}
}
};
dialog.text("IP: ").button("Zur�ck", false).button("Verbinden", true).key(Keys.ENTER, true).key(Keys.ESCAPE, false);
dialog.getContentTable().add(ipInputField).width(170).row();
dialog.getContentTable().add(new Label("Port:", skin));
dialog.getContentTable().add(portInputField).width(90).left();
dialog.show(stage);
return true;
}
});
Table buttonTable = new Table();
buttonTable.add(backButton);
buttonTable.add(createLobbyButton).padLeft(55);
buttonTable.add(directConnectButton).padLeft(55);
serverTable.left().top().add(new Image((Texture) assetManager.get(TICK_IMAGE_PATH))).padRight(15).padLeft(12);
serverTable.add(new Label("Spiel 2", skin)).expandX();
serverTable.add(joinButton).padRight(12);
serverTable.row().padTop(20);
mainTable.add(serverTable).width(580).height(405).row();
mainTable.add(buttonTable).height(50).bottom();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class BaseUIScreen method show.
@Override
public void show() {
super.show();
stage = new Stage(new ScreenViewport());
mainTable = new Table();
stage.addActor(mainTable);
mainTable.setFillParent(true);
mainTable.setDebug((boolean) game.showDebugStuff());
game.getInputMultiplexer().addProcessor(stage);
initUI();
}
Aggregations