Mercurial > wow > hansgar_and_franzok_assist
diff Libs/DF/slider.lua @ 56:7c0f819a85c6 v7.3.5.056
- Framework update.
| author | Tercio |
|---|---|
| date | Sun, 11 Mar 2018 10:50:12 -0300 |
| parents | 7944c081e5b4 |
| children | 0682d738499b |
line wrap: on
line diff
--- a/Libs/DF/slider.lua Sat Dec 09 11:49:01 2017 -0200 +++ b/Libs/DF/slider.lua Sun Mar 11 10:50:12 2018 -0300 @@ -583,6 +583,25 @@ self:SetScript ("OnUpdate", on_update) end) + local do_precision = function (text) + if (type (text) == "string" and text:find ("%.")) then + local left, right = strsplit (".", text) + left = tonumber (left) + right = tonumber (right) + + if (left and right) then + local newString = tostring (left) .. "." .. tostring (right) + local newNumber = tonumber (newString) + + if (newNumber) then + return newNumber + end + end + end + + return tonumber (text) + end + function DFSliderMetaFunctions:TypeValue() if (not self.isSwitch) then @@ -601,24 +620,20 @@ editbox:ClearFocus() editbox:Hide() editbox:GetParent().MyObject.typing_value = false - editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) + editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) --do_precision (editbox:GetText()) end) editbox:SetScript ("OnEscapePressed", function() editbox:ClearFocus() editbox:Hide() editbox:GetParent().MyObject.typing_value = false - editbox:GetParent().MyObject.value = tonumber (self.typing_value_started) + editbox:GetParent().MyObject.value = self.typing_value_started --do_precision (self.typing_value_started) end) editbox:SetScript ("OnTextChanged", function() editbox:GetParent().MyObject.typing_can_change = true - editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) + editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) --do_precision editbox:GetParent().MyObject.typing_can_change = false - - -- esse self fica como o primeiro a ser alterado - --print ("text changed", self:GetName()) - --print () end) DFSliderMetaFunctions.editbox_typevalue = editbox @@ -703,14 +718,14 @@ if (slider.MyObject.useDecimals) then amt = slider:GetValue() else - amt = _math_floor (slider:GetValue()) + amt = do_precision (slider:GetValue()) end - + if (slider.MyObject.typing_value and not slider.MyObject.typing_can_change) then slider.MyObject:SetValue (slider.MyObject.typing_value_started) return end - + table_insert (slider.MyObject.previous_value, 1, amt) table_remove (slider.MyObject.previous_value, 4) @@ -910,7 +925,7 @@ if (not container) then container = parent end - + --> defaults ltext = ltext or "OFF" rtext = rtext or "ON" @@ -1096,11 +1111,18 @@ --> default members: SliderObject.lockdown = false SliderObject.container = container - SliderObject.useDecimals = isDecemal or false SliderObject.slider = CreateFrame ("slider", name, parent) SliderObject.widget = SliderObject.slider + SliderObject.useDecimals = isDecemal or false + + if (SliderObject.useDecimals) then + SliderObject.slider:SetValueStep (0.01) + else + SliderObject.slider:SetValueStep (step) + end + if (not APISliderFunctions) then APISliderFunctions = true local idx = getmetatable (SliderObject.slider).__index @@ -1119,7 +1141,6 @@ SliderObject.slider:SetHeight (h) SliderObject.slider:SetOrientation ("horizontal") SliderObject.slider:SetMinMaxValues (min, max) - SliderObject.slider:SetValueStep (step) SliderObject.slider:SetValue (defaultv) SliderObject.ivalue = defaultv
