use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class DialogDrawables method tiledDrawableDialog.
private void tiledDrawableDialog(DrawableData drawable) {
DialogColors dialog = new DialogColors(main, (StyleProperty) null, true, (ColorData colorData) -> {
if (colorData != null) {
final Spinner minWidthSpinner = new Spinner(0.0f, 1.0f, true, Spinner.Orientation.HORIZONTAL, getSkin());
final Spinner minHeightSpinner = new Spinner(0.0f, 1.0f, true, Spinner.Orientation.HORIZONTAL, getSkin());
TextField textField = new TextField("", getSkin()) {
@Override
public void next(boolean up) {
if (up) {
getStage().setKeyboardFocus(minHeightSpinner.getTextField());
minHeightSpinner.getTextField().selectAll();
} else {
getStage().setKeyboardFocus(minWidthSpinner.getTextField());
minWidthSpinner.getTextField().selectAll();
}
}
};
Dialog tileDialog = new Dialog("New Tiled Drawable", getSkin(), "bg") {
@Override
protected void result(Object object) {
super.result(object);
if (object instanceof Boolean && (boolean) object == true) {
tiledDrawable(drawable, colorData, (float) minWidthSpinner.getValue(), (float) minHeightSpinner.getValue(), textField.getText());
}
getStage().setScrollFocus(scrollPane);
}
@Override
public Dialog show(Stage stage) {
Dialog dialog = super.show(stage);
stage.setKeyboardFocus(textField);
return dialog;
}
};
tileDialog.getTitleTable().padLeft(5.0f);
tileDialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
tileDialog.getButtonTable().padBottom(15.0f);
tileDialog.getContentTable().add(new Label("Please enter a name for the TiledDrawable: ", getSkin()));
tileDialog.button("OK", true);
tileDialog.button("Cancel", false).key(Keys.ESCAPE, false);
TextButton okButton = (TextButton) tileDialog.getButtonTable().getCells().first().getActor();
okButton.setDisabled(true);
okButton.addListener(main.getHandListener());
tileDialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
tileDialog.getContentTable().row();
textField.setText(drawable.name);
textField.selectAll();
tileDialog.getContentTable().add(textField);
Vector2 dimensions = Utils.imageDimensions(drawable.file);
tileDialog.getContentTable().row();
Table table = new Table();
table.defaults().space(10.0f);
tileDialog.getContentTable().add(table);
Label label = new Label("MinWidth:", getSkin());
table.add(label);
minWidthSpinner.setValue(dimensions.x);
minWidthSpinner.setMinimum(0.0f);
table.add(minWidthSpinner).minWidth(150.0f);
minWidthSpinner.setTransversalPrevious(textField);
minWidthSpinner.setTransversalNext(minHeightSpinner.getTextField());
table.row();
label = new Label("MinHeight:", getSkin());
table.add(label);
minHeightSpinner.setValue(dimensions.y);
minHeightSpinner.setMinimum(0.0f);
table.add(minHeightSpinner).minWidth(150.0f);
minHeightSpinner.setTransversalPrevious(minWidthSpinner.getTextField());
minHeightSpinner.setTransversalNext(textField);
textField.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
boolean disable = !DrawableData.validate(textField.getText());
if (!disable) {
for (DrawableData data : main.getAtlasData().getDrawables()) {
if (data.name.equals(textField.getText())) {
disable = true;
break;
}
}
}
okButton.setDisabled(disable);
}
});
textField.setTextFieldListener(new TextField.TextFieldListener() {
@Override
public void keyTyped(TextField textField, char c) {
if (c == '\n') {
if (!okButton.isDisabled()) {
tiledDrawable(drawable, colorData, (float) minWidthSpinner.getValue(), (float) minHeightSpinner.getValue(), textField.getText());
tileDialog.hide();
}
}
}
});
textField.addListener(main.getIbeamListener());
tileDialog.show(getStage());
}
});
dialog.setFillParent(true);
dialog.show(getStage());
dialog.refreshTable();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class DialogSettings method populate.
public void populate() {
Table t = getContentTable();
getButtonTable().padBottom(15.0f);
Label label = new Label("Settings", main.getSkin(), "title");
t.add(label).colspan(2);
t.row();
TextButton textButton = new TextButton("Open temp/log directory", main.getSkin());
textButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
try {
Utils.openFileExplorer(Gdx.files.local("temp/"));
} catch (Exception e) {
Gdx.app.error(getClass().getName(), "Error opening temp folder", e);
main.getDialogFactory().showDialogError("Folder Error...", "Error opening temp folder.\n\nOpen log?");
}
}
});
textButton.addListener(main.getHandListener());
t.add(textButton).colspan(2).padTop(15.0f);
t.row();
textButton = new TextButton("Open preferences directory", main.getSkin());
textButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
try {
Utils.openFileExplorer(Gdx.files.external(".prefs/"));
} catch (Exception e) {
Gdx.app.error(getClass().getName(), "Error opening preferences folder", e);
main.getDialogFactory().showDialogError("Folder Error...", "Error opening preferences folder.\n\nOpen log?");
}
}
});
textButton.addListener(main.getHandListener());
t.add(textButton).colspan(2);
if (main.getProjectData().areChangesSaved() && main.getProjectData().getSaveFile().exists()) {
t.row();
textButton = new TextButton("Open project/import directory", main.getSkin());
textButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
try {
Utils.openFileExplorer(main.getProjectData().getSaveFile().sibling(main.getProjectData().getSaveFile().nameWithoutExtension() + "_data"));
} catch (Exception e) {
Gdx.app.error(getClass().getName(), "Error opening project folder", e);
main.getDialogFactory().showDialogError("Folder Error...", "Error opening project folder\n\nOpen log?");
}
}
});
textButton.addListener(main.getHandListener());
t.add(textButton).colspan(2);
}
t.row();
textButton = new TextButton("Open texture packer settings file", main.getSkin());
textButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
try {
Utils.openFileExplorer(Gdx.files.local("texturepacker/defaults.json"));
} catch (Exception e) {
Gdx.app.error(getClass().getName(), "Error opening defaults.json", e);
main.getDialogFactory().showDialogError("File Error...", "Error opening defaults.json\n\nOpen log?");
}
}
});
textButton.addListener(main.getHandListener());
t.add(textButton).colspan(2);
t.row();
label = new Label("Max Number of Undos: ", main.getSkin());
t.add(label).right().padTop(10.0f);
Spinner spinner3 = new Spinner(main.getProjectData().getMaxUndos(), 1.0, true, Orientation.HORIZONTAL, getSkin());
spinner3.setMinimum(1.0);
spinner3.setMaximum(100.0);
spinner3.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
maxUndos = (int) spinner3.getValue();
}
});
spinner3.addListener(new FocusListener() {
@Override
public void keyboardFocusChanged(FocusListener.FocusEvent event, Actor actor, boolean focused) {
maxUndos = (int) spinner3.getValue();
}
});
spinner3.getTextField().addListener(main.getIbeamListener());
spinner3.getButtonMinus().addListener(main.getHandListener());
spinner3.getButtonPlus().addListener(main.getHandListener());
t.add(spinner3).minWidth(150.0f).left().padTop(10.0f);
t.row();
final ImageTextButton checkBox = new ImageTextButton("Keep resources relative?", getSkin(), "checkbox");
checkBox.setChecked(resourcesRelative);
checkBox.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
resourcesRelative = checkBox.isChecked();
}
});
t.add(checkBox).padTop(10.0f).colspan(2);
t.row();
final ImageTextButton welcomeCheckBox = new ImageTextButton("Show welcome screen?", getSkin(), "checkbox");
welcomeCheckBox.setChecked(allowingWelcome);
welcomeCheckBox.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
allowingWelcome = welcomeCheckBox.isChecked();
}
});
t.add(welcomeCheckBox).padTop(10.0f).colspan(2);
t.row();
label = new Label("Exported JSON Format:", getSkin());
t.add(label).right().padTop(10.0f);
final SelectBox<ExportFormat> exportFormatSelectBox = new SelectBox(getSkin());
exportFormatSelectBox.setItems(ExportFormat.MINIMAL, ExportFormat.JAVASCRIPT, ExportFormat.JSON);
exportFormatSelectBox.setSelected(exportFormat);
exportFormatSelectBox.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
exportFormat = exportFormatSelectBox.getSelected();
}
});
t.add(exportFormatSelectBox).left().padTop(10.0f);
;
button("OK", true);
button("Cancel", false);
getButtonTable().getCells().first().getActor().addListener(main.getHandListener());
getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
key(Keys.ESCAPE, false);
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class RootTable method addPreview.
private void addPreview(Table top, InputListener scrollPaneListener) {
Label label = new Label("Preview", getSkin(), "title");
top.add(label);
top.row();
previewTable = new Table(getSkin());
previewTable.setBackground("white");
ScrollPane scrollPane = new ScrollPane(previewTable, getSkin());
scrollPane.setFadeScrollBars(false);
scrollPane.setFlickScroll(false);
scrollPane.addListener(scrollPaneListener);
top.add(scrollPane).grow().padTop(10.0f).padBottom(10.0f);
refreshPreview();
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class RootTable method addStatusBar.
private void addStatusBar() {
Table table = new Table();
table.setBackground(getSkin().getDrawable("status-bar"));
add(table).growX();
statusLabel = new Label("", getSkin());
statusLabel.setColor(1.0f, 1.0f, 1.0f, 0.0f);
table.add(statusLabel).padLeft(10.0f);
Label label = new Label("ver. " + Main.VERSION + " RAY3K.WORDPRESS.COM © 2018 Raymond \"Raeleus\" Buckley", getSkin());
table.add(label).expandX().right().padRight(25.0f);
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project bladecoder-adventure-engine by bladecoder.
the class Editor method create.
@Override
public void create() {
Gdx.graphics.setWindowedMode(Math.max((int) (Gdx.graphics.getDisplayMode().width * 0.9), 1920 / 2), Math.max((int) (Gdx.graphics.getDisplayMode().height * 0.9), 1080 / 2));
skin = new BladeSkin(Gdx.files.internal(SKIN));
VisUI.load();
FileChooser.setDefaultPrefsName("com.bladecoder.engineeditor.filechooser");
/**
* STAGE SETUP **
*/
stage = new Stage(new ScreenViewport());
Gdx.input.setInputProcessor(stage);
setCtx();
Message.init(skin);
scnEditor = new ScnEditor(skin);
scnEditor.setBackground("background");
skin.getFont("default-font").getData().markupEnabled = true;
// RIGHT PANEL
ScenePanel scenePanel = new ScenePanel(skin);
ActorPanel actorPanel = new ActorPanel(skin);
Table rightPanel = new Table(skin);
rightPanel.top().left();
rightPanel.add(actorPanel).expand().fill().left();
rightPanel.setBackground("background");
SplitPane splitPaneRight = new SplitPane(scnEditor, rightPanel, false, skin);
splitPaneRight.setSplitAmount(0.75f);
// LEFT PANEL
ProjectPanel projectPanel = new ProjectPanel(skin);
Image img = new Image(Ctx.assetManager.getIcon("title"));
img.setScaling(Scaling.none);
img.setAlign(Align.left);
Table leftPanel = new Table(skin);
leftPanel.top().left().padLeft(10);
leftPanel.add(img).expand().fill().padBottom(20).padTop(20).padLeft(0).left();
leftPanel.row();
leftPanel.add(new ProjectToolbar(skin)).expandX().fill().left();
leftPanel.row();
leftPanel.add(projectPanel).expand().fill().left();
leftPanel.row();
leftPanel.add(scenePanel).expand().fill().left();
leftPanel.setBackground("background");
SplitPane splitPaneLeft = new SplitPane(leftPanel, splitPaneRight, false, skin);
splitPaneLeft.setFillParent(true);
splitPaneLeft.setSplitAmount(0.25f);
stage.addActor(splitPaneLeft);
// LOAD LAST OPEN PROJECT
String lastProject = Ctx.project.getEditorConfig().getProperty(Project.LAST_PROJECT_PROP, "");
if (!lastProject.isEmpty() && new File(lastProject).exists()) {
try {
EditorLogger.debug("Loading last project: " + lastProject);
Ctx.project.loadProject(new File(lastProject));
if (!Ctx.project.checkVersion()) {
new Dialog("Update Engine", skin) {
protected void result(Object object) {
if (((Boolean) object).booleanValue()) {
try {
Ctx.project.updateEngineVersion();
Message.showMsg(getStage(), "Project successfully updated.", 3);
} catch (IOException e1) {
String msg = "Something went wrong while updating the engine.\n\n" + e1.getClass().getSimpleName() + " - " + e1.getMessage();
Message.showMsgDialog(getStage(), "Error", msg);
EditorLogger.error(msg, e1);
}
}
}
}.text("Your game uses an old (" + Ctx.project.getProjectBladeEngineVersion() + ") Engine version. Do you want to update the engine?").button("Yes", true).button("No", false).key(Keys.ENTER, true).key(Keys.ESCAPE, false).show(stage);
}
} catch (Exception e) {
EditorLogger.error("Error loading last project.", e);
Ctx.project.closeProject();
}
}
stage.setScrollFocus(scnEditor.getScnWidget());
stage.setKeyboardFocus(scnEditor.getScnWidget());
// TooltipManager.getInstance().instant();
TooltipManager.getInstance().initialTime = 0.2f;
TooltipManager.getInstance().hideAll();
TooltipManager.getInstance().subsequentTime = 0.2f;
}
Aggregations