diff --git a/IceBarElement.lua b/IceBarElement.lua index 46bd4bd..333afbf 100644 --- a/IceBarElement.lua +++ b/IceBarElement.lua @@ -818,7 +818,7 @@ end -- Creates background for the bar function IceBarElement.prototype:CreateBackground() if not (self.frame) then - self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.parent) + self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.masterFrame) end self.frame:SetFrameStrata("BACKGROUND") diff --git a/IceElement.lua b/IceElement.lua index 94f0a5e..ca83b90 100644 --- a/IceElement.lua +++ b/IceElement.lua @@ -9,6 +9,7 @@ IceElement.TexturePath = IceHUD.Location .. "\\textures\\" IceElement.prototype.elementName = nil IceElement.prototype.parent = nil IceElement.prototype.frame = nil +IceElement.prototype.masterFrame = nil IceElement.prototype.defaultColors = {} -- Shared table for all child classes to save some memory IceElement.prototype.alpha = nil @@ -65,6 +66,9 @@ function IceElement.prototype:Create(parent) assert(parent, "IceElement 'parent' can't be nil") self.parent = parent + if not self.masterFrame then + self.masterFrame = CreateFrame("Frame", nil, self.parent) + end self:CreateFrame() self:Show(false) end @@ -206,8 +210,9 @@ end -- This should be overwritten by inheriting classes function IceElement.prototype:CreateFrame() if not (self.frame) then - self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.parent) + self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.masterFrame) end + self.masterFrame:SetAllPoints(self.frame) self.frame:SetScale(self.moduleSettings.scale) @@ -339,7 +344,7 @@ end function IceElement.prototype:FontFactory(size, frame, font, flags) if not (frame) then - frame = self.frame + frame = self.masterFrame end local fontString = nil @@ -381,8 +386,10 @@ function IceElement.prototype:Show(bShouldShow) self.bIsVisible = bShouldShow if not bShouldShow then + self.masterFrame:Hide() self.frame:Hide() else + self.masterFrame:Show() self.frame:Show() end end diff --git a/modules/RangeCheck.lua b/modules/RangeCheck.lua index a8f2713..9cd8f04 100644 --- a/modules/RangeCheck.lua +++ b/modules/RangeCheck.lua @@ -122,7 +122,7 @@ end function RangeCheck.prototype:CreateFrame(redraw) if not (self.frame) then - self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.parent) + self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.masterFrame) end self.frame:SetScale(self.moduleSettings.scale) diff --git a/modules/TargetInfo.lua b/modules/TargetInfo.lua index bedf9ee..6f4df31 100644 --- a/modules/TargetInfo.lua +++ b/modules/TargetInfo.lua @@ -776,7 +776,7 @@ end -- OVERRIDE function IceTargetInfo.prototype:CreateFrame(redraw) if not (self.frame) then - self.frame = CreateFrame("Button", "IceHUD_"..self.elementName, self.parent, "SecureUnitButtonTemplate") + self.frame = CreateFrame("Button", "IceHUD_"..self.elementName, self.masterFrame, "SecureUnitButtonTemplate") end -- Parnic - yes, 200 is fairly arbitrary. make a best effort for long names to fit diff --git a/modules/TargetOfTarget.lua b/modules/TargetOfTarget.lua index ee34c89..c194393 100644 --- a/modules/TargetOfTarget.lua +++ b/modules/TargetOfTarget.lua @@ -289,7 +289,7 @@ end -- OVERRIDE function TargetOfTarget.prototype:CreateFrame() if not self.frame then - self.frame = CreateFrame("Button", "IceHUD_"..self.elementName, self.parent, "SecureUnitButtonTemplate") + self.frame = CreateFrame("Button", "IceHUD_"..self.elementName, self.masterFrame, "SecureUnitButtonTemplate") self.frame:SetAttribute("unit", self.unit) end