From 63038087c10889103ced00ca51ac17d9985f22f2 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Wed, 8 Jan 2025 09:24:05 +0700 Subject: [PATCH] [Presets] Fix crash when deleting presets. --- PixelComposer.resource_order | 1 - PixelComposer.yyp | 1 - datafiles/data/Theme.zip | Bin 2840480 -> 2841767 bytes .../o_dialog_add_multiple_images/Create_0.gml | 5 +- objects/o_dialog_preference/Create_0.gml | 1490 ----------------- objects/o_dialog_preference/Destroy_0.gml | 3 - objects/o_dialog_preference/Draw_64.gml | 251 --- .../o_dialog_preference/o_dialog_animation.yy | 37 - .../o_dialog_preference.yy | 40 - objects/o_main/Step_0.gml | 2 +- scripts/__surface/__surface.gml | 11 +- scripts/buttonColor/buttonColor.gml | 4 +- scripts/globals/globals.gml | 2 +- scripts/node_atlas_draw/node_atlas_draw.gml | 29 +- scripts/node_attributes/node_attributes.gml | 11 +- .../node_crop_content/node_crop_content.gml | 68 +- scripts/node_displace/node_displace.gml | 8 +- scripts/panel_graph/panel_graph.gml | 1 + scripts/panel_preference/panel_preference.gml | 76 +- scripts/panel_presets/panel_presets.gml | 2 +- scripts/preferences/preferences.gml | 4 + 21 files changed, 129 insertions(+), 1917 deletions(-) delete mode 100644 objects/o_dialog_preference/Create_0.gml delete mode 100644 objects/o_dialog_preference/Destroy_0.gml delete mode 100644 objects/o_dialog_preference/Draw_64.gml delete mode 100644 objects/o_dialog_preference/o_dialog_animation.yy delete mode 100644 objects/o_dialog_preference/o_dialog_preference.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index d25f920b5..f6b78e1f4 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -321,7 +321,6 @@ {"name":"o_dialog_output_visibility","order":2,"path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",}, {"name":"o_dialog_palette","order":2,"path":"objects/o_dialog_palette/o_dialog_palette.yy",}, {"name":"o_dialog_panel","order":13,"path":"objects/o_dialog_panel/o_dialog_panel.yy",}, - {"name":"o_dialog_preference","order":3,"path":"objects/o_dialog_preference/o_dialog_preference.yy",}, {"name":"o_dialog_preset","order":1,"path":"objects/o_dialog_preset/o_dialog_preset.yy",}, {"name":"o_dialog_release_note","order":4,"path":"objects/o_dialog_release_note/o_dialog_release_note.yy",}, {"name":"o_dialog_run_shell","order":9,"path":"objects/o_dialog_run_shell/o_dialog_run_shell.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index d1997109a..92892dda8 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -754,7 +754,6 @@ {"id":{"name":"o_dialog_palette","path":"objects/o_dialog_palette/o_dialog_palette.yy",},}, {"id":{"name":"o_dialog_panel","path":"objects/o_dialog_panel/o_dialog_panel.yy",},}, {"id":{"name":"o_dialog_patreon","path":"objects/o_dialog_patreon/o_dialog_patreon.yy",},}, - {"id":{"name":"o_dialog_preference","path":"objects/o_dialog_preference/o_dialog_preference.yy",},}, {"id":{"name":"o_dialog_preset","path":"objects/o_dialog_preset/o_dialog_preset.yy",},}, {"id":{"name":"o_dialog_release_note","path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},}, {"id":{"name":"o_dialog_run_shell","path":"objects/o_dialog_run_shell/o_dialog_run_shell.yy",},}, diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index 0c807c6c221aa30997eddf24c74974ad2c0b068f..3f8b52c814fe0477abfbdaacb76ead8e5a55783a 100644 GIT binary patch delta 57624 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 z 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/ { dir_recursive = !dir_recursive; }); + tb_filter = new textBox(TEXTBOX_INPUT.text, function(str) /*=>*/ { dir_filter = str; }) #endregion \ No newline at end of file diff --git a/objects/o_dialog_preference/Create_0.gml b/objects/o_dialog_preference/Create_0.gml deleted file mode 100644 index 798aff1f9..000000000 --- a/objects/o_dialog_preference/Create_0.gml +++ /dev/null @@ -1,1490 +0,0 @@ -/// @description init -event_inherited(); - -#region data - dialog_w = min(WIN_W - ui(16), ui(1000)); - dialog_h = min(WIN_H - ui(16), ui(700)); - page_width = ui(128); - // title_height = 8; - - destroy_on_click_out = true; - destroy_on_escape = false; - - should_restart = false; - - font = f_p2; -#endregion - -#region size - dialog_resizable = true; - dialog_w_min = ui(640); - dialog_h_min = ui(480); - - panel_width = dialog_w - ui(padding + padding) - page_width; - panel_height = dialog_h - ui(title_height + padding); - - hotkey_cont_h = ui(240); - hotkey_height = panel_height - hotkey_cont_h - ui(32); - - onResize = function() /*=>*/ { - panel_width = dialog_w - ui(padding + padding) - page_width; - panel_height = dialog_h - ui(title_height + padding); - hotkey_height = panel_height - hotkey_cont_h - ui(32); - - sp_page.resize(page_width - ui(4), panel_height); - - sp_pref.resize( panel_width, panel_height); - sp_hotkey.resize(panel_width, hotkey_height); - } -#endregion - -#region pages - page_current = 0; - page[0] = __txtx("pref_pages_general", "General"); - page[1] = __txtx("pref_pages_interface", "Interface"); - page[2] = __txt("Nodes"); - page[3] = __txt("Theme"); - page[4] = __txt("Hotkeys"); - - section_current = ""; - sections = array_create(array_length(page)); - collapsed = {}; - - sp_page = new scrollPane(page_width - ui(4), panel_height, function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear, 1); - var ww = sp_page.surface_w; - var hh = 0; - - var yl = _y; - var hg = line_get_height(f_p1, 8); - var hs = line_get_height(f_p2, 8); - - for(var i = 0; i < array_length(page); i++) { - if(i == page_current) draw_set_text(f_p1b, fa_left, fa_center, COLORS._main_text_accent); - else draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text_inner); - - if(sHOVER && point_in_rectangle(_m[0], _m[1], 0, yl, ww, yl + hg - 1)) { - sp_page.hover_content = true; - draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yl, ww, hg, CDEF.main_white, 1); - - if(i != page_current && mouse_click(mb_left, sFOCUS)) { - page_current = i; - sp_pref.setScroll(0); - } - } - - draw_text_add(ui(8), yl + hg / 2, page[i]); - yl += hg; - hh += hg; - - if(i == page_current && sections[i] != 0) { - for( var j = 0, m = array_length(sections[i]); j < m; j++ ) { - var sect = sections[i][j]; - - draw_set_text(f_p2, fa_left, fa_center, section_current == sect[0]? COLORS._main_text : COLORS._main_text_sub); - - if(sHOVER && point_in_rectangle(_m[0], _m[1], 0, yl, ww, yl + hs - 1)) { - sp_page.hover_content = true; - if(mouse_press(mb_left, sFOCUS)) - sect[1].scroll_y_to = -sect[2]; - - draw_set_color(COLORS._main_text); - } - - var _xx = ui(8 + 16); - var sect_title = sect[0]; - var sp = string_split(sect_title, " "); - if(sp[0] == "-") { - _xx += ui(16); - sect_title = string_replace(sect_title, "- ", ""); - } - - draw_text_add(_xx, yl + hs / 2, __txt(sect_title)); - - yl += hs; - hh += hs; - } - } - } - - return hh; - }); - - sp_page.show_scroll = false; -#endregion - -#region general - pref_global = ds_list_create(); - - ds_list_add(pref_global, __txt("Inputs")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_double_click_delay", "Double click delay"), - "double_click_delay", - slider(0, 1, 0.01, function(val) /*=>*/ { PREFERENCES.double_click_delay = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_mouse_wheel_speed", "Scroll speed"), - "mouse_wheel_speed", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.mouse_wheel_speed = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_keyboard_hold_start", "Keyboard hold start"), - "keyboard_repeat_start", - slider(0, 1, 0.01, function(val) /*=>*/ { PREFERENCES.keyboard_repeat_start = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_keyboard_repeat_delay", "Keyboard repeat delay"), - "keyboard_repeat_speed", - slider(0, 1, 0.01, function(val) /*=>*/ { PREFERENCES.keyboard_repeat_speed = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_expand_hovering_panel", "Expand hovering panel"), - "expand_hover", - new checkBox(function() /*=>*/ { PREFERENCES.expand_hover = !PREFERENCES.expand_hover; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_expand_lock_mouse_slider", "Lock mouse when sliding"), - "slider_lock_mouse", - new checkBox(function() /*=>*/ { PREFERENCES.slider_lock_mouse = !PREFERENCES.slider_lock_mouse; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_pen_pool_delay", "Pen leave delay"), - "pen_pool_delay", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.pen_pool_delay = max(0, val); PREF_SAVE(); }) - )); - - ds_list_add(pref_global, __txt("Save/Load")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_auto_save_time", "Autosave delay (-1 to disable)"), - "auto_save_time", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.auto_save_time = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_save_layout", "Save layout"), - "save_layout", - new checkBox(function() /*=>*/ { PREFERENCES.save_layout = !PREFERENCES.save_layout; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_save_file_minify", "Minify save file"), - "save_file_minify", - new checkBox(function() /*=>*/ { PREFERENCES.save_file_minify = !PREFERENCES.save_file_minify; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_save_file_compress", "Compress save file"), - "save_compress", - new checkBox(function() /*=>*/ { PREFERENCES.save_compress = !PREFERENCES.save_compress; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_save_backups", "Backup save(s) amount"), - "save_backup", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.save_backup = max(0, val); PREF_SAVE(); }) - )); - - ds_list_add(pref_global, __txt("Crash")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_legacy_exception", "Use legacy exception handler"), - "use_legacy_exception", - new checkBox(function() /*=>*/ { PREFERENCES.use_legacy_exception = !PREFERENCES.use_legacy_exception; PREF_APPLY(); PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_crash_dialog", "Show dialog after crash"), - "show_crash_dialog", - new checkBox(function() /*=>*/ { PREFERENCES.show_crash_dialog = !PREFERENCES.show_crash_dialog; PREF_APPLY(); PREF_SAVE(); }) - )); - - ds_list_add(pref_global, __txt("Misc")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_clear_temp", "Clear temp file on close"), - "clear_temp_on_close", - new checkBox(function() /*=>*/ { PREFERENCES.clear_temp_on_close = !PREFERENCES.clear_temp_on_close; PREF_SAVE(); }) - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_enable_test_mode", "Enable developer mode*"), - "test_mode", - new checkBox(function() /*=>*/ { PREFERENCES.test_mode = !PREFERENCES.test_mode; should_restart = true; PREF_SAVE(); }) - )); - - if(PREFERENCES.test_mode) { - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_exp_popup_dialog", "[Experimental] Pop-up Dialog"), - "multi_window", - new checkBox(function() /*=>*/ { PREFERENCES.multi_window = !PREFERENCES.multi_window; PREF_SAVE(); }) - )); - } - - ds_list_add(pref_global, __txt("Paths")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item( - __txtx("pref_directory", "Main directory path*"), - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PRESIST_PREF.path = txt; json_save_struct(APP_DIRECTORY + "persistPreference.json", PRESIST_PREF); }) - .setSideButton(button(function() /*=>*/ { - PRESIST_PREF.path = get_directory(struct_try_get(PRESIST_PREF, "path", "")); - json_save_struct(APP_DIRECTORY + "persistPreference.json", PRESIST_PREF); - }, THEME.button_path_icon)).setFont(f_p2).setEmpty(), - - function( ) /*=>*/ { return struct_try_get(PRESIST_PREF, "path", ""); }, - function(val) /*=>*/ { PRESIST_PREF.path = val; json_save_struct(APP_DIRECTORY + "persistPreference.json", PRESIST_PREF); }, - APP_DIRECTORY, - ).setKey("main_dir_path")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_temp", "Temp directory path*"), - "temp_path", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.temp_path = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.temp_path = get_directory(PREFERENCES.temp_path); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty(), - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_assets", "Assets directory path*"), - "path_assets", - new folderArrayBox(PREFERENCES.path_assets, function() /*=>*/ { PREF_SAVE(); }).setFont(f_p2), - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_font", "Font directory path*"), - "path_fonts", - new folderArrayBox(PREFERENCES.path_fonts, function() /*=>*/ { PREF_SAVE(); }).setFont(f_p2), - )); - - ds_list_add(pref_global, __txt("Libraries")); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_ImageMagick", "ImageMagick path*"), - "ImageMagick_path", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.ImageMagick_path = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.ImageMagick_path = get_directory(PREFERENCES.ImageMagick_path); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty(), - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_webp", "Webp path*"), - "webp_path", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.webp_path = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.webp_path = get_directory(PREFERENCES.webp_path); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty(), - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_gifski", "Gifski path*"), - "gifski_path", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.gifski_path = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.gifski_path = get_directory(PREFERENCES.gifski_path); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty(), - )); - - ds_list_add(pref_global, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_directory_FFmpeg", "FFmpeg path*"), - "ffmpeg_path", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.gifski_path = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.ffmpeg_path = get_directory(PREFERENCES.ffmpeg_path); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty(), - )); - -#endregion - -#region interface - pref_appr = ds_list_create(); - - ds_list_add(pref_appr, __txt("Interface")); /////////////////////////////////////////////////////////////// Interface - - PREFERENCES._display_scaling = PREFERENCES.display_scaling; - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item( - __txtx("pref_gui_scaling", "GUI scaling*"), - slider(0.5, 2, 0.01, function(val) /*=>*/ { PREFERENCES._display_scaling = val; should_restart = true; }, - function( ) /*=>*/ { - PREFERENCES._display_scaling = max(PREFERENCES._display_scaling, 0.5); - resetScale(PREFERENCES._display_scaling, true); should_restart = true; - }), - - function( ) /*=>*/ { return PREFERENCES._display_scaling; }, - function(val) /*=>*/ { - PREFERENCES._display_scaling = val; - resetScale(PREFERENCES._display_scaling, true); should_restart = true; - }, - 1, - ).setKey("ui_scale")); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_frame_rate", "UI frame rate"), - "ui_framerate", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { - PREFERENCES.ui_framerate = max(15, round(real(str))); - game_set_speed(PREFERENCES.ui_framerate, gamespeed_fps); - PREF_SAVE(); - }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_frame_rate", "UI inactive frame rate"), - "ui_framerate_non_focus", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { - PREFERENCES.ui_framerate_non_focus = max(1, round(real(str))); - game_set_speed(PREFERENCES.ui_framerate_non_focus, gamespeed_fps); - PREF_SAVE(); - }) - )); - - locals = []; - var f = file_find_first(DIRECTORY + "Locale/*", fa_directory); - while(f != "") { - if(directory_exists(DIRECTORY + "Locale/" + f)) { if(f != "_extend") array_push(locals, f); } - f = file_find_next(); - } - file_find_close(); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_interface_language", "Interface Language*"), - "local", - new scrollBox(locals, function(str) /*=>*/ { - if(str < 0) return; - PREFERENCES.local = locals[str]; - PREF_SAVE(); - }, false) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_font", "Overwrite UI font") + "*", - "font_overwrite", - new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { PREFERENCES.font_overwrite = txt; PREF_SAVE(); }) - .setSideButton(button(function() /*=>*/ { PREFERENCES.font_overwrite = get_open_filename_pxc("Font files (.ttf, .otf)|*.ttf;*.otf", ""); PREF_SAVE(); }, THEME.button_path_icon)) - .setFont(f_p2).setEmpty() - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_windows_control", "Use Windows style window control."), - "panel_menu_right_control", - new checkBox(function() /*=>*/ { PREFERENCES.panel_menu_right_control = !PREFERENCES.panel_menu_right_control; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_fix_window_size", "Fix Window size on start"), - "window_fix", - new checkBox(function() /*=>*/ { - PREFERENCES.window_fix = !PREFERENCES.window_fix; - PREF_SAVE(); - }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_fix_width", "Fix width"), - "window_fix_width", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { - PREFERENCES.window_fix_width = max(1, round(real(str))); - PREF_SAVE(); - }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_ui_fix_height", "Fix height"), - "window_fix_height", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { - PREFERENCES.window_fix_height = max(1, round(real(str))); - PREF_SAVE(); - }) - )); - - ds_list_add(pref_appr, __txt("Splash")); - - if(IS_PATREON) - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_supporter_icon", "Show supporter icon"), - "show_supporter_icon", - new checkBox(function() /*=>*/ { PREFERENCES.show_supporter_icon = !PREFERENCES.show_supporter_icon; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, __txt("Graph")); //////////////////////////////////////////////////////////////////////// Graph - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_add_node_remember", "Remember add node position"), - "add_node_remember", - new checkBox(function() /*=>*/ { PREFERENCES.add_node_remember = !PREFERENCES.add_node_remember; }) - )); - - // ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - // __txtx("pref_connection_type", "Connection type"), - // "curve_connection_line", - // new buttonGroup([ THEME.icon_curve_connection, THEME.icon_curve_connection, THEME.icon_curve_connection, THEME.icon_curve_connection ], - // (val) => { PREFERENCES.curve_connection_line = val; PREF_SAVE(); }) - // )); - - // ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - // __txtx("pref_connection_thickness", "Connection thickness"), - // "connection_line_width", - // new textBox(TEXTBOX_INPUT.number, (str) => { PREFERENCES.connection_line_width = real(str); PREF_SAVE(); }) - // )); - - // ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - // __txtx("pref_connection_curve_smoothness", "Connection curve smoothness"), - // "connection_line_sample", - // new textBox(TEXTBOX_INPUT.number, (str) => { PREFERENCES.connection_line_sample = real(str); PREF_SAVE(); }) - // )); - - // ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - // __txtx("pref_connection_aa", "Connection anti aliasing"), - // "connection_line_aa", - // new textBox(TEXTBOX_INPUT.number, (str) => { PREFERENCES.connection_line_aa = max(1, real(str)); PREF_SAVE(); }) - // )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_connection_anim", "Connection line animation"), - "connection_line_transition", - new checkBox(function() /*=>*/ { PREFERENCES.connection_line_transition = !PREFERENCES.connection_line_transition; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_graph_group_in_tab", "Open group in new tab"), - "graph_open_group_in_tab", - new checkBox(function() /*=>*/ { PREFERENCES.graph_open_group_in_tab = !PREFERENCES.graph_open_group_in_tab; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_graph_zoom_smoothing", "Graph zoom smoothing"), - "graph_zoom_smoooth", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.graph_zoom_smoooth = max(1, round(real(str))); PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("panel_graph_group_require_shift", "Hold Shift to enter group"), - "panel_graph_group_require_shift", - new checkBox(function() /*=>*/ { PREFERENCES.panel_graph_group_require_shift = !PREFERENCES.panel_graph_group_require_shift; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_use_alt", "Use ALT for"), - "alt_picker", - new buttonGroup([ "Pan", "Color Picker" ], function(val) /*=>*/ { PREFERENCES.alt_picker = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item( - __txtx("pref_pan_key", "Panning key"), - new scrollBox([ "Middle Mouse", "Mouse 4", "Mouse 5" ], function(val) /*=>*/ { PREFERENCES.pan_mouse_key = val + 3; PREF_SAVE(); }), - function() /*=>*/ { return PREFERENCES.pan_mouse_key - 3; }, - ).setKey("panning_key")); - - ds_list_add(pref_appr, __txt("Preview")); ////////////////////////////////////////////////////////////////////// Preview - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_preview_show_real_fps", "Show real fps"), - "panel_preview_show_real_fps", - new checkBox(function(str) /*=>*/ { PREFERENCES.panel_preview_show_real_fps = !PREFERENCES.panel_preview_show_real_fps; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, __txt("Inspector")); //////////////////////////////////////////////////////////////////// Inspector - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_inspector_focus_on_double_click", "Focus on double click"), - "inspector_focus_on_double_click", - new checkBox(function(str) /*=>*/ { PREFERENCES.inspector_focus_on_double_click = !PREFERENCES.inspector_focus_on_double_click; PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, __txt("Collection")); /////////////////////////////////////////////////////////////////// Collection - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_collection_preview_speed", "Collection preview speed"), - "collection_preview_speed", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.collection_preview_speed = max(1, round(real(str))); PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, __txt("Notification")); ///////////////////////////////////////////////////////////////// Notification - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_warning_notification_time", "Warning notification time"), - "notification_time", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.notification_time = max(0, round(real(str))); PREF_SAVE(); }) - )); - - ds_list_add(pref_appr, __txt("Text Area")); //////////////////////////////////////////////////////////////////// Text area - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_widget_autocomplete_delay", "Code Autocomplete delay"), - "widget_autocomplete_delay", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.widget_autocomplete_delay = round(real(str)); PREF_SAVE(); }) - )); - - if(IS_PATREON) { - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_widget_textbox_shake", "Textbox shake"), - "textbox_shake", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.textbox_shake = real(str); PREF_SAVE(); }) - ).patreon()); - - ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_widget_textbox_particles", "Textbox particles"), - "textbox_particle", - new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.textbox_particle = round(real(str)); PREF_SAVE(); }) - ).patreon()); - - } - -#endregion - -#region node - pref_node = ds_list_create(); - - // ds_list_add(pref_node, __txt("Node")); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_param_show", "Show paramater on new node"), - "node_param_show", - new checkBox(function() /*=>*/ { PREFERENCES.node_param_show = !PREFERENCES.node_param_show; PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_param_width", "Default param width"), - "node_param_width", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_param_width = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_3d_preview", "3D Preview resolution"), - "node_3d_preview_size", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_3d_preview_size = clamp(val, 16, 1024); PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_file_watcher_delay", "File watcher delay (s)"), - "file_watcher_delay", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.file_watcher_delay = val; PREF_SAVE(); }) - )); - -#endregion - -#region theme - - ////- Themes - - themes = []; - themeCurrent = noone; - - var f = file_find_first(DIRECTORY + "Themes/*", fa_directory); - while(f != "") { - var _file = f; - var _path = $"{DIRECTORY}Themes/{f}"; - f = file_find_next(); - - if(!directory_exists(_path)) continue; - - var _metaPath = $"{_path}/meta.json"; - - if(!file_exists_empty(_metaPath)) { - var _item = new scrollItem(_file, THEME.circle, 0, COLORS._main_accent) - .setTooltip("Theme made for earlier version."); - array_push(themes, _item); - continue; - } - - var _meta = json_load_struct(_metaPath); - _meta.file = _file; - - var _item = new scrollItem(_meta.name, _meta.version >= VERSION? noone : THEME.circle, 0, COLORS._main_accent); - _item.data = _meta; - - if(PREFERENCES.theme == _file) themeCurrent = _meta; - - if(_meta.version < VERSION) _item.tooltip = "Theme made for earlier version."; - array_push(themes, _item); - } - file_find_close(); - - sb_theme = new scrollBox(themes, function(index) { - var dat = themes[index].data; - var thm = dat.file; - if(PREFERENCES.theme == thm) return; - - themeCurrent = dat; - PREFERENCES.theme = thm; - PREF_SAVE(); - - loadGraphic(thm); - loadColor(thm); - loadFonts(); - }, false); - sb_theme.font = f_p2; - sb_theme.align = fa_left; - - tb_override = new textBox(TEXTBOX_INPUT.text, function(val) /*=>*/ { PREFERENCES.theme_override = val; loadColor(PREFERENCES.theme); PREF_SAVE(); }) - - sp_theme = new scrollPane(panel_width, panel_height - ui(40), function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - - var _hover = sp_theme.hover; - var _focus = sp_theme.active; - var _rx = sp_theme.x; - var _ry = sp_theme.y; - - var ww = sp_theme.surface_w; - var hh = sp_theme.surface_h; - - var hh = ui(8); - _y += ui(8); - - var _h = ui(24); - if(buttonInstant(THEME.button_hide_fill, ww - _h, _y, _h, _h, _m, _hover, _focus, __txt("Reset colors"), THEME.refresh_16) == 2) { - var path = $"{DIRECTORY}Themes/{PREFERENCES.theme}/{PREFERENCES.theme_override}.json"; - if(file_exists_empty(path)) file_delete(path); - loadColor(PREFERENCES.theme); - } - - var _wdw = ui(128); - var _wpar = new widgetParam(ww - _h - ui(4) - _wdw, _y, _wdw, _h, 0, 0, _m, _rx, _ry) - .setFont(f_p3) - .setFocusHover(_focus, _hover); - - var thName = themeCurrent == noone? PREFERENCES.theme : themeCurrent.name; - draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(8), _y + _h / 2, __txt("Theme")); - sb_theme.drawParam(_wpar.setData(thName)); - _y += _h + ui(8); - hh += _h + ui(8); - - draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(8), _y + _h / 2, __txt("Variant")); - tb_override.drawParam(_wpar.setY(_y).setData(PREFERENCES.theme_override)); - _y += _h + ui(8 + 4); - hh += _h + ui(8 + 4); - - var _mh = themeCurrent == noone? ui(16) : ui(8 + 4 + 20 * 4); - draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, 0, _y, ww, _mh, COLORS._main_icon_light); - - if(themeCurrent) { - var _yy = _y + ui(8); - draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_sub); - draw_text_add(ui(16), _yy, __txt("Name")); - - draw_set_text(f_p3, fa_right, fa_top, COLORS._main_text); - draw_text_add(ww - ui(16), _yy, themeCurrent.name); - - _yy += ui(20); - draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_sub); - draw_text_add(ui(16), _yy, __txt("Author")); - - draw_set_text(f_p3, fa_right, fa_top, COLORS._main_text); - draw_text_add(ww - ui(16), _yy, themeCurrent.author); - - _yy += ui(20); - draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_sub); - draw_text_add(ui(16), _yy, __txt("Version")); - - draw_set_text(f_p3, fa_right, fa_top, COLORS._main_text); - draw_text_add(ww - ui(16), _yy, themeCurrent.version); - - _yy += ui(20); - draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_sub); - draw_text_add(ui(16), _yy, __txt("Dependency")); - - var _d = struct_try_get(themeCurrent, "dependency", "none"); - draw_set_text(f_p3, fa_right, fa_top, COLORS._main_text); - draw_text_add(ww - ui(16), _yy, _d); - } - - _y += _mh + ui(8 + 4); - hh += _mh + ui(8 + 4); - - return hh; - }); - - ////- Colors - - color_selector_key = noone; - - color_selector_edit = noone; - tb_color_key_edit = new textBox(TEXTBOX_INPUT.text, function(t) /*=>*/ { - if(color_selector_edit == noone) return; - - var _v = _loadColorStringParse(t); - COLORS_KEYS.define[$ color_selector_edit] = _v; - COLORS[$ color_selector_edit] = _loadColorString(_v); - overrideColor(color_selector_edit, _v); - - color_selector_edit = noone; - }).setFont(f_p3); - - sp_theme_colors = new scrollPane(panel_width, panel_height - ui(40), function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - var ww = sp_theme_colors.surface_w; - var hh = 0; - - var _hover = sp_theme_colors.hover; - var _focus = sp_theme_colors.active; - - var x1 = sp_theme_colors.surface_w; - var yy = _y + ui(8); - var padx = ui(0); - var pady = ui(6); - var th = line_get_height(font); - var ind = 0; - - var cp = ui(0) - var cw = ui(100); - var ch = th - cp * 2; - var cx = x1 - cw - padx - ui(24 + 8); - var category = "", cat; - - var group_labels = []; - var sectH = ui(24); - var sect = []; - var psect = ""; - - var _search_text = string_lower(search_text); - - for( var i = 0, n = array_length(global.palette_keys); i < n; i++ ) { - var key = global.palette_keys[i]; - var val = CDEF[$ key]; - - if(_search_text != "" && string_pos(_search_text, string_lower(key)) == 0) continue; - - var cat = "global"; - - if(cat != category) { - category = cat; - - var _sect = string_title(category); - var _coll = struct_try_get(collapsed, cat, 0); - - array_push(sect, [ _sect, sp_theme_colors, hh + ui(12) ]); - array_push(group_labels, { y: yy, text: _sect, key: cat }); - - if(yy >= 0 && section_current == "") section_current = psect; - psect = _sect; - - yy += sectH + ui(!_coll * 4 + 4); - hh += sectH + ui(!_coll * 4 + 4); - ind = 0; - } - - if(struct_try_get(collapsed, cat, 0)) continue; - - if(ind % 2) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, padx, yy - pady, ww - padx * 2, th + pady * 2, COLORS.dialog_preference_prop_bg, .75); - - var keyStr = string_title(key); - - draw_set_text(font, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(32), yy + th / 2, keyStr); - - var b = buttonInstant(THEME.button_def, cx, yy + cp, cw, ch, _m, _hover, _focus); - draw_sprite_stretched_ext(THEME.palette_mask, 1, cx + ui(2), yy + ui(2), cw - ui(4), ch - ui(4), val, 1); - - if(b) sp_theme_colors.hover_content = true; - if(b == 2) { - color_selector_key = key; - - var clrSelect = dialogCall(o_dialog_color_selector) - .setDefault(val) - .setApply(function(color) /*=>*/ { CDEF[$ color_selector_key] = color; overrideColor(color_selector_key, color); refreshThemePalette(); }); - - addChildren(clrSelect); - } - - var _bs = ui(24); - var _bx = x1 - padx - ui(4) - _bs; - var _by = yy + th / 2 - _bs / 2; - - if(struct_has(COLORS_OVERRIDE, key)) { - if(buttonInstant(THEME.button_hide_fill, _bx, _by, _bs, _bs, _m, _hover, _focus, __txt("Reset"), THEME.refresh_16) == 2) { - CDEF[$ key] = color_from_rgb(COLORS_DEF.colors[$ key]); - overrideColorRemove(key); - refreshThemePalette(); - } - } else - draw_sprite_ext(THEME.refresh_16, 0, _bx + _bs / 2, _by + _bs / 2, 1, 1, 0, COLORS._main_icon_dark); - - yy += th + pady * 2; - hh += th + pady * 2; - ind++; - } - - for( var i = 0, n = array_length(COLOR_KEYS); i < n; i++ ) { - var key = COLOR_KEYS[i]; - var val = COLORS[$ key]; - - if(_search_text != "" && string_pos(_search_text, string_lower(key)) == 0) continue; - if(is_array(val)) continue; - - var spl = string_splice(key, "_"); - var cat = spl[0] == ""? spl[1] : spl[0]; - - if(cat != category) { - category = cat; - var _sect = string_title(category); - var _coll = struct_try_get(collapsed, cat, 0); - - array_push(sect, [ _sect, sp_theme_colors, hh + ui(12) ]); - array_push(group_labels, { y: yy, text: _sect, key: cat }); - - if(yy >= 0 && section_current == "") section_current = psect; - psect = _sect; - - yy += sectH + ui(!_coll * 4 + 4); - hh += sectH + ui(!_coll * 4 + 4); - ind = 0; - } - - if(struct_try_get(collapsed, cat, 0)) continue; - - if(ind % 2) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, padx, yy - pady, ww - padx * 2, th + pady * 2, COLORS.dialog_preference_prop_bg, .75); - - var keyStr = string_replace_all(key, "_", " "); - keyStr = string_replace(keyStr, cat + " ", ""); - keyStr = string_title(keyStr); - - var cy = yy + th / 2; - - draw_set_text(font, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(32), cy, keyStr); - - var _dx1 = cx - ui(4); - var _dx0 = _dx1 - ui(16); - var _dy0 = cy - ui(12); - var _dy1 = cy + ui(12); - - if(struct_has(COLORS_KEYS.define, key)) { - var _def_key = COLORS_KEYS.define[$ key]; - - draw_set_text(f_p3, fa_right, fa_center, COLORS._main_text_sub); - draw_text_add(cx - ui(8), cy, _def_key); - - _dx0 = _dx1 - ui(8) - string_width(_def_key); - } - - if(color_selector_edit == key) { - var _tbw = ui(128) - var _tbh = ui(24) - tb_color_key_edit.setFocusHover(_focus, _hover); - tb_color_key_edit.draw(_dx1 - _tbw, cy - _tbh / 2, _tbw, _tbh, COLORS_KEYS.define[$ key], _m) - - } else { - if(sHOVER && point_in_rectangle(_m[0], _m[1], _dx0, _dy0, _dx1, _dy1)) { - draw_sprite_stretched_ext(THEME.button_hide, 1, _dx0, _dy0, _dx1 - _dx0, _dy1 - _dy0); - if(mouse_press(mb_left, _focus)) { - color_selector_edit = key; - tb_color_key_edit.activate(COLORS_KEYS.define[$ key]); - } - } - } - - var b = buttonInstant(THEME.button_def, cx, yy + cp, cw, ch, _m, _hover, _focus); - draw_sprite_stretched_ext(THEME.palette_mask, 1, cx + ui(2), yy + ui(2), cw - ui(4), ch - ui(4), val, 1); - - if(b) sp_theme_colors.hover_content = true; - if(b == 2) { - color_selector_key = key; - - var clrSelect = dialogCall(o_dialog_color_selector) - .setDefault(val) - .setApply(function(color) /*=>*/ { - COLORS_KEYS.define[$ color_selector_key] = color; - COLORS[$ color_selector_key] = color; - overrideColor(color_selector_key, color); - }); - - addChildren(clrSelect); - } - - var _bs = ui(24); - var _bx = x1 - padx - ui(4) - _bs; - var _by = cy - _bs / 2; - - if(struct_has(COLORS_OVERRIDE, key)) { - if(buttonInstant(THEME.button_hide_fill, _bx, _by, _bs, _bs, _m, _hover, _focus, __txt("Reset"), THEME.refresh_16) == 2) { - var _v = COLORS_DEF.define[$ key]; - - COLORS_KEYS.define[$ key] = _v; - COLORS[$ key] = _loadColorString(_v); - overrideColorRemove(key); - } - } else - draw_sprite_ext(THEME.refresh_16, 0, _bx + _bs / 2, _by + _bs / 2, 1, 1, 0, COLORS._main_icon_dark); - - yy += th + pady * 2; - hh += th + pady * 2; - ind++; - } - - #region ------------ section label ------------ - var len = array_length(group_labels); - if(len && group_labels[0].y < 0) { - gpu_set_blendmode(bm_subtract); - draw_set_color(c_white); - draw_rectangle(0, 0, ww, sectH + ui(8 + 4), false); - gpu_set_blendmode(bm_normal); - } - - var _cAll = 0; - - for( var i = 0; i < len; i++ ) { - var lb = group_labels[i]; - var _name = lb.text; - var _key = lb.key; - var _coll = struct_try_get(collapsed, _key, 0); - - var _yy = max(lb.y, i == len - 1? ui(8) : min(ui(8), group_labels[i + 1].y - ui(32))); - var _hv = _hover && point_in_rectangle(_m[0], _m[1], 0, _yy, ww, _yy + sectH); - var _tc = CDEF.main_ltgrey; - - BLEND_OVERRIDE - draw_sprite_stretched_ext(THEME.box_r5_clr, 0, padx, _yy, ww - padx * 2, sectH, _hv? COLORS.panel_inspector_group_hover : COLORS.panel_inspector_group_bg, 1); - - if(_hv && _focus) { - if(DOUBLE_CLICK) { - _cAll = _coll? -1 : 1; - - } else if(mouse_press(mb_left)) { - if(_coll) struct_set(collapsed, _key, 0); - else struct_set(collapsed, _key, 1); - } - } - - BLEND_NORMAL - - draw_sprite_ui(THEME.arrow, _coll? 0 : 3, padx + ui(16), _yy + sectH / 2, 1, 1, 0, _tc, 1); - - draw_set_text(f_p2, fa_left, fa_center, _tc); - draw_text_add(padx + ui(28), _yy + sectH / 2, _name); - } - - if(_cAll == 1) { for( var i = 0; i < len; i++ ) struct_set(collapsed, group_labels[i].key, 0); } - else if(_cAll == -1) { for( var i = 0; i < len; i++ ) struct_set(collapsed, group_labels[i].key, 1); } - - // sections[page_current] = sect; - #endregion - - return hh + ui(16); - }); - - function overrideColor(key, val) { - var path = $"{DIRECTORY}Themes/{PREFERENCES.theme}/{PREFERENCES.theme_override}.json"; - var json = file_exists_empty(path)? json_load_struct(path) : {}; - - json[$ key] = val; - COLORS_OVERRIDE[$ key] = val; - - json_save_struct(path, json, true); - } - - function overrideColorRemove(key) { - var path = $"{DIRECTORY}Themes/{PREFERENCES.theme}/{PREFERENCES.theme_override}.json"; - var json = file_exists_empty(path)? json_load_struct(path) : {}; - - struct_remove(json, key); - struct_remove(COLORS_OVERRIDE, key); - - json_save_struct(path, json, true); - } - - ////- Sprites - - sprKeys = variable_struct_get_names(THEME); - array_sort(sprKeys, true); - - sp_theme_sprites = new scrollPane(panel_width, panel_height - ui(40), function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - - var _hover = sp_theme_sprites.hover; - var _focus = sp_theme_sprites.active; - var _rx = sp_theme_sprites.x; - var _ry = sp_theme_sprites.y; - - var ww = sp_theme_sprites.surface_w; - var hh = sp_theme_sprites.surface_h; - - var _h = ui(8); - _y += ui(8); - var hg = ui(24); - var ind = 0; - var padx = ui(0); - var pady = ui(4); - - for( var i = 0, n = array_length(sprKeys); i < n; i++ ) { - var _key = sprKeys[i]; - var _spr = THEME[$ _key]; - - var yc = _y + hg / 2; - if(ind % 2) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, padx, _y - pady, ww - padx * 2, hg + pady * 2, COLORS.dialog_preference_prop_bg, .75); - - if(_y > -hg && _y < hh) { - draw_set_text(font, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(32), yc, _key); - - if(sprite_exists(_spr)) { - var _sw = sprite_get_width(_spr); - var _sh = sprite_get_height(_spr); - - var _ss = min(hg / _sh, ui(128) / _sw); - - var _ox = (sprite_get_xoffset(_spr) - _sw / 2) * _ss; - var _oy = (sprite_get_yoffset(_spr) - _sh / 2) * _ss; - - var _sx = ww / 2 + _ox; - var _sy = yc + _oy; - - draw_sprite_ext(_spr, 0, _sx, _sy, _ss, _ss); - - draw_set_text(font, fa_left, fa_center, COLORS._main_text_sub); - draw_text_add(ww / 2 + ui(96), yc, $"{_sw}x{_sh} [{sprite_get_number(_spr)}]"); - } - } - - ind++; - _y += hg + pady * 2; - _h += hg + pady * 2; - } - - return _h; - }); - - ////- Fonts - - fontKeys = variable_struct_get_names(FONT_LIST); - array_sort(fontKeys, true); - - array_push_to_back(fontKeys, "code"); - array_push_to_back(fontKeys, "f_sdf"); - array_push_to_back(fontKeys, "f_sdf_medium"); - - sp_theme_fonts = new scrollPane(panel_width, panel_height - ui(40), function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - - var _hover = sp_theme_fonts.hover; - var _focus = sp_theme_fonts.active; - var _rx = sp_theme_fonts.x; - var _ry = sp_theme_fonts.y; - - var ww = sp_theme_fonts.surface_w; - var hh = sp_theme_fonts.surface_h; - - var _h = ui(8); - _y += ui(8); - var hg = ui(24); - var ind = 0; - var padx = ui(0); - var pady = ui(4); - - for( var i = 0, n = array_length(fontKeys); i < n; i++ ) { - var _key = fontKeys[i]; - var _fnt = FONT_LIST[$ _key]; - var _font = _fnt.font; - - var hgg = font_exists(_font)? line_get_height(_font) : hg; - - var yc = _y + hgg / 2; - if(ind % 2) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, padx, _y - pady, ww - padx * 2, hgg + pady * 2, COLORS.dialog_preference_prop_bg, .75); - - if(_y > -hgg && _y < hh) { - draw_set_text(font, fa_left, fa_center, COLORS._main_text); - draw_text_add(ui(32), yc, _key); - - if(font_exists(_font)) { - draw_set_text(_font, fa_right, fa_center, COLORS._main_text); - draw_text_add(ww - ui(16), yc, $"Pixel Composer"); - } - } - - ind++; - _y += hgg + pady * 2; - _h += hgg + pady * 2; - } - - return _h; - }); - - ////- Resources tab - - theme_page = 0; - theme_page_name = [ - $"Colors [{array_length(global.palette_keys) + array_length(COLOR_KEYS)}]", - $"Sprites [{array_length(sprKeys)}]", - $"Fonts [{array_length(fontKeys)}]", - ]; - tab_resources = new buttonGroup(theme_page_name, function(i) /*=>*/ { theme_page = i }) - .setButton([ THEME.button_hide_left, THEME.button_hide_middle, THEME.button_hide_right ]) - .setFont(f_p2, COLORS._main_text_sub); - -#endregion - -#region hotkey - hk_editing = noone; - hk_modifiers = MOD_KEY.none; - hotkeyContext = []; - hotkeyArray = []; - - hotkey_focus = noone; - hotkey_focus_highlight = noone; - hotkey_focus_high_bg = 0; - hotkey_focus_index = 0; - - keyboards_display = new KeyboardDisplay(); - - for(var j = 0; j < ds_list_size(HOTKEY_CONTEXT); j++) { - var ctx = HOTKEY_CONTEXT[| j]; - var _lst = []; - - var ll = HOTKEYS[? ctx]; - for(var i = 0; i < ds_list_size(ll); i++) - array_push(_lst, ll[| i]); - - array_sort(_lst, function(s1, s2) /*=>*/ {return string_compare(s1.name, s2.name)}); - array_push(hotkeyContext, { context: ctx, list: _lst }); - - var _title = ctx == ""? "Global" : ctx; - _title = string_replace_all(_title, "_", " "); - array_push(hotkeyArray, _title); - } - - var keys = struct_get_names(HOTKEYS_CUSTOM); - for( var i = 0, n = array_length(keys); i < n; i++ ) { - var ctx = keys[i]; - - var hotkey = HOTKEYS_CUSTOM[$ ctx]; - var hks = struct_get_names(hotkey); - var _lst = []; - - for (var j = 0, m = array_length(hks); j < m; j++) { - var _n = hks[j]; - var _k = hotkey[$ _n]; - - _k.context = ctx; - _k.name = _n; - - array_push(_lst, _k); - } - - array_sort(_lst, function(s1, s2) /*=>*/ {return string_compare(s1.name, s2.name)}); - array_push(hotkeyContext, { context: ctx, list: _lst }); - array_push(hotkeyArray, $" {ctx}"); - } - - hk_page = 0; - hk_scroll = new scrollBox(hotkeyArray, function(val) /*=>*/ { hk_page = val; sp_hotkey.scroll_y_to = 0; }); - hk_scroll.align = fa_left; - - sp_hotkey = new scrollPane(panel_width, hotkey_height, function(_y, _m) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - draw_set_text(f_p2, fa_left, fa_top); - - var padd = ui(6); - var hh = 0; - var currGroup = noone; - - var _ww = sp_hotkey.surface_w; - var key_x1 = _ww - ui(32); - var yy = _y + ui(8); - - var ind = 0; - var sect = []; - var psect = ""; - var th = line_get_height(); - var _hov = sHOVER && sp_hotkey.hover; - var modified = false; - - var _ctxObj = hotkeyContext[hk_page]; - var _cntx = _ctxObj.context; - var _list = _ctxObj.list; - var _yy = yy + hh; - - var _search = string_lower(search_text); - - for (var j = 0, m = array_length(_list); j < m; j++) { - - var key = _list[j]; - var name = __txt(key.name); - var dk = key_get_name(key.key, key.modi); - - if(_search != "" && string_pos(_search, string_lower(name)) == 0 - && string_pos(_search, string_lower(dk)) == 0) - continue; - - var pkey = key.key; - var modi = key.modi; - var _yy = yy + hh; - var _lb_y = _yy; - - if(hotkey_focus == key) sp_hotkey.scroll_y_to = -hh; - - if(ind++ % 2 == 0) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _yy - padd, _ww, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); - if(hotkey_focus_highlight == key) draw_sprite_stretched_add(THEME.ui_panel, 0, 0, _yy - padd, _ww, th + padd * 2, COLORS._main_accent, min(1, hotkey_focus_high_bg) * .5); - - draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text); - draw_text_add(ui(24), _lb_y, name); - - var kw = string_width(dk); - - var tx = key_x1 - ui(24); - var bx = tx - kw - ui(8); - var by = _yy - ui(3); - var bw = kw + ui(16); - var bh = th + ui(6); - var cc = c_white; - - if(hk_editing == key) { - draw_sprite_stretched_ext(THEME.ui_panel, 1, bx, by, bw, bh, COLORS._main_accent); - cc = COLORS._main_text_accent; - - } else { - if(_hov && point_in_rectangle(_m[0], _m[1], _ww / 2, by, bx + bw, by + bh)) { - draw_sprite_stretched_ext(THEME.ui_panel, 1, bx, by, bw, bh, CDEF.main_ltgrey); - sp_hotkey.hover_content = true; - cc = CDEF.main_white; - - if(mouse_press(mb_left, sFOCUS)) { - hk_editing = key; - keyboard_lastchar = pkey; - } - - } else { - // draw_sprite_stretched_ext(THEME.ui_panel, 1, bx, by, bw, bh, CDEF.main_dkgrey, 1); - cc = CDEF.main_ltgrey; - } - } - - draw_set_text(f_p2, fa_right, fa_top, cc); - draw_text_add(tx, _lb_y, dk); - - if(key.key != key.dKey || key.modi != key.dModi) { - modified = true; - var bx = _ww - ui(32); - var by = _yy + th / 2 - ui(12); - var b = buttonInstant(THEME.button_hide_fill, bx, by, ui(24), ui(24), _m, _hov, sFOCUS, __txt("Reset"), THEME.refresh_16); - - if(b) sp_hotkey.hover_content = true; - if(b == 2) { - key.key = key.dKey; - key.modi = key.dModi; - - PREF_SAVE(); - } - } - - hh += th + padd * 2; - } - - hotkey_focus = noone; - hotkey_focus_high_bg = lerp_linear(hotkey_focus_high_bg, 0, DELTA_TIME); - if(hotkey_focus_high_bg == 0) hotkey_focus_highlight = noone; - - if(hk_editing != noone) hotkey_editing(hk_editing); - - return hh + ui(32); - }) -#endregion - -#region scrollpane - current_list = pref_global; - - sp_pref = new scrollPane(panel_width, panel_height, function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - var ww = sp_pref.surface_w; - var hh = 0; - var th = line_get_height(font, 6); - var x1 = sp_pref.surface_w; - var yy = _y + ui(8); - var padx = ui(8); - var pady = ui(6); - var ind = 0; - - var _search_text = string_lower(search_text); - for(var i = 0; i < ds_list_size(current_list); i++) { - var _pref = current_list[| i]; - if(is_string(_pref)) continue; - if(search_text != "" && string_pos(_search_text, string_lower(_pref.name)) == 0) continue; - - _pref.editWidget.register(sp_pref); - } - - var group_labels = []; - var sectH = ui(24); - var sect = []; - var psect = ""; - - for(var i = 0; i < ds_list_size(current_list); i++) { - var _pref = current_list[| i]; - - if(is_string(_pref)) { - var _coll = struct_try_get(collapsed, _pref, 0); - - array_push(sect, [ _pref, sp_pref, hh + ui(12) ]); - array_push(group_labels, { y: yy, text: _pref, key: _pref }); - - if(yy >= 0 && section_current == "") section_current = psect; - psect = _pref; - - yy += sectH + ui(!_coll * 4 + 4); - hh += sectH + ui(!_coll * 4 + 4); - ind = 0; - continue; - } - - if(struct_try_get(collapsed, psect, 0)) continue; - - var name = _pref.name; - var data = _pref.data(); - - if(search_text != "" && string_pos(_search_text, string_lower(name)) == 0) continue; - - if(ind % 2) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, padx, yy - pady, ww - padx * 2, max(_pref.editWidget.h, th) + pady * 2, COLORS.dialog_preference_prop_bg, .75); - - if(goto_item == _pref) { - if(goto_item_highlight == 2) sp_pref.setScroll(-hh); - if(goto_item_highlight == 0) goto_item = noone; - - draw_sprite_stretched_add(THEME.ui_panel_bg, 0, padx, yy - pady, ww - padx * 2, max(_pref.editWidget.h, th) + pady * 2, COLORS._main_accent, min(1, goto_item_highlight) * 0.5); - } - - draw_set_text(font, fa_left, fa_center, COLORS._main_text); - draw_text_add(padx + ui(24), yy + th / 2, name); - - if(_pref.is_patreon) { - var spr_x = padx + ui(20); - var spr_y = yy + ui(4); - - BLEND_SUBTRACT - gpu_set_colorwriteenable(0, 0, 0, 1); - draw_sprite_ext(THEME.patreon_supporter, 0, spr_x, spr_y, -1, 1, 0, c_white, 1); - gpu_set_colorwriteenable(1, 1, 1, 1); - BLEND_NORMAL - - draw_sprite_ext(THEME.patreon_supporter, 1, spr_x, spr_y, -1, 1, 0, COLORS._main_accent, 1); - } - - _pref.editWidget.setFocusHover(sFOCUS, sHOVER && sp_pref.hover); - - var widget_w = ui(260); - var widget_h = th; - - if(is_instanceof(_pref.editWidget, textBox)) widget_w = _pref.editWidget.input == TEXTBOX_INPUT.text? ui(400) : widget_w; - else if(is_instanceof(_pref.editWidget, folderArrayBox)) widget_w = ui(400); - - var widget_x = x1 - padx - ui(4) - widget_w; - var widget_y = yy; - - if(_pref.getDefault != noone) - widget_w -= ui(32 + 8); - - var params = new widgetParam(widget_x, widget_y, widget_w, widget_h, data, {}, _m, _r[0], _r[1]); - params.s = th; - params.font = font; - - if(instanceof(_pref.editWidget) == "checkBox") params.halign = fa_center; - var wdh = _pref.editWidget.drawParam(params) ?? 0; - if(_pref.editWidget.inBBOX(_m)) sp_pref.hover_content = true; - - if(_pref.getDefault != noone) { - var _defVal = is_method(_pref.getDefault)? _pref.getDefault() : _pref.getDefault; - var _bs = ui(32); - var _bx = x1 - padx - ui(4) - _bs; - var _by = yy + wdh / 2 - _bs / 2; - - if(isEqual(data, _defVal)) - draw_sprite_ext(THEME.refresh_16, 0, _bx + _bs / 2, _by + _bs / 2, 1, 1, 0, COLORS._main_icon_dark); - else { - if(buttonInstant(THEME.button_hide_fill, _bx, _by, _bs, _bs, _m, sHOVER, sFOCUS && sp_pref.hover, __txt("Reset"), THEME.refresh_16) == 2) - _pref.onEdit(_defVal); - } - } - - yy += wdh + pady + ui(6); - hh += wdh + pady + ui(6); - ind++; - } - - #region section label - var len = array_length(group_labels); - if(len && group_labels[0].y < 0) { - gpu_set_blendmode(bm_subtract); - draw_set_color(c_white); - draw_rectangle(0, 0, ww, sectH + ui(8 + 4), false); - gpu_set_blendmode(bm_normal); - } - - var _cAll = 0; - - for( var i = 0; i < len; i++ ) { - var lb = group_labels[i]; - var _name = lb.text; - var _key = lb.key; - var _coll = struct_try_get(collapsed, _key, 0); - - var _yy = max(lb.y, i == len - 1? ui(8) : min(ui(8), group_labels[i + 1].y - ui(32))); - var _hv = sHOVER && point_in_rectangle(_m[0], _m[1], 0, _yy, ww, _yy + sectH); - var _tc = CDEF.main_ltgrey; - - BLEND_OVERRIDE - draw_sprite_stretched_ext(THEME.box_r5_clr, 0, padx, _yy, ww - padx * 2, sectH, _hv? COLORS.panel_inspector_group_hover : COLORS.panel_inspector_group_bg, 1); - - if(_hv && sFOCUS) { - if(DOUBLE_CLICK) { - _cAll = _coll? -1 : 1; - - } else if(mouse_press(mb_left)) { - if(_coll) struct_set(collapsed, _key, 0); - else struct_set(collapsed, _key, 1); - } - } - - BLEND_NORMAL - - draw_sprite_ui(THEME.arrow, _coll? 0 : 3, padx + ui(16), _yy + sectH / 2, 1, 1, 0, _tc, 1); - - draw_set_text(f_p2, fa_left, fa_center, _tc); - draw_text_add(padx + ui(28), _yy + sectH / 2, _name); - } - - if(_cAll == 1) { for( var i = 0; i < len; i++ ) struct_set(collapsed, group_labels[i].key, 0); } - else if(_cAll == -1) { for( var i = 0; i < len; i++ ) struct_set(collapsed, group_labels[i].key, 1); } - - sections[page_current] = sect; - #endregion - - goto_item_highlight = lerp_float(goto_item_highlight, 0, 30); - - return hh; - }); -#endregion - -#region search - tb_search = new textBox(TEXTBOX_INPUT.text, function(str) /*=>*/ { search_text = str; }); - tb_search.align = fa_left; - - search_text = ""; - contents = {}; - goto_item = noone; - goto_item_highlight = 0; - - var _pref_lists = [ pref_global, pref_appr, pref_node ]; - - for (var j = 0, m = array_length(_pref_lists); j < m; j++) - for (var i = 0, n = ds_list_size(_pref_lists[j]); i < n; i++) { - var _pr = _pref_lists[j][| i]; - if(!is_struct(_pr)) continue; - - contents[$ _pr.key] = { page: j, item: _pr }; - } - - function goto(_tag) { - if(!struct_has(contents, _tag)) return self; - var _it = contents[$ _tag]; - - if(page_current != _it.page) - page_current = _it.page; - goto_item = _it.item; - goto_item_highlight = 2; - - return self; - } -#endregion \ No newline at end of file diff --git a/objects/o_dialog_preference/Destroy_0.gml b/objects/o_dialog_preference/Destroy_0.gml deleted file mode 100644 index ddebe2a7b..000000000 --- a/objects/o_dialog_preference/Destroy_0.gml +++ /dev/null @@ -1,3 +0,0 @@ -/// @description -event_inherited(); -ds_list_destroy(pref_global); \ No newline at end of file diff --git a/objects/o_dialog_preference/Draw_64.gml b/objects/o_dialog_preference/Draw_64.gml deleted file mode 100644 index 25f9073b4..000000000 --- a/objects/o_dialog_preference/Draw_64.gml +++ /dev/null @@ -1,251 +0,0 @@ -/// @description init -if !ready exit; - -#region base UI - DIALOG_DRAW_BG - if(DIALOG_SHOW_FOCUS) DIALOG_DRAW_FOCUS - - draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text); - draw_text(dialog_x + ui(56), dialog_y + ui(20), __txt("Preferences")); - - var bx = dialog_x + ui(24); - var by = dialog_y + ui(18); - if(buttonInstant(THEME.button_hide_fill, bx, by, ui(28), ui(28), mouse_ui, sHOVER, sFOCUS, destroy_on_click_out? __txt("Pin") : __txt("Unpin"), - THEME.pin, !destroy_on_click_out, destroy_on_click_out? COLORS._main_icon : COLORS._main_icon_light) == 2) - destroy_on_click_out = !destroy_on_click_out; - - if(should_restart) { - var _txt = "Restart recommended"; - var _rx = dialog_x + ui(168); - var _ry = dialog_y + ui(20); - - draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text_accent); - - var _rw = string_width(_txt); - var _rh = string_height(_txt); - - draw_sprite_stretched_ext(THEME.box_r5_clr, 0, _rx - ui(8), _ry - ui(4), _rw + ui(16), _rh + ui(8), COLORS._main_accent, 1); - draw_text(_rx, _ry, _txt); - } -#endregion - -#region page - sp_page.setFocusHover(sFOCUS, sHOVER); - sp_page.draw(dialog_x + ui(padding), dialog_y + ui(title_height)); -#endregion - -#region draw - section_current = ""; - var px = dialog_x + ui(padding) + page_width; - var py = dialog_y + ui(title_height); - var pw = dialog_w - ui(padding + padding) - page_width; - var ph = dialog_h - ui(title_height + padding); - - draw_sprite_stretched(THEME.ui_panel_bg, 1, px - ui(8), py - ui(8), pw + ui(16), ph + ui(16)); - - tb_search.auto_update = true; - tb_search.no_empty = false; - tb_search.font = f_p1; - tb_search.active = sFOCUS; - tb_search.hover = sHOVER; - tb_search.draw(dialog_x + dialog_w - ui(padding - 8), dialog_y + ui(title_height) / 2, ui(200), ui(28), search_text, mouse_ui, fa_right, fa_center); - draw_sprite_ui_uniform(THEME.search, 0, dialog_x + dialog_w - ui(padding + 208), dialog_y + ui(title_height) / 2, 1, COLORS._main_text_sub); - - if(page_current == 0) { - current_list = pref_global; - sp_pref.setFocusHover(sFOCUS, sHOVER); - sp_pref.draw(px, py); - - } else if(page_current == 1) { - current_list = pref_appr; - sp_pref.setFocusHover(sFOCUS, sHOVER); - sp_pref.draw(px, py); - - } else if(page_current == 2) { - current_list = pref_node; - sp_pref.setFocusHover(sFOCUS, sHOVER); - sp_pref.draw(px, py); - - } else if(page_current == 3) { - var _sp_x = ui(296); - var _sp_y = ui(28); - - var x1 = px + _sp_x - ui(8); - sp_theme.verify(_sp_x - ui(8), panel_height); - sp_theme.setFocusHover(sFOCUS, sHOVER); - sp_theme.draw(px, py); - - var _res_w = panel_width - _sp_x; - - tab_resources.setFocusHover(sFOCUS, sHOVER); - tab_resources.draw(px + _sp_x + ui(32), py, _res_w - ui(64), ui(24), theme_page); - - var sp = sp_theme_colors; - - switch(theme_page) { - case 0 : sp = sp_theme_colors; break; - case 1 : sp = sp_theme_sprites; break; - case 2 : sp = sp_theme_fonts; break; - } - - sp.verify(_res_w, panel_height - _sp_y); - sp.setFocusHover(sFOCUS, sHOVER); - sp.draw(px + _sp_x, py + _sp_y); - - } else if(page_current == 4) { - if(mouse_press(mb_left, sFOCUS)) - hk_editing = noone; - - var hk_w = panel_width; - var hk_h = hotkey_cont_h - ui(16); - var kdsp = keyboards_display; - var keys = keyboards_display.keys; - - var ks = min(hk_w / kdsp.width, hk_h / kdsp.height); - var _kww = ks * kdsp.width; - var _khh = ks * kdsp.height; - - var _ksx = px + hk_w / 2 - _kww / 2; - var _ksy = py + hk_h / 2 - _khh / 2; - var _kp = ui(2); - - var _keyUsing = {}; - var _ctxObj = hotkeyContext[hk_page]; - var _cntx = _ctxObj.context; - var _list = _ctxObj.list; - - for (var j = 0, m = array_length(_list); j < m; j++) { - - var _ky = _list[j]; - var _kkey = _ky.key; - var _kmod = _ky.modi; - - if(_kkey == noone && _kmod == MOD_KEY.none) continue; - - if(!struct_has(_keyUsing, _kkey)) - _keyUsing[$ _kkey] = {}; - - var _kuse = _keyUsing[$ _kkey]; - if(!struct_has(_kuse, _kmod)) - _kuse[$ _kmod] = []; - - array_append(_kuse[$ _kmod], _ky); - } - - var c_control = CDEF.orange, kc_control = colorMultiply(CDEF.main_dkgrey, c_control); - var c_shift = CDEF.blue, kc_shift = colorMultiply(CDEF.main_dkgrey, c_shift); - var c_alt = CDEF.lime, kc_alt = colorMultiply(CDEF.main_dkgrey, c_alt); - var _sel = true; - - var _mod_arr = [ - MOD_KEY.ctrl, MOD_KEY.shift, MOD_KEY.alt, - MOD_KEY.ctrl | MOD_KEY.shift, - MOD_KEY.ctrl | MOD_KEY.alt, - MOD_KEY.shift | MOD_KEY.alt, - MOD_KEY.ctrl | MOD_KEY.shift | MOD_KEY.alt, - ]; - - var _cur_mod = MOD_KEY.ctrl * key_mod_press(CTRL) - + MOD_KEY.shift * key_mod_press(SHIFT) - + MOD_KEY.alt * key_mod_press(ALT) - - var _cmod = _cur_mod == MOD_KEY.none? hk_modifiers : _cur_mod; - - draw_set_text(f_p4, fa_center, fa_center); - for (var i = 0, n = array_length(keys); i < n; i++) { - var _key = keys[i]; - var _kx = _ksx + _key.x * ks; - var _ky = _ksy + _key.y * ks; - var _kw = _key.w * ks; - var _kh = _key.h * ks; - var _vk = _key.vk; - - _kx += _kw / 2 - (_kw - _kp) / 2; - _ky += _kh / 2 - (_kh - _kp) / 2; - _kw -= _kp; - _kh -= _kp; - - if(_vk == -1) { - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, CDEF.main_black, 0.3); - continue; - } - - var _tc = CDEF.main_grey; - var _hov = sHOVER && point_in_rectangle(mouse_mx, mouse_my, _kx - _kp, _ky - _kp, _kx + _kw + _kp - 1, _ky + _kh + _kp - 1); - - if(_vk == vk_control) { - _sel = bool(MOD_KEY.ctrl & _cmod); - - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, _sel? c_control : kc_control); - _tc = _sel? kc_control : c_control; - - if(mouse_press(mb_left, sFOCUS && _hov)) hk_modifiers ^= MOD_KEY.ctrl; - - } else if(_vk == vk_shift) { - _sel = bool(MOD_KEY.shift & _cmod); - - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, _sel? c_shift : kc_shift); - _tc = _sel? kc_shift : c_shift; - - if(mouse_press(mb_left, sFOCUS && _hov)) hk_modifiers ^= MOD_KEY.shift; - - } else if(_vk == vk_alt) { - _sel = bool(MOD_KEY.alt & _cmod); - - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, _sel? c_alt : kc_alt); - _tc = _sel? kc_alt : c_alt; - - if(mouse_press(mb_left, sFOCUS && _hov)) hk_modifiers ^= MOD_KEY.alt; - - } else if(struct_has(_keyUsing, _vk) && struct_has(_keyUsing[$ _vk], _cmod)) { - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, CDEF.main_ltgrey); - draw_sprite_stretched_add(THEME.ui_panel, 1, _kx, _ky, _kw, _kh, c_white, 0.1); - _tc = CDEF.main_mdblack; - - var _act = _keyUsing[$ _vk][$ _cmod]; - - if(_hov) { - TOOLTIP = new tooltipHotkey_assign(_act, key_get_name(_vk, _cmod)); - - if(mouse_press(mb_left, sFOCUS)) { - if(hotkey_focus_index >= array_length(_act)) - hotkey_focus_index = 0; - - hotkey_focus = _act[hotkey_focus_index]; - hotkey_focus_highlight = _act[hotkey_focus_index]; - hotkey_focus_high_bg = 1; - - hotkey_focus_index++; - } - } - - } else { - draw_sprite_stretched_ext(THEME.ui_panel, 0, _kx, _ky, _kw, _kh, CDEF.main_black); - _tc = CDEF.main_grey; - - if(_hov) { - TOOLTIP = new tooltipHotkey_assign(noone, key_get_name(_vk, _cmod)); - } - } - - draw_sprite_stretched_add(THEME.ui_panel, 1, _kx, _ky, _kw, _kh, c_white, 0.1 + _hov * 0.2); - - if(is_string(_key.key)) { - draw_set_color(_tc); - draw_set_alpha(1); - draw_text(_kx + _kw / 2, _ky + _kh / 2, _key.key); - } - - } - - var _ppy = py + hotkey_cont_h; - - hk_scroll.font = f_p2; - hk_scroll.setFocusHover(sFOCUS, sHOVER); - hk_scroll.draw(px, _ppy, ui(200), ui(24), hk_page); - - sp_hotkey.setFocusHover(sFOCUS, sHOVER); - sp_hotkey.draw(px, _ppy + ui(32)); - - } -#endregion \ No newline at end of file diff --git a/objects/o_dialog_preference/o_dialog_animation.yy b/objects/o_dialog_preference/o_dialog_animation.yy deleted file mode 100644 index 1a78c3599..000000000 --- a/objects/o_dialog_preference/o_dialog_animation.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": null, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": { - "name": "_p_dialog", - "path": "objects/_p_dialog/_p_dialog.yy", - }, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 1, - "physicsGroup": 1, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":64,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "dialog", - "path": "folders/dialog.yy", - }, - "resourceVersion": "1.0", - "name": "o_dialog_animation", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/o_dialog_preference/o_dialog_preference.yy b/objects/o_dialog_preference/o_dialog_preference.yy deleted file mode 100644 index 5d764db68..000000000 --- a/objects/o_dialog_preference/o_dialog_preference.yy +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$GMObject":"", - "%Name":"o_dialog_preference", - "eventList":[ - {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, - {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":1,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, - {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":64,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, - ], - "managed":true, - "name":"o_dialog_preference", - "overriddenProperties":[], - "parent":{ - "name":"menu", - "path":"folders/dialog/menu.yy", - }, - "parentObjectId":{ - "name":"_p_dialog", - "path":"objects/_p_dialog/_p_dialog.yy", - }, - "persistent":false, - "physicsAngularDamping":0.1, - "physicsDensity":0.5, - "physicsFriction":0.2, - "physicsGroup":1, - "physicsKinematic":false, - "physicsLinearDamping":0.1, - "physicsObject":false, - "physicsRestitution":0.1, - "physicsSensor":false, - "physicsShape":1, - "physicsShapePoints":[], - "physicsStartAwake":true, - "properties":[], - "resourceType":"GMObject", - "resourceVersion":"2.0", - "solid":false, - "spriteId":null, - "spriteMaskId":null, - "visible":true, -} \ No newline at end of file diff --git a/objects/o_main/Step_0.gml b/objects/o_main/Step_0.gml index f1db71380..5bf61b8ea 100644 --- a/objects/o_main/Step_0.gml +++ b/objects/o_main/Step_0.gml @@ -24,7 +24,7 @@ if(!LOADING && PROJECT.active && !PROJECT.safeMode) { //node step } #region hotkey - if(!instance_exists(o_dialog_preference) && !HOTKEY_BLOCK) { + if(!HOTKEY_BLOCK) { if(ds_map_exists(HOTKEYS, "")) { var l = HOTKEYS[? ""]; for(var i = 0, n = ds_list_size(l); i < n; i++) { diff --git a/scripts/__surface/__surface.gml b/scripts/__surface/__surface.gml index 846d3a86c..396477e10 100644 --- a/scripts/__surface/__surface.gml +++ b/scripts/__surface/__surface.gml @@ -28,6 +28,8 @@ function Atlas(_surface, _x = 0, _y = 0, _rot = 0, _sx = 1, _sy = 1, _blend = c_ return self; } + static draw = function() {} + } function SurfaceAtlasFast(_surface, _x = 0, _y = 0, _rot = 0, _sx = 1, _sy = 1, _blend = c_white, _alpha = 1) : Atlas(_surface, _x, _y, _rot, _sx, _sy, _blend, _alpha) constructor {} @@ -67,21 +69,20 @@ function SurfaceAtlas( _surface, _x = 0, _y = 0, _rot = 0, _sx = 1, _sy = 1, static setSurface = function(_surface) { INLINE - self.surface.set(_surface); - + surface.set(_surface); w = surface_get_width_safe(_surface); h = surface_get_height_safe(_surface); } - static draw = function() { - draw_surface_ext_safe(surface.get(), x, y, sx, sy, rotation, blend, alpha); + static draw = function(submitInt = false) { + var _surf = getSurface(); + draw_surface_ext_safe(_surf, x, y, sx, sy, rotation, blend, alpha); return self; } static clone = function(_cloneSurf = false) { var _surf = getSurface(); if(_cloneSurf) _surf = surface_clone(_surf); - return new SurfaceAtlas(_surf, x, y, rotation, sx, sy, blend, alpha); } } diff --git a/scripts/buttonColor/buttonColor.gml b/scripts/buttonColor/buttonColor.gml index 3237b06d7..f54ce7f4a 100644 --- a/scripts/buttonColor/buttonColor.gml +++ b/scripts/buttonColor/buttonColor.gml @@ -170,8 +170,8 @@ function buttonColor(_onApply, dialog = noone) : widget() constructor { if(_a == 1) { draw_sprite_stretched_ext(THEME.palette_mask, 1, _bx, _by, _bww, _bh, current_color, 1); } else { - // draw_sprite_stretched_ext(THEME.button_def, 0, _bx, _by, _bww, _bh, boxColor, 1); - draw_sprite_stretched_ext(THEME.palette_mask, 1, _bx, _by, _bww, _bh - ui(8), current_color, 1); + draw_sprite_stretched_ext(THEME.button_backdroup, 4, _bx, _by, _bww, _bh, boxColor, 1); + draw_sprite_stretched_ext(THEME.palette_mask, 1, _bx, _by, _bww, _bh - ui(8), current_color, 1); draw_sprite_stretched_ext(THEME.palette_mask, 1, _bx, _by + _bh - ui(6), _bww, ui(6), c_black, 1); draw_sprite_stretched_ext(THEME.palette_mask, 1, _bx, _by + _bh - ui(6), _bww * _a, ui(6), c_white, 1); diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 49949c665..e91664c5f 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -43,7 +43,7 @@ LATEST_VERSION = 1_18_00_0; VERSION = 1_18_06_2; SAVE_VERSION = 1_18_05_0; - VERSION_STRING = MAC? "1.18.003m" : "1.18.7.004"; + VERSION_STRING = MAC? "1.18.003m" : "1.18.7.005"; BUILD_NUMBER = 1_18_06_4; PREF_VERSION = 1_17_1; diff --git a/scripts/node_atlas_draw/node_atlas_draw.gml b/scripts/node_atlas_draw/node_atlas_draw.gml index 5b0e8d015..74bb2e601 100644 --- a/scripts/node_atlas_draw/node_atlas_draw.gml +++ b/scripts/node_atlas_draw/node_atlas_draw.gml @@ -8,25 +8,34 @@ function Node_Atlas_Draw(_x, _y, _group = noone) : Node_Processor(_x, _y, _group .setArrayDepth(1) .setVisible(true, true); + newInput(2, nodeValue_Bool("Combine", self, true)) + .rejectArray() + newOutput(0, nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone)); attribute_interpolation(true); + input_display_list = [ + 0, 1, 2, + ]; + + static preGetInputs = function() { + var _comb = getSingleValue(2); + inputs[1].setArrayDepth(_comb); + } + static processData = function(_outSurf, _data, _output_index, _array_index = 0) { var dim = _data[0]; var atl = _data[1]; - //_outSurf = surface_verify(_outSurf, dim[0], dim[1]); - if(!is_array(atl)) atl = [ atl ]; - surface_set_shader(_outSurf); - for( var i = 0, n = array_length(atl); i < n; i++ ) { - var _a = atl[i]; - if(!is_instanceof(_a, Atlas)) continue; - - shader_set_interpolation(_a.getSurface()) - _a.draw(); - } + if(!is_array(atl)) { + if(is(atl, Atlas)) { shader_set_interpolation(atl.getSurface()); atl.draw(); } + + } else { + for( var i = 0, n = array_length(atl); i < n; i++ ) + if(is(atl[i], Atlas)) { shader_set_interpolation(atl[i].getSurface()); atl[i].draw(); } + } surface_reset_shader(); return _outSurf; diff --git a/scripts/node_attributes/node_attributes.gml b/scripts/node_attributes/node_attributes.gml index f040dbaa4..ecc84cef9 100644 --- a/scripts/node_attributes/node_attributes.gml +++ b/scripts/node_attributes/node_attributes.gml @@ -76,7 +76,7 @@ function attribute_surface_depth(label = true) { attr_depth_array = variable_clone(global.SURFACE_FORMAT_NAME); attr_depth_array[0].setActive(!array_empty(inputs) && inputs[0].type == VALUE_TYPE.surface); - attributes.color_depth = 3; + attributes.color_depth = PREFERENCES.node_default_depth; if(label) array_push(attributeEditors, "Surface"); array_push(attributeEditors, ["Color depth", function() /*=>*/ {return attributes.color_depth}, @@ -85,8 +85,8 @@ function attribute_interpolation(label = false) { attr_interpolate_array = variable_clone(global.SURFACE_INTERPOLATION); - attributes.interpolate = 1; - attributes.oversample = 1; + attributes.interpolate = PREFERENCES.node_default_interpolation; + attributes.oversample = PREFERENCES.node_default_oversample; if(label) array_push(attributeEditors, "Surface"); array_push(attributeEditors, ["Texture interpolation", function() /*=>*/ {return attributes.interpolate}, @@ -95,8 +95,8 @@ function attribute_oversample(label = false) { attr_oversample_array = variable_clone(global.SURFACE_OVERSAMPLE); - attributes.interpolate = 1; - attributes.oversample = 1; + attributes.interpolate = PREFERENCES.node_default_interpolation; + attributes.oversample = PREFERENCES.node_default_oversample; if(label) array_push(attributeEditors, "Surface"); array_push(attributeEditors, ["Oversample", function() /*=>*/ {return attributes.oversample}, @@ -110,4 +110,5 @@ array_push(attributeEditors, ["Auto execute", function() /*=>*/ {return attributes.auto_exe}, new checkBox(function() /*=>*/ { attribute_set("auto_exe", !attributes.auto_exe); })]); } + #endregion \ No newline at end of file diff --git a/scripts/node_crop_content/node_crop_content.gml b/scripts/node_crop_content/node_crop_content.gml index 33fc05dc2..bbb514ac2 100644 --- a/scripts/node_crop_content/node_crop_content.gml +++ b/scripts/node_crop_content/node_crop_content.gml @@ -17,6 +17,8 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr newOutput(1, nodeValue_Output("Crop distance", self, VALUE_TYPE.integer, [ 0, 0, 0, 0 ])) .setDisplay(VALUE_DISPLAY.padding); + newOutput(2, nodeValue_Output("Atlas", self, VALUE_TYPE.atlas, [])); + input_display_list = [ 1, ["Surfaces", false], 0, 2, 4, ["Padding", false], 3, @@ -48,7 +50,7 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr } var _arr = is_array(_inSurf); - _array &= _arr; + _array &= _arr; if(!is_array(_inSurf) && !is_surface(_inSurf)) return; if( is_array(_inSurf) && array_empty(_inSurf)) return; @@ -56,10 +58,10 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr if(!_arr) _inSurf = [ _inSurf ]; var _amo = array_length(_inSurf); - var minx = _array? array_create(_amo) : 999999; - var miny = _array? array_create(_amo) : 999999; - var maxx = _array? array_create(_amo) : 0; - var maxy = _array? array_create(_amo) : 0; + var minx = array_create(_amo); + var miny = array_create(_amo); + var maxx = array_create(_amo); + var maxy = array_create(_amo); var cDep = attrDepth(); for( var j = 0; j < _amo; j++ ) { @@ -103,52 +105,44 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr maxx[j] = _maxx; maxy[j] = _maxy; } else { - minx = min(minx, _minx); - miny = min(miny, _miny); + minx[0] = min(minx[0], _minx); + miny[0] = min(miny[0], _miny); - maxx = max(maxx, _maxx); - maxy = max(maxy, _maxy); + maxx[0] = max(maxx[0], _maxx); + maxy[0] = max(maxy[0], _maxy); } } - var res = []; - var crop = []; + var res = []; + var crop = []; + var atlas = []; for( var i = 0, n = _amo; i < n; i++ ) { var _surf = _inSurf[i]; + var _ind = _array == 0? 0 : i; - if(_array == 0) { - var resDim = [maxx - minx + 1, maxy - miny + 1]; - resDim[DIMENSION.width] += _padd[PADDING.left] + _padd[PADDING.right]; - resDim[DIMENSION.height] += _padd[PADDING.top] + _padd[PADDING.bottom]; - - res[i] = surface_create_valid(resDim[DIMENSION.width], resDim[DIMENSION.height], cDep); - crop[i] = [ surface_get_width_safe(_surf) - maxx - 1, miny, minx, surface_get_height_safe(_surf) - maxy - 1 ]; - - surface_set_shader(res[i], noone); - draw_surface_safe(_surf, -minx + _padd[PADDING.left], -miny + _padd[PADDING.top]); - surface_reset_shader(); - - } else if(_array == 1) { - var resDim = [maxx[i] - minx[i] + 1, maxy[i] - miny[i] + 1]; - resDim[DIMENSION.width] += _padd[PADDING.left] + _padd[PADDING.right]; - resDim[DIMENSION.height] += _padd[PADDING.top] + _padd[PADDING.bottom]; - - res[i] = surface_create_valid(resDim[DIMENSION.width], resDim[DIMENSION.height], cDep); - crop[i] = [ surface_get_width_safe(_surf) - maxx - 1, miny, minx, surface_get_height_safe(_surf) - maxy - 1 ]; - - surface_set_shader(res[i], noone); - draw_surface_safe(_surf, -minx[i] + _padd[PADDING.left], -miny[i] + _padd[PADDING.top]); - surface_reset_shader(); - } + var resDim = [maxx[_ind] - minx[_ind] + 1, maxy[_ind] - miny[_ind] + 1]; + resDim[DIMENSION.width] += _padd[PADDING.left] + _padd[PADDING.right]; + resDim[DIMENSION.height] += _padd[PADDING.top] + _padd[PADDING.bottom]; + + res[i] = surface_create_valid(resDim[DIMENSION.width], resDim[DIMENSION.height], cDep); + crop[i] = [ surface_get_width_safe(_surf) - maxx[_ind] - 1, miny[_ind], minx[_ind], surface_get_height_safe(_surf) - maxy[_ind] - 1 ]; + + surface_set_shader(res[i], noone); + draw_surface_safe(_surf, -minx[_ind] + _padd[PADDING.left], -miny[_ind] + _padd[PADDING.top]); + surface_reset_shader(); + + atlas[i] = new SurfaceAtlas(res[i], minx[_ind], miny[_ind]); } if(!_arr) { - res = res[0]; - crop = crop[0]; + res = res[0]; + crop = crop[0]; + atlas = atlas[0]; } outputs[0].setValue(res); outputs[1].setValue(crop); + outputs[2].setValue(atlas); } } \ No newline at end of file diff --git a/scripts/node_displace/node_displace.gml b/scripts/node_displace/node_displace.gml index 66e71d12f..98e3a1919 100644 --- a/scripts/node_displace/node_displace.gml +++ b/scripts/node_displace/node_displace.gml @@ -1,9 +1,11 @@ function Node_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Displace"; - newInput(0, nodeValue_Surface("Surface in", self)); + newInput(0, nodeValue_Surface("Surface in", self)) + .setVisible(true, true); - newInput(1, nodeValue_Surface("Displace map", self)); + newInput(1, nodeValue_Surface("Displace map", self)) + .setVisible(true, true); newInput(2, nodeValue_Vec2("Position", self, [ 1, 0 ] )) .setTooltip("Vector to displace pixel by.") @@ -103,6 +105,8 @@ If set, then strength value control how many times the effect applies on itself. var _sep = _data[16]; var _map2 = _data[17]; + print(attributes.oversample); + var _mode = _data[5]; if(!is_surface(_map) || (_sep && !is_surface(_map2))) { surface_set_shader(_outSurf); diff --git a/scripts/panel_graph/panel_graph.gml b/scripts/panel_graph/panel_graph.gml index 1ba509181..40d2eb3a2 100644 --- a/scripts/panel_graph/panel_graph.gml +++ b/scripts/panel_graph/panel_graph.gml @@ -3537,6 +3537,7 @@ function load_file_path(path, _x = undefined, _y = undefined) { if(is_multi) { dialogCall(o_dialog_add_multiple_images).setPath(path); + } else { if(!IS_CMD) PANEL_GRAPH.onStepBegin(); diff --git a/scripts/panel_preference/panel_preference.gml b/scripts/panel_preference/panel_preference.gml index d6e0d774d..5773f490e 100644 --- a/scripts/panel_preference/panel_preference.gml +++ b/scripts/panel_preference/panel_preference.gml @@ -518,33 +518,55 @@ function Panel_Preference() : PanelContent() constructor { #region node pref_node = ds_list_create(); - - // ds_list_add(pref_node, __txt("Node")); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_param_show", "Show paramater on new node"), - "node_param_show", - new checkBox(function() /*=>*/ { PREFERENCES.node_param_show = !PREFERENCES.node_param_show; PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_param_width", "Default param width"), - "node_param_width", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_param_width = val; PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_node_3d_preview", "3D Preview resolution"), - "node_3d_preview_size", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_3d_preview_size = clamp(val, 16, 1024); PREF_SAVE(); }) - )); - - ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( - __txtx("pref_file_watcher_delay", "File watcher delay (s)"), - "file_watcher_delay", - new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.file_watcher_delay = val; PREF_SAVE(); }) - )); - + + ds_list_add(pref_node, __txt("Defaults")); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_default_depth", "Default surface depth"), + "node_default_depth", + new scrollBox(global.SURFACE_FORMAT_NAME, function(val) /*=>*/ { PREFERENCES.node_default_depth = val; PREF_SAVE(); }) + )); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_default_interpolation", "Default interpolation"), + "node_default_interpolation", + new scrollBox(global.SURFACE_INTERPOLATION, function(val) /*=>*/ { PREFERENCES.node_default_interpolation = val; PREF_SAVE(); }) + )); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_default_oversample", "Default oversample"), + "node_default_oversample", + new scrollBox(global.SURFACE_OVERSAMPLE, function(val) /*=>*/ { PREFERENCES.node_default_oversample = val; PREF_SAVE(); }) + )); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_param_width", "Default param width"), + "node_param_width", + new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_param_width = val; PREF_SAVE(); }) + )); + + ds_list_add(pref_node, __txt("Display")); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_param_show", "Show paramater on new node"), + "node_param_show", + new checkBox(function() /*=>*/ { PREFERENCES.node_param_show = !PREFERENCES.node_param_show; PREF_SAVE(); }) + )); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_node_3d_preview", "3D Preview resolution"), + "node_3d_preview_size", + new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.node_3d_preview_size = clamp(val, 16, 1024); PREF_SAVE(); }) + )); + + ds_list_add(pref_node, __txt("Files")); + + ds_list_add(pref_node, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_file_watcher_delay", "File watcher delay (s)"), + "file_watcher_delay", + new textBox(TEXTBOX_INPUT.number, function(val) /*=>*/ { PREFERENCES.file_watcher_delay = val; PREF_SAVE(); }) + )); + #endregion #region theme diff --git a/scripts/panel_presets/panel_presets.gml b/scripts/panel_presets/panel_presets.gml index a935e39a2..98b8fe69c 100644 --- a/scripts/panel_presets/panel_presets.gml +++ b/scripts/panel_presets/panel_presets.gml @@ -1,7 +1,7 @@ #macro CHECK_PANEL_PRESETS if(!is_instanceof(FOCUS_CONTENT, Panel_Presets)) return; function panel_preset_replace() { CHECK_PANEL_PRESETS CALL("panel_preset_replace"); FOCUS_CONTENT.replacePreset(FOCUS_CONTENT.selecting_preset.path); } -function panel_preset_delete() { CHECK_PANEL_PRESETS CALL("panel_preset_delete"); file_delete(FOCUS_CONTENT.selecting_preset.path); FOCUS_CONTENT.__initPresets(); } +function panel_preset_delete() { CHECK_PANEL_PRESETS CALL("panel_preset_delete"); file_delete(FOCUS_CONTENT.selecting_preset.path); __initPresets(); } function panel_preset_reset() { CHECK_PANEL_PRESETS CALL("panel_preset_reset"); FOCUS_CONTENT.newPresetFromNode("_default"); } function __fnInit_Presets() { diff --git a/scripts/preferences/preferences.gml b/scripts/preferences/preferences.gml index 104676e8b..2b2f8b0c4 100644 --- a/scripts/preferences/preferences.gml +++ b/scripts/preferences/preferences.gml @@ -136,6 +136,10 @@ PREFERENCES.node_param_show = false; PREFERENCES.node_param_width = 192; PREFERENCES.node_3d_preview_size = 256; + + PREFERENCES.node_default_depth = 3; + PREFERENCES.node_default_oversample = 1; + PREFERENCES.node_default_interpolation = 1; #endregion