Mercurial > wow > hansgar_and_franzok_assist
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 55:307f5af3ad02 | 56:7c0f819a85c6 |
|---|---|
| 581 timer = 0 | 581 timer = 0 |
| 582 change_timer = 0 | 582 change_timer = 0 |
| 583 self:SetScript ("OnUpdate", on_update) | 583 self:SetScript ("OnUpdate", on_update) |
| 584 end) | 584 end) |
| 585 | 585 |
| 586 local do_precision = function (text) | |
| 587 if (type (text) == "string" and text:find ("%.")) then | |
| 588 local left, right = strsplit (".", text) | |
| 589 left = tonumber (left) | |
| 590 right = tonumber (right) | |
| 591 | |
| 592 if (left and right) then | |
| 593 local newString = tostring (left) .. "." .. tostring (right) | |
| 594 local newNumber = tonumber (newString) | |
| 595 | |
| 596 if (newNumber) then | |
| 597 return newNumber | |
| 598 end | |
| 599 end | |
| 600 end | |
| 601 | |
| 602 return tonumber (text) | |
| 603 end | |
| 604 | |
| 586 function DFSliderMetaFunctions:TypeValue() | 605 function DFSliderMetaFunctions:TypeValue() |
| 587 if (not self.isSwitch) then | 606 if (not self.isSwitch) then |
| 588 | 607 |
| 589 if (not DFSliderMetaFunctions.editbox_typevalue) then | 608 if (not DFSliderMetaFunctions.editbox_typevalue) then |
| 590 | 609 |
| 599 | 618 |
| 600 editbox:SetScript ("OnEnterPressed", function() | 619 editbox:SetScript ("OnEnterPressed", function() |
| 601 editbox:ClearFocus() | 620 editbox:ClearFocus() |
| 602 editbox:Hide() | 621 editbox:Hide() |
| 603 editbox:GetParent().MyObject.typing_value = false | 622 editbox:GetParent().MyObject.typing_value = false |
| 604 editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) | 623 editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) --do_precision (editbox:GetText()) |
| 605 end) | 624 end) |
| 606 | 625 |
| 607 editbox:SetScript ("OnEscapePressed", function() | 626 editbox:SetScript ("OnEscapePressed", function() |
| 608 editbox:ClearFocus() | 627 editbox:ClearFocus() |
| 609 editbox:Hide() | 628 editbox:Hide() |
| 610 editbox:GetParent().MyObject.typing_value = false | 629 editbox:GetParent().MyObject.typing_value = false |
| 611 editbox:GetParent().MyObject.value = tonumber (self.typing_value_started) | 630 editbox:GetParent().MyObject.value = self.typing_value_started --do_precision (self.typing_value_started) |
| 612 end) | 631 end) |
| 613 | 632 |
| 614 editbox:SetScript ("OnTextChanged", function() | 633 editbox:SetScript ("OnTextChanged", function() |
| 615 editbox:GetParent().MyObject.typing_can_change = true | 634 editbox:GetParent().MyObject.typing_can_change = true |
| 616 editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) | 635 editbox:GetParent().MyObject.value = tonumber (editbox:GetText()) --do_precision |
| 617 editbox:GetParent().MyObject.typing_can_change = false | 636 editbox:GetParent().MyObject.typing_can_change = false |
| 618 | |
| 619 -- esse self fica como o primeiro a ser alterado | |
| 620 --print ("text changed", self:GetName()) | |
| 621 --print () | |
| 622 end) | 637 end) |
| 623 | 638 |
| 624 DFSliderMetaFunctions.editbox_typevalue = editbox | 639 DFSliderMetaFunctions.editbox_typevalue = editbox |
| 625 end | 640 end |
| 626 | 641 |
| 701 | 716 |
| 702 local amt | 717 local amt |
| 703 if (slider.MyObject.useDecimals) then | 718 if (slider.MyObject.useDecimals) then |
| 704 amt = slider:GetValue() | 719 amt = slider:GetValue() |
| 705 else | 720 else |
| 706 amt = _math_floor (slider:GetValue()) | 721 amt = do_precision (slider:GetValue()) |
| 707 end | 722 end |
| 708 | 723 |
| 709 if (slider.MyObject.typing_value and not slider.MyObject.typing_can_change) then | 724 if (slider.MyObject.typing_value and not slider.MyObject.typing_can_change) then |
| 710 slider.MyObject:SetValue (slider.MyObject.typing_value_started) | 725 slider.MyObject:SetValue (slider.MyObject.typing_value_started) |
| 711 return | 726 return |
| 712 end | 727 end |
| 713 | 728 |
| 714 table_insert (slider.MyObject.previous_value, 1, amt) | 729 table_insert (slider.MyObject.previous_value, 1, amt) |
| 715 table_remove (slider.MyObject.previous_value, 4) | 730 table_remove (slider.MyObject.previous_value, 4) |
| 716 | 731 |
| 717 local capsule = slider.MyObject | 732 local capsule = slider.MyObject |
| 718 local kill = capsule:RunHooksForWidget ("OnValueChanged", slider, capsule.FixedValue, amt, capsule) | 733 local kill = capsule:RunHooksForWidget ("OnValueChanged", slider, capsule.FixedValue, amt, capsule) |
| 908 return error ("Details! FrameWork: parent not found.", 2) | 923 return error ("Details! FrameWork: parent not found.", 2) |
| 909 end | 924 end |
| 910 if (not container) then | 925 if (not container) then |
| 911 container = parent | 926 container = parent |
| 912 end | 927 end |
| 913 | 928 |
| 914 --> defaults | 929 --> defaults |
| 915 ltext = ltext or "OFF" | 930 ltext = ltext or "OFF" |
| 916 rtext = rtext or "ON" | 931 rtext = rtext or "ON" |
| 917 | 932 |
| 918 --> build frames | 933 --> build frames |
| 1094 h = h or 19 | 1109 h = h or 19 |
| 1095 | 1110 |
| 1096 --> default members: | 1111 --> default members: |
| 1097 SliderObject.lockdown = false | 1112 SliderObject.lockdown = false |
| 1098 SliderObject.container = container | 1113 SliderObject.container = container |
| 1099 SliderObject.useDecimals = isDecemal or false | |
| 1100 | 1114 |
| 1101 SliderObject.slider = CreateFrame ("slider", name, parent) | 1115 SliderObject.slider = CreateFrame ("slider", name, parent) |
| 1102 SliderObject.widget = SliderObject.slider | 1116 SliderObject.widget = SliderObject.slider |
| 1103 | 1117 |
| 1118 SliderObject.useDecimals = isDecemal or false | |
| 1119 | |
| 1120 if (SliderObject.useDecimals) then | |
| 1121 SliderObject.slider:SetValueStep (0.01) | |
| 1122 else | |
| 1123 SliderObject.slider:SetValueStep (step) | |
| 1124 end | |
| 1125 | |
| 1104 if (not APISliderFunctions) then | 1126 if (not APISliderFunctions) then |
| 1105 APISliderFunctions = true | 1127 APISliderFunctions = true |
| 1106 local idx = getmetatable (SliderObject.slider).__index | 1128 local idx = getmetatable (SliderObject.slider).__index |
| 1107 for funcName, funcAddress in pairs (idx) do | 1129 for funcName, funcAddress in pairs (idx) do |
| 1108 if (not DFSliderMetaFunctions [funcName]) then | 1130 if (not DFSliderMetaFunctions [funcName]) then |
| 1117 SliderObject.slider.MyObject = SliderObject | 1139 SliderObject.slider.MyObject = SliderObject |
| 1118 SliderObject.slider:SetWidth (w) | 1140 SliderObject.slider:SetWidth (w) |
| 1119 SliderObject.slider:SetHeight (h) | 1141 SliderObject.slider:SetHeight (h) |
| 1120 SliderObject.slider:SetOrientation ("horizontal") | 1142 SliderObject.slider:SetOrientation ("horizontal") |
| 1121 SliderObject.slider:SetMinMaxValues (min, max) | 1143 SliderObject.slider:SetMinMaxValues (min, max) |
| 1122 SliderObject.slider:SetValueStep (step) | |
| 1123 SliderObject.slider:SetValue (defaultv) | 1144 SliderObject.slider:SetValue (defaultv) |
| 1124 SliderObject.ivalue = defaultv | 1145 SliderObject.ivalue = defaultv |
| 1125 | 1146 |
| 1126 SliderObject.slider:SetBackdrop ({edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", edgeSize = 8}) | 1147 SliderObject.slider:SetBackdrop ({edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", edgeSize = 8}) |
| 1127 SliderObject.slider:SetBackdropColor (0.9, 0.7, 0.7, 1.0) | 1148 SliderObject.slider:SetBackdropColor (0.9, 0.7, 0.7, 1.0) |
