Use ui_window title
This commit is contained in:
@@ -202,29 +202,27 @@ function box_preferences_theme_tab() {
|
||||
|
||||
if (ui_button(tr("New"))) {
|
||||
ui_box_show_custom(function() {
|
||||
if (ui_tab(ui_handle(__ID__), tr("New Theme"))) {
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_theme";
|
||||
}
|
||||
let theme_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = box_preferences_theme_to_json(base_theme);
|
||||
if (!ends_with(theme_name, ".json")) {
|
||||
theme_name += ".json";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "themes" + path_sep + theme_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_fetch_themes(); // Refresh file list
|
||||
config_raw.theme = theme_name;
|
||||
box_preferences_theme_handle.i = box_preferences_get_theme_index();
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 1; // Themes
|
||||
box_preferences_show();
|
||||
}
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_theme";
|
||||
}
|
||||
});
|
||||
let theme_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = box_preferences_theme_to_json(base_theme);
|
||||
if (!ends_with(theme_name, ".json")) {
|
||||
theme_name += ".json";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "themes" + path_sep + theme_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_fetch_themes(); // Refresh file list
|
||||
config_raw.theme = theme_name;
|
||||
box_preferences_theme_handle.i = box_preferences_get_theme_index();
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 1; // Themes
|
||||
box_preferences_show();
|
||||
}
|
||||
}, 400, 200, null, true, tr("New Theme"));
|
||||
}
|
||||
|
||||
if (ui_button(tr("Import"))) {
|
||||
@@ -637,29 +635,27 @@ function box_preferences_keymap_tab() {
|
||||
|
||||
if (ui_button(tr("New"))) {
|
||||
ui_box_show_custom(function() {
|
||||
if (ui_tab(ui_handle(__ID__), tr("New Keymap"))) {
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_keymap";
|
||||
}
|
||||
let keymap_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = keymap_to_json(keymap_get_default());
|
||||
if (!ends_with(keymap_name, ".json")) {
|
||||
keymap_name += ".json";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "keymap_presets" + path_sep + keymap_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_fetch_keymaps(); // Refresh file list
|
||||
config_raw.keymap = keymap_name;
|
||||
box_preferences_preset_handle.i = box_preferences_get_preset_index();
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 5; // Keymap
|
||||
box_preferences_show();
|
||||
}
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_keymap";
|
||||
}
|
||||
});
|
||||
let keymap_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = keymap_to_json(keymap_get_default());
|
||||
if (!ends_with(keymap_name, ".json")) {
|
||||
keymap_name += ".json";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "keymap_presets" + path_sep + keymap_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_fetch_keymaps(); // Refresh file list
|
||||
config_raw.keymap = keymap_name;
|
||||
box_preferences_preset_handle.i = box_preferences_get_preset_index();
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 5; // Keymap
|
||||
box_preferences_show();
|
||||
}
|
||||
}, 400, 200, null, true, tr("New Keymap"));
|
||||
}
|
||||
|
||||
if (ui_button(tr("Import"))) {
|
||||
@@ -888,15 +884,14 @@ function box_preferences_plugins_tab() {
|
||||
ui_row(row);
|
||||
if (ui_button(tr("New"))) {
|
||||
ui_box_show_custom(function() {
|
||||
if (ui_tab(ui_handle(__ID__), tr("New Plugin"))) {
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_plugin";
|
||||
}
|
||||
let plugin_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = "let plugin = plugin_create();\
|
||||
ui_row2();
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = "new_plugin";
|
||||
}
|
||||
let plugin_name: string = ui_text_input(h, tr("Name"));
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
let template: string = "let plugin = plugin_create();\
|
||||
let h1 = ui_handle_create();\
|
||||
plugin_notify_on_ui(plugin, function() {\
|
||||
if (ui_panel(h1, \"New Plugin\")) {\
|
||||
@@ -906,18 +901,17 @@ plugin_notify_on_ui(plugin, function() {\
|
||||
}\
|
||||
});\
|
||||
";
|
||||
if (!ends_with(plugin_name, ".js")) {
|
||||
plugin_name += ".js";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "plugins" + path_sep + plugin_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_files_plugin = null; // Refresh file list
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 6; // Plugins
|
||||
box_preferences_show();
|
||||
if (!ends_with(plugin_name, ".js")) {
|
||||
plugin_name += ".js";
|
||||
}
|
||||
let path: string = path_data() + path_sep + "plugins" + path_sep + plugin_name;
|
||||
iron_file_save_bytes(path, sys_string_to_buffer(template), 0);
|
||||
box_preferences_files_plugin = null; // Refresh file list
|
||||
ui_box_hide();
|
||||
box_preferences_htab.i = 6; // Plugins
|
||||
box_preferences_show();
|
||||
}
|
||||
});
|
||||
}, 400, 200, null, true, tr("New Plugin"));
|
||||
}
|
||||
if (ui_button(tr("Import"))) {
|
||||
ui_files_show("js,zip", false, false, function(path: string) {
|
||||
@@ -1026,7 +1020,8 @@ function box_preferences_show() {
|
||||
720, 520,
|
||||
function() {
|
||||
config_save();
|
||||
});
|
||||
}, true, tr("Preferences")
|
||||
);
|
||||
}
|
||||
|
||||
function box_preferences_fetch_themes() {
|
||||
|
||||
+79
-89
@@ -107,33 +107,31 @@ function project_fetch_default_meshes() {
|
||||
|
||||
function project_new_box() {
|
||||
ui_box_show_custom(function() {
|
||||
if (ui_tab(ui_handle(__ID__), tr("New Project"))) {
|
||||
project_fetch_default_meshes();
|
||||
ui_row2();
|
||||
let h_project_type: ui_handle_t = ui_handle(__ID__);
|
||||
if (h_project_type.init) {
|
||||
h_project_type.i = context_raw.project_type;
|
||||
}
|
||||
context_raw.project_type = ui_combo(h_project_type, project_mesh_list, tr("Template"), true);
|
||||
|
||||
let h_project_aspect_ratio: ui_handle_t = ui_handle(__ID__);
|
||||
if (h_project_aspect_ratio.init) {
|
||||
h_project_aspect_ratio.i = context_raw.project_aspect_ratio;
|
||||
}
|
||||
let project_aspect_ratio_combo: string[] = [ "1:1", "2:1", "1:2" ];
|
||||
context_raw.project_aspect_ratio = ui_combo(h_project_aspect_ratio, project_aspect_ratio_combo, tr("Aspect Ratio"), true);
|
||||
|
||||
ui_end_element();
|
||||
ui_row2();
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
project_new();
|
||||
ui_box_hide();
|
||||
}
|
||||
project_fetch_default_meshes();
|
||||
ui_row2();
|
||||
let h_project_type: ui_handle_t = ui_handle(__ID__);
|
||||
if (h_project_type.init) {
|
||||
h_project_type.i = context_raw.project_type;
|
||||
}
|
||||
});
|
||||
context_raw.project_type = ui_combo(h_project_type, project_mesh_list, tr("Template"), true);
|
||||
|
||||
let h_project_aspect_ratio: ui_handle_t = ui_handle(__ID__);
|
||||
if (h_project_aspect_ratio.init) {
|
||||
h_project_aspect_ratio.i = context_raw.project_aspect_ratio;
|
||||
}
|
||||
let project_aspect_ratio_combo: string[] = [ "1:1", "2:1", "1:2" ];
|
||||
context_raw.project_aspect_ratio = ui_combo(h_project_aspect_ratio, project_aspect_ratio_combo, tr("Aspect Ratio"), true);
|
||||
|
||||
ui_end_element();
|
||||
ui_row2();
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
if (ui_button(tr("OK")) || ui.is_return_down) {
|
||||
project_new();
|
||||
ui_box_hide();
|
||||
}
|
||||
}, 400, 200, null, true, tr("New Project"));
|
||||
}
|
||||
|
||||
function project_cleanup() {
|
||||
@@ -391,52 +389,48 @@ function project_import_mesh_box(path: string, replace_existing: bool = true, cl
|
||||
let clear_layers: bool = _project_import_mesh_box_clear_layers;
|
||||
let done: () => void = _project_import_mesh_box_done;
|
||||
|
||||
let tab_vertical: bool = config_raw.touch_ui;
|
||||
if (ui_tab(ui_handle(__ID__), tr("Import Mesh"), tab_vertical)) {
|
||||
|
||||
if (ends_with(to_lower_case(path), ".obj")) {
|
||||
let split_by_combo: string[] = [ tr("Object"), tr("Group"), tr("Material"), tr("UDIM Tile") ];
|
||||
context_raw.split_by = ui_combo(ui_handle(__ID__), split_by_combo, tr("Split By"), true);
|
||||
if (ui.is_hovered) {
|
||||
ui_tooltip(tr("Split .obj mesh into objects"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ends_with(to_lower_case(path), ".fbx")) {
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
h.b = context_raw.parse_vcols;
|
||||
context_raw.parse_vcols = ui_check(h, tr("Parse Vertex Colors"));
|
||||
if (ui.is_hovered) {
|
||||
ui_tooltip(tr("Import vertex color data"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ends_with(to_lower_case(path), ".blend")) {
|
||||
import_blend_mesh_ui();
|
||||
}
|
||||
|
||||
let row: f32[] = [ 0.45, 0.45, 0.1 ];
|
||||
ui_row(row);
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
if (ui_button(tr("Import")) || ui.is_return_down) {
|
||||
ui_box_hide();
|
||||
|
||||
/// if (arm_android || arm_ios)
|
||||
console_toast(tr("Importing mesh"));
|
||||
/// end
|
||||
|
||||
import_mesh_run(path, clear_layers, replace_existing);
|
||||
if (done != null) {
|
||||
done();
|
||||
}
|
||||
}
|
||||
if (ui_button(tr("?"))) {
|
||||
iron_load_url("https://github.com/armory3d/armorpaint_web/blob/main/manual.md#faq");
|
||||
if (ends_with(to_lower_case(path), ".obj")) {
|
||||
let split_by_combo: string[] = [ tr("Object"), tr("Group"), tr("Material"), tr("UDIM Tile") ];
|
||||
context_raw.split_by = ui_combo(ui_handle(__ID__), split_by_combo, tr("Split By"), true);
|
||||
if (ui.is_hovered) {
|
||||
ui_tooltip(tr("Split .obj mesh into objects"));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (ends_with(to_lower_case(path), ".fbx")) {
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
h.b = context_raw.parse_vcols;
|
||||
context_raw.parse_vcols = ui_check(h, tr("Parse Vertex Colors"));
|
||||
if (ui.is_hovered) {
|
||||
ui_tooltip(tr("Import vertex color data"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ends_with(to_lower_case(path), ".blend")) {
|
||||
import_blend_mesh_ui();
|
||||
}
|
||||
|
||||
let row: f32[] = [ 0.45, 0.45, 0.1 ];
|
||||
ui_row(row);
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
if (ui_button(tr("Import")) || ui.is_return_down) {
|
||||
ui_box_hide();
|
||||
|
||||
/// if (arm_android || arm_ios)
|
||||
console_toast(tr("Importing mesh"));
|
||||
/// end
|
||||
|
||||
import_mesh_run(path, clear_layers, replace_existing);
|
||||
if (done != null) {
|
||||
done();
|
||||
}
|
||||
}
|
||||
if (ui_button(tr("?"))) {
|
||||
iron_load_url("https://github.com/armory3d/armorpaint_web/blob/main/manual.md#faq");
|
||||
}
|
||||
}, 400, 200, null, true, tr("Import Mesh"));
|
||||
|
||||
ui_box_click_to_hide = false; // Prevent closing when going back to window from file browser
|
||||
}
|
||||
@@ -480,27 +474,23 @@ function project_unwrap_mesh_box(mesh: raw_mesh_t, done: (a: raw_mesh_t) => void
|
||||
let mesh: raw_mesh_t = _project_unwrap_mesh_box_mesh;
|
||||
let done: (a: raw_mesh_t) => void = _project_unwrap_mesh_box_done;
|
||||
|
||||
let tab_vertical: bool = config_raw.touch_ui;
|
||||
if (ui_tab(ui_handle(__ID__), tr("Unwrap Mesh"), tab_vertical)) {
|
||||
let unwrap_plugins: string[] = project_get_unwrap_plugins();
|
||||
_project_unwrap_by = ui_combo(ui_handle(__ID__), unwrap_plugins, tr("Plugin"), true);
|
||||
|
||||
let unwrap_plugins: string[] = project_get_unwrap_plugins();
|
||||
_project_unwrap_by = ui_combo(ui_handle(__ID__), unwrap_plugins, tr("Plugin"), true);
|
||||
|
||||
ui_row2();
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
if (ui_button(tr("Unwrap")) || ui.is_return_down) {
|
||||
ui_box_hide();
|
||||
|
||||
/// if (arm_android || arm_ios)
|
||||
console_toast(tr("Unwrapping mesh"));
|
||||
/// end
|
||||
|
||||
project_unwrap_mesh(mesh, done);
|
||||
}
|
||||
ui_row2();
|
||||
if (ui_button(tr("Cancel"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
});
|
||||
if (ui_button(tr("Unwrap")) || ui.is_return_down) {
|
||||
ui_box_hide();
|
||||
|
||||
/// if (arm_android || arm_ios)
|
||||
console_toast(tr("Unwrapping mesh"));
|
||||
/// end
|
||||
|
||||
project_unwrap_mesh(mesh, done);
|
||||
}
|
||||
}, 400, 200, null, true, tr("Unwrap Mesh"));
|
||||
}
|
||||
|
||||
function project_unwrap_mesh(mesh: raw_mesh_t, done: (a: raw_mesh_t) => void) {
|
||||
|
||||
+31
-32
@@ -66,46 +66,44 @@ function ui_box_render() {
|
||||
}
|
||||
let left: i32 = math_floor(appw / 2 - mw / 2);
|
||||
let top: i32 = math_floor(apph / 2 - mh / 2);
|
||||
ui_box_hwnd.text = ui_box_title;
|
||||
|
||||
if (ui_box_commands == null) {
|
||||
ui_begin(ui);
|
||||
if (ui_window(ui_box_hwnd, left, top, mw, mh, ui_box_draggable)) {
|
||||
ui._y += 10;
|
||||
let tab_vertical: bool = config_raw.touch_ui;
|
||||
if (ui_tab(ui_handle(__ID__), ui_box_title, tab_vertical)) {
|
||||
let htext: ui_handle_t = ui_handle(__ID__);
|
||||
htext.text = ui_box_text;
|
||||
if (ui_box_copyable) {
|
||||
ui_text_area(htext, ui_align_t.LEFT, false);
|
||||
}
|
||||
else {
|
||||
ui_text(ui_box_text);
|
||||
}
|
||||
ui_end_element();
|
||||
let htext: ui_handle_t = ui_handle(__ID__);
|
||||
htext.text = ui_box_text;
|
||||
if (ui_box_copyable) {
|
||||
ui_text_area(htext, ui_align_t.LEFT, false);
|
||||
}
|
||||
else {
|
||||
ui_text(ui_box_text);
|
||||
}
|
||||
ui_end_element();
|
||||
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_box_copyable) {
|
||||
ui_row3();
|
||||
}
|
||||
else {
|
||||
let row: f32[] = [ 2 / 3, 1 / 3 ];
|
||||
ui_row(row);
|
||||
}
|
||||
/// else
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_box_copyable) {
|
||||
ui_row3();
|
||||
}
|
||||
else {
|
||||
let row: f32[] = [ 2 / 3, 1 / 3 ];
|
||||
ui_row(row);
|
||||
/// end
|
||||
}
|
||||
/// else
|
||||
let row: f32[] = [ 2 / 3, 1 / 3 ];
|
||||
ui_row(row);
|
||||
/// end
|
||||
|
||||
ui_end_element();
|
||||
ui_end_element();
|
||||
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_box_copyable && ui_button(tr("Copy"))) {
|
||||
iron_copy_to_clipboard(ui_box_text);
|
||||
}
|
||||
/// end
|
||||
if (ui_button(tr("OK"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_box_copyable && ui_button(tr("Copy"))) {
|
||||
iron_copy_to_clipboard(ui_box_text);
|
||||
}
|
||||
/// end
|
||||
if (ui_button(tr("OK"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
ui_box_window_border();
|
||||
}
|
||||
@@ -129,7 +127,7 @@ function ui_box_render() {
|
||||
function ui_box_show_message(title: string, text: string, copyable: bool = false) {
|
||||
ui_box_init();
|
||||
ui_box_modalw = 400;
|
||||
ui_box_modalh = 210;
|
||||
ui_box_modalh = 180;
|
||||
ui_box_title = title;
|
||||
ui_box_text = text;
|
||||
ui_box_commands = null;
|
||||
@@ -140,13 +138,14 @@ function ui_box_show_message(title: string, text: string, copyable: bool = false
|
||||
/// end
|
||||
}
|
||||
|
||||
function ui_box_show_custom(commands: () => void = null, mw: i32 = 400, mh: i32 = 200, on_hide: () => void = null, draggable: bool = true) {
|
||||
function ui_box_show_custom(commands: () => void = null, mw: i32 = 400, mh: i32 = 200, on_hide: () => void = null, draggable: bool = true, title: string = "") {
|
||||
ui_box_init();
|
||||
ui_box_modalw = mw;
|
||||
ui_box_modalh = mh;
|
||||
ui_box_modal_on_hide = on_hide;
|
||||
ui_box_commands = commands;
|
||||
ui_box_draggable = draggable;
|
||||
ui_box_title = title;
|
||||
/// if (arm_android || arm_ios)
|
||||
ui_box_tween_in();
|
||||
/// end
|
||||
|
||||
+25
-29
@@ -597,37 +597,33 @@ function ui_menubar_draw_category_items() {
|
||||
_ui_menu_render_msg = msg;
|
||||
|
||||
ui_box_show_custom(function() {
|
||||
let tab_vertical: bool = config_raw.touch_ui;
|
||||
if (ui_tab(ui_handle(__ID__), tr("About"), tab_vertical)) {
|
||||
let img: gpu_texture_t = data_get_image("badge.k");
|
||||
ui_image(img);
|
||||
ui_end_element();
|
||||
|
||||
let img: gpu_texture_t = data_get_image("badge.k");
|
||||
ui_image(img);
|
||||
ui_end_element();
|
||||
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = _ui_menu_render_msg;
|
||||
}
|
||||
ui_text_area(h, ui_align_t.LEFT, false);
|
||||
|
||||
ui_row3();
|
||||
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_button(tr("Copy"))) {
|
||||
iron_copy_to_clipboard(_ui_menu_render_msg);
|
||||
}
|
||||
/// else
|
||||
ui_end_element();
|
||||
/// end
|
||||
|
||||
if (ui_button(tr("Contributors"))) {
|
||||
iron_load_url("https://github.com/armory3d/armortools/graphs/contributors");
|
||||
}
|
||||
if (ui_button(tr("OK"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
let h: ui_handle_t = ui_handle(__ID__);
|
||||
if (h.init) {
|
||||
h.text = _ui_menu_render_msg;
|
||||
}
|
||||
}, 400, 320);
|
||||
ui_text_area(h, ui_align_t.LEFT, false);
|
||||
|
||||
ui_row3();
|
||||
|
||||
/// if (arm_windows || arm_linux || arm_macos)
|
||||
if (ui_button(tr("Copy"))) {
|
||||
iron_copy_to_clipboard(_ui_menu_render_msg);
|
||||
}
|
||||
/// else
|
||||
ui_end_element();
|
||||
/// end
|
||||
|
||||
if (ui_button(tr("Contributors"))) {
|
||||
iron_load_url("https://github.com/armory3d/armortools/graphs/contributors");
|
||||
}
|
||||
if (ui_button(tr("OK"))) {
|
||||
ui_box_hide();
|
||||
}
|
||||
}, 400, 320, null, true, tr("About"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+39
-41
@@ -180,48 +180,46 @@ function ui_viewnodes_on_socket_released(socket_id: i32) {
|
||||
let socket: ui_node_socket_t = _ui_nodes_on_socket_released_socket;
|
||||
let node: ui_node_t = _ui_nodes_on_socket_released_node;
|
||||
|
||||
if (ui_tab(ui_handle(__ID__), tr("Socket"))) {
|
||||
let type_combo: string[] = [ tr("Color"), tr("Vector"), tr("Value") ];
|
||||
let type: i32 = ui_combo(_ui_nodes_htype, type_combo, tr("Type"), true);
|
||||
if (_ui_nodes_htype.changed) {
|
||||
_ui_nodes_hname.text = type == 0 ? tr("Color") : type == 1 ? tr("Vector") : tr("Value");
|
||||
}
|
||||
let name: string = ui_text_input(_ui_nodes_hname, tr("Name"));
|
||||
let min: f32 = ui_float_input(_ui_nodes_hmin, tr("Min"));
|
||||
let max: f32 = ui_float_input(_ui_nodes_hmax, tr("Max"));
|
||||
let default_value: f32_array_t = null;
|
||||
if (type == 0) {
|
||||
ui_row4();
|
||||
ui_float_input(_ui_nodes_hval0, tr("R"));
|
||||
ui_float_input(_ui_nodes_hval1, tr("G"));
|
||||
ui_float_input(_ui_nodes_hval2, tr("B"));
|
||||
ui_float_input(_ui_nodes_hval3, tr("A"));
|
||||
default_value = f32_array_create_xyzw(_ui_nodes_hval0.f, _ui_nodes_hval1.f, _ui_nodes_hval2.f, _ui_nodes_hval3.f);
|
||||
}
|
||||
else if (type == 1) {
|
||||
ui_row3();
|
||||
_ui_nodes_hval0.f = ui_float_input(_ui_nodes_hval0, tr("X"));
|
||||
_ui_nodes_hval1.f = ui_float_input(_ui_nodes_hval1, tr("Y"));
|
||||
_ui_nodes_hval2.f = ui_float_input(_ui_nodes_hval2, tr("Z"));
|
||||
default_value = f32_array_create_xyz(_ui_nodes_hval0.f, _ui_nodes_hval1.f, _ui_nodes_hval2.f);
|
||||
}
|
||||
else {
|
||||
let f: f32 = ui_float_input(_ui_nodes_hval0, tr("default_value"));
|
||||
default_value = f32_array_create_x(f);
|
||||
}
|
||||
if (ui_button(tr("OK"))) { // || ui.isReturnDown
|
||||
socket.name = name;
|
||||
socket.type = type == 0 ? "RGBA" : type == 1 ? "VECTOR" : "VALUE";
|
||||
socket.color = nodes_material_get_socket_color(socket.type);
|
||||
socket.min = min;
|
||||
socket.max = max;
|
||||
socket.default_value = default_value;
|
||||
ui_box_hide();
|
||||
nodes_material_sync_sockets(node);
|
||||
ui_nodes_hwnd.redraws = 2;
|
||||
}
|
||||
let type_combo: string[] = [ tr("Color"), tr("Vector"), tr("Value") ];
|
||||
let type: i32 = ui_combo(_ui_nodes_htype, type_combo, tr("Type"), true);
|
||||
if (_ui_nodes_htype.changed) {
|
||||
_ui_nodes_hname.text = type == 0 ? tr("Color") : type == 1 ? tr("Vector") : tr("Value");
|
||||
}
|
||||
}, 400, 250);
|
||||
let name: string = ui_text_input(_ui_nodes_hname, tr("Name"));
|
||||
let min: f32 = ui_float_input(_ui_nodes_hmin, tr("Min"));
|
||||
let max: f32 = ui_float_input(_ui_nodes_hmax, tr("Max"));
|
||||
let default_value: f32_array_t = null;
|
||||
if (type == 0) {
|
||||
ui_row4();
|
||||
ui_float_input(_ui_nodes_hval0, tr("R"));
|
||||
ui_float_input(_ui_nodes_hval1, tr("G"));
|
||||
ui_float_input(_ui_nodes_hval2, tr("B"));
|
||||
ui_float_input(_ui_nodes_hval3, tr("A"));
|
||||
default_value = f32_array_create_xyzw(_ui_nodes_hval0.f, _ui_nodes_hval1.f, _ui_nodes_hval2.f, _ui_nodes_hval3.f);
|
||||
}
|
||||
else if (type == 1) {
|
||||
ui_row3();
|
||||
_ui_nodes_hval0.f = ui_float_input(_ui_nodes_hval0, tr("X"));
|
||||
_ui_nodes_hval1.f = ui_float_input(_ui_nodes_hval1, tr("Y"));
|
||||
_ui_nodes_hval2.f = ui_float_input(_ui_nodes_hval2, tr("Z"));
|
||||
default_value = f32_array_create_xyz(_ui_nodes_hval0.f, _ui_nodes_hval1.f, _ui_nodes_hval2.f);
|
||||
}
|
||||
else {
|
||||
let f: f32 = ui_float_input(_ui_nodes_hval0, tr("default_value"));
|
||||
default_value = f32_array_create_x(f);
|
||||
}
|
||||
if (ui_button(tr("OK"))) { // || ui.isReturnDown
|
||||
socket.name = name;
|
||||
socket.type = type == 0 ? "RGBA" : type == 1 ? "VECTOR" : "VALUE";
|
||||
socket.color = nodes_material_get_socket_color(socket.type);
|
||||
socket.min = min;
|
||||
socket.max = max;
|
||||
socket.default_value = default_value;
|
||||
ui_box_hide();
|
||||
nodes_material_sync_sockets(node);
|
||||
ui_nodes_hwnd.redraws = 2;
|
||||
}
|
||||
}, 400, 250, null, true, tr("Socket"));
|
||||
});
|
||||
}
|
||||
if (ui_menu_button(tr("Delete"))) {
|
||||
|
||||
Reference in New Issue
Block a user