Mercurial > wow > hansgar_and_franzok_assist
comparison Libs/DF/fw.lua @ 58:0682d738499b v8.0.1.058
- 8.0.1 Update.
| author | Tercio |
|---|---|
| date | Fri, 20 Jul 2018 19:04:12 -0300 |
| parents | 7c0f819a85c6 |
| children |
comparison
equal
deleted
inserted
replaced
| 57:b1c62eed8999 | 58:0682d738499b |
|---|---|
| 1 | 1 |
| 2 local dversion = 68 | 2 local dversion = 85 |
| 3 local major, minor = "DetailsFramework-1.0", dversion | 3 local major, minor = "DetailsFramework-1.0", dversion |
| 4 local DF, oldminor = LibStub:NewLibrary (major, minor) | 4 local DF, oldminor = LibStub:NewLibrary (major, minor) |
| 5 | 5 |
| 6 if (not DF) then | 6 if (not DF) then |
| 7 DetailsFrameworkCanLoad = false | 7 DetailsFrameworkCanLoad = false |
| 13 | 13 |
| 14 local _ | 14 local _ |
| 15 local _type = type | 15 local _type = type |
| 16 local _unpack = unpack | 16 local _unpack = unpack |
| 17 local upper = string.upper | 17 local upper = string.upper |
| 18 local string_match = string.match | |
| 19 | |
| 20 SMALL_NUMBER = 0.000001 | |
| 21 ALPHA_BLEND_AMOUNT = 0.8400251 | |
| 18 | 22 |
| 19 --> will always give a very random name for our widgets | 23 --> will always give a very random name for our widgets |
| 20 local init_counter = math.random (1, 1000000) | 24 local init_counter = math.random (1, 1000000) |
| 21 | 25 |
| 22 DF.LabelNameCounter = DF.LabelNameCounter or init_counter | 26 DF.LabelNameCounter = DF.LabelNameCounter or init_counter |
| 115 "CreateAnimation", | 119 "CreateAnimation", |
| 116 "CreateScrollBox", | 120 "CreateScrollBox", |
| 117 "CreateBorder", | 121 "CreateBorder", |
| 118 "FormatNumber", | 122 "FormatNumber", |
| 119 "IntegerToTimer", | 123 "IntegerToTimer", |
| 124 "QuickDispatch", | |
| 125 "CommaValue", | |
| 126 "RemoveRealmName", | |
| 127 "Trim", | |
| 128 "CreateGlowOverlay", | |
| 129 "CreateFrameShake", | |
| 120 } | 130 } |
| 121 | 131 |
| 122 DF.table = {} | 132 DF.table = {} |
| 123 | 133 |
| 124 function DF:GetFrameworkFolder() | 134 function DF:GetFrameworkFolder() |
| 179 DF.table.deploy (t1 [key], t2 [key]) | 189 DF.table.deploy (t1 [key], t2 [key]) |
| 180 elseif (t1 [key] == nil) then | 190 elseif (t1 [key] == nil) then |
| 181 t1 [key] = value | 191 t1 [key] = value |
| 182 end | 192 end |
| 183 end | 193 end |
| 194 return t1 | |
| 184 end | 195 end |
| 185 | 196 |
| 186 function DF.table.dump (t, s, deep) | 197 function DF.table.dump (t, s, deep) |
| 187 s = s or "" | 198 s = s or "" |
| 188 deep = deep or 0 | 199 deep = deep or 0 |
| 256 end | 267 end |
| 257 return format ("%.1f", numero) | 268 return format ("%.1f", numero) |
| 258 end | 269 end |
| 259 end | 270 end |
| 260 | 271 |
| 272 function DF:CommaValue (value) | |
| 273 if (not value) then | |
| 274 return "0" | |
| 275 end | |
| 276 | |
| 277 value = floor (value) | |
| 278 | |
| 279 if (value == 0) then | |
| 280 return "0" | |
| 281 end | |
| 282 | |
| 283 --source http://richard.warburton.it | |
| 284 local left, num, right = string_match (value, '^([^%d]*%d)(%d*)(.-)$') | |
| 285 return left .. (num:reverse():gsub ('(%d%d%d)','%1,'):reverse()) .. right | |
| 286 end | |
| 287 | |
| 261 function DF:IntegerToTimer (value) | 288 function DF:IntegerToTimer (value) |
| 262 return "" .. floor (value/60) .. ":" .. format ("%02.f", value%60) | 289 return "" .. floor (value/60) .. ":" .. format ("%02.f", value%60) |
| 263 end | 290 end |
| 264 | 291 |
| 265 function DF:Embed (target) | 292 function DF:Embed (target) |
| 326 end | 353 end |
| 327 | 354 |
| 328 fontString:SetFont (fonte, size, outline) | 355 fontString:SetFont (fonte, size, outline) |
| 329 end | 356 end |
| 330 | 357 |
| 358 function DF:Trim (s) --hello name conventions! | |
| 359 return DF:trim (s) | |
| 360 end | |
| 361 | |
| 331 function DF:trim (s) | 362 function DF:trim (s) |
| 332 local from = s:match"^%s*()" | 363 local from = s:match"^%s*()" |
| 333 return from > #s and "" or s:match(".*%S", from) | 364 return from > #s and "" or s:match(".*%S", from) |
| 334 end | 365 end |
| 335 | 366 |
| 336 function DF:Msg (msg) | 367 function DF:Msg (msg) |
| 337 print ("|cFFFFFFAA" .. self.__name .. "|r " .. msg) | 368 print ("|cFFFFFFAA" .. (self.__name or "FW Msg:") .. "|r ", msg) |
| 338 end | 369 end |
| 339 | 370 |
| 340 function DF:GetNpcIdFromGuid (guid) | 371 function DF:GetNpcIdFromGuid (guid) |
| 341 local NpcId = select ( 6, strsplit ( "-", guid ) ) | 372 local NpcId = select ( 6, strsplit ( "-", guid ) ) |
| 342 if (NpcId) then | 373 if (NpcId) then |
| 343 return tonumber ( NpcId ) | 374 return tonumber ( NpcId ) |
| 344 end | 375 end |
| 345 return 0 | 376 return 0 |
| 377 end | |
| 378 | |
| 379 function DF.SortOrder1 (t1, t2) | |
| 380 return t1[1] > t2[1] | |
| 381 end | |
| 382 function DF.SortOrder2 (t1, t2) | |
| 383 return t1[2] > t2[2] | |
| 384 end | |
| 385 function DF.SortOrder3 (t1, t2) | |
| 386 return t1[3] > t2[3] | |
| 387 end | |
| 388 function DF.SortOrder1R (t1, t2) | |
| 389 return t1[1] < t2[1] | |
| 390 end | |
| 391 function DF.SortOrder2R (t1, t2) | |
| 392 return t1[2] < t2[2] | |
| 393 end | |
| 394 function DF.SortOrder3R (t1, t2) | |
| 395 return t1[3] < t2[3] | |
| 346 end | 396 end |
| 347 | 397 |
| 348 local onFinish = function (self) | 398 local onFinish = function (self) |
| 349 if (self.showWhenDone) then | 399 if (self.showWhenDone) then |
| 350 self.frame:SetAlpha (1) | 400 self.frame:SetAlpha (1) |
| 460 end | 510 end |
| 461 | 511 |
| 462 return v1 or "topleft", v2, v3 or "topleft", v4 or 0, v5 or 0 | 512 return v1 or "topleft", v2, v3 or "topleft", v4 or 0, v5 or 0 |
| 463 end | 513 end |
| 464 | 514 |
| 515 local anchoring_functions = { | |
| 516 function (frame, anchorTo, offSetX, offSetY) --> 1 TOP LEFT | |
| 517 frame:ClearAllPoints() | |
| 518 frame:SetPoint ("bottomleft", anchorTo, "topleft", offSetX, offSetY) | |
| 519 end, | |
| 520 | |
| 521 function (frame, anchorTo, offSetX, offSetY) --> 2 LEFT | |
| 522 frame:ClearAllPoints() | |
| 523 frame:SetPoint ("right", anchorTo, "left", offSetX, offSetY) | |
| 524 end, | |
| 525 | |
| 526 function (frame, anchorTo, offSetX, offSetY) --> 3 BOTTOM LEFT | |
| 527 frame:ClearAllPoints() | |
| 528 frame:SetPoint ("topleft", anchorTo, "bottomleft", offSetX, offSetY) | |
| 529 end, | |
| 530 | |
| 531 function (frame, anchorTo, offSetX, offSetY) --> 4 BOTTOM | |
| 532 frame:ClearAllPoints() | |
| 533 frame:SetPoint ("top", anchorTo, "bottom", offSetX, offSetY) | |
| 534 end, | |
| 535 | |
| 536 function (frame, anchorTo, offSetX, offSetY) --> 5 BOTTOM RIGHT | |
| 537 frame:ClearAllPoints() | |
| 538 frame:SetPoint ("topright", anchorTo, "bottomright", offSetX, offSetY) | |
| 539 end, | |
| 540 | |
| 541 function (frame, anchorTo, offSetX, offSetY) --> 6 RIGHT | |
| 542 frame:ClearAllPoints() | |
| 543 frame:SetPoint ("left", anchorTo, "right", offSetX, offSetY) | |
| 544 end, | |
| 545 | |
| 546 function (frame, anchorTo, offSetX, offSetY) --> 7 TOP RIGHT | |
| 547 frame:ClearAllPoints() | |
| 548 frame:SetPoint ("bottomright", anchorTo, "topright", offSetX, offSetY) | |
| 549 end, | |
| 550 | |
| 551 function (frame, anchorTo, offSetX, offSetY) --> 8 TOP | |
| 552 frame:ClearAllPoints() | |
| 553 frame:SetPoint ("bottom", anchorTo, "top", offSetX, offSetY) | |
| 554 end, | |
| 555 | |
| 556 function (frame, anchorTo, offSetX, offSetY) --> 9 CENTER | |
| 557 frame:ClearAllPoints() | |
| 558 frame:SetPoint ("center", anchorTo, "center", offSetX, offSetY) | |
| 559 end, | |
| 560 | |
| 561 function (frame, anchorTo, offSetX, offSetY) --> 10 | |
| 562 frame:ClearAllPoints() | |
| 563 frame:SetPoint ("left", anchorTo, "left", offSetX, offSetY) | |
| 564 end, | |
| 565 | |
| 566 function (frame, anchorTo, offSetX, offSetY) --> 11 | |
| 567 frame:ClearAllPoints() | |
| 568 frame:SetPoint ("right", anchorTo, "right", offSetX, offSetY) | |
| 569 end, | |
| 570 | |
| 571 function (frame, anchorTo, offSetX, offSetY) --> 12 | |
| 572 frame:ClearAllPoints() | |
| 573 frame:SetPoint ("top", anchorTo, "top", offSetX, offSetY) | |
| 574 end, | |
| 575 | |
| 576 function (frame, anchorTo, offSetX, offSetY) --> 13 | |
| 577 frame:ClearAllPoints() | |
| 578 frame:SetPoint ("bottom", anchorTo, "bottom", offSetX, offSetY) | |
| 579 end | |
| 580 } | |
| 581 | |
| 582 function DF:SetAnchor (widget, config, anchorTo) | |
| 583 anchorTo = anchorTo or widget:GetParent() | |
| 584 anchoring_functions [config.side] (widget, anchorTo, config.x, config.y) | |
| 585 end | |
| 465 | 586 |
| 466 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 587 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 467 --> colors | 588 --> colors |
| 468 | 589 |
| 469 function DF:NewColor (_colorname, _colortable, _green, _blue, _alpha) | 590 function DF:NewColor (_colorname, _colortable, _green, _blue, _alpha) |
| 548 end | 669 end |
| 549 | 670 |
| 550 local cur_x = x_offset | 671 local cur_x = x_offset |
| 551 local cur_y = y_offset | 672 local cur_y = y_offset |
| 552 local max_x = 0 | 673 local max_x = 0 |
| 674 local line_widgets_created = 0 --how many widgets has been created on this line loop pass | |
| 553 | 675 |
| 554 height = abs ((height or parent:GetHeight()) - abs (y_offset) + 20) | 676 height = abs ((height or parent:GetHeight()) - abs (y_offset) + 20) |
| 555 height = height*-1 | 677 height = height*-1 |
| 556 | 678 |
| 557 for index, widget_table in ipairs (menu) do | 679 for index, widget_table in ipairs (menu) do |
| 565 local label = DF:CreateLabel (parent, widget_table.get() or widget_table.text, widget_table.text_template or text_template or widget_table.size, widget_table.color, widget_table.font, nil, "$parentWidget" .. index, "overlay") | 687 local label = DF:CreateLabel (parent, widget_table.get() or widget_table.text, widget_table.text_template or text_template or widget_table.size, widget_table.color, widget_table.font, nil, "$parentWidget" .. index, "overlay") |
| 566 label._get = widget_table.get | 688 label._get = widget_table.get |
| 567 label.widget_type = "label" | 689 label.widget_type = "label" |
| 568 label:SetPoint (cur_x, cur_y) | 690 label:SetPoint (cur_x, cur_y) |
| 569 tinsert (parent.widget_list, label) | 691 tinsert (parent.widget_list, label) |
| 692 line_widgets_created = line_widgets_created + 1 | |
| 570 | 693 |
| 571 elseif (widget_table.type == "select" or widget_table.type == "dropdown") then | 694 elseif (widget_table.type == "select" or widget_table.type == "dropdown") then |
| 572 local dropdown = DF:NewDropDown (parent, nil, "$parentWidget" .. index, nil, 140, 18, widget_table.values, widget_table.get(), dropdown_template) | 695 local dropdown = DF:NewDropDown (parent, nil, "$parentWidget" .. index, nil, 140, 18, widget_table.values, widget_table.get(), dropdown_template) |
| 573 dropdown.tooltip = widget_table.desc | 696 dropdown.tooltip = widget_table.desc |
| 574 dropdown._get = widget_table.get | 697 dropdown._get = widget_table.get |
| 582 max_x = size | 705 max_x = size |
| 583 end | 706 end |
| 584 | 707 |
| 585 tinsert (parent.widget_list, dropdown) | 708 tinsert (parent.widget_list, dropdown) |
| 586 widget_created = dropdown | 709 widget_created = dropdown |
| 710 line_widgets_created = line_widgets_created + 1 | |
| 587 | 711 |
| 588 elseif (widget_table.type == "toggle" or widget_table.type == "switch") then | 712 elseif (widget_table.type == "toggle" or widget_table.type == "switch") then |
| 589 local switch = DF:NewSwitch (parent, nil, "$parentWidget" .. index, nil, 60, 20, nil, nil, widget_table.get(), nil, nil, nil, nil, switch_template) | 713 local switch = DF:NewSwitch (parent, nil, "$parentWidget" .. index, nil, 60, 20, nil, nil, widget_table.get(), nil, nil, nil, nil, switch_template) |
| 590 switch.tooltip = widget_table.desc | 714 switch.tooltip = widget_table.desc |
| 591 switch._get = widget_table.get | 715 switch._get = widget_table.get |
| 605 max_x = size | 729 max_x = size |
| 606 end | 730 end |
| 607 | 731 |
| 608 tinsert (parent.widget_list, switch) | 732 tinsert (parent.widget_list, switch) |
| 609 widget_created = switch | 733 widget_created = switch |
| 734 line_widgets_created = line_widgets_created + 1 | |
| 610 | 735 |
| 611 elseif (widget_table.type == "range" or widget_table.type == "slider") then | 736 elseif (widget_table.type == "range" or widget_table.type == "slider") then |
| 612 local is_decimanls = widget_table.usedecimals | 737 local is_decimanls = widget_table.usedecimals |
| 613 local slider = DF:NewSlider (parent, nil, "$parentWidget" .. index, nil, 140, 20, widget_table.min, widget_table.max, widget_table.step, widget_table.get(), is_decimanls, nil, nil, slider_template) | 738 local slider = DF:NewSlider (parent, nil, "$parentWidget" .. index, nil, 140, 20, widget_table.min, widget_table.max, widget_table.step, widget_table.get(), is_decimanls, nil, nil, slider_template) |
| 614 slider.tooltip = widget_table.desc | 739 slider.tooltip = widget_table.desc |
| 629 max_x = size | 754 max_x = size |
| 630 end | 755 end |
| 631 | 756 |
| 632 tinsert (parent.widget_list, slider) | 757 tinsert (parent.widget_list, slider) |
| 633 widget_created = slider | 758 widget_created = slider |
| 759 line_widgets_created = line_widgets_created + 1 | |
| 634 | 760 |
| 635 elseif (widget_table.type == "color" or widget_table.type == "color") then | 761 elseif (widget_table.type == "color" or widget_table.type == "color") then |
| 636 local colorpick = DF:NewColorPickButton (parent, "$parentWidget" .. index, nil, widget_table.set, nil, button_template) | 762 local colorpick = DF:NewColorPickButton (parent, "$parentWidget" .. index, nil, widget_table.set, nil, button_template) |
| 637 colorpick.tooltip = widget_table.desc | 763 colorpick.tooltip = widget_table.desc |
| 638 colorpick._get = widget_table.get | 764 colorpick._get = widget_table.get |
| 654 max_x = size | 780 max_x = size |
| 655 end | 781 end |
| 656 | 782 |
| 657 tinsert (parent.widget_list, colorpick) | 783 tinsert (parent.widget_list, colorpick) |
| 658 widget_created = colorpick | 784 widget_created = colorpick |
| 785 line_widgets_created = line_widgets_created + 1 | |
| 659 | 786 |
| 660 elseif (widget_table.type == "execute" or widget_table.type == "button") then | 787 elseif (widget_table.type == "execute" or widget_table.type == "button") then |
| 661 | 788 |
| 662 local button = DF:NewButton (parent, nil, "$parentWidget" .. index, nil, 120, 18, widget_table.func, widget_table.param1, widget_table.param2, nil, widget_table.name, nil, button_template, text_template) | 789 local button = DF:NewButton (parent, nil, "$parentWidget" .. index, nil, 120, 18, widget_table.func, widget_table.param1, widget_table.param2, nil, widget_table.name, nil, button_template, text_template) |
| 663 if (not button_template) then | 790 if (not button_template) then |
| 673 max_x = size | 800 max_x = size |
| 674 end | 801 end |
| 675 | 802 |
| 676 tinsert (parent.widget_list, button) | 803 tinsert (parent.widget_list, button) |
| 677 widget_created = button | 804 widget_created = button |
| 678 | 805 line_widgets_created = line_widgets_created + 1 |
| 679 | 806 |
| 680 elseif (widget_table.type == "textentry") then | 807 elseif (widget_table.type == "textentry") then |
| 681 local textentry = DF:CreateTextEntry (parent, widget_table.func, 120, 18, nil, "$parentWidget" .. index, nil, button_template) | 808 local textentry = DF:CreateTextEntry (parent, widget_table.func, 120, 18, nil, "$parentWidget" .. index, nil, button_template) |
| 682 textentry.tooltip = widget_table.desc | 809 textentry.tooltip = widget_table.desc |
| 683 textentry.text = widget_table.get() | 810 textentry.text = widget_table.get() |
| 695 max_x = size | 822 max_x = size |
| 696 end | 823 end |
| 697 | 824 |
| 698 tinsert (parent.widget_list, textentry) | 825 tinsert (parent.widget_list, textentry) |
| 699 widget_created = textentry | 826 widget_created = textentry |
| 827 line_widgets_created = line_widgets_created + 1 | |
| 700 | 828 |
| 701 end | 829 end |
| 702 | 830 |
| 703 if (widget_table.nocombat) then | 831 if (widget_table.nocombat) then |
| 704 tinsert (disable_on_combat, widget_created) | 832 tinsert (disable_on_combat, widget_created) |
| 711 end | 839 end |
| 712 | 840 |
| 713 if (widget_table.type == "breakline" or cur_y < height) then | 841 if (widget_table.type == "breakline" or cur_y < height) then |
| 714 cur_y = y_offset | 842 cur_y = y_offset |
| 715 cur_x = cur_x + max_x + 30 | 843 cur_x = cur_x + max_x + 30 |
| 844 line_widgets_created = 0 | |
| 716 max_x = 0 | 845 max_x = 0 |
| 717 end | 846 end |
| 718 | 847 |
| 719 end | 848 end |
| 720 | 849 |
| 1301 | 1430 |
| 1302 animation.NextAnimation = animation.NextAnimation + 1 | 1431 animation.NextAnimation = animation.NextAnimation + 1 |
| 1303 return anim | 1432 return anim |
| 1304 end | 1433 end |
| 1305 | 1434 |
| 1435 local frameshake_shake_finished = function (parent, shakeObject) | |
| 1436 if (shakeObject.IsPlaying) then | |
| 1437 shakeObject.IsPlaying = false | |
| 1438 | |
| 1439 --> update the amount of shake running on this frame | |
| 1440 parent.__frameshakes.enabled = parent.__frameshakes.enabled - 1 | |
| 1441 | |
| 1442 --> restore the default anchors, in case where deltaTime was too small that didn't triggered an update | |
| 1443 for i = 1, #shakeObject.Anchors do | |
| 1444 local anchor = shakeObject.Anchors [i] | |
| 1445 | |
| 1446 if (#anchor == 3) then | |
| 1447 local anchorTo, point1, point2 = unpack (anchor) | |
| 1448 parent:SetPoint (anchorTo, point1, point2) | |
| 1449 | |
| 1450 elseif (#anchor == 5) then | |
| 1451 local anchorName1, anchorTo, anchorName2, point1, point2 = unpack (anchor) | |
| 1452 parent:SetPoint (anchorName1, anchorTo, anchorName2, point1, point2) | |
| 1453 end | |
| 1454 end | |
| 1455 end | |
| 1456 end | |
| 1457 | |
| 1458 local frameshake_do_update = function (parent, shakeObject, deltaTime) | |
| 1459 | |
| 1460 --> check delta time | |
| 1461 deltaTime = deltaTime or 0 | |
| 1462 | |
| 1463 --> update time left | |
| 1464 shakeObject.TimeLeft = max (shakeObject.TimeLeft - deltaTime, 0) | |
| 1465 | |
| 1466 if (shakeObject.TimeLeft > 0) then | |
| 1467 | |
| 1468 --> update fade in and out | |
| 1469 if (shakeObject.IsFadingIn) then | |
| 1470 shakeObject.IsFadingInTime = shakeObject.IsFadingInTime + deltaTime | |
| 1471 end | |
| 1472 if (shakeObject.IsFadingOut) then | |
| 1473 shakeObject.IsFadingOutTime = shakeObject.IsFadingOutTime + deltaTime | |
| 1474 end | |
| 1475 | |
| 1476 --> check if can disable fade in | |
| 1477 if (shakeObject.IsFadingIn and shakeObject.IsFadingInTime > shakeObject.FadeInTime) then | |
| 1478 shakeObject.IsFadingIn = false | |
| 1479 end | |
| 1480 | |
| 1481 --> check if can enable fade out | |
| 1482 if (not shakeObject.IsFadingOut and shakeObject.TimeLeft < shakeObject.FadeOutTime) then | |
| 1483 shakeObject.IsFadingOut = true | |
| 1484 shakeObject.IsFadingOutTime = shakeObject.FadeOutTime - shakeObject.TimeLeft | |
| 1485 end | |
| 1486 | |
| 1487 --> update position | |
| 1488 local scaleShake = min (shakeObject.IsFadingIn and (shakeObject.IsFadingInTime / shakeObject.FadeInTime) or 1, shakeObject.IsFadingOut and (1 - shakeObject.IsFadingOutTime / shakeObject.FadeOutTime) or 1) | |
| 1489 | |
| 1490 if (scaleShake > 0) then | |
| 1491 | |
| 1492 --> delate the time by the frequency on both X and Y offsets | |
| 1493 shakeObject.XSineOffset = shakeObject.XSineOffset + (deltaTime * shakeObject.Frequency) | |
| 1494 shakeObject.YSineOffset = shakeObject.YSineOffset + (deltaTime * shakeObject.Frequency) | |
| 1495 | |
| 1496 --> calc the new position | |
| 1497 local newX, newY | |
| 1498 if (shakeObject.AbsoluteSineX) then | |
| 1499 --absoluting only the sine wave, passing a negative scale will reverse the absolute direction | |
| 1500 newX = shakeObject.Amplitude * abs (math.sin (shakeObject.XSineOffset)) * scaleShake * shakeObject.ScaleX | |
| 1501 else | |
| 1502 newX = shakeObject.Amplitude * math.sin (shakeObject.XSineOffset) * scaleShake * shakeObject.ScaleX | |
| 1503 end | |
| 1504 | |
| 1505 if (shakeObject.AbsoluteSineY) then | |
| 1506 newY = shakeObject.Amplitude * abs (math.sin (shakeObject.YSineOffset)) * scaleShake * shakeObject.ScaleY | |
| 1507 else | |
| 1508 newY = shakeObject.Amplitude * math.sin (shakeObject.YSineOffset) * scaleShake * shakeObject.ScaleY | |
| 1509 end | |
| 1510 | |
| 1511 --> apply the offset to the frame anchors | |
| 1512 for i = 1, #shakeObject.Anchors do | |
| 1513 local anchor = shakeObject.Anchors [i] | |
| 1514 | |
| 1515 if (#anchor == 3) then | |
| 1516 local anchorTo, point1, point2 = unpack (anchor) | |
| 1517 parent:SetPoint (anchorTo, point1 + newX, point2 + newY) | |
| 1518 | |
| 1519 elseif (#anchor == 5) then | |
| 1520 local anchorName1, anchorTo, anchorName2, point1, point2 = unpack (anchor) | |
| 1521 parent:SetPoint (anchorName1, anchorTo, anchorName2, point1 + newX, point2 + newY) | |
| 1522 end | |
| 1523 end | |
| 1524 | |
| 1525 end | |
| 1526 else | |
| 1527 frameshake_shake_finished (parent, shakeObject) | |
| 1528 end | |
| 1529 end | |
| 1530 | |
| 1531 local frameshake_update_all = function (parent, deltaTime) | |
| 1532 --> check if there's a shake running | |
| 1533 --print ("Shakes Enabled: ", parent.__frameshakes.enabled) | |
| 1534 if (parent.__frameshakes.enabled > 0) then | |
| 1535 --update all shakes | |
| 1536 for i = 1, #parent.__frameshakes do | |
| 1537 local shakeObject = parent.__frameshakes [i] | |
| 1538 if (shakeObject.IsPlaying) then | |
| 1539 frameshake_do_update (parent, shakeObject, deltaTime) | |
| 1540 end | |
| 1541 end | |
| 1542 end | |
| 1543 end | |
| 1544 | |
| 1545 --> scale direction scales the X and Y coordinates, scale strength scales the amplitude and frequency | |
| 1546 local frameshake_play = function (parent, shakeObject, scaleDirection, scaleAmplitude, scaleFrequency, scaleDuration) | |
| 1547 | |
| 1548 --> check if is already playing | |
| 1549 if (shakeObject.TimeLeft > 0) then | |
| 1550 --> reset the time left | |
| 1551 shakeObject.TimeLeft = shakeObject.Duration | |
| 1552 | |
| 1553 if (shakeObject.IsFadingOut) then | |
| 1554 if (shakeObject.FadeInTime > 0) then | |
| 1555 shakeObject.IsFadingIn = true | |
| 1556 --> scale the current fade out into fade in, so it starts the fade in at the point where it was fading out | |
| 1557 shakeObject.IsFadingInTime = shakeObject.FadeInTime * (1 - shakeObject.IsFadingOutTime / shakeObject.FadeOutTime) | |
| 1558 else | |
| 1559 shakeObject.IsFadingIn = false | |
| 1560 shakeObject.IsFadingInTime = 0 | |
| 1561 end | |
| 1562 | |
| 1563 --> disable fade out and enable fade in | |
| 1564 shakeObject.IsFadingOut = false | |
| 1565 shakeObject.IsFadingOutTime = 0 | |
| 1566 end | |
| 1567 | |
| 1568 else | |
| 1569 --> create a new random offset | |
| 1570 shakeObject.XSineOffset = math.pi * 2 * math.random() | |
| 1571 shakeObject.YSineOffset = math.pi * 2 * math.random() | |
| 1572 | |
| 1573 --> store the initial position if case it needs a reset | |
| 1574 shakeObject.StartedXSineOffset = shakeObject.XSineOffset | |
| 1575 shakeObject.StartedYSineOffset = shakeObject.YSineOffset | |
| 1576 | |
| 1577 --> check if there's a fade in time | |
| 1578 if (shakeObject.FadeInTime > 0) then | |
| 1579 shakeObject.IsFadingIn = true | |
| 1580 else | |
| 1581 shakeObject.IsFadingIn = false | |
| 1582 end | |
| 1583 | |
| 1584 shakeObject.IsFadingInTime = 0 | |
| 1585 shakeObject.IsFadingOut = false | |
| 1586 shakeObject.IsFadingOutTime = 0 | |
| 1587 | |
| 1588 --> apply custom scale | |
| 1589 shakeObject.ScaleX = (scaleDirection or 1) * shakeObject.OriginalScaleX | |
| 1590 shakeObject.ScaleY = (scaleDirection or 1) * shakeObject.OriginalScaleY | |
| 1591 shakeObject.Frequency = (scaleFrequency or 1) * shakeObject.OriginalFrequency | |
| 1592 shakeObject.Amplitude = (scaleAmplitude or 1) * shakeObject.OriginalAmplitude | |
| 1593 shakeObject.Duration = (scaleDuration or 1) * shakeObject.OriginalDuration | |
| 1594 | |
| 1595 --> update the time left | |
| 1596 shakeObject.TimeLeft = shakeObject.Duration | |
| 1597 | |
| 1598 --> check if is dynamic points | |
| 1599 if (shakeObject.IsDynamicAnchor) then | |
| 1600 wipe (shakeObject.Anchors) | |
| 1601 for i = 1, parent:GetNumPoints() do | |
| 1602 local p1, p2, p3, p4, p5 = parent:GetPoint (i) | |
| 1603 shakeObject.Anchors [#shakeObject.Anchors+1] = {p1, p2, p3, p4, p5} | |
| 1604 end | |
| 1605 end | |
| 1606 | |
| 1607 --> update the amount of shake running on this frame | |
| 1608 parent.__frameshakes.enabled = parent.__frameshakes.enabled + 1 | |
| 1609 end | |
| 1610 | |
| 1611 shakeObject.IsPlaying = true | |
| 1612 | |
| 1613 frameshake_do_update (parent, shakeObject) | |
| 1614 end | |
| 1615 | |
| 1616 function DF:CreateFrameShake (parent, duration, amplitude, frequency, absoluteSineX, absoluteSineY, scaleX, scaleY, fadeInTime, fadeOutTime, anchorPoints) | |
| 1617 | |
| 1618 --> create the shake table | |
| 1619 local frameShake = { | |
| 1620 Amplitude = amplitude or 2, | |
| 1621 Frequency = frequency or 5, | |
| 1622 Duration = duration or 0.3, | |
| 1623 FadeInTime = fadeInTime or 0.01, | |
| 1624 FadeOutTime = fadeOutTime or 0.01, | |
| 1625 ScaleX = scaleX or 0.2, | |
| 1626 ScaleY = scaleY or 1, | |
| 1627 AbsoluteSineX = absoluteSineX, | |
| 1628 AbsoluteSineY = absoluteSineY, | |
| 1629 -- | |
| 1630 IsPlaying = false, | |
| 1631 TimeLeft = 0, | |
| 1632 } | |
| 1633 | |
| 1634 frameShake.OriginalScaleX = frameShake.ScaleX | |
| 1635 frameShake.OriginalScaleY = frameShake.ScaleY | |
| 1636 frameShake.OriginalFrequency = frameShake.Frequency | |
| 1637 frameShake.OriginalAmplitude = frameShake.Amplitude | |
| 1638 frameShake.OriginalDuration = frameShake.Duration | |
| 1639 | |
| 1640 if (type (anchorPoints) ~= "table") then | |
| 1641 frameShake.IsDynamicAnchor = true | |
| 1642 frameShake.Anchors = {} | |
| 1643 else | |
| 1644 frameShake.Anchors = anchorPoints | |
| 1645 end | |
| 1646 | |
| 1647 --> inject frame shake table into the frame | |
| 1648 if (not parent.__frameshakes) then | |
| 1649 parent.__frameshakes = { | |
| 1650 enabled = 0, | |
| 1651 } | |
| 1652 parent.PlayFrameShake = frameshake_play | |
| 1653 parent.UpdateFrameShake = frameshake_do_update | |
| 1654 parent.UpdateAllFrameShake = frameshake_update_all | |
| 1655 parent:HookScript ("OnUpdate", frameshake_update_all) | |
| 1656 end | |
| 1657 | |
| 1658 tinsert (parent.__frameshakes, frameShake) | |
| 1659 | |
| 1660 return frameShake | |
| 1661 end | |
| 1662 | |
| 1663 | |
| 1664 ----------------------------- | |
| 1665 --> glow overlay | |
| 1666 | |
| 1667 local play_glow_overlay = function (self) | |
| 1668 self:Show() | |
| 1669 if (self.animOut:IsPlaying()) then | |
| 1670 self.animOut:Stop() | |
| 1671 end | |
| 1672 self.animIn:Play() | |
| 1673 end | |
| 1674 | |
| 1675 local stop_glow_overlay = function (self) | |
| 1676 self.animOut:Stop() | |
| 1677 self.animIn:Stop() | |
| 1678 self:Hide() | |
| 1679 end | |
| 1680 | |
| 1681 local defaultColor = {1, 1, 1, 1} | |
| 1682 | |
| 1683 --this is most copied from the wow client code, few changes applied to customize it | |
| 1684 function DF:CreateGlowOverlay (parent, antsColor, glowColor) | |
| 1685 local glowFrame = CreateFrame ("frame", parent:GetName() and "$parentGlow2" or "OverlayActionGlow" .. math.random (1, 10000000), parent, "ActionBarButtonSpellActivationAlert") | |
| 1686 | |
| 1687 glowFrame.Play = play_glow_overlay | |
| 1688 glowFrame.Stop = stop_glow_overlay | |
| 1689 | |
| 1690 parent.overlay = glowFrame | |
| 1691 local frameWidth, frameHeight = parent:GetSize() | |
| 1692 | |
| 1693 local scale = 1.4 | |
| 1694 | |
| 1695 --Make the height/width available before the next frame: | |
| 1696 parent.overlay:SetSize(frameWidth * scale, frameHeight * scale) | |
| 1697 parent.overlay:SetPoint("TOPLEFT", parent, "TOPLEFT", -frameWidth * 0.2, frameHeight * 0.2) | |
| 1698 parent.overlay:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT", frameWidth * 0.2, -frameHeight * 0.2) | |
| 1699 | |
| 1700 local r, g, b, a = DF:ParseColors (antsColor or defaultColor) | |
| 1701 glowFrame.ants:SetVertexColor (r, g, b, a) | |
| 1702 | |
| 1703 local r, g, b, a = DF:ParseColors (glowColor or defaultColor) | |
| 1704 glowFrame.outerGlow:SetVertexColor (r, g, b, a) | |
| 1705 | |
| 1706 glowFrame.outerGlow:SetScale (1.2) | |
| 1707 | |
| 1708 return glowFrame | |
| 1709 end | |
| 1306 | 1710 |
| 1307 ----------------------------- | 1711 ----------------------------- |
| 1308 --> borders | 1712 --> borders |
| 1309 | 1713 |
| 1310 local default_border_color1 = .5 | 1714 local default_border_color1 = .5 |
| 1323 texture:SetAlpha (self.Borders.Alpha2) | 1727 texture:SetAlpha (self.Borders.Alpha2) |
| 1324 end | 1728 end |
| 1325 for _, texture in ipairs (self.Borders.Layer3) do | 1729 for _, texture in ipairs (self.Borders.Layer3) do |
| 1326 texture:SetAlpha (self.Borders.Alpha3) | 1730 texture:SetAlpha (self.Borders.Alpha3) |
| 1327 end | 1731 end |
| 1732 end | |
| 1733 | |
| 1734 local SetBorderColor = function (self, r, g, b) | |
| 1735 for _, texture in ipairs (self.Borders.Layer1) do | |
| 1736 texture:SetColorTexture (r, g, b) | |
| 1737 end | |
| 1738 for _, texture in ipairs (self.Borders.Layer2) do | |
| 1739 texture:SetColorTexture (r, g, b) | |
| 1740 end | |
| 1741 for _, texture in ipairs (self.Borders.Layer3) do | |
| 1742 texture:SetColorTexture (r, g, b) | |
| 1743 end | |
| 1744 end | |
| 1745 | |
| 1746 local SetLayerVisibility = function (self, layer1Shown, layer2Shown, layer3Shown) | |
| 1747 | |
| 1748 for _, texture in ipairs (self.Borders.Layer1) do | |
| 1749 texture:SetShown (layer1Shown) | |
| 1750 end | |
| 1751 | |
| 1752 for _, texture in ipairs (self.Borders.Layer2) do | |
| 1753 texture:SetShown (layer2Shown) | |
| 1754 end | |
| 1755 | |
| 1756 for _, texture in ipairs (self.Borders.Layer3) do | |
| 1757 texture:SetShown (layer3Shown) | |
| 1758 end | |
| 1759 | |
| 1328 end | 1760 end |
| 1329 | 1761 |
| 1330 function DF:CreateBorder (parent, alpha1, alpha2, alpha3) | 1762 function DF:CreateBorder (parent, alpha1, alpha2, alpha3) |
| 1331 | 1763 |
| 1332 parent.Borders = { | 1764 parent.Borders = { |
| 1337 Alpha2 = alpha2 or default_border_color2, | 1769 Alpha2 = alpha2 or default_border_color2, |
| 1338 Alpha3 = alpha3 or default_border_color3, | 1770 Alpha3 = alpha3 or default_border_color3, |
| 1339 } | 1771 } |
| 1340 | 1772 |
| 1341 parent.SetBorderAlpha = SetBorderAlpha | 1773 parent.SetBorderAlpha = SetBorderAlpha |
| 1774 parent.SetBorderColor = SetBorderColor | |
| 1775 parent.SetLayerVisibility = SetLayerVisibility | |
| 1342 | 1776 |
| 1343 local border1 = parent:CreateTexture (nil, "background") | 1777 local border1 = parent:CreateTexture (nil, "background") |
| 1344 border1:SetPoint ("topleft", parent, "topleft", -1, 1) | 1778 border1:SetPoint ("topleft", parent, "topleft", -1, 1) |
| 1345 border1:SetPoint ("bottomleft", parent, "bottomleft", -1, -1) | 1779 border1:SetPoint ("bottomleft", parent, "bottomleft", -1, -1) |
| 1346 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) | 1780 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) |
| 1401 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) | 1835 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) |
| 1402 local border3 = parent:CreateTexture (nil, "background") | 1836 local border3 = parent:CreateTexture (nil, "background") |
| 1403 border3:SetPoint ("bottomleft", parent, "bottomleft", -2, -3) | 1837 border3:SetPoint ("bottomleft", parent, "bottomleft", -2, -3) |
| 1404 border3:SetPoint ("bottomright", parent, "bottomright", 2, -3) | 1838 border3:SetPoint ("bottomright", parent, "bottomright", 2, -3) |
| 1405 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) | 1839 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) |
| 1840 | |
| 1841 tinsert (parent.Borders.Layer1, border1) | |
| 1842 tinsert (parent.Borders.Layer2, border2) | |
| 1843 tinsert (parent.Borders.Layer3, border3) | |
| 1844 | |
| 1845 end | |
| 1846 | |
| 1847 | |
| 1848 function DF:CreateBorderWithSpread (parent, alpha1, alpha2, alpha3, size, spread) | |
| 1849 | |
| 1850 parent.Borders = { | |
| 1851 Layer1 = {}, | |
| 1852 Layer2 = {}, | |
| 1853 Layer3 = {}, | |
| 1854 Alpha1 = alpha1 or default_border_color1, | |
| 1855 Alpha2 = alpha2 or default_border_color2, | |
| 1856 Alpha3 = alpha3 or default_border_color3, | |
| 1857 } | |
| 1858 | |
| 1859 parent.SetBorderAlpha = SetBorderAlpha | |
| 1860 parent.SetBorderColor = SetBorderColor | |
| 1861 parent.SetLayerVisibility = SetLayerVisibility | |
| 1862 | |
| 1863 --left | |
| 1864 local border1 = parent:CreateTexture (nil, "background") | |
| 1865 border1:SetPoint ("topleft", parent, "topleft", -1 + spread, 1 + (-spread)) | |
| 1866 border1:SetPoint ("bottomleft", parent, "bottomleft", -1 + spread, -1 + spread) | |
| 1867 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) | |
| 1868 border1:SetWidth (size) | |
| 1869 | |
| 1870 local border2 = parent:CreateTexture (nil, "background") | |
| 1871 border2:SetPoint ("topleft", parent, "topleft", -2 + spread, 2 + (-spread)) | |
| 1872 border2:SetPoint ("bottomleft", parent, "bottomleft", -2 + spread, -2 + spread) | |
| 1873 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) | |
| 1874 border2:SetWidth (size) | |
| 1875 | |
| 1876 local border3 = parent:CreateTexture (nil, "background") | |
| 1877 border3:SetPoint ("topleft", parent, "topleft", -3 + spread, 3 + (-spread)) | |
| 1878 border3:SetPoint ("bottomleft", parent, "bottomleft", -3 + spread, -3 + spread) | |
| 1879 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) | |
| 1880 border3:SetWidth (size) | |
| 1881 | |
| 1882 tinsert (parent.Borders.Layer1, border1) | |
| 1883 tinsert (parent.Borders.Layer2, border2) | |
| 1884 tinsert (parent.Borders.Layer3, border3) | |
| 1885 | |
| 1886 --top | |
| 1887 local border1 = parent:CreateTexture (nil, "background") | |
| 1888 border1:SetPoint ("topleft", parent, "topleft", 0 + spread, 1 + (-spread)) | |
| 1889 border1:SetPoint ("topright", parent, "topright", 1 + (-spread), 1 + (-spread)) | |
| 1890 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) | |
| 1891 border1:SetHeight (size) | |
| 1892 | |
| 1893 local border2 = parent:CreateTexture (nil, "background") | |
| 1894 border2:SetPoint ("topleft", parent, "topleft", -1 + spread, 2 + (-spread)) | |
| 1895 border2:SetPoint ("topright", parent, "topright", 2 + (-spread), 2 + (-spread)) | |
| 1896 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) | |
| 1897 border2:SetHeight (size) | |
| 1898 | |
| 1899 local border3 = parent:CreateTexture (nil, "background") | |
| 1900 border3:SetPoint ("topleft", parent, "topleft", -2 + spread, 3 + (-spread)) | |
| 1901 border3:SetPoint ("topright", parent, "topright", 3 + (-spread), 3 + (-spread)) | |
| 1902 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) | |
| 1903 border3:SetHeight (size) | |
| 1904 | |
| 1905 tinsert (parent.Borders.Layer1, border1) | |
| 1906 tinsert (parent.Borders.Layer2, border2) | |
| 1907 tinsert (parent.Borders.Layer3, border3) | |
| 1908 | |
| 1909 --right | |
| 1910 local border1 = parent:CreateTexture (nil, "background") | |
| 1911 border1:SetPoint ("topright", parent, "topright", 1 + (-spread), 0 + (-spread)) | |
| 1912 border1:SetPoint ("bottomright", parent, "bottomright", 1 + (-spread), -1 + spread) | |
| 1913 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) | |
| 1914 border1:SetWidth (size) | |
| 1915 | |
| 1916 local border2 = parent:CreateTexture (nil, "background") | |
| 1917 border2:SetPoint ("topright", parent, "topright", 2 + (-spread), 1 + (-spread)) | |
| 1918 border2:SetPoint ("bottomright", parent, "bottomright", 2 + (-spread), -2 + spread) | |
| 1919 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) | |
| 1920 border2:SetWidth (size) | |
| 1921 | |
| 1922 local border3 = parent:CreateTexture (nil, "background") | |
| 1923 border3:SetPoint ("topright", parent, "topright", 3 + (-spread), 2 + (-spread)) | |
| 1924 border3:SetPoint ("bottomright", parent, "bottomright", 3 + (-spread), -3 + spread) | |
| 1925 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) | |
| 1926 border3:SetWidth (size) | |
| 1927 | |
| 1928 tinsert (parent.Borders.Layer1, border1) | |
| 1929 tinsert (parent.Borders.Layer2, border2) | |
| 1930 tinsert (parent.Borders.Layer3, border3) | |
| 1931 | |
| 1932 local border1 = parent:CreateTexture (nil, "background") | |
| 1933 border1:SetPoint ("bottomleft", parent, "bottomleft", 0 + spread, -1 + spread) | |
| 1934 border1:SetPoint ("bottomright", parent, "bottomright", 0 + (-spread), -1 + spread) | |
| 1935 border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1) | |
| 1936 border1:SetHeight (size) | |
| 1937 | |
| 1938 local border2 = parent:CreateTexture (nil, "background") | |
| 1939 border2:SetPoint ("bottomleft", parent, "bottomleft", -1 + spread, -2 + spread) | |
| 1940 border2:SetPoint ("bottomright", parent, "bottomright", 1 + (-spread), -2 + spread) | |
| 1941 border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2) | |
| 1942 border2:SetHeight (size) | |
| 1943 | |
| 1944 local border3 = parent:CreateTexture (nil, "background") | |
| 1945 border3:SetPoint ("bottomleft", parent, "bottomleft", -2 + spread, -3 + spread) | |
| 1946 border3:SetPoint ("bottomright", parent, "bottomright", 2 + (-spread), -3 + spread) | |
| 1947 border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3) | |
| 1948 border3:SetHeight (size) | |
| 1406 | 1949 |
| 1407 tinsert (parent.Borders.Layer1, border1) | 1950 tinsert (parent.Borders.Layer1, border1) |
| 1408 tinsert (parent.Borders.Layer2, border2) | 1951 tinsert (parent.Borders.Layer2, border2) |
| 1409 tinsert (parent.Borders.Layer3, border3) | 1952 tinsert (parent.Borders.Layer3, border3) |
| 1410 | 1953 |
| 1449 slider.slider:baixoPoint (0, -13) | 1992 slider.slider:baixoPoint (0, -13) |
| 1450 slider.slider.thumb:SetTexture ([[Interface\AddOns\Details\images\icons2]]) | 1993 slider.slider.thumb:SetTexture ([[Interface\AddOns\Details\images\icons2]]) |
| 1451 slider.slider.thumb:SetTexCoord (482/512, 492/512, 104/512, 120/512) | 1994 slider.slider.thumb:SetTexCoord (482/512, 492/512, 104/512, 120/512) |
| 1452 slider.slider.thumb:SetSize (12, 12) | 1995 slider.slider.thumb:SetSize (12, 12) |
| 1453 slider.slider.thumb:SetVertexColor (0.6, 0.6, 0.6, 0.95) | 1996 slider.slider.thumb:SetVertexColor (0.6, 0.6, 0.6, 0.95) |
| 1997 | |
| 1454 else | 1998 else |
| 1455 | 1999 --up button |
| 1456 slider.ScrollBar.ScrollUpButton:SetNormalTexture ([[Interface\Buttons\Arrow-Up-Up]]) | 2000 do |
| 1457 slider.ScrollBar.ScrollUpButton:GetNormalTexture():SetTexCoord (0, 1, 0, 1) | 2001 local normalTexture = slider.ScrollBar.ScrollUpButton.Normal |
| 1458 slider.ScrollBar.ScrollUpButton:SetPushedTexture ([[Interface\Buttons\Arrow-Up-Down]]) | 2002 normalTexture:SetTexture ([[Interface\Buttons\Arrow-Up-Up]]) |
| 1459 slider.ScrollBar.ScrollUpButton:GetPushedTexture():SetTexCoord (0, 1, 0, 1) | 2003 normalTexture:SetTexCoord (0, 1, .2, 1) |
| 1460 slider.ScrollBar.ScrollUpButton:SetDisabledTexture ([[Interface\Buttons\Arrow-Up-Disabled]]) | 2004 |
| 1461 slider.ScrollBar.ScrollUpButton:GetDisabledTexture():SetTexCoord (0, 1, 0, 1) | 2005 normalTexture:SetPoint ("topleft", slider.ScrollBar.ScrollUpButton, "topleft", 1, 0) |
| 1462 | 2006 normalTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollUpButton, "bottomright", 1, 0) |
| 1463 slider.ScrollBar.ScrollUpButton:SetSize (16, 16) | 2007 |
| 1464 slider.ScrollBar.ScrollUpButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"}) | 2008 local pushedTexture = slider.ScrollBar.ScrollUpButton.Pushed |
| 1465 slider.ScrollBar.ScrollUpButton:SetBackdropColor (0, 0, 0, 0.3) | 2009 pushedTexture:SetTexture ([[Interface\Buttons\Arrow-Up-Down]]) |
| 1466 slider.ScrollBar.ScrollUpButton:SetBackdropBorderColor (0, 0, 0, 1) | 2010 pushedTexture:SetTexCoord (0, 1, .2, 1) |
| 1467 | 2011 |
| 1468 slider.ScrollBar.ScrollUpButton:GetNormalTexture():ClearAllPoints() | 2012 pushedTexture:SetPoint ("topleft", slider.ScrollBar.ScrollUpButton, "topleft", 1, 0) |
| 1469 slider.ScrollBar.ScrollUpButton:GetPushedTexture():ClearAllPoints() | 2013 pushedTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollUpButton, "bottomright", 1, 0) |
| 1470 slider.ScrollBar.ScrollUpButton:GetDisabledTexture():ClearAllPoints() | 2014 |
| 1471 slider.ScrollBar.ScrollUpButton:GetNormalTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1) | 2015 local disabledTexture = slider.ScrollBar.ScrollUpButton.Disabled |
| 1472 slider.ScrollBar.ScrollUpButton:GetPushedTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1) | 2016 disabledTexture:SetTexture ([[Interface\Buttons\Arrow-Up-Disabled]]) |
| 1473 slider.ScrollBar.ScrollUpButton:GetDisabledTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1) | 2017 disabledTexture:SetTexCoord (0, 1, .2, 1) |
| 1474 | 2018 disabledTexture:SetAlpha (.5) |
| 2019 | |
| 2020 disabledTexture:SetPoint ("topleft", slider.ScrollBar.ScrollUpButton, "topleft", 1, 0) | |
| 2021 disabledTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollUpButton, "bottomright", 1, 0) | |
| 2022 | |
| 2023 slider.ScrollBar.ScrollUpButton:SetSize (16, 16) | |
| 2024 slider.ScrollBar.ScrollUpButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"}) | |
| 2025 slider.ScrollBar.ScrollUpButton:SetBackdropColor (0, 0, 0, 0.3) | |
| 2026 slider.ScrollBar.ScrollUpButton:SetBackdropBorderColor (0, 0, 0, 1) | |
| 2027 | |
| 2028 --it was having problems with the texture anchor when calling ClearAllPoints() and setting new points different from the original | |
| 2029 --now it is using the same points from the original with small offsets tp align correctly | |
| 2030 end | |
| 2031 | |
| 2032 --down button | |
| 2033 do | |
| 2034 local normalTexture = slider.ScrollBar.ScrollDownButton.Normal | |
| 2035 normalTexture:SetTexture ([[Interface\Buttons\Arrow-Down-Up]]) | |
| 2036 normalTexture:SetTexCoord (0, 1, 0, .8) | |
| 2037 | |
| 2038 normalTexture:SetPoint ("topleft", slider.ScrollBar.ScrollDownButton, "topleft", 1, -4) | |
| 2039 normalTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollDownButton, "bottomright", 1, -4) | |
| 2040 | |
| 2041 local pushedTexture = slider.ScrollBar.ScrollDownButton.Pushed | |
| 2042 pushedTexture:SetTexture ([[Interface\Buttons\Arrow-Down-Down]]) | |
| 2043 pushedTexture:SetTexCoord (0, 1, 0, .8) | |
| 2044 | |
| 2045 pushedTexture:SetPoint ("topleft", slider.ScrollBar.ScrollDownButton, "topleft", 1, -4) | |
| 2046 pushedTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollDownButton, "bottomright", 1, -4) | |
| 2047 | |
| 2048 local disabledTexture = slider.ScrollBar.ScrollDownButton.Disabled | |
| 2049 disabledTexture:SetTexture ([[Interface\Buttons\Arrow-Down-Disabled]]) | |
| 2050 disabledTexture:SetTexCoord (0, 1, 0, .8) | |
| 2051 disabledTexture:SetAlpha (.5) | |
| 2052 | |
| 2053 disabledTexture:SetPoint ("topleft", slider.ScrollBar.ScrollDownButton, "topleft", 1, -4) | |
| 2054 disabledTexture:SetPoint ("bottomright", slider.ScrollBar.ScrollDownButton, "bottomright", 1, -4) | |
| 2055 | |
| 2056 slider.ScrollBar.ScrollDownButton:SetSize (16, 16) | |
| 2057 slider.ScrollBar.ScrollDownButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"}) | |
| 2058 slider.ScrollBar.ScrollDownButton:SetBackdropColor (0, 0, 0, 0.3) | |
| 2059 slider.ScrollBar.ScrollDownButton:SetBackdropBorderColor (0, 0, 0, 1) | |
| 2060 | |
| 2061 --<Anchor point="TOP" relativePoint="BOTTOM"/> | |
| 2062 --slider.ScrollBar.ScrollDownButton:SetPoint ("top", slider.ScrollBar, "bottom", 0, 0) | |
| 2063 end | |
| 2064 | |
| 1475 -- | 2065 -- |
| 1476 | 2066 |
| 1477 slider.ScrollBar.ScrollDownButton:SetNormalTexture ([[Interface\Buttons\Arrow-Down-Up]]) | |
| 1478 slider.ScrollBar.ScrollDownButton:GetNormalTexture():SetTexCoord (0, 1, 0, 1) | |
| 1479 slider.ScrollBar.ScrollDownButton:SetPushedTexture ([[Interface\Buttons\Arrow-Down-Down]]) | |
| 1480 slider.ScrollBar.ScrollDownButton:GetPushedTexture():SetTexCoord (0, 1, 0, 1) | |
| 1481 slider.ScrollBar.ScrollDownButton:SetDisabledTexture ([[Interface\Buttons\Arrow-Down-Disabled]]) | |
| 1482 slider.ScrollBar.ScrollDownButton:GetDisabledTexture():SetTexCoord (0, 1, 0, 1) | |
| 1483 | |
| 1484 slider.ScrollBar.ScrollDownButton:SetSize (16, 16) | |
| 1485 slider.ScrollBar.ScrollDownButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"}) | |
| 1486 slider.ScrollBar.ScrollDownButton:SetBackdropColor (0, 0, 0, 0.3) | |
| 1487 slider.ScrollBar.ScrollDownButton:SetBackdropBorderColor (0, 0, 0, 1) | |
| 1488 | |
| 1489 slider.ScrollBar.ScrollDownButton:GetNormalTexture():ClearAllPoints() | |
| 1490 slider.ScrollBar.ScrollDownButton:GetPushedTexture():ClearAllPoints() | |
| 1491 slider.ScrollBar.ScrollDownButton:GetDisabledTexture():ClearAllPoints() | |
| 1492 slider.ScrollBar.ScrollDownButton:GetNormalTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5) | |
| 1493 slider.ScrollBar.ScrollDownButton:GetPushedTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5) | |
| 1494 slider.ScrollBar.ScrollDownButton:GetDisabledTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5) | |
| 1495 | |
| 1496 -- | |
| 1497 slider.ScrollBar:SetPoint ("TOPLEFT", slider, "TOPRIGHT", 6, -16) | 2067 slider.ScrollBar:SetPoint ("TOPLEFT", slider, "TOPRIGHT", 6, -16) |
| 1498 slider.ScrollBar:SetPoint ("BOTTOMLEFT", slider, "BOTTOMRIGHT", 6, 16 + (heightOffset and heightOffset*-1 or 0)) | 2068 slider.ScrollBar:SetPoint ("BOTTOMLEFT", slider, "BOTTOMRIGHT", 6, 16 + (heightOffset and heightOffset*-1 or 0)) |
| 1499 | 2069 |
| 1500 slider.ScrollBar.ThumbTexture:SetColorTexture (.5, .5, .5, .3) | 2070 slider.ScrollBar.ThumbTexture:SetColorTexture (.5, .5, .5, .3) |
| 1501 slider.ScrollBar.ThumbTexture:SetSize (12, 8) | 2071 slider.ScrollBar.ThumbTexture:SetSize (12, 8) |
| 1506 slider.ScrollBar:SetBackdropColor (0, 0, 0, 0.35) | 2076 slider.ScrollBar:SetBackdropColor (0, 0, 0, 0.35) |
| 1507 slider.ScrollBar:SetBackdropBorderColor (0, 0, 0, 1) | 2077 slider.ScrollBar:SetBackdropBorderColor (0, 0, 0, 1) |
| 1508 end | 2078 end |
| 1509 end | 2079 end |
| 1510 | 2080 |
| 2081 function DF:GetCurrentSpec() | |
| 2082 local specIndex = GetSpecialization() | |
| 2083 if (specIndex) then | |
| 2084 local specID = GetSpecializationInfo (specIndex) | |
| 2085 if (specID and specID ~= 0) then | |
| 2086 return specID | |
| 2087 end | |
| 2088 end | |
| 2089 end | |
| 2090 | |
| 2091 local specs_per_class = { | |
| 2092 ["DEMONHUNTER"] = {577, 581}, | |
| 2093 ["DEATHKNIGHT"] = {250, 251, 252}, | |
| 2094 ["WARRIOR"] = {71, 72, 73}, | |
| 2095 ["MAGE"] = {62, 63, 64}, | |
| 2096 ["ROGUE"] = {259, 260, 261}, | |
| 2097 ["DRUID"] = {102, 103, 104, 105}, | |
| 2098 ["HUNTER"] = {253, 254, 255}, | |
| 2099 ["SHAMAN"] = {262, 263, 254}, | |
| 2100 ["PRIEST"] = {256, 257, 258}, | |
| 2101 ["WARLOCK"] = {265, 266, 267}, | |
| 2102 ["PALADIN"] = {65, 66, 70}, | |
| 2103 ["MONK"] = {268, 269, 270}, | |
| 2104 } | |
| 2105 | |
| 2106 function DF:GetClassSpecIDs (class) | |
| 2107 return specs_per_class [class] | |
| 2108 end | |
| 2109 | |
| 2110 local dispatch_error = function (context, errortext) | |
| 2111 DF:Msg ( (context or "<no context>") .. " |cFFFF9900error|r: " .. (errortext or "<no error given>")) | |
| 2112 end | |
| 2113 | |
| 2114 --> safe call an external func with payload and without telling who is calling | |
| 2115 function DF:QuickDispatch (func, ...) | |
| 2116 if (type (func) ~= "function") then | |
| 2117 return | |
| 2118 end | |
| 2119 | |
| 2120 local okay, errortext = pcall (func, ...) | |
| 2121 | |
| 2122 if (not okay) then | |
| 2123 --> trigger an error msg | |
| 2124 dispatch_error (_, errortext) | |
| 2125 return | |
| 2126 end | |
| 2127 | |
| 2128 return true | |
| 2129 end | |
| 2130 | |
| 2131 | |
| 2132 | |
| 1511 --doo elsee | 2133 --doo elsee |
| 2134 --was doing double loops due to not enought height |
