Change scroll speed to scroll amount and 1.0.45 options view changes (#29)
* Change scroll speed to scroll amount * Include 1.0.45 options view changes
This commit is contained in:
parent
b13ef309af
commit
1a5b806f90
4 changed files with 28 additions and 19 deletions
|
@ -16,7 +16,7 @@ dmf_mod_data.options = {
|
|||
setting_id = "dmf_options_scrolling_speed",
|
||||
type = "numeric",
|
||||
default_value = 100,
|
||||
range = {1, 1000},
|
||||
range = {50, 500},
|
||||
unit_text = "percent"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -7,13 +7,13 @@ local _widgets_by_name
|
|||
-- ####################################################################################################################
|
||||
|
||||
local function load_scrolling_speed_setting()
|
||||
local dmf_scroll_speed = dmf:get("dmf_options_scrolling_speed")
|
||||
if dmf_scroll_speed and _widgets_by_name then
|
||||
if _widgets_by_name then
|
||||
local dmf_scroll_speed = math.clamp((dmf:get("dmf_options_scrolling_speed") or 100) / 1000, 0.05, 0.5)
|
||||
if _widgets_by_name["scrollbar"] then
|
||||
_widgets_by_name["scrollbar"].content.scroll_speed = dmf_scroll_speed / 10
|
||||
_widgets_by_name["scrollbar"].content.scroll_amount = dmf_scroll_speed
|
||||
end
|
||||
if _widgets_by_name["settings_scrollbar"] then
|
||||
_widgets_by_name["settings_scrollbar"].content.scroll_speed = dmf_scroll_speed / 10
|
||||
_widgets_by_name["settings_scrollbar"].content.scroll_amount = dmf_scroll_speed
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -844,19 +844,24 @@ end
|
|||
|
||||
DMFOptionsView._set_tooltip_data = function (self, widget)
|
||||
local current_widget = self._tooltip_data and self._tooltip_data.widget
|
||||
local display_text = nil
|
||||
local localized_text = nil
|
||||
local tooltip_text = widget.content.entry.tooltip_text
|
||||
local disabled_by_list = widget.content.entry.disabled_by
|
||||
|
||||
if tooltip_text then
|
||||
display_text = tooltip_text
|
||||
if type(tooltip_text) == "function" then
|
||||
localized_text = tooltip_text()
|
||||
else
|
||||
-- Should already be localized in mod option generation
|
||||
localized_text = tooltip_text
|
||||
end
|
||||
end
|
||||
|
||||
if disabled_by_list then
|
||||
display_text = display_text and string.format("%s\n", display_text)
|
||||
localized_text = localized_text and string.format("%s\n", localized_text)
|
||||
|
||||
for _, text in pairs(disabled_by_list) do
|
||||
display_text = display_text and string.format("%s\n%s", display_text, text) or text
|
||||
localized_text = localized_text and string.format("%s\n%s", localized_text, text) or text
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -868,14 +873,14 @@ DMFOptionsView._set_tooltip_data = function (self, widget)
|
|||
if current_widget ~= widget or current_widget == widget and new_y ~= current_y then
|
||||
self._tooltip_data = {
|
||||
widget = widget,
|
||||
text = display_text
|
||||
text = localized_text
|
||||
}
|
||||
self._widgets_by_name.tooltip.content.text = display_text
|
||||
self._widgets_by_name.tooltip.content.text = localized_text
|
||||
local text_style = self._widgets_by_name.tooltip.style.text
|
||||
local x_pos = starting_point[1] + widget.offset[1]
|
||||
local width = widget.content.size[1] * 0.5
|
||||
local text_options = UIFonts.get_font_options_by_style(text_style)
|
||||
local _, text_height = self:_text_size(display_text, text_style.font_type, text_style.font_size, {
|
||||
local _, text_height = self:_text_size(localized_text, text_style.font_type, text_style.font_size, {
|
||||
width,
|
||||
0
|
||||
}, text_options)
|
||||
|
|
|
@ -628,6 +628,7 @@ blueprints.dropdown = {
|
|||
local scroll_area_height = parent:settings_grid_length()
|
||||
local dropdown_length = size[2] * (num_visible_options + 1)
|
||||
local grow_downwards = true
|
||||
local always_keep_order = true
|
||||
|
||||
if scroll_area_height <= offset[2] - scroll_amount + dropdown_length then
|
||||
grow_downwards = false
|
||||
|
@ -652,13 +653,13 @@ blueprints.dropdown = {
|
|||
|
||||
if selected_index and focused then
|
||||
if input_service:get("navigate_up_continuous") then
|
||||
if grow_downwards then
|
||||
if grow_downwards or not grow_downwards and always_keep_order then
|
||||
new_selection_index = math.max(selected_index - 1, 1)
|
||||
else
|
||||
new_selection_index = math.min(selected_index + 1, num_options)
|
||||
end
|
||||
elseif input_service:get("navigate_down_continuous") then
|
||||
if grow_downwards then
|
||||
if grow_downwards or not grow_downwards and always_keep_order then
|
||||
new_selection_index = math.min(selected_index + 1, num_options)
|
||||
else
|
||||
new_selection_index = math.max(selected_index - 1, 1)
|
||||
|
@ -695,10 +696,10 @@ blueprints.dropdown = {
|
|||
local using_scrollbar = num_visible_options < num_options
|
||||
|
||||
for i = start_index, end_index do
|
||||
local actual_i = end_index - i + start_index
|
||||
local actual_i = i
|
||||
|
||||
if grow_downwards then
|
||||
actual_i = i
|
||||
if not grow_downwards and always_keep_order then
|
||||
actual_i = end_index - i + start_index
|
||||
end
|
||||
|
||||
local option_text_id = "option_text_" .. option_index
|
||||
|
|
|
@ -25,6 +25,7 @@ local settings_mask_size = {
|
|||
}
|
||||
|
||||
local settings_grid_height = grid_height + mask_offset_y
|
||||
local settings_grid_scroll_amount = math.clamp((dmf:get("dmf_options_scrolling_speed") or 100) / 1000, 0.05, 0.5)
|
||||
|
||||
local tooltip_text_style = table.clone(UIFontSettings.body)
|
||||
tooltip_text_style.text_horizontal_alignment = "left"
|
||||
|
@ -387,7 +388,8 @@ local widget_definitions = {
|
|||
visible = false
|
||||
}),
|
||||
scrollbar = UIWidget.create_definition(ScrollbarPassTemplates.default_scrollbar, "scrollbar", {
|
||||
scroll_speed = (dmf:get("dmf_options_scrolling_speed") / 10) or 10
|
||||
scroll_speed = 10,
|
||||
scroll_amount = settings_grid_scroll_amount,
|
||||
}),
|
||||
grid_mask = UIWidget.create_definition({
|
||||
{
|
||||
|
@ -410,7 +412,8 @@ local widget_definitions = {
|
|||
}
|
||||
}, "grid_interaction"),
|
||||
settings_scrollbar = UIWidget.create_definition(ScrollbarPassTemplates.default_scrollbar, "settings_scrollbar", {
|
||||
scroll_speed = (dmf:get("dmf_options_scrolling_speed") / 10) or 10
|
||||
scroll_speed = 10,
|
||||
scroll_amount = settings_grid_scroll_amount,
|
||||
}),
|
||||
settings_grid_mask = UIWidget.create_definition({
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue