Mercurial > wow > hansgar_and_franzok_assist
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) |
