use of com.ray3k.skincomposer.Main in project skin-composer by raeleus.
the class DesktopLauncher method main.
public static void main(String[] arg) {
Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
config.setResizable(true);
config.useVsync(true);
config.setWindowedMode(800, 800);
DesktopLauncher desktopLauncher = new DesktopLauncher();
config.setWindowListener(desktopLauncher);
config.setTitle("Skin Composer - New Project*");
config.setWindowSizeLimits(675, 400, -1, -1);
config.setWindowIcon("logo-16.png", "logo-32.png", "logo-48.png", "logo.png");
Main main = new Main();
main.setDesktopWorker(desktopLauncher);
if (!Utils.isWindows()) {
desktopLauncher.closeSplashScreen();
}
try {
new Lwjgl3Application(main, config);
} catch (Exception e) {
e.printStackTrace();
FileWriter fw = null;
try {
fw = new FileWriter(Gdx.files.local("temp/java-stacktrace.txt").file(), true);
PrintWriter pw = new PrintWriter(fw);
e.printStackTrace(pw);
pw.close();
fw.close();
int choice = JOptionPane.showConfirmDialog(null, "Exception occurred. See error log?", "Skin Composer Exception!", JOptionPane.YES_NO_OPTION);
if (choice == 0) {
Utils.openFileExplorer(Gdx.files.local("temp/java-stacktrace.txt"));
}
} catch (Exception ex) {
}
}
}
use of com.ray3k.skincomposer.Main in project skin-composer by raeleus.
the class DialogDrawables method tiledDrawableSettingsDialog.
private void tiledDrawableSettingsDialog(String title, DrawableData drawable, boolean newDrawable) {
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(title, getSkin(), "bg") {
@Override
protected void result(Object object) {
super.result(object);
if (object instanceof Boolean && (boolean) object == true) {
Button button = this.findActor("color-selector");
tiledDrawableSettings(drawable, (ColorData) button.getUserObject(), (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);
var label = new Label("Please enter a name for the TiledDrawable: ", getSkin());
label.setName("name-label");
tileDialog.getContentTable().add(label);
tileDialog.button("OK", true);
tileDialog.button("Cancel", false).key(Keys.ESCAPE, false);
TextButton okButton = (TextButton) tileDialog.getButtonTable().getCells().first().getActor();
okButton.addListener(handListener);
tileDialog.getButtonTable().getCells().get(1).getActor().addListener(handListener);
tileDialog.getContentTable().row();
var table = new Table();
table.defaults().space(10.0f);
tileDialog.getContentTable().add(table);
textField.setText(drawable.name);
textField.selectAll();
table.add(textField).growX().colspan(2);
table.row();
label = new Label("Color:", getSkin());
label.setName("color-label");
table.add(label).right();
var subTable = new Table();
subTable.setBackground(getSkin().getDrawable("dark-gray"));
table.add(subTable).growX().height(35);
var button = new Button(getSkin(), "color-selector");
button.setName("color-selector");
if (drawable.tintName != null) {
button.setColor(jsonData.getColorByName(drawable.tintName).color);
} else {
label = new Label("none", getSkin());
button.add(label);
}
button.setUserObject(jsonData.getColorByName(drawable.tintName));
subTable.add(button).grow().pad(3);
button.addListener(handListener);
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent ce, Actor actor) {
DialogColors dialog = new DialogColors(main, (StyleProperty) null, true, (colorData, pressedCancel) -> {
Button button = tileDialog.findActor("color-selector");
if (colorData != null) {
button.setColor(colorData.color);
button.setUserObject(colorData);
button.clearChildren();
} else {
if (button.getUserObject() != null) {
button.setColor(((ColorData) button.getUserObject()).color);
} else {
button.setColor(Color.WHITE);
}
}
okButton.setDisabled(!validateTiledDrawable(tileDialog, textField.getText(), drawable.name, (ColorData) button.getUserObject(), newDrawable));
});
dialog.setFillParent(true);
dialog.show(getStage());
dialog.refreshTable();
}
});
table.row();
label = new Label("MinWidth:", getSkin());
table.add(label).right();
minWidthSpinner.setValue(drawable.minWidth);
minWidthSpinner.setMinimum(0.0f);
table.add(minWidthSpinner).minWidth(150.0f);
minWidthSpinner.setTransversalPrevious(textField);
minWidthSpinner.setTransversalNext(minHeightSpinner.getTextField());
minWidthSpinner.getButtonMinus().addListener(handListener);
minWidthSpinner.getButtonPlus().addListener(handListener);
minWidthSpinner.getTextField().addListener(ibeamListener);
table.row();
label = new Label("MinHeight:", getSkin());
table.add(label).right();
minHeightSpinner.setValue(drawable.minHeight);
minHeightSpinner.setMinimum(0.0f);
table.add(minHeightSpinner).minWidth(150.0f);
minHeightSpinner.setTransversalPrevious(minWidthSpinner.getTextField());
minHeightSpinner.setTransversalNext(textField);
minHeightSpinner.getButtonMinus().addListener(handListener);
minHeightSpinner.getButtonPlus().addListener(handListener);
minHeightSpinner.getTextField().addListener(ibeamListener);
okButton.setDisabled(!validateTiledDrawable(tileDialog, textField.getText(), drawable.name, (ColorData) button.getUserObject(), newDrawable));
textField.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
Button button = tileDialog.findActor("color-selector");
okButton.setDisabled(!validateTiledDrawable(tileDialog, textField.getText(), drawable.name, (ColorData) button.getUserObject(), newDrawable));
}
});
textField.setTextFieldListener((TextField textField1, char c) -> {
if (c == '\n') {
if (!okButton.isDisabled()) {
Button button1 = tileDialog.findActor("color-selector");
tiledDrawableSettings(drawable, (ColorData) button1.getUserObject(), (float) minWidthSpinner.getValue(), (float) minHeightSpinner.getValue(), textField1.getText());
tileDialog.hide();
}
}
});
textField.addListener(ibeamListener);
tileDialog.show(getStage());
}
Aggregations