New UI window style

This commit is contained in:
fgnm
2020-07-06 17:31:56 +02:00
parent ca0d4698c5
commit 4610ff418d
24 changed files with 377 additions and 247 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+223 -223
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -440,7 +440,7 @@
close-window: {
down: button-red,
up: button-window-bg,
imageUp: icon-close-white
imageUp: icon-close-white,
},
close-panel: {
down: button-red,
Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 143 KiB

@@ -19,9 +19,14 @@
package games.rednblack.h2d.common;
import com.badlogic.gdx.scenes.scene2d.Action;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.kotcrab.vis.ui.VisUI;
import com.kotcrab.vis.ui.widget.VisDialog;
import com.kotcrab.vis.ui.widget.VisImageButton;
public class H2DDialog extends VisDialog {
protected final Skin skin;
@@ -29,6 +34,7 @@ public class H2DDialog extends VisDialog {
public H2DDialog(String title) {
super(title);
skin = VisUI.getSkin();
padTop(32);
}
@Override
@@ -43,6 +49,25 @@ public class H2DDialog extends VisDialog {
onDismiss();
}
@Override
public void addCloseButton() {
VisImageButton closeButton = new VisImageButton("close-window");
this.getTitleTable().add(closeButton).padRight(0);
closeButton.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
close();
}
});
closeButton.addListener(new ClickListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
event.cancel();
return true;
}
});
}
@Override
protected void close () {
super.close();
@@ -48,10 +48,17 @@ public class UIDraggablePanel extends H2DDialog {
public void addCloseButton() {
VisImageButton closeButton = new VisImageButton("close-panel");
this.getTitleTable().add(closeButton).padTop(1).padRight(-2);
closeButton.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
close();
}
});
closeButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
UIDraggablePanel.this.close();
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
event.cancel();
return true;
}
});
}
@@ -65,16 +72,13 @@ public class UIDraggablePanel extends H2DDialog {
@Override
public VisDialog show(Stage stage) {
isOpen = true;
return super.show(stage);
}
@Override
public void hide() {
super.hide();
isOpen = false;
}
}
@@ -38,7 +38,7 @@ public abstract class NonRevertibleCommand extends SandboxCommand {
if (r == 1) {
callDoAction();
}
});
}).padBottom(20).pack();
} else {
callDoAction();
}
@@ -16,6 +16,7 @@ import games.rednblack.editor.proxy.ResourceManager;
import games.rednblack.editor.renderer.data.*;
import games.rednblack.editor.utils.ImportUtils;
import games.rednblack.editor.utils.ZipUtils;
import games.rednblack.editor.view.ui.widget.ui.HyperLapFileChooser;
import games.rednblack.h2d.common.MsgAPI;
import games.rednblack.h2d.common.vo.ExportMapperVO;
import games.rednblack.h2d.common.vo.ExportMapperVO.ExportedAsset;
@@ -49,7 +50,7 @@ public class ExportLibraryItemCommand extends NonRevertibleCommand {
String libraryItemName = notification.getBody();
FileChooser fileChooser = new FileChooser(FileChooser.Mode.SAVE);
FileChooser fileChooser = new HyperLapFileChooser(FileChooser.Mode.SAVE);
FileTypeFilter typeFilter = new FileTypeFilter(false);
typeFilter.addRule("HyperLap2D Library (*.h2dlib)", "h2dlib");
fileChooser.setFileTypeFilter(typeFilter);
@@ -53,7 +53,7 @@ public class AssetImporter {
if (result == 0) {
initImport(type, paths, false);
}
});
}).padBottom(20).pack();
} else {
initImport(type, paths, false);
}
@@ -22,6 +22,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import com.kotcrab.vis.ui.widget.file.FileTypeFilter;
import games.rednblack.editor.view.ui.widget.ui.HyperLapFileChooser;
import games.rednblack.h2d.common.MsgAPI;
import com.kotcrab.vis.ui.util.dialog.Dialogs;
import com.kotcrab.vis.ui.util.dialog.InputDialogListener;
@@ -180,7 +181,7 @@ public class HyperLap2DMenuBarMediator extends SimpleMediator<HyperLap2DMenuBar>
public void showOpenProject() {
Sandbox sandbox = Sandbox.getInstance();
//chooser creation
FileChooser fileChooser = new FileChooser(FileChooser.Mode.OPEN);
FileChooser fileChooser = new HyperLapFileChooser(FileChooser.Mode.OPEN);
FileTypeFilter typeFilter = new FileTypeFilter(false);
typeFilter.addRule("HyperLap2D Project (*.pit)", "pit");
@@ -144,7 +144,8 @@ public class FollowersUIMediator extends SimpleMediator<FollowersUI> {
private void setNewSelectionConfiguration(Set<Entity> items) {
followers.values().forEach(games.rednblack.editor.view.ui.followers.BasicFollower::hide);
for (Entity item : items) {
followers.get(item).show();
if (followers.get(item) != null)
followers.get(item).show();
}
}
@@ -120,7 +120,7 @@ public class UILayerBoxMediator extends PanelMediator<UILayerBox> {
selectEntitiesByLayerName(layerItem);
break;
case UILayerBox.CREATE_NEW_LAYER:
Dialogs.showInputDialog(Sandbox.getInstance().getUIStage(), "Please set unique name for your Layer", "Please set unique name for your Layer", new InputDialogListener() {
Dialogs.showInputDialog(Sandbox.getInstance().getUIStage(), "New Layer", "Please set unique name for your Layer", false, new InputDialogListener() {
@Override
public void finished(String input) {
if (checkIfNameIsUnique(input)) {
@@ -151,11 +151,11 @@ public class UILayerBoxMediator extends PanelMediator<UILayerBox> {
String layerName = layers.get(deletingLayerIndex).layerName;
Dialogs.showConfirmDialog(sandbox.getUIStage(),
"Delete Layer", "Do you realy want to delete '" + layerName + "' layer?",
new String[]{"Delete", "Cancel"}, new Integer[]{0, 1}, r -> {
if (r == 0) {
new String[]{"Cancel", "Delete"}, new Integer[]{0, 1}, r -> {
if (r == 1) {
facade.sendNotification(MsgAPI.ACTION_DELETE_LAYER, layerName);
}
});
}).padBottom(20).pack();
}
break;
case UILayerBox.LOCK_LAYER:
@@ -96,7 +96,7 @@ public class UIResolutionBoxMediator extends SimpleMediator<UIResolutionBox> {
String sceneName = sandbox.sceneControl.getCurrentSceneVO().sceneName;
sandbox.loadCurrentProject(sceneName);
}
});
}).padBottom(20).pack();
break;
case UIResolutionBox.REPACK_BTN_CLICKED:
@@ -45,7 +45,7 @@ public class UISceneBoxMediator extends SimpleMediator<UISceneBox> {
sandbox.loadScene(notification.getBody());
break;
case UISceneBox.CREATE_NEW_SCENE_BTN_CLICKED:
Dialogs.showInputDialog(sandbox.getUIStage(), "Create New Scene", "Scene Name : ", new StringNameValidator(), new InputDialogListener() {
Dialogs.showInputDialog(sandbox.getUIStage(), "Create New Scene", "Scene Name : ", false, new StringNameValidator(), new InputDialogListener() {
@Override
public void finished(String input) {
if (input == null || input.equals("")) {
@@ -72,7 +72,7 @@ public class UISceneBoxMediator extends SimpleMediator<UISceneBox> {
sceneDataManager.deleteCurrentScene();
sandbox.loadScene("MainScene");
}
});
}).padBottom(20).pack();
break;
default:
break;
@@ -40,6 +40,7 @@ import games.rednblack.editor.proxy.ProjectManager;
import games.rednblack.editor.view.menu.HyperLap2DMenuBar;
import games.rednblack.editor.view.stage.UIStage;
import games.rednblack.editor.renderer.data.SceneVO;
import games.rednblack.editor.view.ui.widget.ui.HyperLapFileChooser;
import org.apache.commons.lang3.SystemUtils;
import java.awt.datatransfer.DataFlavor;
@@ -151,7 +152,7 @@ public class ImportDialogMediator extends SimpleMediator<ImportDialog> {
private void showFileChoose() {
Sandbox sandbox = Sandbox.getInstance();
FileChooser fileChooser = new FileChooser(FileChooser.Mode.OPEN);
FileChooser fileChooser = new HyperLapFileChooser(FileChooser.Mode.OPEN);
fileChooser.setFileTypeFilter(ImportUtils.getInstance().getFileTypeFilter());
@@ -25,6 +25,7 @@ import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.reflect.ClassReflection;
import com.badlogic.gdx.utils.reflect.ReflectionException;
import games.rednblack.editor.renderer.components.light.LightBodyComponent;
import games.rednblack.editor.view.ui.widget.ui.HyperLapColorPicker;
import games.rednblack.h2d.common.MsgAPI;
import com.kotcrab.vis.ui.widget.color.ColorPicker;
import com.kotcrab.vis.ui.widget.color.ColorPickerAdapter;
@@ -110,7 +111,7 @@ public class UIBasicItemPropertiesMediator extends UIItemPropertiesMediator<Enti
switch (notification.getName()) {
case UIBasicItemProperties.TINT_COLOR_BUTTON_CLICKED:
Color prevColor = viewComponent.getTintColor().cpy();
ColorPicker picker = new ColorPicker(new ColorPickerAdapter() {
ColorPicker picker = new HyperLapColorPicker(new ColorPickerAdapter() {
@Override
public void finished(Color newColor) {
TintComponent tintComponent = observableReference.getComponent(TintComponent.class);
@@ -12,6 +12,7 @@ import games.rednblack.editor.renderer.components.light.LightBodyComponent;
import games.rednblack.editor.renderer.data.LightBodyDataVO;
import games.rednblack.editor.view.stage.Sandbox;
import games.rednblack.editor.view.ui.properties.UIItemPropertiesMediator;
import games.rednblack.editor.view.ui.widget.ui.HyperLapColorPicker;
import games.rednblack.h2d.common.MsgAPI;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.math.NumberUtils;
@@ -48,7 +49,7 @@ public class UILightBodyPropertiesMediator extends UIItemPropertiesMediator<Enti
break;
case UILightBodyProperties.LIGHT_COLOR_BUTTON_CLICKED:
Color prevColor = viewComponent.getLightColor().cpy();
ColorPicker picker = new ColorPicker(new ColorPickerAdapter() {
ColorPicker picker = new HyperLapColorPicker(new ColorPickerAdapter() {
@Override
public void finished(Color newColor) {
lightComponent = observableReference.getComponent(LightBodyComponent.class);
@@ -23,6 +23,7 @@ import com.kotcrab.vis.ui.widget.color.ColorPickerAdapter;
import games.rednblack.editor.proxy.ResolutionManager;
import games.rednblack.editor.renderer.data.LightsPropertiesVO;
import games.rednblack.editor.renderer.data.ResolutionEntryVO;
import games.rednblack.editor.view.ui.widget.ui.HyperLapColorPicker;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.math.NumberUtils;
@@ -61,7 +62,7 @@ public class UIScenePropertiesMediator extends UIAbstractPropertiesMediator<Scen
switch (notification.getName()) {
case UISceneProperties.AMBIENT_COLOR_BUTTON_CLICKED:
ColorPicker picker = new ColorPicker(new ColorPickerAdapter() {
ColorPicker picker = new HyperLapColorPicker(new ColorPickerAdapter() {
@Override
public void finished(Color newColor) {
viewComponent.setAmbientColor(newColor);
@@ -82,7 +83,7 @@ public class UIScenePropertiesMediator extends UIAbstractPropertiesMediator<Scen
break;
case UISceneProperties.DIRECTIONAL_COLOR_BUTTON_CLICKED:
picker = new ColorPicker(new ColorPickerAdapter() {
picker = new HyperLapColorPicker(new ColorPickerAdapter() {
@Override
public void finished(Color newColor) {
viewComponent.setDirectionalColor(newColor);
@@ -30,6 +30,7 @@ import com.kotcrab.vis.ui.widget.VisTextField;
import com.kotcrab.vis.ui.widget.file.FileChooser;
import com.kotcrab.vis.ui.widget.file.FileChooserListener;
import games.rednblack.editor.utils.StandardWidgetsFactory;
import games.rednblack.editor.view.ui.widget.ui.HyperLapFileChooser;
/**
* Created by sargis on 4/3/15.
@@ -56,7 +57,7 @@ public class InputFileWidget extends VisTable {
}
private void initFileChooser(FileChooser.Mode mode, FileChooser.SelectionMode selectionMode, boolean multiselectionEnabled) {
fileChooser = new FileChooser(mode);
fileChooser = new HyperLapFileChooser(mode);
fileChooser.setSelectionMode(selectionMode);
fileChooser.setMultiSelectionEnabled(multiselectionEnabled);
fileChooser.setListener(new InputFileWidgetFileChooserListener());
@@ -0,0 +1,47 @@
package games.rednblack.editor.view.ui.widget.ui;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.kotcrab.vis.ui.widget.VisImageButton;
import com.kotcrab.vis.ui.widget.color.ColorPicker;
import com.kotcrab.vis.ui.widget.color.ColorPickerListener;
public class HyperLapColorPicker extends ColorPicker {
public HyperLapColorPicker (String title) {
this("default", title, null);
}
public HyperLapColorPicker (String title, ColorPickerListener listener) {
this("default", title, listener);
}
public HyperLapColorPicker (ColorPickerListener listener) {
this("default", null, listener);
}
public HyperLapColorPicker (String styleName, String title, ColorPickerListener listener) {
super(styleName, title, listener);
}
@Override
public void addCloseButton() {
VisImageButton closeButton = new VisImageButton("close-window");
this.getTitleTable().add(closeButton).padRight(0);
closeButton.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
close();
}
});
closeButton.addListener(new ClickListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
event.cancel();
return true;
}
});
}
}
@@ -0,0 +1,46 @@
package games.rednblack.editor.view.ui.widget.ui;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.kotcrab.vis.ui.widget.VisImageButton;
import com.kotcrab.vis.ui.widget.file.FileChooser;
public class HyperLapFileChooser extends FileChooser {
public HyperLapFileChooser(Mode mode) {
super(mode);
}
public HyperLapFileChooser(FileHandle directory, Mode mode) {
super(directory, mode);
}
public HyperLapFileChooser(String title, Mode mode) {
super(title, mode);
}
public HyperLapFileChooser(String styleName, String title, Mode mode) {
super(styleName, title, mode);
}
@Override
public void addCloseButton() {
VisImageButton closeButton = new VisImageButton("close-window");
this.getTitleTable().add(closeButton).padRight(0);
closeButton.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
close();
}
});
closeButton.addListener(new ClickListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
event.cancel();
return true;
}
});
}
}