|
@@ -2,7 +2,6 @@ package arm.ui;
|
|
|
|
|
|
import haxe.io.Bytes;
|
|
import haxe.io.Bytes;
|
|
import haxe.Json;
|
|
import haxe.Json;
|
|
-import zui.Id;
|
|
|
|
import zui.Zui;
|
|
import zui.Zui;
|
|
import iron.data.Data;
|
|
import iron.data.Data;
|
|
import arm.shader.MakeMaterial;
|
|
import arm.shader.MakeMaterial;
|
|
@@ -36,7 +35,7 @@ class BoxPreferences {
|
|
locales = Translator.getSupportedLocales();
|
|
locales = Translator.getSupportedLocales();
|
|
}
|
|
}
|
|
|
|
|
|
- var localeHandle = Id.handle("boxpreferences_0", { position: locales.indexOf(Config.raw.locale) });
|
|
|
|
|
|
+ var localeHandle = Zui.handle("boxpreferences_0", { position: locales.indexOf(Config.raw.locale) });
|
|
ui.combo(localeHandle, locales, tr("Language"), true);
|
|
ui.combo(localeHandle, locales, tr("Language"), true);
|
|
if (localeHandle.changed) {
|
|
if (localeHandle.changed) {
|
|
var localeCode = locales[localeHandle.position];
|
|
var localeCode = locales[localeHandle.position];
|
|
@@ -45,7 +44,7 @@ class BoxPreferences {
|
|
UIBase.inst.tagUIRedraw();
|
|
UIBase.inst.tagUIRedraw();
|
|
}
|
|
}
|
|
|
|
|
|
- var hscale = Id.handle("boxpreferences_1", { value: Config.raw.window_scale });
|
|
|
|
|
|
+ var hscale = Zui.handle("boxpreferences_1", { value: Config.raw.window_scale });
|
|
ui.slider(hscale, tr("UI Scale"), 1.0, 4.0, true, 10);
|
|
ui.slider(hscale, tr("UI Scale"), 1.0, 4.0, true, 10);
|
|
if (Context.raw.hscaleWasChanged && !ui.inputDown) {
|
|
if (Context.raw.hscaleWasChanged && !ui.inputDown) {
|
|
Context.raw.hscaleWasChanged = false;
|
|
Context.raw.hscaleWasChanged = false;
|
|
@@ -55,35 +54,35 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
if (hscale.changed) Context.raw.hscaleWasChanged = true;
|
|
if (hscale.changed) Context.raw.hscaleWasChanged = true;
|
|
|
|
|
|
- var hspeed = Id.handle("boxpreferences_2", { value: Config.raw.camera_zoom_speed });
|
|
|
|
|
|
+ var hspeed = Zui.handle("boxpreferences_2", { value: Config.raw.camera_zoom_speed });
|
|
Config.raw.camera_zoom_speed = ui.slider(hspeed, tr("Camera Zoom Speed"), 0.1, 4.0, true);
|
|
Config.raw.camera_zoom_speed = ui.slider(hspeed, tr("Camera Zoom Speed"), 0.1, 4.0, true);
|
|
|
|
|
|
- hspeed = Id.handle("boxpreferences_3", { value: Config.raw.camera_rotation_speed });
|
|
|
|
|
|
+ hspeed = Zui.handle("boxpreferences_3", { value: Config.raw.camera_rotation_speed });
|
|
Config.raw.camera_rotation_speed = ui.slider(hspeed, tr("Camera Rotation Speed"), 0.1, 4.0, true);
|
|
Config.raw.camera_rotation_speed = ui.slider(hspeed, tr("Camera Rotation Speed"), 0.1, 4.0, true);
|
|
|
|
|
|
- hspeed = Id.handle("boxpreferences_4", { value: Config.raw.camera_pan_speed });
|
|
|
|
|
|
+ hspeed = Zui.handle("boxpreferences_4", { value: Config.raw.camera_pan_speed });
|
|
Config.raw.camera_pan_speed = ui.slider(hspeed, tr("Camera Pan Speed"), 0.1, 4.0, true);
|
|
Config.raw.camera_pan_speed = ui.slider(hspeed, tr("Camera Pan Speed"), 0.1, 4.0, true);
|
|
|
|
|
|
- var zoomDirectionHandle = Id.handle("boxpreferences_5", { position: Config.raw.zoom_direction });
|
|
|
|
|
|
+ var zoomDirectionHandle = Zui.handle("boxpreferences_5", { position: Config.raw.zoom_direction });
|
|
ui.combo(zoomDirectionHandle, [tr("Vertical"), tr("Vertical Inverted"), tr("Horizontal"), tr("Horizontal Inverted"), tr("Vertical and Horizontal"), tr("Vertical and Horizontal Inverted")], tr("Direction to Zoom"), true);
|
|
ui.combo(zoomDirectionHandle, [tr("Vertical"), tr("Vertical Inverted"), tr("Horizontal"), tr("Horizontal Inverted"), tr("Vertical and Horizontal"), tr("Vertical and Horizontal Inverted")], tr("Direction to Zoom"), true);
|
|
if (zoomDirectionHandle.changed) {
|
|
if (zoomDirectionHandle.changed) {
|
|
Config.raw.zoom_direction = zoomDirectionHandle.position;
|
|
Config.raw.zoom_direction = zoomDirectionHandle.position;
|
|
}
|
|
}
|
|
|
|
|
|
- Config.raw.wrap_mouse = ui.check(Id.handle("boxpreferences_6", { selected: Config.raw.wrap_mouse }), tr("Wrap Mouse"));
|
|
|
|
|
|
+ Config.raw.wrap_mouse = ui.check(Zui.handle("boxpreferences_6", { selected: Config.raw.wrap_mouse }), tr("Wrap Mouse"));
|
|
if (ui.isHovered) ui.tooltip(tr("Wrap mouse around view boundaries during camera control"));
|
|
if (ui.isHovered) ui.tooltip(tr("Wrap mouse around view boundaries during camera control"));
|
|
|
|
|
|
- Config.raw.node_preview = ui.check(Id.handle("boxpreferences_7", { selected: Config.raw.node_preview }), tr("Show Node Preview"));
|
|
|
|
|
|
+ Config.raw.node_preview = ui.check(Zui.handle("boxpreferences_7", { selected: Config.raw.node_preview }), tr("Show Node Preview"));
|
|
|
|
|
|
ui.changed = false;
|
|
ui.changed = false;
|
|
- Config.raw.show_asset_names = ui.check(Id.handle("boxpreferences_8", { selected: Config.raw.show_asset_names }), tr("Show Asset Names"));
|
|
|
|
|
|
+ Config.raw.show_asset_names = ui.check(Zui.handle("boxpreferences_8", { selected: Config.raw.show_asset_names }), tr("Show Asset Names"));
|
|
if (ui.changed) {
|
|
if (ui.changed) {
|
|
UIBase.inst.tagUIRedraw();
|
|
UIBase.inst.tagUIRedraw();
|
|
}
|
|
}
|
|
|
|
|
|
#if !(kha_android || kha_ios)
|
|
#if !(kha_android || kha_ios)
|
|
ui.changed = false;
|
|
ui.changed = false;
|
|
- Config.raw.touch_ui = ui.check(Id.handle("boxpreferences_9", { selected: Config.raw.touch_ui }), tr("Touch UI"));
|
|
|
|
|
|
+ Config.raw.touch_ui = ui.check(Zui.handle("boxpreferences_9", { selected: Config.raw.touch_ui }), tr("Touch UI"));
|
|
if (ui.changed) {
|
|
if (ui.changed) {
|
|
Zui.touchScroll = Zui.touchHold = Zui.touchTooltip = Config.raw.touch_ui;
|
|
Zui.touchScroll = Zui.touchHold = Zui.touchTooltip = Config.raw.touch_ui;
|
|
Config.loadTheme(Config.raw.theme);
|
|
Config.loadTheme(Config.raw.theme);
|
|
@@ -92,10 +91,10 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
#end
|
|
#end
|
|
|
|
|
|
- Config.raw.splash_screen = ui.check(Id.handle("boxpreferences_10", { selected: Config.raw.splash_screen }), tr("Splash Screen"));
|
|
|
|
|
|
+ Config.raw.splash_screen = ui.check(Zui.handle("boxpreferences_10", { selected: Config.raw.splash_screen }), tr("Splash Screen"));
|
|
|
|
|
|
// ui.text("Node Editor");
|
|
// ui.text("Node Editor");
|
|
- // var gridSnap = ui.check(Id.handle("boxpreferences_11", { selected: false }), "Grid Snap");
|
|
|
|
|
|
+ // var gridSnap = ui.check(Zui.handle("boxpreferences_11", { selected: false }), "Grid Snap");
|
|
|
|
|
|
ui.endElement();
|
|
ui.endElement();
|
|
ui.row([0.5, 0.5]);
|
|
ui.row([0.5, 0.5]);
|
|
@@ -144,7 +143,7 @@ class BoxPreferences {
|
|
if (themes == null) {
|
|
if (themes == null) {
|
|
fetchThemes();
|
|
fetchThemes();
|
|
}
|
|
}
|
|
- themeHandle = Id.handle("boxpreferences_12", { position: getThemeIndex() });
|
|
|
|
|
|
+ themeHandle = Zui.handle("boxpreferences_12", { position: getThemeIndex() });
|
|
|
|
|
|
ui.beginSticky();
|
|
ui.beginSticky();
|
|
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
|
|
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
|
|
@@ -157,9 +156,9 @@ class BoxPreferences {
|
|
|
|
|
|
if (ui.button(tr("New"))) {
|
|
if (ui.button(tr("New"))) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
- if (ui.tab(Id.handle("boxpreferences_13"), tr("New Theme"))) {
|
|
|
|
|
|
+ if (ui.tab(Zui.handle("boxpreferences_13"), tr("New Theme"))) {
|
|
ui.row([0.5, 0.5]);
|
|
ui.row([0.5, 0.5]);
|
|
- var themeName = ui.textInput(Id.handle("boxpreferences_14", { text: "new_theme" }), tr("Name"));
|
|
|
|
|
|
+ var themeName = ui.textInput(Zui.handle("boxpreferences_14", { text: "new_theme" }), tr("Name"));
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
var template = Json.stringify(arm.App.theme);
|
|
var template = Json.stringify(arm.App.theme);
|
|
if (!themeName.endsWith(".json")) themeName += ".json";
|
|
if (!themeName.endsWith(".json")) themeName += ".json";
|
|
@@ -194,7 +193,7 @@ class BoxPreferences {
|
|
|
|
|
|
var i = 0;
|
|
var i = 0;
|
|
var theme = arm.App.theme;
|
|
var theme = arm.App.theme;
|
|
- var hlist = Id.handle("boxpreferences_15");
|
|
|
|
|
|
+ var hlist = Zui.handle("boxpreferences_15");
|
|
|
|
|
|
// Viewport color
|
|
// Viewport color
|
|
var h = hlist.nest(i++, { color: worldColor });
|
|
var h = hlist.nest(i++, { color: worldColor });
|
|
@@ -203,7 +202,7 @@ class BoxPreferences {
|
|
if (ui.isHovered && ui.inputReleased) {
|
|
if (ui.isHovered && ui.inputReleased) {
|
|
UIMenu.draw(function(ui) {
|
|
UIMenu.draw(function(ui) {
|
|
ui.changed = false;
|
|
ui.changed = false;
|
|
- zui.Ext.colorWheel(ui, h, false, null, 11 * ui.t.ELEMENT_H * ui.SCALE(), true);
|
|
|
|
|
|
+ ui.colorWheel(h, false, null, 11 * ui.t.ELEMENT_H * ui.SCALE(), true);
|
|
if (ui.changed) UIMenu.keepOpen = true;
|
|
if (ui.changed) UIMenu.keepOpen = true;
|
|
}, 11);
|
|
}, 11);
|
|
}
|
|
}
|
|
@@ -228,11 +227,14 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
|
|
|
|
// Theme fields
|
|
// Theme fields
|
|
- for (key in Reflect.fields(theme)) {
|
|
|
|
- if (key == "NAME") continue;
|
|
|
|
|
|
+ for (key in Type.getInstanceFields(zui.Zui.Theme)) {
|
|
|
|
+ if (key == "theme_") continue;
|
|
|
|
+ if (key.startsWith("set_")) continue;
|
|
|
|
+ if (key.startsWith("get_")) key = key.substr(4);
|
|
|
|
|
|
var h = hlist.nest(i++);
|
|
var h = hlist.nest(i++);
|
|
- var val: Dynamic = untyped theme[key];
|
|
|
|
|
|
+ var val: Dynamic = Reflect.getProperty(theme, key);
|
|
|
|
+
|
|
var isHex = key.endsWith("_COL");
|
|
var isHex = key.endsWith("_COL");
|
|
if (isHex && val < 0) val += untyped 4294967296;
|
|
if (isHex && val < 0) val += untyped 4294967296;
|
|
|
|
|
|
@@ -240,10 +242,11 @@ class BoxPreferences {
|
|
ui.row([1 / 8, 7 / 8]);
|
|
ui.row([1 / 8, 7 / 8]);
|
|
ui.text("", 0, val);
|
|
ui.text("", 0, val);
|
|
if (ui.isHovered && ui.inputReleased) {
|
|
if (ui.isHovered && ui.inputReleased) {
|
|
- h.color = untyped theme[key];
|
|
|
|
|
|
+ h.color = Reflect.getProperty(theme, key);
|
|
UIMenu.draw(function(ui) {
|
|
UIMenu.draw(function(ui) {
|
|
ui.changed = false;
|
|
ui.changed = false;
|
|
- untyped theme[key] = zui.Ext.colorWheel(ui, h, false, null, 11 * ui.t.ELEMENT_H * ui.SCALE(), true);
|
|
|
|
|
|
+ var color = ui.colorWheel(h, false, null, 11 * ui.t.ELEMENT_H * ui.SCALE(), true);
|
|
|
|
+ Reflect.setProperty(theme, key, color);
|
|
if (ui.changed) UIMenu.keepOpen = true;
|
|
if (ui.changed) UIMenu.keepOpen = true;
|
|
}, 11);
|
|
}, 11);
|
|
}
|
|
}
|
|
@@ -253,18 +256,20 @@ class BoxPreferences {
|
|
|
|
|
|
if (Std.isOfType(val, Bool)) {
|
|
if (Std.isOfType(val, Bool)) {
|
|
h.selected = val;
|
|
h.selected = val;
|
|
- untyped theme[key] = ui.check(h, key);
|
|
|
|
|
|
+ var b = ui.check(h, key);
|
|
|
|
+ Reflect.setProperty(theme, key, b);
|
|
}
|
|
}
|
|
else if (key == "LINK_STYLE") {
|
|
else if (key == "LINK_STYLE") {
|
|
var styles = [tr("Straight"), tr("Curved")];
|
|
var styles = [tr("Straight"), tr("Curved")];
|
|
h.position = val;
|
|
h.position = val;
|
|
- untyped theme[key] = ui.combo(h, styles, key, true);
|
|
|
|
|
|
+ var i = ui.combo(h, styles, key, true);
|
|
|
|
+ Reflect.setProperty(theme, key, i);
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
h.text = isHex ? untyped val.toString(16) : untyped val.toString();
|
|
h.text = isHex ? untyped val.toString(16) : untyped val.toString();
|
|
var res = ui.textInput(h, key);
|
|
var res = ui.textInput(h, key);
|
|
- if (isHex) untyped theme[key] = parseInt(h.text, 16);
|
|
|
|
- else untyped theme[key] = parseInt(h.text);
|
|
|
|
|
|
+ if (isHex) Reflect.setProperty(theme, key, untyped parseInt(h.text, 16));
|
|
|
|
+ else Reflect.setProperty(theme, key, untyped parseInt(h.text));
|
|
}
|
|
}
|
|
|
|
|
|
if (ui.changed) {
|
|
if (ui.changed) {
|
|
@@ -276,7 +281,7 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
|
|
|
|
if (ui.tab(htab, tr("Usage"), true)) {
|
|
if (ui.tab(htab, tr("Usage"), true)) {
|
|
- Context.raw.undoHandle = Id.handle("boxpreferences_16", { value: Config.raw.undo_steps });
|
|
|
|
|
|
+ Context.raw.undoHandle = Zui.handle("boxpreferences_16", { value: Config.raw.undo_steps });
|
|
Config.raw.undo_steps = Std.int(ui.slider(Context.raw.undoHandle, tr("Undo Steps"), 1, 64, false, 1));
|
|
Config.raw.undo_steps = Std.int(ui.slider(Context.raw.undoHandle, tr("Undo Steps"), 1, 64, false, 1));
|
|
if (Config.raw.undo_steps < 1) {
|
|
if (Config.raw.undo_steps < 1) {
|
|
Config.raw.undo_steps = Std.int(Context.raw.undoHandle.value = 1);
|
|
Config.raw.undo_steps = Std.int(Context.raw.undoHandle.value = 1);
|
|
@@ -300,10 +305,10 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
|
|
|
|
#if is_paint
|
|
#if is_paint
|
|
- Config.raw.dilate_radius = Std.int(ui.slider(Id.handle("boxpreferences_17", { value: Config.raw.dilate_radius }), tr("Dilate Radius"), 0.0, 16.0, true, 1));
|
|
|
|
|
|
+ Config.raw.dilate_radius = Std.int(ui.slider(Zui.handle("boxpreferences_17", { value: Config.raw.dilate_radius }), tr("Dilate Radius"), 0.0, 16.0, true, 1));
|
|
if (ui.isHovered) ui.tooltip(tr("Dilate painted textures to prevent seams"));
|
|
if (ui.isHovered) ui.tooltip(tr("Dilate painted textures to prevent seams"));
|
|
|
|
|
|
- var dilateHandle = Id.handle("boxpreferences_18", { position: Config.raw.dilate });
|
|
|
|
|
|
+ var dilateHandle = Zui.handle("boxpreferences_18", { position: Config.raw.dilate });
|
|
ui.combo(dilateHandle, [tr("Instant"), tr("Delayed")], tr("Dilate"), true);
|
|
ui.combo(dilateHandle, [tr("Instant"), tr("Delayed")], tr("Dilate"), true);
|
|
if (dilateHandle.changed) {
|
|
if (dilateHandle.changed) {
|
|
Config.raw.dilate = dilateHandle.position;
|
|
Config.raw.dilate = dilateHandle.position;
|
|
@@ -311,20 +316,20 @@ class BoxPreferences {
|
|
#end
|
|
#end
|
|
|
|
|
|
#if is_lab
|
|
#if is_lab
|
|
- var workspaceHandle = Id.handle("boxpreferences_19", { position: Config.raw.workspace });
|
|
|
|
|
|
+ var workspaceHandle = Zui.handle("boxpreferences_19", { position: Config.raw.workspace });
|
|
ui.combo(workspaceHandle, [tr("3D View"), tr("2D View")], tr("Default Workspace"), true);
|
|
ui.combo(workspaceHandle, [tr("3D View"), tr("2D View")], tr("Default Workspace"), true);
|
|
if (workspaceHandle.changed) {
|
|
if (workspaceHandle.changed) {
|
|
Config.raw.workspace = workspaceHandle.position;
|
|
Config.raw.workspace = workspaceHandle.position;
|
|
}
|
|
}
|
|
#end
|
|
#end
|
|
|
|
|
|
- var cameraControlsHandle = Id.handle("boxpreferences_20", { position: Config.raw.camera_controls });
|
|
|
|
|
|
+ var cameraControlsHandle = Zui.handle("boxpreferences_20", { position: Config.raw.camera_controls });
|
|
ui.combo(cameraControlsHandle, [tr("Orbit"), tr("Rotate"), tr("Fly")], tr("Default Camera Controls"), true);
|
|
ui.combo(cameraControlsHandle, [tr("Orbit"), tr("Rotate"), tr("Fly")], tr("Default Camera Controls"), true);
|
|
if (cameraControlsHandle.changed) {
|
|
if (cameraControlsHandle.changed) {
|
|
Config.raw.camera_controls = cameraControlsHandle.position;
|
|
Config.raw.camera_controls = cameraControlsHandle.position;
|
|
}
|
|
}
|
|
|
|
|
|
- var layerResHandle = Id.handle("boxpreferences_21", { position: Config.raw.layer_res });
|
|
|
|
|
|
+ var layerResHandle = Zui.handle("boxpreferences_21", { position: Config.raw.layer_res });
|
|
|
|
|
|
#if is_paint
|
|
#if is_paint
|
|
#if (krom_android || krom_ios)
|
|
#if (krom_android || krom_ios)
|
|
@@ -346,36 +351,36 @@ class BoxPreferences {
|
|
Config.raw.layer_res = layerResHandle.position;
|
|
Config.raw.layer_res = layerResHandle.position;
|
|
}
|
|
}
|
|
|
|
|
|
- var serverHandle = Id.handle("boxpreferences_22", { text: Config.raw.server });
|
|
|
|
|
|
+ var serverHandle = Zui.handle("boxpreferences_22", { text: Config.raw.server });
|
|
Config.raw.server = ui.textInput(serverHandle, tr("Cloud Server"));
|
|
Config.raw.server = ui.textInput(serverHandle, tr("Cloud Server"));
|
|
|
|
|
|
#if (is_paint || is_sculpt)
|
|
#if (is_paint || is_sculpt)
|
|
- var materialLiveHandle = Id.handle("boxpreferences_23", {selected: Config.raw.material_live });
|
|
|
|
|
|
+ var materialLiveHandle = Zui.handle("boxpreferences_23", {selected: Config.raw.material_live });
|
|
Config.raw.material_live = ui.check(materialLiveHandle, tr("Live Material Preview"));
|
|
Config.raw.material_live = ui.check(materialLiveHandle, tr("Live Material Preview"));
|
|
if (ui.isHovered) ui.tooltip(tr("Instantly update material preview on node change"));
|
|
if (ui.isHovered) ui.tooltip(tr("Instantly update material preview on node change"));
|
|
|
|
|
|
- var brushLiveHandle = Id.handle("boxpreferences_24", { selected: Config.raw.brush_live });
|
|
|
|
|
|
+ var brushLiveHandle = Zui.handle("boxpreferences_24", { selected: Config.raw.brush_live });
|
|
Config.raw.brush_live = ui.check(brushLiveHandle, tr("Live Brush Preview"));
|
|
Config.raw.brush_live = ui.check(brushLiveHandle, tr("Live Brush Preview"));
|
|
if (ui.isHovered) ui.tooltip(tr("Draw live brush preview in viewport"));
|
|
if (ui.isHovered) ui.tooltip(tr("Draw live brush preview in viewport"));
|
|
if (brushLiveHandle.changed) Context.raw.ddirty = 2;
|
|
if (brushLiveHandle.changed) Context.raw.ddirty = 2;
|
|
|
|
|
|
- var brush3dHandle = Id.handle("boxpreferences_25", { selected: Config.raw.brush_3d });
|
|
|
|
|
|
+ var brush3dHandle = Zui.handle("boxpreferences_25", { selected: Config.raw.brush_3d });
|
|
Config.raw.brush_3d = ui.check(brush3dHandle, tr("3D Cursor"));
|
|
Config.raw.brush_3d = ui.check(brush3dHandle, tr("3D Cursor"));
|
|
if (brush3dHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
if (brush3dHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
|
|
|
|
ui.enabled = Config.raw.brush_3d;
|
|
ui.enabled = Config.raw.brush_3d;
|
|
- var brushDepthRejectHandle = Id.handle("boxpreferences_26", { selected: Config.raw.brush_depth_reject });
|
|
|
|
|
|
+ var brushDepthRejectHandle = Zui.handle("boxpreferences_26", { selected: Config.raw.brush_depth_reject });
|
|
Config.raw.brush_depth_reject = ui.check(brushDepthRejectHandle, tr("Depth Reject"));
|
|
Config.raw.brush_depth_reject = ui.check(brushDepthRejectHandle, tr("Depth Reject"));
|
|
if (brushDepthRejectHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
if (brushDepthRejectHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
|
|
|
|
ui.row([0.5, 0.5]);
|
|
ui.row([0.5, 0.5]);
|
|
|
|
|
|
- var brushAngleRejectHandle = Id.handle("boxpreferences_27", { selected: Config.raw.brush_angle_reject });
|
|
|
|
|
|
+ var brushAngleRejectHandle = Zui.handle("boxpreferences_27", { selected: Config.raw.brush_angle_reject });
|
|
Config.raw.brush_angle_reject = ui.check(brushAngleRejectHandle, tr("Angle Reject"));
|
|
Config.raw.brush_angle_reject = ui.check(brushAngleRejectHandle, tr("Angle Reject"));
|
|
if (brushAngleRejectHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
if (brushAngleRejectHandle.changed) MakeMaterial.parsePaintMaterial();
|
|
|
|
|
|
if (!Config.raw.brush_angle_reject) ui.enabled = false;
|
|
if (!Config.raw.brush_angle_reject) ui.enabled = false;
|
|
- var angleDotHandle = Id.handle("boxpreferences_28", { value: Context.raw.brushAngleRejectDot });
|
|
|
|
|
|
+ var angleDotHandle = Zui.handle("boxpreferences_28", { value: Context.raw.brushAngleRejectDot });
|
|
Context.raw.brushAngleRejectDot = ui.slider(angleDotHandle, tr("Angle"), 0.0, 1.0, true);
|
|
Context.raw.brushAngleRejectDot = ui.slider(angleDotHandle, tr("Angle"), 0.0, 1.0, true);
|
|
if (angleDotHandle.changed) {
|
|
if (angleDotHandle.changed) {
|
|
MakeMaterial.parsePaintMaterial();
|
|
MakeMaterial.parsePaintMaterial();
|
|
@@ -384,7 +389,7 @@ class BoxPreferences {
|
|
#end
|
|
#end
|
|
|
|
|
|
#if is_lab
|
|
#if is_lab
|
|
- Config.raw.gpu_inference = ui.check(Id.handle("boxpreferences_29", { selected: Config.raw.gpu_inference }), tr("Use GPU"));
|
|
|
|
|
|
+ Config.raw.gpu_inference = ui.check(Zui.handle("boxpreferences_29", { selected: Config.raw.gpu_inference }), tr("Use GPU"));
|
|
if (ui.isHovered) ui.tooltip(tr("Use GPU to accelerate node graph processing"));
|
|
if (ui.isHovered) ui.tooltip(tr("Use GPU to accelerate node graph processing"));
|
|
#end
|
|
#end
|
|
}
|
|
}
|
|
@@ -395,12 +400,12 @@ class BoxPreferences {
|
|
if (ui.tab(htab, tr("Pen"), true)) {
|
|
if (ui.tab(htab, tr("Pen"), true)) {
|
|
#end
|
|
#end
|
|
ui.text(tr("Pressure controls"));
|
|
ui.text(tr("Pressure controls"));
|
|
- Config.raw.pressure_radius = ui.check(Id.handle("boxpreferences_30", { selected: Config.raw.pressure_radius }), tr("Brush Radius"));
|
|
|
|
- Config.raw.pressure_sensitivity = ui.slider(Id.handle("boxpreferences_31", { value: Config.raw.pressure_sensitivity }), tr("Sensitivity"), 0.0, 10.0, true);
|
|
|
|
|
|
+ Config.raw.pressure_radius = ui.check(Zui.handle("boxpreferences_30", { selected: Config.raw.pressure_radius }), tr("Brush Radius"));
|
|
|
|
+ Config.raw.pressure_sensitivity = ui.slider(Zui.handle("boxpreferences_31", { value: Config.raw.pressure_sensitivity }), tr("Sensitivity"), 0.0, 10.0, true);
|
|
#if (is_paint || is_sculpt)
|
|
#if (is_paint || is_sculpt)
|
|
- Config.raw.pressure_hardness = ui.check(Id.handle("boxpreferences_32", { selected: Config.raw.pressure_hardness }), tr("Brush Hardness"));
|
|
|
|
- Config.raw.pressure_opacity = ui.check(Id.handle("boxpreferences_33", { selected: Config.raw.pressure_opacity }), tr("Brush Opacity"));
|
|
|
|
- Config.raw.pressure_angle = ui.check(Id.handle("boxpreferences_34", { selected: Config.raw.pressure_angle }), tr("Brush Angle"));
|
|
|
|
|
|
+ Config.raw.pressure_hardness = ui.check(Zui.handle("boxpreferences_32", { selected: Config.raw.pressure_hardness }), tr("Brush Hardness"));
|
|
|
|
+ Config.raw.pressure_opacity = ui.check(Zui.handle("boxpreferences_33", { selected: Config.raw.pressure_opacity }), tr("Brush Opacity"));
|
|
|
|
+ Config.raw.pressure_angle = ui.check(Zui.handle("boxpreferences_34", { selected: Config.raw.pressure_angle }), tr("Brush Angle"));
|
|
#end
|
|
#end
|
|
|
|
|
|
ui.endElement();
|
|
ui.endElement();
|
|
@@ -415,15 +420,15 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- Context.raw.hssao = Id.handle("boxpreferences_35", { selected: Config.raw.rp_ssao });
|
|
|
|
- Context.raw.hssr = Id.handle("boxpreferences_36", { selected: Config.raw.rp_ssr });
|
|
|
|
- Context.raw.hbloom = Id.handle("boxpreferences_37", { selected: Config.raw.rp_bloom });
|
|
|
|
- Context.raw.hsupersample = Id.handle("boxpreferences_38", { position: Config.getSuperSampleQuality(Config.raw.rp_supersample) });
|
|
|
|
- Context.raw.hvxao = Id.handle("boxpreferences_39", { selected: Config.raw.rp_gi });
|
|
|
|
|
|
+ Context.raw.hssao = Zui.handle("boxpreferences_35", { selected: Config.raw.rp_ssao });
|
|
|
|
+ Context.raw.hssr = Zui.handle("boxpreferences_36", { selected: Config.raw.rp_ssr });
|
|
|
|
+ Context.raw.hbloom = Zui.handle("boxpreferences_37", { selected: Config.raw.rp_bloom });
|
|
|
|
+ Context.raw.hsupersample = Zui.handle("boxpreferences_38", { position: Config.getSuperSampleQuality(Config.raw.rp_supersample) });
|
|
|
|
+ Context.raw.hvxao = Zui.handle("boxpreferences_39", { selected: Config.raw.rp_gi });
|
|
if (ui.tab(htab, tr("Viewport"), true)) {
|
|
if (ui.tab(htab, tr("Viewport"), true)) {
|
|
#if (kha_direct3d12 || kha_vulkan || kha_metal)
|
|
#if (kha_direct3d12 || kha_vulkan || kha_metal)
|
|
|
|
|
|
- var hpathtracemode = Id.handle("boxpreferences_40", { position: Context.raw.pathTraceMode });
|
|
|
|
|
|
+ var hpathtracemode = Zui.handle("boxpreferences_40", { position: Context.raw.pathTraceMode });
|
|
Context.raw.pathTraceMode = ui.combo(hpathtracemode, [tr("Core"), tr("Full")], tr("Path Tracer"), true);
|
|
Context.raw.pathTraceMode = ui.combo(hpathtracemode, [tr("Core"), tr("Full")], tr("Path Tracer"), true);
|
|
if (hpathtracemode.changed) {
|
|
if (hpathtracemode.changed) {
|
|
arm.render.RenderPathRaytrace.ready = false;
|
|
arm.render.RenderPathRaytrace.ready = false;
|
|
@@ -431,7 +436,7 @@ class BoxPreferences {
|
|
|
|
|
|
#end
|
|
#end
|
|
|
|
|
|
- var hrendermode = Id.handle("boxpreferences_41", { position: Context.raw.renderMode });
|
|
|
|
|
|
+ var hrendermode = Zui.handle("boxpreferences_41", { position: Context.raw.renderMode });
|
|
Context.raw.renderMode = ui.combo(hrendermode, [tr("Full"), tr("Mobile")], tr("Renderer"), true);
|
|
Context.raw.renderMode = ui.combo(hrendermode, [tr("Full"), tr("Mobile")], tr("Renderer"), true);
|
|
if (hrendermode.changed) {
|
|
if (hrendermode.changed) {
|
|
Context.setRenderPath();
|
|
Context.setRenderPath();
|
|
@@ -449,10 +454,10 @@ class BoxPreferences {
|
|
}
|
|
}
|
|
|
|
|
|
ui.enabled = Context.raw.hvxao.selected;
|
|
ui.enabled = Context.raw.hvxao.selected;
|
|
- var h = Id.handle("boxpreferences_42", { value: Context.raw.vxaoOffset });
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_42", { value: Context.raw.vxaoOffset });
|
|
Context.raw.vxaoOffset = ui.slider(h, tr("Cone Offset"), 1.0, 4.0, true);
|
|
Context.raw.vxaoOffset = ui.slider(h, tr("Cone Offset"), 1.0, 4.0, true);
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
- var h = Id.handle("boxpreferences_43", { value: Context.raw.vxaoAperture });
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_43", { value: Context.raw.vxaoAperture });
|
|
Context.raw.vxaoAperture = ui.slider(h, tr("Aperture"), 1.0, 4.0, true);
|
|
Context.raw.vxaoAperture = ui.slider(h, tr("Aperture"), 1.0, 4.0, true);
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
ui.enabled = true;
|
|
ui.enabled = true;
|
|
@@ -466,22 +471,22 @@ class BoxPreferences {
|
|
if (Context.raw.hbloom.changed) Config.applyConfig();
|
|
if (Context.raw.hbloom.changed) Config.applyConfig();
|
|
}
|
|
}
|
|
|
|
|
|
- var h = Id.handle("boxpreferences_44", { value: Config.raw.rp_vignette });
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_44", { value: Config.raw.rp_vignette });
|
|
Config.raw.rp_vignette = ui.slider(h, tr("Vignette"), 0.0, 1.0, true);
|
|
Config.raw.rp_vignette = ui.slider(h, tr("Vignette"), 0.0, 1.0, true);
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
|
|
|
|
- var h = Id.handle("boxpreferences_45", { value: Config.raw.rp_grain });
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_45", { value: Config.raw.rp_grain });
|
|
Config.raw.rp_grain = ui.slider(h, tr("Noise Grain"), 0.0, 1.0, true);
|
|
Config.raw.rp_grain = ui.slider(h, tr("Noise Grain"), 0.0, 1.0, true);
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
if (h.changed) Context.raw.ddirty = 2;
|
|
|
|
|
|
- // var h = Id.handle("boxpreferences_46", { value: Context.raw.autoExposureStrength });
|
|
|
|
|
|
+ // var h = Zui.handle("boxpreferences_46", { value: Context.raw.autoExposureStrength });
|
|
// Context.raw.autoExposureStrength = ui.slider(h, "Auto Exposure", 0.0, 2.0, true);
|
|
// Context.raw.autoExposureStrength = ui.slider(h, "Auto Exposure", 0.0, 2.0, true);
|
|
// if (h.changed) Context.raw.ddirty = 2;
|
|
// if (h.changed) Context.raw.ddirty = 2;
|
|
|
|
|
|
var cam = iron.Scene.active.camera;
|
|
var cam = iron.Scene.active.camera;
|
|
var camRaw = cam.data.raw;
|
|
var camRaw = cam.data.raw;
|
|
- var near_handle = Id.handle("boxpreferences_47");
|
|
|
|
- var far_handle = Id.handle("boxpreferences_48");
|
|
|
|
|
|
+ var near_handle = Zui.handle("boxpreferences_47");
|
|
|
|
+ var far_handle = Zui.handle("boxpreferences_48");
|
|
near_handle.value = Std.int(camRaw.near_plane * 1000) / 1000;
|
|
near_handle.value = Std.int(camRaw.near_plane * 1000) / 1000;
|
|
far_handle.value = Std.int(camRaw.far_plane * 100) / 100;
|
|
far_handle.value = Std.int(camRaw.far_plane * 100) / 100;
|
|
camRaw.near_plane = ui.slider(near_handle, tr("Clip Start"), 0.001, 1.0, true);
|
|
camRaw.near_plane = ui.slider(near_handle, tr("Clip Start"), 0.001, 1.0, true);
|
|
@@ -490,7 +495,7 @@ class BoxPreferences {
|
|
cam.buildProjection();
|
|
cam.buildProjection();
|
|
}
|
|
}
|
|
|
|
|
|
- var dispHandle = Id.handle("boxpreferences_49", { value: Config.raw.displace_strength });
|
|
|
|
|
|
+ var dispHandle = Zui.handle("boxpreferences_49", { value: Config.raw.displace_strength });
|
|
Config.raw.displace_strength = ui.slider(dispHandle, tr("Displacement Strength"), 0.0, 10.0, true);
|
|
Config.raw.displace_strength = ui.slider(dispHandle, tr("Displacement Strength"), 0.0, 10.0, true);
|
|
if (dispHandle.changed) {
|
|
if (dispHandle.changed) {
|
|
Context.raw.ddirty = 2;
|
|
Context.raw.ddirty = 2;
|
|
@@ -506,7 +511,7 @@ class BoxPreferences {
|
|
ui.beginSticky();
|
|
ui.beginSticky();
|
|
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
|
|
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
|
|
|
|
|
|
- presetHandle = Id.handle("boxpreferences_50", { position: getPresetIndex() });
|
|
|
|
|
|
+ presetHandle = Zui.handle("boxpreferences_50", { position: getPresetIndex() });
|
|
ui.combo(presetHandle, filesKeymap, tr("Preset"));
|
|
ui.combo(presetHandle, filesKeymap, tr("Preset"));
|
|
if (presetHandle.changed) {
|
|
if (presetHandle.changed) {
|
|
Config.raw.keymap = filesKeymap[presetHandle.position] + ".json";
|
|
Config.raw.keymap = filesKeymap[presetHandle.position] + ".json";
|
|
@@ -516,9 +521,9 @@ class BoxPreferences {
|
|
|
|
|
|
if (ui.button(tr("New"))) {
|
|
if (ui.button(tr("New"))) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
- if (ui.tab(Id.handle("boxpreferences_51"), tr("New Keymap"))) {
|
|
|
|
|
|
+ if (ui.tab(Zui.handle("boxpreferences_51"), tr("New Keymap"))) {
|
|
ui.row([0.5, 0.5]);
|
|
ui.row([0.5, 0.5]);
|
|
- var keymapName = ui.textInput(Id.handle("boxpreferences_52", { text: "new_keymap" }), tr("Name"));
|
|
|
|
|
|
+ var keymapName = ui.textInput(Zui.handle("boxpreferences_52", { text: "new_keymap" }), tr("Name"));
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
var template = Json.stringify(arm.App.defaultKeymap);
|
|
var template = Json.stringify(arm.App.defaultKeymap);
|
|
if (!keymapName.endsWith(".json")) keymapName += ".json";
|
|
if (!keymapName.endsWith(".json")) keymapName += ".json";
|
|
@@ -555,7 +560,7 @@ class BoxPreferences {
|
|
var i = 0;
|
|
var i = 0;
|
|
ui.changed = false;
|
|
ui.changed = false;
|
|
for (key in Reflect.fields(Config.keymap)) {
|
|
for (key in Reflect.fields(Config.keymap)) {
|
|
- var h = Id.handle("boxpreferences_53").nest(i++);
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_53").nest(i++);
|
|
h.text = Reflect.field(Config.keymap, key);
|
|
h.text = Reflect.field(Config.keymap, key);
|
|
var text = ui.textInput(h, key, Left);
|
|
var text = ui.textInput(h, key, Left);
|
|
Reflect.setField(Config.keymap, key, text);
|
|
Reflect.setField(Config.keymap, key, text);
|
|
@@ -570,9 +575,9 @@ class BoxPreferences {
|
|
ui.row([1 / 4, 1 / 4]);
|
|
ui.row([1 / 4, 1 / 4]);
|
|
if (ui.button(tr("New"))) {
|
|
if (ui.button(tr("New"))) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
UIBox.showCustom(function(ui: Zui) {
|
|
- if (ui.tab(Id.handle("boxpreferences_54"), tr("New Plugin"))) {
|
|
|
|
|
|
+ if (ui.tab(Zui.handle("boxpreferences_54"), tr("New Plugin"))) {
|
|
ui.row([0.5, 0.5]);
|
|
ui.row([0.5, 0.5]);
|
|
- var pluginName = ui.textInput(Id.handle("boxpreferences_55", { text: "new_plugin" }), tr("Name"));
|
|
|
|
|
|
+ var pluginName = ui.textInput(Zui.handle("boxpreferences_55", { text: "new_plugin" }), tr("Name"));
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
if (ui.button(tr("OK")) || ui.isReturnDown) {
|
|
var template =
|
|
var template =
|
|
"let plugin = new arm.Plugin();
|
|
"let plugin = new arm.Plugin();
|
|
@@ -608,7 +613,7 @@ plugin.drawUI = function(ui) {
|
|
}
|
|
}
|
|
|
|
|
|
if (Config.raw.plugins == null) Config.raw.plugins = [];
|
|
if (Config.raw.plugins == null) Config.raw.plugins = [];
|
|
- var h = Id.handle("boxpreferences_56", { selected: false });
|
|
|
|
|
|
+ var h = Zui.handle("boxpreferences_56", { selected: false });
|
|
for (f in filesPlugin) {
|
|
for (f in filesPlugin) {
|
|
var isJs = f.endsWith(".js");
|
|
var isJs = f.endsWith(".js");
|
|
var isWasm = false; //f.endsWith(".wasm");
|
|
var isWasm = false; //f.endsWith(".wasm");
|