c23b2d1 - Move some standard blizzard frames
[wowui.git] / OmaRF / RaidFrame.lua
index f8ca89f..5d94ff0 100644 (file)
@@ -5,9 +5,10 @@ local format = string.format;
 local UnitInRange = UnitInRange;
 local InCombatLockdown = InCombatLockdown;
 local CreateFrame, RegisterStateDriver, RegisterUnitWatch = CreateFrame, RegisterStateDriver, RegisterUnitWatch;
+local CTimerAfter = C_Timer.After;
 local STANDARD_TEXT_FONT = STANDARD_TEXT_FONT;
-local GameTooltip = nil;
-local GameTooltip_SetDefaultAnchor = nil;
+local GameTooltip = GameTooltip;
+local GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor;
 
 local registerEvents = OmaRFEvents.RegisterEvents;
 local registerUnitEvents = OmaRFEvents.RegisterUnitEvents;
@@ -29,6 +30,7 @@ local attributes = {};
 
 local CFrame = CreateFrame("Frame", "OmaRFFrame", UIParent);
 local inheritedFrames = "SecureUnitButtonTemplate,SecureHandlerStateTemplate";
+local barTexture = "Interface\\AddOns\\OmaRF\\images\\minimalist";
 local class = nil;
 local party = {};
 local raid = {};
@@ -91,7 +93,7 @@ local function setupFrame(frame, secure, unit)
     frame.background:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -1, 1);
     frame.background:SetColorTexture(unpack(bgColor));
     frame.health = frame:CreateTexture(nil, "BORDER");
-    frame.health:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill");
+    frame.health:SetTexture(barTexture);
     frame.health:SetPoint("TOPLEFT", frame.background, "TOPLEFT");
     frame.health:SetPoint("BOTTOMLEFT", frame.background, "BOTTOMLEFT");
     frame.health:SetVertexColor(unpack(healthColor));
@@ -103,7 +105,8 @@ local function setupFrame(frame, secure, unit)
     frame.shield = frame:CreateTexture(nil, "BORDER");
     frame.shield:SetPoint("TOPLEFT", frame.health, "TOPRIGHT");
     frame.shield:SetPoint("BOTTOMLEFT", frame.health, "BOTTOMRIGHT");
-    frame.shield:SetColorTexture(unpack(shieldColor));
+    frame.shield:SetTexture(barTexture);
+    frame.shield:SetVertexColor(unpack(shieldColor));
     frame.shield:Hide();
     frame.shieldhl = frame:CreateTexture(nil, "ARTWORK");
     frame.shieldhl:SetPoint("TOPLEFT", frame.background, "TOPRIGHT", -1, 0);
@@ -120,16 +123,16 @@ local function setupFrame(frame, secure, unit)
     frame.healabsorb:SetPoint("BOTTOMRIGHT", frame.health, "BOTTOMRIGHT");
     frame.healabsorb:SetColorTexture(unpack(healabsorbColor));
     frame.healabsorb:Hide();
-    frame.role = frame:CreateTexture(nil, "ARTWORK");
-    frame.role:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT", -2, 2);
-    frame.role:SetPoint("TOPLEFT", frame.background, "BOTTOMRIGHT", -14, 14);
-    frame.role:SetTexture("Interface\\LFGFRAME\\LFGROLE");
-    frame.role:Hide();
     frame.overlay = frame:CreateTexture(nil, "ARTWORK", nil, 1);
     frame.overlay:SetPoint("TOPLEFT", frame.background, "TOPLEFT");
     frame.overlay:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT");
     frame.overlay:SetColorTexture(1, 1, 1);
     frame.overlay:Hide();
+    frame.role = frame:CreateTexture(nil, "ARTWORK", nil, 2);
+    frame.role:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT", -2, 2);
+    frame.role:SetPoint("TOPLEFT", frame.background, "BOTTOMRIGHT", -14, 14);
+    frame.role:SetTexture("Interface\\LFGFRAME\\LFGROLE");
+    frame.role:Hide();
     frame.name = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
     frame.name:SetPoint("CENTER", frame.background, "CENTER", 0, 11);
     frame.text = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
@@ -270,12 +273,10 @@ local function initializeFocus(parent)
 end
 
 local function initialize()
-    -- let other addons hook these to anchor tooltip elsewhere
-    GameTooltip = _G["GameTooltip"];
-    GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
     _, class = UnitClass("player");
     anchorX, anchorY = Settings.Character.AnchorX, Settings.Character.AnchorY;
     attributes = Settings.Character.Clickheal;
+    CFrame:SetFrameStrata("LOW");
     CFrame:SetPoint("CENTER", nil, "CENTER", anchorX, anchorY);
     CFrame:SetHeight((height+2)*8);
     CFrame:SetWidth((width+2)*5);
@@ -320,26 +321,35 @@ local function hideBlizzardRaid()
     hideBlizzardRaidButton();
 
     -- hide focus frame
-    for _, frame in pairs({FocusFrame, FocusFrameToT}) do
+    for _, frame in pairs({FocusFrame, FocusFrameToT, FocusFrameSpellBar}) do
         frame:UnregisterAllEvents();
-        frame.healthbar:UnregisterAllEvents();
-        frame.manabar:UnregisterAllEvents();
+        if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
+        if frame.manabar then frame.manabar:UnregisterAllEvents() end
         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
         if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
         frame:Hide();
     end
 end
 
+local function updateTooltipFuncs()
+    -- let MoveAnything hook these to anchor tooltip elsewhere
+    GameTooltip = _G["GameTooltip"];
+    GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"];
+end
+
 CFrame:RegisterEvent("PLAYER_LOGIN");
+CFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
 CFrame:RegisterEvent("PLAYER_REGEN_ENABLED");
 CFrame:SetScript("OnEvent", function(self, event, addon)
-    if event == "PLAYER_LOGIN" then
-        OmaRFLoadChar();
-        hideBlizzardRaid();
-        initialize();
-    elseif event == "PLAYER_REGEN_ENABLED" then
+    if event == "PLAYER_REGEN_ENABLED" then
         -- if CompactRaidFrameManager_UpdateOptionsFlowContainer was called in combat
         -- couldn't hide the button
         hideBlizzardRaidButton();
+    elseif event == "PLAYER_ENTERING_WORLD" then
+        CTimerAfter(0.01, updateTooltipFuncs);
+    elseif event == "PLAYER_LOGIN" then
+        OmaRFLoadChar();
+        hideBlizzardRaid();
+        initialize();
     end
 end);