Mercurial > wow > kbf
comparison KBF.lua @ 37:15b9e97ab2d2
hacked in very, very basic consolidated buff support. Needs *much* clean up, get side effects out of functions that don't want them, get the hide/show anchor logic into a secure state thingy
author | Chris Mellon <arkanes@gmail.com> |
---|---|
date | Fri, 31 Dec 2010 08:36:30 -0600 |
parents | 758987dad08c |
children | 0addebdd412f |
comparison
equal
deleted
inserted
replaced
36:758987dad08c | 37:15b9e97ab2d2 |
---|---|
80 -- Don't forget to refresh shown tooltips | 80 -- Don't forget to refresh shown tooltips |
81 if ( GameTooltip:IsOwned(frame) ) then | 81 if ( GameTooltip:IsOwned(frame) ) then |
82 self:OnEnter(frame) | 82 self:OnEnter(frame) |
83 end | 83 end |
84 end | 84 end |
85 | |
86 -- consolidated buffs | |
87 if self.consolidateProxy:IsShown() then | |
88 self.consolidateHeader:Show() -- *** STATE DRIVEN | |
89 for idx=1,99 do | |
90 local frame = self.consolidateHeader:GetAttribute("child"..idx) | |
91 if not (frame and frame:IsShown()) then break end | |
92 if self.dirty then | |
93 if self:BindBarToBuff(frame, unit) then break end | |
94 end | |
95 self:UpdateBarExpirationTime(frame) | |
96 -- Don't forget to refresh shown tooltips | |
97 if ( GameTooltip:IsOwned(frame) ) then | |
98 self:OnEnter(frame) | |
99 end | |
100 end | |
101 else | |
102 self.consolidateHeader:Hide() -- *** STATE DRIVEN | |
103 end | |
104 | |
85 -- temporary enchants | 105 -- temporary enchants |
86 local tempEnchant = self.secureFrame:GetAttribute("tempEnchant1") | 106 local tempEnchant = self.secureFrame:GetAttribute("tempEnchant1") |
87 if tempEnchant and tempEnchant:IsShown() then | 107 if tempEnchant and tempEnchant:IsShown() then |
88 if self.dirty or true then | 108 if self.dirty or true then |
89 self:BindBarToWeaponEnchant(tempEnchant, 16) | 109 self:BindBarToWeaponEnchant(tempEnchant, 16) |
365 anchor:SetScript("OnDragStop", anchor.StopMovingOrSizing) | 385 anchor:SetScript("OnDragStop", anchor.StopMovingOrSizing) |
366 anchor:ClearAllPoints() | 386 anchor:ClearAllPoints() |
367 anchor:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", 0, 0) | 387 anchor:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", 0, 0) |
368 anchor:Hide() | 388 anchor:Hide() |
369 | 389 |
370 local frame = CreateFrame("FRAME", "KBFBuffFrame", UIParent, "SecureAuraHeaderTemplate") | 390 self.secureFrame = self:CreateSecureHeaderFrame("KBFBuffFrame", "SecureAuraHeaderTemplate") |
371 --local frame = anchor | 391 self.secureFrame:SetPoint("TOP", anchor, "TOP", 0, 0) |
392 self.secureFrame:SetAttribute("consolidateTo", 1) | |
393 -- pre-create the consolidated proxy & headers so I can decide what they look like | |
394 -- lazy - just make it a regular bar for now | |
395 self.consolidateProxy = self:ConstructBar() | |
396 self.secureFrame:SetAttribute("consolidateProxy", self.consolidateProxy) | |
397 self.secureFrame:SetAttribute("frameref-proxy", GetFrameHandle(self.consolidateProxy)) | |
398 -- pre-create the consolidated header | |
399 self.consolidateHeader = self:CreateSecureHeaderFrame("KBFConsolidatedAnchorFrame") | |
400 self.secureFrame:SetAttribute("consolidateHeader", self.consolidateHeader) | |
401 self.consolidateHeader:SetPoint("RIGHT", self.consolidateProxy, "LEFT", 0, 0) | |
402 self.consolidateHeader:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background", | |
403 edgeFile = "Interface/Tooltips/UI-Tooltip-Border", | |
404 tile = true, tileSize = 16, edgeSize = 12, | |
405 insets = { left = 4, right = 4, top = 4, bottom = 4 }, | |
406 }) | |
407 self.consolidateHeader:SetWidth(200 +16) | |
408 self.consolidateHeader:SetHeight(16) | |
409 self.consolidateHeader:Show() | |
410 self.consolidateProxy:SetAttribute("header", self.consolidateHeader); | |
411 self.consolidateProxy:SetAttribute("frameref-header", GetFrameHandle(self.consolidateHeader)) | |
412 return anchor | |
413 end | |
414 | |
415 function kbf:CreateSecureHeaderFrame(name, template) | |
416 local frame = CreateFrame("FRAME", name, UIParent, template) | |
372 frame:SetAttribute("filter", "HELPFUL") | 417 frame:SetAttribute("filter", "HELPFUL") |
373 frame:SetAttribute("toggleForVehicle", true) -- this doesn't actually work right now, but maybe it eventually will | 418 frame:SetAttribute("toggleForVehicle", true) -- this doesn't actually work right now, but maybe it eventually will |
374 frame:SetAttribute("template", "KBFSecureUnitAuraTemplate") | 419 frame:SetAttribute("template", "KBFSecureUnitAuraTemplate") |
375 frame:SetAttribute("point", "TOP") | 420 frame:SetAttribute("point", "TOP") |
376 frame:SetAttribute("wrapAfter", 100) -- required due to bugs in secure header | 421 frame:SetAttribute("wrapAfter", 100) -- required due to bugs in secure header |
377 frame:SetAttribute("consolidateTo", nil) | |
378 frame:SetAttribute("xOffset", 0) | 422 frame:SetAttribute("xOffset", 0) |
379 frame:SetAttribute("yOffset", -16) | 423 frame:SetAttribute("yOffset", -16) |
380 frame:SetAttribute("minWidth", 216) | 424 frame:SetAttribute("minWidth", 216) |
381 frame:SetAttribute("minHeight", 16) | 425 frame:SetAttribute("minHeight", 16) |
382 frame:SetAttribute("unit", "player") | 426 frame:SetAttribute("unit", "player") |
383 frame:SetAttribute("sortMethod", "NAME") | 427 frame:SetAttribute("sortMethod", "NAME") |
384 frame:SetAttribute("sortOrder", "-") | 428 frame:SetAttribute("sortOrder", "-") |
385 -- TODO: SecureAuraHeader doesn't correcltly implement the temp enchants | 429 -- TODO: SecureAuraHeader doesn't correcltly implement the temp enchants |
386 frame:SetAttribute("weaponTemplate", "KBFSecureUnitAuraTemplate") | 430 frame:SetAttribute("weaponTemplate", "KBFSecureUnitAuraTemplate") |
387 frame:SetAttribute("includeWeapons", 1) | 431 frame:SetAttribute("includeWeapons", 1) |
388 frame:SetPoint("TOP", anchor, "TOP", 0, 0) | |
389 frame:Show() -- has to be shown, otherwise the child frames don't show | 432 frame:Show() -- has to be shown, otherwise the child frames don't show |
390 self.secureFrame = frame | 433 return frame |
391 return anchor | |
392 end | 434 end |
393 | 435 |
394 function kbf:ShowAnchor() | 436 function kbf:ShowAnchor() |
395 self.secureFrame:ClearAllPoints() | 437 self.secureFrame:ClearAllPoints() |
396 self.secureFrame:SetPoint("TOP", self.anchor, "BOTTOM", 0, 0) | 438 self.secureFrame:SetPoint("TOP", self.anchor, "BOTTOM", 0, 0) |