Mercurial > wow > hansgar_and_franzok_assist
comparison Libs/DF/slider.lua @ 22:dbd417f413a8
- framework update.
| author | Tercio |
|---|---|
| date | Tue, 08 Sep 2015 13:16:49 -0300 |
| parents | dc1c77254f80 |
| children | 6bb668a41455 |
comparison
equal
deleted
inserted
replaced
| 21:7fef991992f6 | 22:dbd417f413a8 |
|---|---|
| 338 end | 338 end |
| 339 end | 339 end |
| 340 | 340 |
| 341 slider.thumb:SetAlpha (1) | 341 slider.thumb:SetAlpha (1) |
| 342 | 342 |
| 343 if (slider.MyObject.onenter_backdrop_border_color) then | |
| 344 slider:SetBackdropBorderColor (unpack (slider.MyObject.onenter_backdrop_border_color)) | |
| 345 end | |
| 346 | |
| 343 if (slider.MyObject.have_tooltip and slider.MyObject.have_tooltip ~= "Right Click to Type the Value") then | 347 if (slider.MyObject.have_tooltip and slider.MyObject.have_tooltip ~= "Right Click to Type the Value") then |
| 344 GameCooltip2:Preset (2) | 348 GameCooltip2:Preset (2) |
| 345 GameCooltip2:AddLine (slider.MyObject.have_tooltip) | 349 GameCooltip2:AddLine (slider.MyObject.have_tooltip) |
| 346 GameCooltip2:ShowCooltip (slider, "tooltip") | 350 GameCooltip2:ShowCooltip (slider, "tooltip") |
| 347 else | 351 else |
| 348 GameCooltip2:Preset (1) | 352 GameCooltip2:Preset (1) |
| 349 GameCooltip2:AddLine ("Right Click to Type the Value") | 353 GameCooltip2:AddLine ("Right Click to Type the Value") |
| 350 GameCooltip2:AddIcon ([[Interface\TUTORIALFRAME\UI-TUTORIAL-FRAME]], 1, 1, 16, 16, 0.015625, 0.15671875, 0.640625, 0.798828125) | 354 GameCooltip2:AddIcon ([[Interface\TUTORIALFRAME\UI-TUTORIAL-FRAME]], 1, 1, 16, 16, 0.015625, 0.15671875, 0.640625, 0.798828125) |
| 351 GameCooltip2:ShowCooltip (slider, "tooltip") | 355 GameCooltip2:ShowCooltip (slider, "tooltip") |
| 352 end | 356 end |
| 353 | |
| 354 local parent = slider:GetParent().MyObject | |
| 355 if (parent and parent.type == "panel") then | |
| 356 if (parent.GradientEnabled) then | |
| 357 parent:RunGradient() | |
| 358 end | |
| 359 end | |
| 360 | |
| 361 end | 357 end |
| 362 | 358 |
| 363 local OnLeave = function (slider) | 359 local OnLeave = function (slider) |
| 364 | 360 |
| 365 if (_rawget (slider.MyObject, "lockdown")) then | 361 if (_rawget (slider.MyObject, "lockdown")) then |
| 375 end | 371 end |
| 376 end | 372 end |
| 377 | 373 |
| 378 slider.thumb:SetAlpha (.7) | 374 slider.thumb:SetAlpha (.7) |
| 379 | 375 |
| 376 if (slider.MyObject.onleave_backdrop_border_color) then | |
| 377 slider:SetBackdropBorderColor (unpack (slider.MyObject.onleave_backdrop_border_color)) | |
| 378 end | |
| 379 | |
| 380 if (slider.MyObject.have_tooltip) then | 380 if (slider.MyObject.have_tooltip) then |
| 381 GameCooltip2:ShowMe (false) | 381 GameCooltip2:ShowMe (false) |
| 382 end | |
| 383 | |
| 384 local parent = slider:GetParent().MyObject | |
| 385 if (parent and parent.type == "panel") then | |
| 386 if (parent.GradientEnabled) then | |
| 387 parent:RunGradient (false) | |
| 388 end | |
| 389 end | 382 end |
| 390 | 383 |
| 391 end | 384 end |
| 392 | 385 |
| 393 | 386 |
| 738 if (forced_value) then | 731 if (forced_value) then |
| 739 _rawset (slider, "value", not value) | 732 _rawset (slider, "value", not value) |
| 740 end | 733 end |
| 741 | 734 |
| 742 if (_rawget (slider, "value")) then --actived | 735 if (_rawget (slider, "value")) then --actived |
| 743 | |
| 744 _rawset (slider, "value", false) | 736 _rawset (slider, "value", false) |
| 745 slider._text:SetText (slider._ltext) | 737 |
| 746 slider._thumb:ClearAllPoints() | 738 if (slider.backdrop_disabledcolor) then |
| 747 | 739 slider:SetBackdropColor (unpack (slider.backdrop_disabledcolor)) |
| 748 slider:SetBackdropColor (1, 0, 0, 0.4) | 740 else |
| 749 slider._thumb:SetPoint ("left", slider.widget, "left") | 741 slider:SetBackdropColor (1, 0, 0, 0.4) |
| 750 | 742 end |
| 743 | |
| 744 if (slider.is_checkbox) then | |
| 745 slider.checked_texture:Hide() | |
| 746 else | |
| 747 slider._text:SetText (slider._ltext) | |
| 748 slider._thumb:ClearAllPoints() | |
| 749 slider._thumb:SetPoint ("left", slider.widget, "left") | |
| 750 end | |
| 751 else | 751 else |
| 752 | |
| 753 _rawset (slider, "value", true) | 752 _rawset (slider, "value", true) |
| 754 slider._text:SetText (slider._rtext) | 753 if (slider.backdrop_enabledcolor) then |
| 755 slider._thumb:ClearAllPoints() | 754 slider:SetBackdropColor (unpack (slider.backdrop_enabledcolor)) |
| 756 | 755 else |
| 757 slider:SetBackdropColor (0, 0, 1, 0.4) | 756 slider:SetBackdropColor (0, 0, 1, 0.4) |
| 758 slider._thumb:SetPoint ("right", slider.widget, "right") | 757 end |
| 759 | 758 if (slider.is_checkbox) then |
| 759 slider.checked_texture:Show() | |
| 760 else | |
| 761 slider._text:SetText (slider._rtext) | |
| 762 slider._thumb:ClearAllPoints() | |
| 763 slider._thumb:SetPoint ("right", slider.widget, "right") | |
| 764 end | |
| 760 end | 765 end |
| 761 | 766 |
| 762 if (slider.OnSwitch and not forced_value) then | 767 if (slider.OnSwitch and not forced_value) then |
| 763 local value = _rawget (slider, "value") | 768 local value = _rawget (slider, "value") |
| 764 if (slider.return_func) then | 769 if (slider.return_func) then |
| 798 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") | 803 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") |
| 799 self.lock_texture:SetDesaturated (true) | 804 self.lock_texture:SetDesaturated (true) |
| 800 self.lock_texture:SetPoint ("center", self._thumb, "center") | 805 self.lock_texture:SetPoint ("center", self._thumb, "center") |
| 801 end | 806 end |
| 802 | 807 |
| 808 if (self.is_checkbox) then | |
| 809 self.checked_texture:Hide() | |
| 810 else | |
| 811 self._text:Hide() | |
| 812 end | |
| 813 | |
| 803 self.lock_texture:Show() | 814 self.lock_texture:Show() |
| 804 self._text:Hide() | |
| 805 self:SetAlpha (.4) | 815 self:SetAlpha (.4) |
| 806 _rawset (self, "lockdown", true) | 816 _rawset (self, "lockdown", true) |
| 807 end | 817 end |
| 808 local switch_enable = function (self) | 818 local switch_enable = function (self) |
| 809 if (not self.lock_texture) then | 819 if (not self.lock_texture) then |
| 810 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") | 820 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") |
| 811 self.lock_texture:SetDesaturated (true) | 821 self.lock_texture:SetDesaturated (true) |
| 812 self.lock_texture:SetPoint ("center", self._thumb, "center") | 822 self.lock_texture:SetPoint ("center", self._thumb, "center") |
| 813 end | 823 end |
| 814 | 824 |
| 825 if (self.is_checkbox) then | |
| 826 if (_rawget (self, "value")) then | |
| 827 self.checked_texture:Show() | |
| 828 else | |
| 829 self.checked_texture:Hide() | |
| 830 end | |
| 831 else | |
| 832 self._text:Show() | |
| 833 end | |
| 834 | |
| 815 self.lock_texture:Hide() | 835 self.lock_texture:Hide() |
| 816 self._text:Show() | |
| 817 self:SetAlpha (1) | 836 self:SetAlpha (1) |
| 818 return _rawset (self, "lockdown", false) | 837 return _rawset (self, "lockdown", false) |
| 819 end | 838 end |
| 820 | 839 |
| 821 function DF:CreateSwitch (parent, on_switch, default_value, w, h, ltext, rtext, member, name, color_inverted, switch_func, return_func, with_label) | 840 local set_as_checkbok = function (self) |
| 822 local switch, label = DF:NewSwitch (parent, parent, name, member, w or 60, h or 20, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label) | 841 local checked = self:CreateTexture (nil, "overlay") |
| 842 checked:SetTexture ([[Interface\Buttons\UI-CheckBox-Check]]) | |
| 843 checked:SetPoint ("center", self.button, "center", -1, -1) | |
| 844 local size_pct = self:GetWidth()/32 | |
| 845 checked:SetSize (32*size_pct, 32*size_pct) | |
| 846 self.checked_texture = checked | |
| 847 | |
| 848 self._thumb:Hide() | |
| 849 self._text:Hide() | |
| 850 | |
| 851 self.is_checkbox = true | |
| 852 | |
| 853 if (_rawget (self, "value")) then | |
| 854 self.checked_texture:Show() | |
| 855 if (self.backdrop_enabledcolor) then | |
| 856 self:SetBackdropColor (unpack (self.backdrop_enabledcolor)) | |
| 857 else | |
| 858 self:SetBackdropColor (0, 0, 1, 0.4) | |
| 859 end | |
| 860 else | |
| 861 self.checked_texture:Hide() | |
| 862 if (self.backdrop_disabledcolor) then | |
| 863 self:SetBackdropColor (unpack (self.backdrop_disabledcolor)) | |
| 864 else | |
| 865 self:SetBackdropColor (0, 0, 1, 0.4) | |
| 866 end | |
| 867 end | |
| 868 end | |
| 869 | |
| 870 function DF:CreateSwitch (parent, on_switch, default_value, w, h, ltext, rtext, member, name, color_inverted, switch_func, return_func, with_label, switch_template, label_template) | |
| 871 local switch, label = DF:NewSwitch (parent, parent, name, member, w or 60, h or 20, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label, switch_template, label_template) | |
| 823 if (on_switch) then | 872 if (on_switch) then |
| 824 switch.OnSwitch = on_switch | 873 switch.OnSwitch = on_switch |
| 825 end | 874 end |
| 826 return switch, label | 875 return switch, label |
| 827 end | 876 end |
| 828 | 877 |
| 829 function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label) | 878 function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label, switch_template, label_template) |
| 830 | 879 |
| 831 --> early checks | 880 --> early checks |
| 832 if (not name) then | 881 if (not name) then |
| 833 name = "DetailsFrameWorkSlider" .. NameLessSlider | 882 name = "DetailsFrameWorkSlider" .. NameLessSlider |
| 834 NameLessSlider = NameLessSlider + 1 | 883 NameLessSlider = NameLessSlider + 1 |
| 855 slider.SetValue = switch_set_value | 904 slider.SetValue = switch_set_value |
| 856 slider.GetValue = switch_get_value | 905 slider.GetValue = switch_get_value |
| 857 slider.SetFixedParameter = switch_set_fixparameter | 906 slider.SetFixedParameter = switch_set_fixparameter |
| 858 slider.Disable = switch_disable | 907 slider.Disable = switch_disable |
| 859 slider.Enable = switch_enable | 908 slider.Enable = switch_enable |
| 909 slider.SetAsCheckBox = set_as_checkbok | |
| 910 slider.SetTemplate = SliderMetaFunctions.SetTemplate | |
| 860 | 911 |
| 861 if (member) then | 912 if (member) then |
| 862 parent [member] = slider | 913 parent [member] = slider |
| 863 end | 914 end |
| 864 | 915 |
| 887 | 938 |
| 888 slider:SetValue (default_value) | 939 slider:SetValue (default_value) |
| 889 | 940 |
| 890 slider.isSwitch = true | 941 slider.isSwitch = true |
| 891 | 942 |
| 943 if (switch_template) then | |
| 944 slider:SetTemplate (switch_template) | |
| 945 end | |
| 946 | |
| 892 if (with_label) then | 947 if (with_label) then |
| 893 local label = DF:CreateLabel (slider.widget, with_label, nil, nil, nil, "label", nil, "overlay") | 948 local label = DF:CreateLabel (slider.widget, with_label, nil, nil, nil, "label", nil, "overlay") |
| 894 label.text = with_label | 949 label.text = with_label |
| 895 slider.widget:SetPoint ("left", label.widget, "right", 2, 0) | 950 slider.widget:SetPoint ("left", label.widget, "right", 2, 0) |
| 896 with_label = label | 951 with_label = label |
| 952 | |
| 953 if (label_template) then | |
| 954 label:SetTemplate (label_template) | |
| 955 end | |
| 897 end | 956 end |
| 898 | 957 |
| 899 return slider, with_label | 958 return slider, with_label |
| 900 end | 959 end |
| 901 | 960 |
| 902 function DF:CreateSlider (parent, w, h, min, max, step, defaultv, isDecemal, member, name, with_label) | 961 function SliderMetaFunctions:SetTemplate (template) |
| 903 local slider, label = DF:NewSlider (parent, parent, name, member, w, h, min, max, step, defaultv, isDecemal, false, with_label) | 962 |
| 963 --slider e switch | |
| 964 if (template.width) then | |
| 965 self:SetWidth (template.width) | |
| 966 end | |
| 967 if (template.height) then | |
| 968 self:SetHeight (template.height) | |
| 969 end | |
| 970 | |
| 971 if (template.backdrop) then | |
| 972 self:SetBackdrop (template.backdrop) | |
| 973 end | |
| 974 if (template.backdropcolor) then | |
| 975 local r, g, b, a = DF:ParseColors (template.backdropcolor) | |
| 976 self:SetBackdropColor (r, g, b, a) | |
| 977 end | |
| 978 if (template.backdropbordercolor) then | |
| 979 local r, g, b, a = DF:ParseColors (template.backdropbordercolor) | |
| 980 self:SetBackdropBorderColor (r, g, b, a) | |
| 981 self.onleave_backdrop_border_color = {r, g, b, a} | |
| 982 end | |
| 983 | |
| 984 if (template.onenterbordercolor) then | |
| 985 local r, g, b, a = DF:ParseColors (template.onenterbordercolor) | |
| 986 self.onenter_backdrop_border_color = {r, g, b, a} | |
| 987 end | |
| 988 | |
| 989 if (template.onleavebordercolor) then | |
| 990 local r, g, b, a = DF:ParseColors (template.onleavebordercolor) | |
| 991 self.onleave_backdrop_border_color = {r, g, b, a} | |
| 992 end | |
| 993 | |
| 994 if (template.thumbtexture) then | |
| 995 if (self.thumb) then | |
| 996 self.thumb:SetTexture (template.thumbtexture) | |
| 997 end | |
| 998 end | |
| 999 if (template.thumbwidth) then | |
| 1000 if (self.thumb) then | |
| 1001 self.thumb:SetWidth (template.thumbwidth) | |
| 1002 end | |
| 1003 end | |
| 1004 if (template.thumbheight) then | |
| 1005 if (self.thumb) then | |
| 1006 self.thumb:SetHeight (template.thumbheight) | |
| 1007 end | |
| 1008 end | |
| 1009 if (template.thumbcolor) then | |
| 1010 if (self.thumb) then | |
| 1011 local r, g, b, a = DF:ParseColors (template.thumbcolor) | |
| 1012 self.thumb:SetVertexColor (r, g, b, a) | |
| 1013 end | |
| 1014 end | |
| 1015 | |
| 1016 --switch only | |
| 1017 if (template.enabled_backdropcolor) then | |
| 1018 local r, g, b, a = DF:ParseColors (template.enabled_backdropcolor) | |
| 1019 self.backdrop_enabledcolor = {r, g, b, a} | |
| 1020 end | |
| 1021 if (template.disabled_backdropcolor) then | |
| 1022 local r, g, b, a = DF:ParseColors (template.disabled_backdropcolor) | |
| 1023 self.backdrop_disabledcolor = {r, g, b, a} | |
| 1024 end | |
| 1025 end | |
| 1026 | |
| 1027 function DF:CreateSlider (parent, w, h, min, max, step, defaultv, isDecemal, member, name, with_label, slider_template, label_template) | |
| 1028 local slider, label = DF:NewSlider (parent, parent, name, member, w, h, min, max, step, defaultv, isDecemal, false, with_label, slider_template, label_template) | |
| 904 return slider, label | 1029 return slider, label |
| 905 end | 1030 end |
| 906 | 1031 |
| 907 function DF:NewSlider (parent, container, name, member, w, h, min, max, step, defaultv, isDecemal, isSwitch, with_label) | 1032 function DF:NewSlider (parent, container, name, member, w, h, min, max, step, defaultv, isDecemal, isSwitch, with_label, slider_template, label_template) |
| 908 | 1033 |
| 909 --> early checks | 1034 --> early checks |
| 910 if (not name) then | 1035 if (not name) then |
| 911 name = "DetailsFrameworkSlider" .. DF.SliderCounter | 1036 name = "DetailsFrameworkSlider" .. DF.SliderCounter |
| 912 DF.SliderCounter = DF.SliderCounter + 1 | 1037 DF.SliderCounter = DF.SliderCounter + 1 |
| 1031 if (with_label) then | 1156 if (with_label) then |
| 1032 local label = DF:CreateLabel (SliderObject.slider, with_label, nil, nil, nil, "label", nil, "overlay") | 1157 local label = DF:CreateLabel (SliderObject.slider, with_label, nil, nil, nil, "label", nil, "overlay") |
| 1033 label.text = with_label | 1158 label.text = with_label |
| 1034 SliderObject.slider:SetPoint ("left", label.widget, "right", 2, 0) | 1159 SliderObject.slider:SetPoint ("left", label.widget, "right", 2, 0) |
| 1035 with_label = label | 1160 with_label = label |
| 1161 | |
| 1162 if (label_template) then | |
| 1163 label:SetTemplate (label_template) | |
| 1164 end | |
| 1165 end | |
| 1166 | |
| 1167 if (slider_template) then | |
| 1168 SliderObject:SetTemplate (slider_template) | |
| 1036 end | 1169 end |
| 1037 | 1170 |
| 1038 return SliderObject, with_label | 1171 return SliderObject, with_label |
| 1039 | 1172 |
| 1040 end | 1173 end |
