New UI window style
|
Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 1.1 KiB |
@@ -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,
|
||||
|
||||
|
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;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||