/TelUI_AddonSkins/skins/SexyCooldown.lua

http://github.com/Asphyxia/Tukui · Lua · 176 lines · 116 code · 17 blank · 43 comment · 9 complexity · 9c035d5337692b6aa325926d8138bcb2 MD5 · raw file

  1. --[[
  2. SexyCooldown Skin by Darth Android / Telroth - The Venture Co.
  3. Skins SexyCooldown to look like TelUI.
  4. Available SKIN methods:
  5. :SCDStripSkinSettings(bar) -- removes skin-related settings from the bar's option table
  6. :SkinSexyCooldownBar(bar) -- Applies skinning to a specific SexyCooldown bar.
  7. :SkinSexyCooldownIcon(bar, icon) -- Skins one of the icons on a bar.
  8. Available LAYOUT methods:
  9. :SCDStripLayoutSettings(bar) -- removes layout-related settings from the bar's option table
  10. :PositionSexyCooldownBar(bar) -- positions the SexyCooldown bar "bar" on screen
  11. (C)2010 Darth Android / Telroth - The Venture Co.
  12. File version v91.109
  13. ]]
  14. if not Mod_AddonSkins or not SexyCooldown then return end
  15. local scd = SexyCooldown
  16. local L = LibStub("AceLocale-3.0"):GetLocale("SexyCooldown")
  17. Mod_AddonSkins:RegisterSkin("SexyCooldown",function(Skin,skin,Layout,layout,config)
  18. --[[ Skinning and Layout functions ]]
  19. -- Strip skinning settings from in-game GUI
  20. function Skin:SCDStripSkinSettings(bar)
  21. -- Remove conflicting options
  22. bar.optionsTable.args.icon.args.borderheader = nil
  23. bar.optionsTable.args.icon.args.border = nil
  24. bar.optionsTable.args.icon.args.borderColor = nil
  25. bar.optionsTable.args.icon.args.borderSize = nil
  26. bar.optionsTable.args.icon.args.borderInset = nil
  27. --bar.optionsTable.args.icon.args.sizeOffset = nil
  28. bar.optionsTable.args.bar.args.bnbheader = nil
  29. bar.optionsTable.args.bar.args.texture = nil
  30. bar.optionsTable.args.bar.args.backgroundColor = nil
  31. bar.optionsTable.args.bar.args.border = nil
  32. bar.optionsTable.args.bar.args.borderColor = nil
  33. bar.optionsTable.args.bar.args.borderSize = nil
  34. bar.optionsTable.args.bar.args.borderInset = nil
  35. end
  36. -- Strip positioning settings from in-game GUI
  37. function Layout:SCDStripLayoutSettings(bar)
  38. -- Override variables
  39. bar.settings.bar.lock = true
  40. --remove settings which are no longer relavent for this bar
  41. bar.optionsTable.args.copy = nil
  42. bar.optionsTable.args.bar.args.lock = nil
  43. bar.optionsTable.args.bar.args.orientation.values = {
  44. LEFT_TO_RIGHT = L["Left to Right"],
  45. RIGHT_TO_LEFT = L["Right to Left"]
  46. }
  47. bar.optionsTable.args.bar.args.positioning = nil
  48. bar.optionsTable.args.bar.args.height = nil
  49. bar.optionsTable.args.bar.args.width = nil
  50. bar.optionsTable.args.bar.args.x = nil
  51. bar.optionsTable.args.bar.args.y = nil
  52. bar.optionsTable.args.bar.args.inactiveAlpha = nil
  53. end
  54. -- Don't move the bars, but a layout could integrate them
  55. Layout.PositionSexyCooldownBar = dummy
  56. -- Skin Bars
  57. function Skin:SkinSexyCooldownBar(bar)
  58. self:SCDStripSkinSettings(bar)
  59. self:SkinFrame(bar)
  60. end
  61. -- Skin Icons
  62. function Skin:SkinSexyCooldownIcon(bar, icon)
  63. self:SkinFrame(icon)
  64. self:SkinFrame(icon.overlay)
  65. icon.tex:SetTexCoord(unpack(config.buttonZoom))
  66. icon.overlay:SetBackdropColor(0,0,0,0)
  67. -- Default no background/border
  68. icon:SetBackdropColor(0,0,0,0)
  69. icon:SetBackdropBorderColor(0,0,0,0)
  70. icon.overlay:SetBackdropBorderColor(0,0,0,0)
  71. end
  72. --[[ Hook bar creation to add skinning ]]
  73. local function HookSCDBar(bar)
  74. -- Hook bar skinning & layout
  75. bar.UpdateBarLook_ = bar.UpdateBarLook
  76. bar.UpdateBarLook = function(self)
  77. self:UpdateBarLook_()
  78. skin:SkinSexyCooldownBar(self)
  79. layout:PositionSexyCooldownBar(self)
  80. end
  81. -- Hook icon skinning
  82. bar.UpdateSingleIconLook_ = bar.UpdateSingleIconLook
  83. bar.UpdateSingleIconLook = function(self,icon)
  84. self:UpdateSingleIconLook_(icon)
  85. skin:SkinSexyCooldownIcon(bar,icon)
  86. end
  87. -- Static skinning
  88. bar.settings.icon.borderInset = config.borderWidth
  89. end
  90. scd.CreateBar_ = scd.CreateBar
  91. scd.CreateBar = function(self, settings, name)
  92. local bar = scd:CreateBar_(settings,name)
  93. HookSCDBar(bar)
  94. return bar
  95. end
  96. -- Skin Pre-existing bars
  97. for _,bar in ipairs(scd.bars) do
  98. HookSCDBar(bar)
  99. -- Force a bar update
  100. bar:UpdateBarLook()
  101. end
  102. end)
  103. local function SkinBar(frame)
  104. -- Override bar skinning
  105. frame.UpdateBarBackdrop = function(self)
  106. self:SetBackdrop({
  107. bgFile = TukuiDB["media"].blank,
  108. edgeFile = TukuiDB["media"].blank,
  109. tile = false, tileSize = 0, edgeSize = TukuiDB.mult,
  110. insets = { left = -TukuiDB.mult, right = -TukuiDB.mult, top = -TukuiDB.mult, bottom = -TukuiDB.mult}
  111. })
  112. if frame.skin and frame.skin.nobackground then
  113. self:SetBackdropColor(0,0,0,0)
  114. else
  115. self:SetBackdropColor(unpack(TukuiDB["media"].backdropcolor))
  116. end
  117. if frame.skin and frame.skin.noborder then
  118. self:SetBackdropBorderColor(0,0,0,0)
  119. else
  120. self:SetBackdropBorderColor(unpack(TukuiDB["media"].bordercolor))
  121. end
  122. end
  123. -- Override cooldown skinning
  124. frame.UpdateSingleIconLook_ = frame.UpdateSingleIconLook
  125. frame.UpdateSingleIconLook = function(self, icon)
  126. frame:UpdateSingleIconLook_(icon)
  127. if frame.skin and frame.skin.noiconborder then
  128. icon:SetBackdrop({
  129. bgFile = TukuiDB["media"].blank,
  130. edgeFile = TukuiDB["media"].blank,
  131. tile = false, tileSize = 0, edgeSize = 0,
  132. insets = { left = 0, right = 0, top = 0, bottom = 0}
  133. })
  134. icon:SetBackdropBorderColor(0,0,0,0)
  135. else
  136. icon:SetBackdrop({
  137. bgFile = TukuiDB["media"].blank,
  138. edgeFile = TukuiDB["media"].blank,
  139. tile = false, tileSize = 0, edgeSize = TukuiDB.mult,
  140. --insets = { left = -TukuiDB.mult, right = -TukuiDB.mult, top = -TukuiDB.mult, bottom = -TukuiDB.mult}
  141. insets = { left = 0, right = 0, top = 0, bottom = 0}
  142. })
  143. icon:SetBackdropBorderColor(unpack(TukuiDB["media"].bordercolor))
  144. end
  145. icon:SetBackdropColor(0,0,0,0)
  146. end
  147. -- Skinning options
  148. frame.settings.icon.borderInset = 2
  149. frame:UpdateBarLook()
  150. end