comparison Libs/DF/slider.lua @ 35:a9c4a360ccfe

- framework update.
author Tercio
date Sun, 24 Apr 2016 13:40:22 -0300
parents 5da06cb420d4
children 7944c081e5b4
comparison
equal deleted inserted replaced
34:cbcab210624f 35:a9c4a360ccfe
15 15
16 local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0") 16 local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
17 17
18 local cleanfunction = function() end 18 local cleanfunction = function() end
19 local APISliderFunctions = false 19 local APISliderFunctions = false
20 local SliderMetaFunctions = {} 20 DFSliderMetaFunctions = DFSliderMetaFunctions or {}
21 21
22 ------------------------------------------------------------------------------------------------------------ 22 ------------------------------------------------------------------------------------------------------------
23 --> metatables 23 --> metatables
24 24
25 SliderMetaFunctions.__call = function (_table, value) 25 DFSliderMetaFunctions.__call = function (_table, value)
26 if (not value) then 26 if (not value) then
27 if (_table.isSwitch) then 27 if (_table.isSwitch) then
28 28
29 if (type (value) == "boolean") then --> false 29 if (type (value) == "boolean") then --> false
30 return _table.slider:SetValue (1) 30 return _table.slider:SetValue (1)
95 ["locked"] = gmember_locked, 95 ["locked"] = gmember_locked,
96 ["fractional"] = gmember_fractional, 96 ["fractional"] = gmember_fractional,
97 ["value"] = gmember_value, 97 ["value"] = gmember_value,
98 } 98 }
99 99
100 SliderMetaFunctions.__index = function (_table, _member_requested) 100 DFSliderMetaFunctions.__index = function (_table, _member_requested)
101 101
102 local func = get_members_function_index [_member_requested] 102 local func = get_members_function_index [_member_requested]
103 if (func) then 103 if (func) then
104 return func (_table, _member_requested) 104 return func (_table, _member_requested)
105 end 105 end
107 local fromMe = _rawget (_table, _member_requested) 107 local fromMe = _rawget (_table, _member_requested)
108 if (fromMe) then 108 if (fromMe) then
109 return fromMe 109 return fromMe
110 end 110 end
111 111
112 return SliderMetaFunctions [_member_requested] 112 return DFSliderMetaFunctions [_member_requested]
113 end 113 end
114 114
115 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 115 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
116 116
117 --> tooltip 117 --> tooltip
173 ["locked"] = smember_locked, 173 ["locked"] = smember_locked,
174 ["fractional"] = smember_fractional, 174 ["fractional"] = smember_fractional,
175 ["value"] = smember_value, 175 ["value"] = smember_value,
176 } 176 }
177 177
178 SliderMetaFunctions.__newindex = function (_table, _key, _value) 178 DFSliderMetaFunctions.__newindex = function (_table, _key, _value)
179 local func = set_members_function_index [_key] 179 local func = set_members_function_index [_key]
180 if (func) then 180 if (func) then
181 return func (_table, _value) 181 return func (_table, _value)
182 else 182 else
183 return _rawset (_table, _key, _value) 183 return _rawset (_table, _key, _value)
186 186
187 ------------------------------------------------------------------------------------------------------------ 187 ------------------------------------------------------------------------------------------------------------
188 --> methods 188 --> methods
189 189
190 --> show & hide 190 --> show & hide
191 function SliderMetaFunctions:IsShown() 191 function DFSliderMetaFunctions:IsShown()
192 return self.slider:IsShown() 192 return self.slider:IsShown()
193 end 193 end
194 function SliderMetaFunctions:Show() 194 function DFSliderMetaFunctions:Show()
195 return self.slider:Show() 195 return self.slider:Show()
196 end 196 end
197 function SliderMetaFunctions:Hide() 197 function DFSliderMetaFunctions:Hide()
198 return self.slider:Hide() 198 return self.slider:Hide()
199 end 199 end
200 200
201 --> fixed value 201 --> fixed value
202 function SliderMetaFunctions:SetFixedParameter (value) 202 function DFSliderMetaFunctions:SetFixedParameter (value)
203 _rawset (self, "FixedValue", value) 203 _rawset (self, "FixedValue", value)
204 end 204 end
205 205
206 --> set value 206 --> set value
207 function SliderMetaFunctions:SetValue (value) 207 function DFSliderMetaFunctions:SetValue (value)
208 return self (value) 208 return self (value)
209 end 209 end
210 210
211 -- thumb size 211 -- thumb size
212 function SliderMetaFunctions:SetThumbSize (w, h) 212 function DFSliderMetaFunctions:SetThumbSize (w, h)
213 if (not w) then 213 if (not w) then
214 w = self.thumb:GetWidth() 214 w = self.thumb:GetWidth()
215 end 215 end
216 if (not h) then 216 if (not h) then
217 h = self.thumb:GetHeight() 217 h = self.thumb:GetHeight()
219 return self.thumb:SetSize (w, h) 219 return self.thumb:SetSize (w, h)
220 end 220 end
221 221
222 222
223 -- setpoint 223 -- setpoint
224 function SliderMetaFunctions:SetPoint (v1, v2, v3, v4, v5) 224 function DFSliderMetaFunctions:SetPoint (v1, v2, v3, v4, v5)
225 v1, v2, v3, v4, v5 = DF:CheckPoints (v1, v2, v3, v4, v5, self) 225 v1, v2, v3, v4, v5 = DF:CheckPoints (v1, v2, v3, v4, v5, self)
226 if (not v1) then 226 if (not v1) then
227 print ("Invalid parameter for SetPoint") 227 print ("Invalid parameter for SetPoint")
228 return 228 return
229 end 229 end
230 return self.widget:SetPoint (v1, v2, v3, v4, v5) 230 return self.widget:SetPoint (v1, v2, v3, v4, v5)
231 end 231 end
232 232
233 -- sizes 233 -- sizes
234 function SliderMetaFunctions:SetSize (w, h) 234 function DFSliderMetaFunctions:SetSize (w, h)
235 if (w) then 235 if (w) then
236 self.slider:SetWidth (w) 236 self.slider:SetWidth (w)
237 end 237 end
238 if (h) then 238 if (h) then
239 return self.slider:SetHeight (h) 239 return self.slider:SetHeight (h)
240 end 240 end
241 end 241 end
242 242
243 -- tooltip 243 -- tooltip
244 function SliderMetaFunctions:SetTooltip (tooltip) 244 function DFSliderMetaFunctions:SetTooltip (tooltip)
245 if (tooltip) then 245 if (tooltip) then
246 return _rawset (self, "have_tooltip", tooltip) 246 return _rawset (self, "have_tooltip", tooltip)
247 else 247 else
248 return _rawset (self, "have_tooltip", nil) 248 return _rawset (self, "have_tooltip", nil)
249 end 249 end
250 end 250 end
251 function SliderMetaFunctions:GetTooltip() 251 function DFSliderMetaFunctions:GetTooltip()
252 return _rawget (self, "have_tooltip") 252 return _rawget (self, "have_tooltip")
253 end 253 end
254 254
255 -- frame levels 255 -- frame levels
256 function SliderMetaFunctions:GetFrameLevel() 256 function DFSliderMetaFunctions:GetFrameLevel()
257 return self.slider:GetFrameLevel() 257 return self.slider:GetFrameLevel()
258 end 258 end
259 function SliderMetaFunctions:SetFrameLevel (level, frame) 259 function DFSliderMetaFunctions:SetFrameLevel (level, frame)
260 if (not frame) then 260 if (not frame) then
261 return self.slider:SetFrameLevel (level) 261 return self.slider:SetFrameLevel (level)
262 else 262 else
263 local framelevel = frame:GetFrameLevel (frame) + level 263 local framelevel = frame:GetFrameLevel (frame) + level
264 return self.slider:SetFrameLevel (framelevel) 264 return self.slider:SetFrameLevel (framelevel)
265 end 265 end
266 end 266 end
267 267
268 -- frame stratas 268 -- frame stratas
269 function SliderMetaFunctions:SetFrameStrata() 269 function DFSliderMetaFunctions:SetFrameStrata()
270 return self.slider:GetFrameStrata() 270 return self.slider:GetFrameStrata()
271 end 271 end
272 function SliderMetaFunctions:SetFrameStrata (strata) 272 function DFSliderMetaFunctions:SetFrameStrata (strata)
273 if (_type (strata) == "table") then 273 if (_type (strata) == "table") then
274 self.slider:SetFrameStrata (strata:GetFrameStrata()) 274 self.slider:SetFrameStrata (strata:GetFrameStrata())
275 else 275 else
276 self.slider:SetFrameStrata (strata) 276 self.slider:SetFrameStrata (strata)
277 end 277 end
278 end 278 end
279 279
280 -- enabled 280 -- enabled
281 function SliderMetaFunctions:IsEnabled() 281 function DFSliderMetaFunctions:IsEnabled()
282 return not _rawget (self, "lockdown") 282 return not _rawget (self, "lockdown")
283 end 283 end
284 function SliderMetaFunctions:Enable() 284
285 function DFSliderMetaFunctions:Enable()
285 self.slider:Enable() 286 self.slider:Enable()
286 if (not self.lock_texture) then 287 if (not self.is_checkbox) then
287 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") 288 if (not self.lock_texture) then
288 self.lock_texture:SetDesaturated (true) 289 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture")
289 self.lock_texture:SetPoint ("center", self.amt, "center") 290 self.lock_texture:SetDesaturated (true)
290 end 291 self.lock_texture:SetPoint ("center", self.amt, "center")
291 self.lock_texture:Hide() 292 end
293 self.lock_texture:Hide()
294 end
292 self.slider.amt:Show() 295 self.slider.amt:Show()
293 self:SetAlpha (1) 296 self:SetAlpha (1)
297
298 if (self.is_checkbox) then
299 self.checked_texture:Show()
300 end
294 return _rawset (self, "lockdown", false) 301 return _rawset (self, "lockdown", false)
295 end 302 end
296 303
297 function SliderMetaFunctions:Disable() 304 function DFSliderMetaFunctions:Disable()
298 305
299 self.slider:Disable() 306 self.slider:Disable()
300 self.slider.amt:Hide() 307 self.slider.amt:Hide()
301 self:SetAlpha (.4) 308 self:SetAlpha (.4)
302 309
303 if (not self.lock_texture) then 310 if (not self.is_checkbox) then
304 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture") 311 if (not self.lock_texture) then
305 self.lock_texture:SetDesaturated (true) 312 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture")
306 self.lock_texture:SetPoint ("center", self.amt, "center") 313 self.lock_texture:SetDesaturated (true)
307 end 314 self.lock_texture:SetPoint ("center", self.amt, "center")
308 self.lock_texture:Show() 315 end
316 self.lock_texture:Show()
317 end
318
319 if (self.is_checkbox) then
320 self.checked_texture:Show()
321 end
322
323 --print ("result 2:", self.checked_texture:IsShown(), self.checked_texture:GetAlpha(), self.checked_texture:GetSize())
309 324
310 return _rawset (self, "lockdown", true) 325 return _rawset (self, "lockdown", true)
311 end 326 end
327 --print ("iskar disable:", DFSliderMetaFunctions.Disable)
312 328
313 --> hooks 329 --> hooks
314 function SliderMetaFunctions:SetHook (hookType, func) 330 function DFSliderMetaFunctions:SetHook (hookType, func)
315 if (func) then 331 if (func) then
316 _rawset (self, hookType.."Hook", func) 332 _rawset (self, hookType.."Hook", func)
317 else 333 else
318 _rawset (self, hookType.."Hook", nil) 334 _rawset (self, hookType.."Hook", nil)
319 end 335 end
467 -- -- -- 483 -- -- --
468 484
469 local plus_button_script = function() 485 local plus_button_script = function()
470 486
471 local current = f.host.value 487 local current = f.host.value
472 local editbox = SliderMetaFunctions.editbox_typevalue 488 local editbox = DFSliderMetaFunctions.editbox_typevalue
473 489
474 if (f.host.fine_tuning) then 490 if (f.host.fine_tuning) then
475 f.host:SetValue (current + f.host.fine_tuning) 491 f.host:SetValue (current + f.host.fine_tuning)
476 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 492 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
477 SliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.2f", current + f.host.fine_tuning))) 493 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.2f", current + f.host.fine_tuning)))
478 end 494 end
479 else 495 else
480 if (f.host.useDecimals) then 496 if (f.host.useDecimals) then
481 f.host:SetValue (current + 0.1) 497 f.host:SetValue (current + 0.1)
482 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 498 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
483 SliderMetaFunctions.editbox_typevalue:SetText (string.format ("%.2f", current + 0.1)) 499 DFSliderMetaFunctions.editbox_typevalue:SetText (string.format ("%.2f", current + 0.1))
484 end 500 end
485 else 501 else
486 f.host:SetValue (current + 1) 502 f.host:SetValue (current + 1)
487 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 503 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
488 SliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (current + 1))) 504 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (current + 1)))
489 end 505 end
490 end 506 end
491 end 507 end
492 508
493 end 509 end
519 535
520 -- -- -- 536 -- -- --
521 537
522 local minor_button_script = function() 538 local minor_button_script = function()
523 local current = f.host.value 539 local current = f.host.value
524 local editbox = SliderMetaFunctions.editbox_typevalue 540 local editbox = DFSliderMetaFunctions.editbox_typevalue
525 541
526 if (f.host.fine_tuning) then 542 if (f.host.fine_tuning) then
527 f.host:SetValue (current - f.host.fine_tuning) 543 f.host:SetValue (current - f.host.fine_tuning)
528 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 544 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
529 SliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.2f", current - f.host.fine_tuning))) 545 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.2f", current - f.host.fine_tuning)))
530 end 546 end
531 else 547 else
532 if (f.host.useDecimals) then 548 if (f.host.useDecimals) then
533 f.host:SetValue (current - 0.1) 549 f.host:SetValue (current - 0.1)
534 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 550 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
535 SliderMetaFunctions.editbox_typevalue:SetText (string.format ("%.2f", current - 0.1)) 551 DFSliderMetaFunctions.editbox_typevalue:SetText (string.format ("%.2f", current - 0.1))
536 end 552 end
537 else 553 else
538 f.host:SetValue (current - 1) 554 f.host:SetValue (current - 1)
539 if (editbox and SliderMetaFunctions.editbox_typevalue:IsShown()) then 555 if (editbox and DFSliderMetaFunctions.editbox_typevalue:IsShown()) then
540 SliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (current - 1))) 556 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (current - 1)))
541 end 557 end
542 end 558 end
543 end 559 end
544 end 560 end
545 561
566 timer = 0 582 timer = 0
567 change_timer = 0 583 change_timer = 0
568 self:SetScript ("OnUpdate", on_update) 584 self:SetScript ("OnUpdate", on_update)
569 end) 585 end)
570 586
571 function SliderMetaFunctions:TypeValue() 587 function DFSliderMetaFunctions:TypeValue()
572 if (not self.isSwitch) then 588 if (not self.isSwitch) then
573 589
574 if (not SliderMetaFunctions.editbox_typevalue) then 590 if (not DFSliderMetaFunctions.editbox_typevalue) then
575 591
576 local editbox = CreateFrame ("EditBox", "DetailsFrameworkSliderEditBox", UIParent) 592 local editbox = CreateFrame ("EditBox", "DetailsFrameworkSliderEditBox", UIParent)
577 593
578 editbox:SetSize (40, 20) 594 editbox:SetSize (40, 20)
579 editbox:SetJustifyH ("center") 595 editbox:SetJustifyH ("center")
604 -- esse self fica como o primeiro a ser alterado 620 -- esse self fica como o primeiro a ser alterado
605 --print ("text changed", self:GetName()) 621 --print ("text changed", self:GetName())
606 --print () 622 --print ()
607 end) 623 end)
608 624
609 SliderMetaFunctions.editbox_typevalue = editbox 625 DFSliderMetaFunctions.editbox_typevalue = editbox
610 end 626 end
611 627
612 local pvalue = self.previous_value [2] 628 local pvalue = self.previous_value [2]
613 self:SetValue (pvalue) 629 self:SetValue (pvalue)
614 630
615 self.typing_value = true 631 self.typing_value = true
616 self.typing_value_started = pvalue 632 self.typing_value_started = pvalue
617 633
618 SliderMetaFunctions.editbox_typevalue:SetSize (self.width, self.height) 634 DFSliderMetaFunctions.editbox_typevalue:SetSize (self.width, self.height)
619 SliderMetaFunctions.editbox_typevalue:SetPoint ("center", self.widget, "center") 635 DFSliderMetaFunctions.editbox_typevalue:SetPoint ("center", self.widget, "center")
620 SliderMetaFunctions.editbox_typevalue:SetFocus() 636 DFSliderMetaFunctions.editbox_typevalue:SetFocus()
621 SliderMetaFunctions.editbox_typevalue:SetParent (self.widget) 637 DFSliderMetaFunctions.editbox_typevalue:SetParent (self.widget)
622 SliderMetaFunctions.editbox_typevalue:SetFrameLevel (self.widget:GetFrameLevel()+1) 638 DFSliderMetaFunctions.editbox_typevalue:SetFrameLevel (self.widget:GetFrameLevel()+1)
623 639
624 if (self.useDecimals) then 640 if (self.useDecimals) then
625 SliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.1f", self.value))) 641 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.1f", self.value)))
626 else 642 else
627 SliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (self.value))) 643 DFSliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (self.value)))
628 end 644 end
629 645
630 SliderMetaFunctions.editbox_typevalue:HighlightText() 646 DFSliderMetaFunctions.editbox_typevalue:HighlightText()
631 647
632 SliderMetaFunctions.editbox_typevalue:Show() 648 DFSliderMetaFunctions.editbox_typevalue:Show()
633 end 649 end
634 end 650 end
635 651
636 local OnMouseDown = function (slider, button) 652 local OnMouseDown = function (slider, button)
637 if (button == "RightButton") then 653 if (button == "RightButton") then
654 return 670 return
655 end 671 end
656 end 672 end
657 673
658 if (slider.MyObject.typing_value) then 674 if (slider.MyObject.typing_value) then
659 SliderMetaFunctions.editbox_typevalue:ClearFocus() 675 DFSliderMetaFunctions.editbox_typevalue:ClearFocus()
660 SliderMetaFunctions.editbox_typevalue:SetText ("") 676 DFSliderMetaFunctions.editbox_typevalue:SetText ("")
661 slider.MyObject.typing_valu = false 677 slider.MyObject.typing_valu = false
662 end 678 end
663 end 679 end
664 680
665 local OnShow = function (slider) 681 local OnShow = function (slider)
794 local switch_set_fixparameter = function (self, value) 810 local switch_set_fixparameter = function (self, value)
795 _rawset (self, "FixedValue", value) 811 _rawset (self, "FixedValue", value)
796 end 812 end
797 813
798 local switch_disable = function (self) 814 local switch_disable = function (self)
799 if (not self.lock_texture) then
800 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture")
801 self.lock_texture:SetDesaturated (true)
802 self.lock_texture:SetPoint ("center", self._thumb, "center")
803 end
804 815
805 if (self.is_checkbox) then 816 if (self.is_checkbox) then
806 self.checked_texture:Hide() 817 self.checked_texture:Hide()
807 else 818 else
808 self._text:Hide() 819 self._text:Hide()
809 end 820 if (not self.lock_texture) then
810 821 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:Show() 822 self.lock_texture:SetDesaturated (true)
823 self.lock_texture:SetPoint ("center", self._thumb, "center")
824 end
825 self.lock_texture:Show()
826 end
827
812 self:SetAlpha (.4) 828 self:SetAlpha (.4)
813 _rawset (self, "lockdown", true) 829 _rawset (self, "lockdown", true)
814 end 830 end
815 local switch_enable = function (self) 831 local switch_enable = function (self)
816 if (not self.lock_texture) then
817 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture")
818 self.lock_texture:SetDesaturated (true)
819 self.lock_texture:SetPoint ("center", self._thumb, "center")
820 end
821
822 if (self.is_checkbox) then 832 if (self.is_checkbox) then
823 if (_rawget (self, "value")) then 833 if (_rawget (self, "value")) then
824 self.checked_texture:Show() 834 self.checked_texture:Show()
825 else 835 else
826 self.checked_texture:Hide() 836 self.checked_texture:Hide()
827 end 837 end
828 else 838 else
839 if (not self.lock_texture) then
840 DF:NewImage (self, [[Interface\PetBattles\PetBattle-LockIcon]], 12, 12, "overlay", {0.0546875, 0.9453125, 0.0703125, 0.9453125}, "lock_texture", "$parentLockTexture")
841 self.lock_texture:SetDesaturated (true)
842 self.lock_texture:SetPoint ("center", self._thumb, "center")
843 end
844 self.lock_texture:Hide()
829 self._text:Show() 845 self._text:Show()
830 end 846 end
831 847
832 self.lock_texture:Hide()
833 self:SetAlpha (1) 848 self:SetAlpha (1)
834 return _rawset (self, "lockdown", false) 849 return _rawset (self, "lockdown", false)
835 end 850 end
836 851
837 local set_as_checkbok = function (self) 852 local set_as_checkbok = function (self)
838 local checked = self:CreateTexture (nil, "overlay") 853 local checked = self:CreateTexture (self:GetName() .. "CheckTexture", "overlay")
839 checked:SetTexture ([[Interface\Buttons\UI-CheckBox-Check]]) 854 checked:SetTexture ([[Interface\Buttons\UI-CheckBox-Check]])
840 checked:SetPoint ("center", self.button, "center", -1, -1) 855 checked:SetPoint ("center", self.button, "center", -1, -1)
841 local size_pct = self:GetWidth()/32 856 local size_pct = self:GetWidth()/32
842 checked:SetSize (32*size_pct, 32*size_pct) 857 checked:SetSize (32*size_pct, 32*size_pct)
843 self.checked_texture = checked 858 self.checked_texture = checked
860 self:SetBackdropColor (unpack (self.backdrop_disabledcolor)) 875 self:SetBackdropColor (unpack (self.backdrop_disabledcolor))
861 else 876 else
862 self:SetBackdropColor (0, 0, 1, 0.4) 877 self:SetBackdropColor (0, 0, 1, 0.4)
863 end 878 end
864 end 879 end
880
865 end 881 end
866 882
867 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) 883 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)
868 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) 884 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)
869 if (on_switch) then 885 if (on_switch) then
902 slider.GetValue = switch_get_value 918 slider.GetValue = switch_get_value
903 slider.SetFixedParameter = switch_set_fixparameter 919 slider.SetFixedParameter = switch_set_fixparameter
904 slider.Disable = switch_disable 920 slider.Disable = switch_disable
905 slider.Enable = switch_enable 921 slider.Enable = switch_enable
906 slider.SetAsCheckBox = set_as_checkbok 922 slider.SetAsCheckBox = set_as_checkbok
907 slider.SetTemplate = SliderMetaFunctions.SetTemplate 923 slider.SetTemplate = DFSliderMetaFunctions.SetTemplate
908 924
909 if (member) then 925 if (member) then
910 parent [member] = slider 926 parent [member] = slider
911 end 927 end
912 928
953 end 969 end
954 970
955 return slider, with_label 971 return slider, with_label
956 end 972 end
957 973
958 function SliderMetaFunctions:SetTemplate (template) 974 function DFSliderMetaFunctions:SetTemplate (template)
959 975
960 --slider e switch 976 --slider e switch
961 if (template.width) then 977 if (template.width) then
962 self:SetWidth (template.width) 978 self:SetWidth (template.width)
963 end 979 end
1086 1102
1087 if (not APISliderFunctions) then 1103 if (not APISliderFunctions) then
1088 APISliderFunctions = true 1104 APISliderFunctions = true
1089 local idx = getmetatable (SliderObject.slider).__index 1105 local idx = getmetatable (SliderObject.slider).__index
1090 for funcName, funcAddress in pairs (idx) do 1106 for funcName, funcAddress in pairs (idx) do
1091 if (not SliderMetaFunctions [funcName]) then 1107 if (not DFSliderMetaFunctions [funcName]) then
1092 SliderMetaFunctions [funcName] = function (object, ...) 1108 DFSliderMetaFunctions [funcName] = function (object, ...)
1093 local x = loadstring ( "return _G['"..object.slider:GetName().."']:"..funcName.."(...)") 1109 local x = loadstring ( "return _G['"..object.slider:GetName().."']:"..funcName.."(...)")
1094 return x (...) 1110 return x (...)
1095 end 1111 end
1096 end 1112 end
1097 end 1113 end
1147 SliderObject.slider:SetScript ("OnValueChanged", OnValueChanged) 1163 SliderObject.slider:SetScript ("OnValueChanged", OnValueChanged)
1148 SliderObject.slider:SetScript ("OnMouseDown", OnMouseDown) 1164 SliderObject.slider:SetScript ("OnMouseDown", OnMouseDown)
1149 SliderObject.slider:SetScript ("OnMouseUp", OnMouseUp) 1165 SliderObject.slider:SetScript ("OnMouseUp", OnMouseUp)
1150 1166
1151 1167
1152 _setmetatable (SliderObject, SliderMetaFunctions) 1168 _setmetatable (SliderObject, DFSliderMetaFunctions)
1153 1169
1154 if (with_label) then 1170 if (with_label) then
1155 local label = DF:CreateLabel (SliderObject.slider, with_label, nil, nil, nil, "label", nil, "overlay") 1171 local label = DF:CreateLabel (SliderObject.slider, with_label, nil, nil, nil, "label", nil, "overlay")
1156 label.text = with_label 1172 label.text = with_label
1157 SliderObject.slider:SetPoint ("left", label.widget, "right", 2, 0) 1173 SliderObject.slider:SetPoint ("left", label.widget, "right", 2, 0)