From 3dc2f7f80fee7af2482206b227f329f7e5104f59 Mon Sep 17 00:00:00 2001 From: Parnic Date: Thu, 17 Apr 2008 02:38:54 +0000 Subject: [PATCH] - added a configuration mode to show all bars temporarily so they can be placed - changed how frames are shown and hidden so we don't call show/hide unnecessarily - widened the min/max offset numbers to allow greater placement flexibility --- IceBarElement.lua | 4 +-- IceCastBar.lua | 6 ++--- IceCore.lua | 31 ++++++++++++++++++++--- IceElement.lua | 27 +++++++++++++++++--- IceHUD.lua | 54 ++++++++++++++++++++++++---------------- modules/ComboPoints.lua | 2 +- modules/DruidMana.lua | 4 +-- modules/MirrorBar.lua | 8 +++--- modules/PetHealth.lua | 4 +-- modules/PetMana.lua | 8 +++--- modules/SunderCount.lua | 2 +- modules/TargetHealth.lua | 4 +-- modules/TargetMana.lua | 4 +-- 13 files changed, 107 insertions(+), 51 deletions(-) diff --git a/IceBarElement.lua b/IceBarElement.lua index 5b1dda2..7174211 100644 --- a/IceBarElement.lua +++ b/IceBarElement.lua @@ -126,8 +126,8 @@ function IceBarElement.prototype:GetOptions() type = 'range', name = '|c' .. self.configColor .. 'Offset|r', desc = 'Offset of the bar', - min = -1, - max = 10, + min = -10, + max = 15, step = 1, get = function() return self.moduleSettings.offset diff --git a/IceCastBar.lua b/IceCastBar.lua index 251c3ab..b3f8348 100644 --- a/IceCastBar.lua +++ b/IceCastBar.lua @@ -54,7 +54,7 @@ function IceCastBar.prototype:Enable(core) self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_UPDATE", "SpellCastChannelUpdate") -- unit self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_STOP", "SpellCastChannelStop") -- unit - self.frame:Hide() + self:Show(false) end @@ -179,7 +179,7 @@ function IceCastBar.prototype:StartBar(action, message) self.actionMessage = spell .. self:GetShortRank(rank) end - self.frame:Show() + self:Show(true) self.frame:SetScript("OnUpdate", function() self:OnUpdate() end) end @@ -189,7 +189,7 @@ function IceCastBar.prototype:StopBar() self.actionStartTime = nil self.actionDuration = nil - self.frame:Hide() + self:Show(false) self.frame:SetScript("OnUpdate", nil) end diff --git a/IceCore.lua b/IceCore.lua index 783154d..bfc51bf 100644 --- a/IceCore.lua +++ b/IceCore.lua @@ -18,20 +18,21 @@ IceCore.prototype.elements = {} IceCore.prototype.enabled = nil IceCore.prototype.presets = {} IceCore.prototype.settingsHash = nil +IceCore.prototype.bConfigMode = false -- Constructor -- function IceCore.prototype:init() IceCore.super.prototype.init(self) IceHUD:Debug("IceCore.prototype:init()") - + self:RegisterDB("IceCoreDB") - + self.IceHUDFrame = CreateFrame("Frame","IceHUDFrame", UIParent) - + -- We are ready to load modules self:RegisterEvent(IceCore.RegisterModule, "Register") self:TriggerEvent(IceCore.Loaded) - + -- DEFAULT SETTINGS local defaultPreset = "RoundBar" @@ -96,6 +97,8 @@ end function IceCore.prototype:Disable() + self:ConfigModeToggle(false) + for i = 1, table.getn(self.elements) do if (self.elements[i]:IsEnabled()) then self.elements[i]:Disable(true) @@ -387,6 +390,26 @@ function IceCore.prototype:SetColor(color, r, g, b) end +function IceCore.prototype:IsInConfigMode() + return self.bConfigMode +end + +function IceCore.prototype:ConfigModeToggle(bWantConfig) + self.bConfigMode = bWantConfig + + if bWantConfig then + for i = 1, table.getn(self.elements) do + self.elements[i].frame:Show() + end + else + for i = 1, table.getn(self.elements) do + if not self.elements[i]:IsVisible() then + self.elements[i].frame:Hide() + end + end + end +end + ------------------------------------------------------------------------------- -- Presets -- diff --git a/IceElement.lua b/IceElement.lua index 204ff15..15ae542 100644 --- a/IceElement.lua +++ b/IceElement.lua @@ -20,6 +20,8 @@ IceElement.moduleSettings = nil IceElement.prototype.configColor = "ff8888ff" IceElement.prototype.scalingEnabled = nil +IceElement.prototype.bIsVisible = true + -- Constructor -- -- IceElements are to be instantiated before IceCore is loaded. -- Therefore we can wait for IceCore to load and then register our @@ -57,7 +59,7 @@ function IceElement.prototype:Create(parent) self.parent = parent self:CreateFrame() - self.frame:Hide() + self:Show(false) end @@ -76,7 +78,7 @@ function IceElement.prototype:Enable(core) if (not core) then self.moduleSettings.enabled = true end - self.frame:Show() + self:Show(true) end @@ -84,7 +86,7 @@ function IceElement.prototype:Disable(core) if (not core) then self.moduleSettings.enabled = false end - self.frame:Hide() + self:Show(false) self:UnregisterAllEvents() end @@ -262,6 +264,25 @@ function IceElement.prototype:FontFactory(size, frame, font, flags) end +function IceElement.prototype:IsVisible() + return self.bIsVisible +end + +function IceElement.prototype:Show(bShouldShow) + if self.bIsVisible == bShouldShow then + return + end + + self.bIsVisible = bShouldShow + + if not bShouldShow then + self.frame:Hide() + else + self.frame:Show() + end +end + + -- Event Handlers ------------------------------------------------------------- diff --git a/IceHUD.lua b/IceHUD.lua index 3c1ecdb..91ff1d3 100644 --- a/IceHUD.lua +++ b/IceHUD.lua @@ -19,7 +19,7 @@ IceHUD.options = name = "General Settings", order = 10 }, - + positioningSettings = { type = 'group', name = 'Positioning Settings', @@ -41,7 +41,7 @@ IceHUD.options = step = 10, order = 11 }, - + hpos = { type = 'range', name = 'Horizontal position', @@ -57,7 +57,7 @@ IceHUD.options = step = 10, order = 12 }, - + gap = { type = 'range', name = 'Gap', @@ -73,7 +73,7 @@ IceHUD.options = step = 5, order = 13, }, - + scale = { type = 'range', name = 'Scale', @@ -92,8 +92,8 @@ IceHUD.options = }, } }, - - + + alphaSettings = { type = 'group', name = 'Transparency Settings', @@ -105,7 +105,7 @@ IceHUD.options = name = "Bar Alpha", order = 10 }, - + alphaic = { type = 'range', name = 'Alpha IC', @@ -122,7 +122,7 @@ IceHUD.options = isPercent = true, order = 11, }, - + alphaooc = { type = 'range', name = 'Alpha OOC', @@ -139,7 +139,7 @@ IceHUD.options = isPercent = true, order = 12, }, - + alphaTarget = { type = 'range', name = 'Alpha OOC and Target or not Full', @@ -156,16 +156,16 @@ IceHUD.options = isPercent = true, order = 13, }, - - - + + + headerAlphaBackgroundBlank = { type = 'header', name = " ", order = 20 }, headerAlphaBackground = { type = 'header', name = "Background Alpha", order = 20 }, - + alphaicbg = { type = 'range', name = 'BG Alpha IC', @@ -182,7 +182,7 @@ IceHUD.options = isPercent = true, order = 21, }, - + alphaoocbg = { type = 'range', name = 'BG Alpha OOC', @@ -199,7 +199,7 @@ IceHUD.options = isPercent = true, order = 22, }, - + alphaTargetbg = { type = 'range', name = 'BG Alpha OOC and Target or not Full', @@ -216,15 +216,15 @@ IceHUD.options = isPercent = true, order = 23, }, - - + + headerBarAdvancedBlank = { type = 'header', name = " ", order = 30 }, headerBarAdvanced = { type = 'header', name = "Other", order = 30 }, - + backgroundToggle = { type = "toggle", name = "Contextual Background", @@ -237,7 +237,7 @@ IceHUD.options = end, order = 31 }, - + backgroundColor = { type = 'color', name = 'Background Color', @@ -252,8 +252,8 @@ IceHUD.options = }, } }, - - + + textSettings = { type = 'text', name = 'Font', @@ -451,6 +451,18 @@ IceHUD.options = order = 94 }, + configMode = { + type = 'toggle', + name = '|cffff0000Configuration Mode|r', + desc = 'Puts IceHUD into configuration mode so bars can be placed more easily', + get = function() + return IceHUD.IceCore:IsInConfigMode() + end, + set = function(value) + IceHUD.IceCore:ConfigModeToggle(value) + end, + order = 95 + }, } } diff --git a/modules/ComboPoints.lua b/modules/ComboPoints.lua index a9e3668..fa3d391 100644 --- a/modules/ComboPoints.lua +++ b/modules/ComboPoints.lua @@ -142,7 +142,7 @@ function ComboPoints.prototype:CreateFrame() self.frame:ClearAllPoints() self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos) - self.frame:Show() + self:Show(true) self:CreateComboFrame() end diff --git a/modules/DruidMana.lua b/modules/DruidMana.lua index c20baff..365b3e0 100644 --- a/modules/DruidMana.lua +++ b/modules/DruidMana.lua @@ -150,10 +150,10 @@ function DruidMana.prototype:Update() local forms = (UnitPowerType(self.unit) ~= 0) if (not self.alive or not forms or not self.druidMana or not self.druidManaMax) then - self.frame:Hide() + self:Show(false) return else - self.frame:Show() + self:Show(true) end self:UpdateBar(self.druidMana / self.druidManaMax, "DruidMana") diff --git a/modules/MirrorBar.lua b/modules/MirrorBar.lua index 8c9ac56..af8f9f0 100644 --- a/modules/MirrorBar.lua +++ b/modules/MirrorBar.lua @@ -46,7 +46,7 @@ function MirrorBar.prototype:Enable(core) self.frame.bottomUpperText:SetWidth(200) self.frame.bottomLowerText:SetWidth(200) - self.frame:Hide() + self:Show(false) end @@ -55,7 +55,7 @@ function MirrorBar.prototype:Create(parent) MirrorBar.super.prototype.Create(self, parent) if (self.timer) then - self.frame:Show() + self:Show(true) end end @@ -114,14 +114,14 @@ function MirrorBar.prototype:MirrorStart(timer, value, maxValue, scale, paused, self.startTime = GetTime() self:Update() - self.frame:Show() + self:Show(true) self.frame:SetScript("OnUpdate", function() self:OnUpdate(arg1) end) end function MirrorBar.prototype:MirrorStop() self:CleanUp() - self.frame:Hide() + self:Show(false) self.frame:SetScript("OnUpdate", nil) end diff --git a/modules/PetHealth.lua b/modules/PetHealth.lua index 4931965..73e1737 100644 --- a/modules/PetHealth.lua +++ b/modules/PetHealth.lua @@ -78,11 +78,11 @@ end function PetHealth.prototype:CheckPet() if (UnitExists(self.unit)) then - self.frame:Show() + self:Show(true) self:PetHappiness(self.unit) self:Update(self.unit) else - self.frame:Hide() + self:Show(false) end end diff --git a/modules/PetMana.lua b/modules/PetMana.lua index be7bba8..8ec2c6d 100644 --- a/modules/PetMana.lua +++ b/modules/PetMana.lua @@ -73,10 +73,10 @@ end function PetMana.prototype:CheckPet() if (UnitExists(self.unit)) then - self.frame:Show() + self:Show(true) self:Update(self.unit) else - self.frame:Hide() + self:Show(false) end end @@ -98,10 +98,10 @@ function PetMana.prototype:Update(unit) end if ((not UnitExists(unit)) or (self.maxMana == 0)) then - self.frame:Hide() + self:Show(false) return else - self.frame:Show() + self:Show(true) end local color = "PetMana" diff --git a/modules/SunderCount.lua b/modules/SunderCount.lua index 2455d4e..9972224 100644 --- a/modules/SunderCount.lua +++ b/modules/SunderCount.lua @@ -143,7 +143,7 @@ function SunderCount.prototype:CreateFrame() self.frame:ClearAllPoints() self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos) - self.frame:Show() + self:Show(true) self:CreateSunderFrame() end diff --git a/modules/TargetHealth.lua b/modules/TargetHealth.lua index c2f7944..e6caf39 100644 --- a/modules/TargetHealth.lua +++ b/modules/TargetHealth.lua @@ -260,10 +260,10 @@ function TargetHealth.prototype:Update(unit) end if not (UnitExists(unit)) then - self.frame:Hide() + self:Show(false) return else - self.frame:Show() + self:Show(true) end self:UpdateRaidTargetIcon() diff --git a/modules/TargetMana.lua b/modules/TargetMana.lua index 75b923e..94221b2 100644 --- a/modules/TargetMana.lua +++ b/modules/TargetMana.lua @@ -52,10 +52,10 @@ function TargetMana.prototype:Update(unit) end if ((not UnitExists(unit)) or (self.maxMana == 0)) then - self.frame:Hide() + self:Show(false) return else - self.frame:Show() + self:Show(true) end