Mercurial > wow > kbf
comparison KBF.lua @ 18:27aa0d9ffe43
allow hiding of the anchor
| author | Chris Mellon <arkanes@gmai.com> |
|---|---|
| date | Fri, 15 Oct 2010 22:40:50 -0500 |
| parents | 233745d4774b |
| children | a6f5a0f2d429 |
comparison
equal
deleted
inserted
replaced
| 17:233745d4774b | 18:27aa0d9ffe43 |
|---|---|
| 6 | 6 |
| 7 | 7 |
| 8 function kbf:OnInitialize() | 8 function kbf:OnInitialize() |
| 9 self.debuffFrames = {} | 9 self.debuffFrames = {} |
| 10 self.anchor = self:CreateAnchorFrame() | 10 self.anchor = self:CreateAnchorFrame() |
| 11 self.anchor:Show() | |
| 12 self:RegisterEvent("UNIT_AURA") | 11 self:RegisterEvent("UNIT_AURA") |
| 13 -- set up the countdown timer | 12 -- set up the countdown timer |
| 14 -- TODO: Fancy enable/disable based on whether you have any timed buffs. | 13 -- TODO: Fancy enable/disable based on whether you have any timed buffs. |
| 15 -- Not a big deal, how often do you care about that | 14 -- Not a big deal, how often do you care about that |
| 16 -- also TODO: Maybe should bucket OnUpdates somehow | 15 -- also TODO: Maybe should bucket OnUpdates somehow |
| 17 self.anchor:SetScript("OnUpdate", function() self:OnUpdate() end) | 16 -- AceTimer repeating events can only happen at 0.1 seconds, which is probably |
| 17 -- fast enough for updating, but makes the animation look jerky | |
| 18 self.update = CreateFrame("FRAME") | |
| 19 self.update:SetScript("OnUpdate", function() self:OnUpdate() end) | |
| 18 self.dirty = true -- force an immediate scan on login | 20 self.dirty = true -- force an immediate scan on login |
| 19 self:HideBlizzardBuffFrames() | 21 self:HideBlizzardBuffFrames() |
| 22 self:RegisterChatCommand("kbf", "ToggleAnchor") | |
| 20 end | 23 end |
| 21 -- naming convention | 24 -- naming convention |
| 22 -- a "frame" is the top-level button (secure button from the header, or one I make myself) | 25 -- a "frame" is the top-level button (secure button from the header, or one I make myself) |
| 23 -- that will contain the UI information about the buff | 26 -- that will contain the UI information about the buff |
| 24 | 27 |
| 32 frame:Hide() | 35 frame:Hide() |
| 33 frame.Show = function() end | 36 frame.Show = function() end |
| 34 end | 37 end |
| 35 HideBlizFrame(BuffFrame) | 38 HideBlizFrame(BuffFrame) |
| 36 HideBlizFrame(ConsolidatedBuffs) | 39 HideBlizFrame(ConsolidatedBuffs) |
| 37 --HideBlizFrame(TemporaryEnchantFrame) | 40 HideBlizFrame(TemporaryEnchantFrame) |
| 38 | 41 |
| 39 end | 42 end |
| 40 | 43 |
| 41 function kbf:OnUpdate() | 44 function kbf:OnUpdate() |
| 42 local unit = self.secureFrame:GetAttribute("unit") | 45 local unit = self.secureFrame:GetAttribute("unit") |
| 308 -- give it a name so it'll remember its position | 311 -- give it a name so it'll remember its position |
| 309 local anchor = CreateFrame("FRAME", "KBFAnchorFrame", UIParent) | 312 local anchor = CreateFrame("FRAME", "KBFAnchorFrame", UIParent) |
| 310 anchor:SetClampedToScreen(true) | 313 anchor:SetClampedToScreen(true) |
| 311 anchor:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background", | 314 anchor:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background", |
| 312 edgeFile = "Interface/Tooltips/UI-Tooltip-Border", | 315 edgeFile = "Interface/Tooltips/UI-Tooltip-Border", |
| 313 tile = true, tileSize = 16, edgeSize = 16, | 316 tile = true, tileSize = 16, edgeSize = 12, |
| 314 insets = { left = 4, right = 4, top = 4, bottom = 4 }, | 317 insets = { left = 4, right = 4, top = 4, bottom = 4 }, |
| 315 }) | 318 }) |
| 316 local text = anchor:CreateFontString(nil, "OVERLAY") -- the label text | 319 local text = anchor:CreateFontString(nil, "OVERLAY") -- the label text |
| 317 text:SetFontObject(GameFontHighlight) | 320 text:SetFontObject(GameFontHighlight) |
| 318 text:SetFont(GameFontHighlight:GetFont()) | 321 text:SetFont(GameFontHighlight:GetFont()) |
| 319 text:SetPoint("TOPLEFT", anchor, "TOPLEFT", 0, 0) | 322 text:SetPoint("TOPLEFT", anchor, "TOPLEFT", 0, 0) |
| 320 text:SetPoint("BOTTOMRIGHT", anchor, "BOTTOMRIGHT", 0, 0) | 323 text:SetPoint("BOTTOMRIGHT", anchor, "BOTTOMRIGHT", 0, 0) |
| 321 text:SetText("KBF ANCHOR") | 324 text:SetText("KBF ANCHOR") |
| 322 anchor:SetWidth(200 + 16 + 8) | 325 anchor:SetWidth(200 +16) |
| 323 anchor:SetHeight(16 + 8) | 326 anchor:SetHeight(16) |
| 324 -- movability | 327 -- movability |
| 325 anchor:EnableMouse(true) | 328 anchor:EnableMouse(true) |
| 326 anchor:SetMovable(true) | 329 anchor:SetMovable(true) |
| 327 anchor:RegisterForDrag("LeftButton") | 330 anchor:RegisterForDrag("LeftButton") |
| 328 anchor:SetScript("OnDragStart", anchor.StartMoving) | 331 anchor:SetScript("OnDragStart", anchor.StartMoving) |
| 329 anchor:SetScript("OnDragStop", anchor.StopMovingOrSizing) | 332 anchor:SetScript("OnDragStop", anchor.StopMovingOrSizing) |
| 330 anchor:ClearAllPoints() | 333 anchor:ClearAllPoints() |
| 331 anchor:SetPoint("CENTER", UIParent, "CENTER", 0, 0) | 334 anchor:SetPoint("CENTER", UIParent, "CENTER", 0, 0) |
| 332 anchor:Hide() | 335 anchor:Hide() |
| 333 | 336 |
| 334 local frame = CreateFrame("FRAME", "KBFBuffFrame", anchor, "SecureAuraHeaderTemplate") | 337 local frame = CreateFrame("FRAME", "KBFBuffFrame", UIParent, "SecureAuraHeaderTemplate") |
| 335 --local frame = anchor | 338 --local frame = anchor |
| 336 frame:SetAttribute("filter", "HELPFUL") | 339 frame:SetAttribute("filter", "HELPFUL") |
| 337 frame:SetAttribute("template", "KBFSecureUnitAuraTemplate") | 340 frame:SetAttribute("template", "KBFSecureUnitAuraTemplate") |
| 338 frame:SetAttribute("point", "TOP") | 341 frame:SetAttribute("point", "TOP") |
| 339 frame:SetAttribute("wrapAfter", 100) -- required due to bugs in secure header | 342 frame:SetAttribute("wrapAfter", 100) -- required due to bugs in secure header |
| 346 frame:SetAttribute("sortMethod", "NAME") | 349 frame:SetAttribute("sortMethod", "NAME") |
| 347 frame:SetAttribute("sortOrder", "-") | 350 frame:SetAttribute("sortOrder", "-") |
| 348 -- TODO: SecureAuraHeader doesn't correcltly implement the temp enchants | 351 -- TODO: SecureAuraHeader doesn't correcltly implement the temp enchants |
| 349 frame:SetAttribute("weaponTemplate", "KBFSecureUnitAuraTemplate") | 352 frame:SetAttribute("weaponTemplate", "KBFSecureUnitAuraTemplate") |
| 350 frame:SetAttribute("includeWeapons", 1) | 353 frame:SetAttribute("includeWeapons", 1) |
| 351 frame:SetPoint("TOP", anchor, "BOTTOM", 0, 0) | 354 frame:SetPoint("TOP", anchor, "TOP", 0, 0) |
| 352 frame:Show() -- has to be shown, otherwise the child frames don't show | 355 frame:Show() -- has to be shown, otherwise the child frames don't show |
| 353 self.secureFrame = frame | 356 self.secureFrame = frame |
| 354 return anchor | 357 return anchor |
| 355 end | 358 end |
| 359 | |
| 360 function kbf:ShowAnchor() | |
| 361 self.secureFrame:ClearAllPoints() | |
| 362 self.secureFrame:SetPoint("TOP", self.anchor, "BOTTOM", 0, 0) | |
| 363 self.anchor:Show() | |
| 364 end | |
| 365 | |
| 366 function kbf:HideAnchor() | |
| 367 self.secureFrame:ClearAllPoints() | |
| 368 self.secureFrame:SetPoint("TOP", self.anchor, "TOP", 0, 0) | |
| 369 self.anchor:Hide() | |
| 370 end | |
| 371 | |
| 372 function kbf:ToggleAnchor() | |
| 373 if self.anchor:IsShown() then | |
| 374 self:HideAnchor() | |
| 375 else | |
| 376 self:ShowAnchor() | |
| 377 end | |
| 378 end |
