diff --git a/objects/o_dialog_command_palette/Create_0.gml b/objects/o_dialog_command_palette/Create_0.gml index 9ccfbd504..ac6134119 100644 --- a/objects/o_dialog_command_palette/Create_0.gml +++ b/objects/o_dialog_command_palette/Create_0.gml @@ -61,6 +61,8 @@ event_inherited(); var match = string_partial_match(_fname, search_lower); if(match == -9999) continue; + if(_cnxt == "New node") match -= 1000; + ds_priority_add(pr_list, _menu, match); } @@ -78,9 +80,10 @@ event_inherited(); sc_content = new scrollPane(dialog_w - ui(4), dialog_h - ui(32), function(_y, _m) { draw_clear_alpha(COLORS.panel_bg_clear, 1); + var hght = line_get_height(f_p2, item_pad); var _dw = sc_content.surface_w; - var _h = 0; + var _h = array_length(data) * hght; var _ly = _y; draw_set_color(CDEF.main_mdblack); @@ -90,23 +93,29 @@ event_inherited(); if(mouse_move) keyboard_trigger = false; for(var i = 0; i < array_length(data); i++) { + if(_ly < -hght) { + _ly += hght; + continue; + } + var _menu = data[i]; var _menuItem = _menu.menu; - var _key = _menu.hotkey; + var _hasKey = struct_has(_menu, "hotkey"); var _mhover = mouse_move && point_in_rectangle(_m[0], _m[1], 0, _ly, _dw, _ly + hght - 1); if(selecting == i) { - draw_sprite_stretched_ext(THEME.textbox, 3, 0, _ly, dialog_w, hght, COLORS.dialog_menubox_highlight, 1); + draw_sprite_stretched_ext(THEME.textbox, 3, 0, _ly, _dw, hght, COLORS.dialog_menubox_highlight, 1); if(sc_content.active) { if((!keyboard_trigger && mouse_press(mb_left)) || keyboard_check_pressed(vk_enter)) { - _menu.action(); + call(_menu.action, _menu.params); array_push(RECENT_COMMANDS, _menu); instance_destroy(); } - if(mouse_press(mb_right)) { + if(_hasKey && mouse_press(mb_right)) { + var _key = _menu.hotkey; selecting_hotkey = _key; var _loadKey = _key.full_name(); @@ -147,41 +156,50 @@ event_inherited(); draw_set_text(f_p2, fa_left, fa_center, COLORS._main_icon_light); draw_text_match_ext(_tx, _ty, _name, _dw, search_string); - if(_menuItem != noone && _menuItem.spr != noone) { - var spr = is_array(_menuItem.spr)? _menuItem.spr[0] : _menuItem.spr; - var ind = is_array(_menuItem.spr)? _menuItem.spr[1] : 0; - draw_sprite_ui(spr, ind, ui(16), _ty, .75, .75, 0, COLORS._main_icon, 0.75); + var _spr = _menu.spr; + if(_menuItem != noone) _spr = _menuItem.spr; + + if(_spr != noone) { + var spr = is_array(_spr)? _spr[0] : _spr; + var ind = is_array(_spr)? _spr[1] : 0; + var _ss = hght / max(sprite_get_width(spr), sprite_get_height(spr)) * .7; + + draw_sprite_ext(spr, ind, ui(16), _ty, _ss, _ss, 0, COLORS._main_icon); } - if(is_instanceof(_key, hotkeyObject)) { - var _hx = _dw - ui(6); - var _hy = _ty + ui(1); + if(_hasKey) { + var _key = _menu.hotkey; - draw_set_text(f_p2, fa_right, fa_center, COLORS._main_accent); - - var _ktxt = key_get_name(_key.key, _key.modi); - var _tw = string_width(_ktxt); - var _th = line_get_height(); - - var _bx = _hx - _tw - ui(4); - var _by = _hy - _th / 2 - ui(2); - var _bw = _tw + ui(8); - var _bh = _th + ui(2); - - if(hk_editing == _key) { - draw_set_color(COLORS._main_accent); - // draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, COLORS._main_text_accent); + if(is_instanceof(_key, hotkeyObject)) { + var _hx = _dw - ui(6); + var _hy = _ty + ui(1); - } else if(_ktxt != "") { - draw_set_color(COLORS._main_text_sub); - // draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, CDEF.main_dkgrey); + draw_set_text(f_p2, fa_right, fa_center, COLORS._main_accent); + + var _ktxt = key_get_name(_key.key, _key.modi); + var _tw = string_width(_ktxt); + var _th = line_get_height(); + + var _bx = _hx - _tw - ui(4); + var _by = _hy - _th / 2 - ui(2); + var _bw = _tw + ui(8); + var _bh = _th + ui(2); + + if(hk_editing == _key) { + draw_set_color(COLORS._main_accent); + // draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, COLORS._main_text_accent); + + } else if(_ktxt != "") { + draw_set_color(COLORS._main_text_sub); + // draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, CDEF.main_dkgrey); + } + + draw_text_add(_hx, _hy, _ktxt); } - - draw_text_add(_hx, _hy, _ktxt); } _ly += hght; - _h += hght; + if(_ly > sc_content.h) break; } if(hk_editing != noone) { diff --git a/objects/o_dialog_preference/Create_0.gml b/objects/o_dialog_preference/Create_0.gml index 694febce1..38b5501a6 100644 --- a/objects/o_dialog_preference/Create_0.gml +++ b/objects/o_dialog_preference/Create_0.gml @@ -5,6 +5,7 @@ event_inherited(); dialog_w = min(WIN_W - ui(16), ui(1000)); dialog_h = min(WIN_H - ui(16), ui(700)); page_width = ui(160); + // title_height = 8; destroy_on_click_out = true; destroy_on_escape = false; @@ -109,7 +110,6 @@ event_inherited(); return hh; }); - sp_page.show_scroll = false; #endregion @@ -235,7 +235,7 @@ event_inherited(); function( ) /*=>*/ { return 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*"), @@ -313,7 +313,7 @@ event_inherited(); 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"), @@ -470,7 +470,7 @@ event_inherited(); __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 @@ -861,12 +861,13 @@ event_inherited(); sp_pref = new scrollPane(panel_width, panel_height, function(_y, _m, _r) { draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); - var hh = 0; - var th = line_get_height(font, 6); - var x1 = sp_pref.surface_w; - var yy = _y + ui(8); - var padd = ui(6); - var ind = 0; + 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 padd = ui(6); + var ind = 0; for(var i = 0; i < ds_list_size(current_list); i++) { var _pref = current_list[| i]; @@ -905,7 +906,14 @@ event_inherited(); if(search_text != "" && string_pos(string_lower(search_text), string_lower(name)) == 0) continue; - if(ind % 2 == 0) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, sp_pref.surface_w, max(_pref.editWidget.h, th) + padd * 2, COLORS.dialog_preference_prop_bg, 1); + if(ind % 2 == 0) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, ww, max(_pref.editWidget.h, th) + padd * 2, COLORS.dialog_preference_prop_bg, 1); + + 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, 0, yy - padd, ww, max(_pref.editWidget.h, th) + padd * 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(ui(24), yy + th / 2, name); @@ -965,6 +973,7 @@ event_inherited(); } sections[page_current] = sect; + goto_item_highlight = lerp_float(goto_item_highlight, 0, 30); return hh; }); @@ -975,4 +984,29 @@ event_inherited(); 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 diff --git a/scripts/__panel_linear_setting/__panel_linear_setting.gml b/scripts/__panel_linear_setting/__panel_linear_setting.gml index bc8f74c00..3e98859a8 100644 --- a/scripts/__panel_linear_setting/__panel_linear_setting.gml +++ b/scripts/__panel_linear_setting/__panel_linear_setting.gml @@ -6,9 +6,11 @@ function __Panel_Linear_Setting_Item(name, editWidget, data, onEdit = noone, get self.onEdit = onEdit; self.getDefault = getDefault; self.action = action == noone? noone : struct_try_get(FUNCTIONS, string_to_var2(action[0], action[1]), noone); + key = ""; self.is_patreon = false; + static setKey = function(_key) { self.key = _key; return self; } static patreon = function() { is_patreon = true; return self; } } diff --git a/scripts/function_register/function_register.gml b/scripts/function_register/function_register.gml index f2bf7d2d2..185453c31 100644 --- a/scripts/function_register/function_register.gml +++ b/scripts/function_register/function_register.gml @@ -29,24 +29,40 @@ __fnInit_Presets(); __fnInit_Notification(); __fnInit_Preview_Window(); + + __fnInit_Preference(); } #endregion -function registerFunction(_context, _name, _key, _mod, _action) { return new functionObject(_context, _name, _key, _mod, _action); } - -function functionObject(_context, _name, _key, _mod, _action) constructor { +function registerFunctionLite(_context, _name, _action, _param = noone) { return new functionObjectLite(_context, _name, _action, _param); } +function functionObjectLite(_context, _name, _action, _param = noone) constructor { + context = _context; + name = _name; + action = _action; + params = _param; + fnName = string_to_var2(_context, _name); + menu = noone; + spr = noone; + + FUNCTIONS[$ fnName] = self; +} + +function registerFunction(_context, _name, _key, _mod, _action, _param = noone) { return new functionObject(_context, _name, _key, _mod, _action, _param); } +function functionObject(_context, _name, _key, _mod, _action, _param = noone) constructor { hotkey = addHotkey(_context, _name, _key, _mod, _action); context = _context; name = _name; dkey = _key; dmod = _mod; action = _action; + params = _param; hide = false; fnName = string_to_var2(_context, _name); menu = noone; - + spr = noone; + FUNCTIONS[$ fnName] = self; CMD_FUNCTIONS[$ fnName] = { action: _action, args: [] }; @@ -89,27 +105,34 @@ function callFunction(name, args) { INLINE var _f = CMD_FUNCTIONS[$ name]; - - switch(array_length(_f.args)) { - case 0 : _f.fn(); break; - case 1 : _f.fn(args[0]); break; - case 2 : _f.fn(args[0], args[1]); break; - case 3 : _f.fn(args[0], args[1], args[2]); break; - case 4 : _f.fn(args[0], args[1], args[2], args[3]); break; - case 5 : _f.fn(args[0], args[1], args[2], args[3], args[4]); break; - case 6 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5]); break; - case 7 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); break; - case 8 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break; - case 9 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); break; - case 10 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); break; - case 11 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]); break; - case 12 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11]); break; - case 13 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12]); break; - case 14 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13]); break; - case 15 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14]); break; - case 16 : _f.fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14], args[15]); break; - } + call(_f.fn, args); return true; } +function call(fn, args) { + if(!is_array(args)) { + fn(); + return; + } + + switch(array_length(args)) { + case 0 : fn(); break; + case 1 : fn(args[0]); break; + case 2 : fn(args[0], args[1]); break; + case 3 : fn(args[0], args[1], args[2]); break; + case 4 : fn(args[0], args[1], args[2], args[3]); break; + case 5 : fn(args[0], args[1], args[2], args[3], args[4]); break; + case 6 : fn(args[0], args[1], args[2], args[3], args[4], args[5]); break; + case 7 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); break; + case 8 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break; + case 9 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); break; + case 10 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); break; + case 11 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]); break; + case 12 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11]); break; + case 13 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12]); break; + case 14 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13]); break; + case 15 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14]); break; + case 16 : fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14], args[15]); break; + } +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 9845bd446..3d4fb3aa2 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -19,6 +19,9 @@ function NodeObject(_name, _spr, _node, _create, tooltip = "", tags = []) constr is_patreon_extra = false; + _fn = registerFunctionLite("New node", _name, function(_node) { PANEL_GRAPH.createNodeHotkey(_node); }, [ _node ]); + _fn.spr = _spr; + if(!IS_CMD) { var pth = DIRECTORY + $"Nodes/Tooltip/{node}.png"; if(file_exists_empty(pth)) tooltip_spr = sprite_add(pth, 0, false, false, 0, 0); @@ -69,6 +72,7 @@ function NodeObject(_name, _spr, _node, _create, tooltip = "", tags = []) constr if(IS_CMD) return self; show_in_recent = false; + variable_struct_remove(FUNCTIONS, _fn.fnName); return self; } @@ -257,7 +261,7 @@ function addNodeObject(_list, _name, _spr, _node, _fun, _tag = [], tooltip = "") ds_list_add(_list, _n); return _n; } - + var _n = new NodeObject(_name, _spr, _node, _fun, tooltip, _tag); ALL_NODES[? _node] = _n; diff --git a/scripts/preferences/preferences.gml b/scripts/preferences/preferences.gml index 4a341f0c5..bd7174828 100644 --- a/scripts/preferences/preferences.gml +++ b/scripts/preferences/preferences.gml @@ -401,3 +401,65 @@ } } #endregion + +#region command palette + //!#mfunc __regFnPref {"args":["name"," key"],"order":[0,1]} +#macro __regFnPref_mf0 { registerFunctionLite("Preference", +#macro __regFnPref_mf1 , function() { dialogCall(o_dialog_preference).goto( +#macro __regFnPref_mf2 ); }); } + + function __fnInit_Preference() { + __regFnPref_mf0 __txtx("pref_double_click_delay", "Double click delay") __regFnPref_mf1 "double_click_delay" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_mouse_wheel_speed", "Scroll speed") __regFnPref_mf1 "mouse_wheel_speed" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_keyboard_hold_start", "Keyboard hold start") __regFnPref_mf1 "keyboard_repeat_start" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_keyboard_repeat_delay", "Keyboard repeat delay") __regFnPref_mf1 "keyboard_repeat_speed" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_expand_hovering_panel", "Expand hovering panel") __regFnPref_mf1 "expand_hover" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_expand_lock_mouse_slider", "Lock mouse when sliding") __regFnPref_mf1 "slider_lock_mouse" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_pen_pool_delay", "Pen leave delay") __regFnPref_mf1 "pen_pool_delay" __regFnPref_mf2; + + __regFnPref_mf0 __txtx("pref_auto_save_time", "Autosave delay (-1 to disable)") __regFnPref_mf1 "auto_save_time" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_save_layout", "Save layout") __regFnPref_mf1 "save_layout" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_save_file_minify", "Minify save file") __regFnPref_mf1 "save_file_minify" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_save_backups", "Backup saves") __regFnPref_mf1 "save_backup" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_legacy_exception", "Use legacy exception handler") __regFnPref_mf1 "use_legacy_exception" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_crash_dialog", "Show dialog after crash") __regFnPref_mf1 "show_crash_dialog" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_clear_temp", "Clear temp file on close") __regFnPref_mf1 "clear_temp_on_close" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_enable_test_mode", "Enable developer mode*") __regFnPref_mf1 "test_mode" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_exp_popup_dialog", "Pop-up Dialog") __regFnPref_mf1 "multi_window" __regFnPref_mf2; + + __regFnPref_mf0 __txtx("pref_gui_scaling", "GUI scaling") __regFnPref_mf1 "ui_scale" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_frame_rate", "UI frame rate") __regFnPref_mf1 "ui_framerate" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_frame_rate", "UI inactive frame rate") __regFnPref_mf1 "ui_framerate_non_focus" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_interface_language", "Interface Language*") __regFnPref_mf1 "local" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_font", "Overwrite UI font") + "*" __regFnPref_mf1 "font_overwrite" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_windows_control", "Use Windows style window control.") __regFnPref_mf1 "panel_menu_right_control" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_fix_window_size", "Fix Window size on start") __regFnPref_mf1 "window_fix" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_fix_width", "Fix width") __regFnPref_mf1 "window_fix_width" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_ui_fix_height", "Fix height") __regFnPref_mf1 "window_fix_height" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_supporter_icon", "Show supporter icon") __regFnPref_mf1 "show_supporter_icon" __regFnPref_mf2; + + __regFnPref_mf0 __txtx("pref_add_node_remember", "Remember add node position") __regFnPref_mf1 "add_node_remember" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_connection_type", "Connection type") __regFnPref_mf1 "curve_connection_line" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_connection_thickness", "Connection thickness") __regFnPref_mf1 "connection_line_width" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_connection_curve_smoothness", "Connection curve smoothness") __regFnPref_mf1 "connection_line_sample" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_connection_aa", "Connection anti aliasing") __regFnPref_mf1 "connection_line_aa" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_connection_anim", "Connection line animation") __regFnPref_mf1 "connection_line_transition" __regFnPref_mf2; + + __regFnPref_mf0 __txtx("pref_graph_group_in_tab", "Open group in new tab") __regFnPref_mf1 "graph_open_group_in_tab" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_graph_zoom_smoothing", "Graph zoom smoothing") __regFnPref_mf1 "graph_zoom_smoooth" __regFnPref_mf2; + __regFnPref_mf0 __txtx("panel_graph_group_require_shift", "Hold Shift to enter group") __regFnPref_mf1 "panel_graph_group_require_shift" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_use_alt", "Use ALT for") __regFnPref_mf1 "alt_picker" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_preview_show_real_fps", "Show real fps") __regFnPref_mf1 "panel_preview_show_real_fps" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_inspector_focus_on_double_click", "Focus on double click") __regFnPref_mf1 "inspector_focus_on_double_click" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_collection_preview_speed", "Collection preview speed") __regFnPref_mf1 "collection_preview_speed" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_warning_notification_time", "Warning notification time") __regFnPref_mf1 "notification_time" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_widget_autocomplete_delay", "Code Autocomplete delay") __regFnPref_mf1 "widget_autocomplete_delay" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_widget_textbox_shake", "Textbox shake") __regFnPref_mf1 "textbox_shake" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_widget_textbox_particles", "Textbox particles") __regFnPref_mf1 "textbox_particle" __regFnPref_mf2; + + __regFnPref_mf0 __txtx("pref_node_param_show", "Show paramater on new node") __regFnPref_mf1 "node_param_show" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_node_param_width", "Default param width") __regFnPref_mf1 "node_param_width" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_node_3d_preview", "Preview surface size") __regFnPref_mf1 "node_3d_preview_size" __regFnPref_mf2; + __regFnPref_mf0 __txtx("pref_file_watcher_delay", "File watcher delay (s)") __regFnPref_mf1 "file_watcher_delay" __regFnPref_mf2; + } +#endregion \ No newline at end of file diff --git a/scripts/scrollPane/scrollPane.gml b/scripts/scrollPane/scrollPane.gml index 27dda47ec..8e43da014 100644 --- a/scripts/scrollPane/scrollPane.gml +++ b/scripts/scrollPane/scrollPane.gml @@ -41,10 +41,7 @@ function scrollPane(_w, _h, ondraw) : widget() constructor { surface_h = _h; } - static setScroll = function(_scroll_y) { - INLINE - scroll_y_to = clamp(_scroll_y, -content_h, 0); - } + static setScroll = function(_scroll_y) { INLINE scroll_y_to = _scroll_y; } static draw = function(x, y, mx = mouse_mx - x, my = mouse_my - y) { self.x = x; diff --git a/scripts/string_functions/string_functions.gml b/scripts/string_functions/string_functions.gml index 6bbda0b56..b00974675 100644 --- a/scripts/string_functions/string_functions.gml +++ b/scripts/string_functions/string_functions.gml @@ -114,7 +114,7 @@ function string_partial_match(str, key) { consec++; conMax = max(conMax, consec); run++; - if(run > string_length(key)) return conMax - misMatch; + if(run > string_length(key)) return conMax - misMatch - (amo - i); kchr = string_char_at(key, run); } else {