- 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
This commit is contained in:
Parnic
2008-04-17 02:38:54 +00:00
parent 9555a3db77
commit 3dc2f7f80f
13 changed files with 107 additions and 51 deletions

View File

@ -126,8 +126,8 @@ function IceBarElement.prototype:GetOptions()
type = 'range', type = 'range',
name = '|c' .. self.configColor .. 'Offset|r', name = '|c' .. self.configColor .. 'Offset|r',
desc = 'Offset of the bar', desc = 'Offset of the bar',
min = -1, min = -10,
max = 10, max = 15,
step = 1, step = 1,
get = function() get = function()
return self.moduleSettings.offset return self.moduleSettings.offset

View File

@ -54,7 +54,7 @@ function IceCastBar.prototype:Enable(core)
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_UPDATE", "SpellCastChannelUpdate") -- unit self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_UPDATE", "SpellCastChannelUpdate") -- unit
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_STOP", "SpellCastChannelStop") -- unit self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_STOP", "SpellCastChannelStop") -- unit
self.frame:Hide() self:Show(false)
end end
@ -179,7 +179,7 @@ function IceCastBar.prototype:StartBar(action, message)
self.actionMessage = spell .. self:GetShortRank(rank) self.actionMessage = spell .. self:GetShortRank(rank)
end end
self.frame:Show() self:Show(true)
self.frame:SetScript("OnUpdate", function() self:OnUpdate() end) self.frame:SetScript("OnUpdate", function() self:OnUpdate() end)
end end
@ -189,7 +189,7 @@ function IceCastBar.prototype:StopBar()
self.actionStartTime = nil self.actionStartTime = nil
self.actionDuration = nil self.actionDuration = nil
self.frame:Hide() self:Show(false)
self.frame:SetScript("OnUpdate", nil) self.frame:SetScript("OnUpdate", nil)
end end

View File

@ -18,20 +18,21 @@ IceCore.prototype.elements = {}
IceCore.prototype.enabled = nil IceCore.prototype.enabled = nil
IceCore.prototype.presets = {} IceCore.prototype.presets = {}
IceCore.prototype.settingsHash = nil IceCore.prototype.settingsHash = nil
IceCore.prototype.bConfigMode = false
-- Constructor -- -- Constructor --
function IceCore.prototype:init() function IceCore.prototype:init()
IceCore.super.prototype.init(self) IceCore.super.prototype.init(self)
IceHUD:Debug("IceCore.prototype:init()") IceHUD:Debug("IceCore.prototype:init()")
self:RegisterDB("IceCoreDB") self:RegisterDB("IceCoreDB")
self.IceHUDFrame = CreateFrame("Frame","IceHUDFrame", UIParent) self.IceHUDFrame = CreateFrame("Frame","IceHUDFrame", UIParent)
-- We are ready to load modules -- We are ready to load modules
self:RegisterEvent(IceCore.RegisterModule, "Register") self:RegisterEvent(IceCore.RegisterModule, "Register")
self:TriggerEvent(IceCore.Loaded) self:TriggerEvent(IceCore.Loaded)
-- DEFAULT SETTINGS -- DEFAULT SETTINGS
local defaultPreset = "RoundBar" local defaultPreset = "RoundBar"
@ -96,6 +97,8 @@ end
function IceCore.prototype:Disable() function IceCore.prototype:Disable()
self:ConfigModeToggle(false)
for i = 1, table.getn(self.elements) do for i = 1, table.getn(self.elements) do
if (self.elements[i]:IsEnabled()) then if (self.elements[i]:IsEnabled()) then
self.elements[i]:Disable(true) self.elements[i]:Disable(true)
@ -387,6 +390,26 @@ function IceCore.prototype:SetColor(color, r, g, b)
end 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 -- -- Presets --

View File

@ -20,6 +20,8 @@ IceElement.moduleSettings = nil
IceElement.prototype.configColor = "ff8888ff" IceElement.prototype.configColor = "ff8888ff"
IceElement.prototype.scalingEnabled = nil IceElement.prototype.scalingEnabled = nil
IceElement.prototype.bIsVisible = true
-- Constructor -- -- Constructor --
-- IceElements are to be instantiated before IceCore is loaded. -- IceElements are to be instantiated before IceCore is loaded.
-- Therefore we can wait for IceCore to load and then register our -- 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.parent = parent
self:CreateFrame() self:CreateFrame()
self.frame:Hide() self:Show(false)
end end
@ -76,7 +78,7 @@ function IceElement.prototype:Enable(core)
if (not core) then if (not core) then
self.moduleSettings.enabled = true self.moduleSettings.enabled = true
end end
self.frame:Show() self:Show(true)
end end
@ -84,7 +86,7 @@ function IceElement.prototype:Disable(core)
if (not core) then if (not core) then
self.moduleSettings.enabled = false self.moduleSettings.enabled = false
end end
self.frame:Hide() self:Show(false)
self:UnregisterAllEvents() self:UnregisterAllEvents()
end end
@ -262,6 +264,25 @@ function IceElement.prototype:FontFactory(size, frame, font, flags)
end 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 ------------------------------------------------------------- -- Event Handlers -------------------------------------------------------------

View File

@ -19,7 +19,7 @@ IceHUD.options =
name = "General Settings", name = "General Settings",
order = 10 order = 10
}, },
positioningSettings = { positioningSettings = {
type = 'group', type = 'group',
name = 'Positioning Settings', name = 'Positioning Settings',
@ -41,7 +41,7 @@ IceHUD.options =
step = 10, step = 10,
order = 11 order = 11
}, },
hpos = { hpos = {
type = 'range', type = 'range',
name = 'Horizontal position', name = 'Horizontal position',
@ -57,7 +57,7 @@ IceHUD.options =
step = 10, step = 10,
order = 12 order = 12
}, },
gap = { gap = {
type = 'range', type = 'range',
name = 'Gap', name = 'Gap',
@ -73,7 +73,7 @@ IceHUD.options =
step = 5, step = 5,
order = 13, order = 13,
}, },
scale = { scale = {
type = 'range', type = 'range',
name = 'Scale', name = 'Scale',
@ -92,8 +92,8 @@ IceHUD.options =
}, },
} }
}, },
alphaSettings = { alphaSettings = {
type = 'group', type = 'group',
name = 'Transparency Settings', name = 'Transparency Settings',
@ -105,7 +105,7 @@ IceHUD.options =
name = "Bar Alpha", name = "Bar Alpha",
order = 10 order = 10
}, },
alphaic = { alphaic = {
type = 'range', type = 'range',
name = 'Alpha IC', name = 'Alpha IC',
@ -122,7 +122,7 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 11, order = 11,
}, },
alphaooc = { alphaooc = {
type = 'range', type = 'range',
name = 'Alpha OOC', name = 'Alpha OOC',
@ -139,7 +139,7 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 12, order = 12,
}, },
alphaTarget = { alphaTarget = {
type = 'range', type = 'range',
name = 'Alpha OOC and Target or not Full', name = 'Alpha OOC and Target or not Full',
@ -156,16 +156,16 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 13, order = 13,
}, },
headerAlphaBackgroundBlank = { type = 'header', name = " ", order = 20 }, headerAlphaBackgroundBlank = { type = 'header', name = " ", order = 20 },
headerAlphaBackground = { headerAlphaBackground = {
type = 'header', type = 'header',
name = "Background Alpha", name = "Background Alpha",
order = 20 order = 20
}, },
alphaicbg = { alphaicbg = {
type = 'range', type = 'range',
name = 'BG Alpha IC', name = 'BG Alpha IC',
@ -182,7 +182,7 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 21, order = 21,
}, },
alphaoocbg = { alphaoocbg = {
type = 'range', type = 'range',
name = 'BG Alpha OOC', name = 'BG Alpha OOC',
@ -199,7 +199,7 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 22, order = 22,
}, },
alphaTargetbg = { alphaTargetbg = {
type = 'range', type = 'range',
name = 'BG Alpha OOC and Target or not Full', name = 'BG Alpha OOC and Target or not Full',
@ -216,15 +216,15 @@ IceHUD.options =
isPercent = true, isPercent = true,
order = 23, order = 23,
}, },
headerBarAdvancedBlank = { type = 'header', name = " ", order = 30 }, headerBarAdvancedBlank = { type = 'header', name = " ", order = 30 },
headerBarAdvanced = { headerBarAdvanced = {
type = 'header', type = 'header',
name = "Other", name = "Other",
order = 30 order = 30
}, },
backgroundToggle = { backgroundToggle = {
type = "toggle", type = "toggle",
name = "Contextual Background", name = "Contextual Background",
@ -237,7 +237,7 @@ IceHUD.options =
end, end,
order = 31 order = 31
}, },
backgroundColor = { backgroundColor = {
type = 'color', type = 'color',
name = 'Background Color', name = 'Background Color',
@ -252,8 +252,8 @@ IceHUD.options =
}, },
} }
}, },
textSettings = { textSettings = {
type = 'text', type = 'text',
name = 'Font', name = 'Font',
@ -451,6 +451,18 @@ IceHUD.options =
order = 94 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
},
} }
} }

View File

@ -142,7 +142,7 @@ function ComboPoints.prototype:CreateFrame()
self.frame:ClearAllPoints() self.frame:ClearAllPoints()
self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos) self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos)
self.frame:Show() self:Show(true)
self:CreateComboFrame() self:CreateComboFrame()
end end

View File

@ -150,10 +150,10 @@ function DruidMana.prototype:Update()
local forms = (UnitPowerType(self.unit) ~= 0) local forms = (UnitPowerType(self.unit) ~= 0)
if (not self.alive or not forms or not self.druidMana or not self.druidManaMax) then if (not self.alive or not forms or not self.druidMana or not self.druidManaMax) then
self.frame:Hide() self:Show(false)
return return
else else
self.frame:Show() self:Show(true)
end end
self:UpdateBar(self.druidMana / self.druidManaMax, "DruidMana") self:UpdateBar(self.druidMana / self.druidManaMax, "DruidMana")

View File

@ -46,7 +46,7 @@ function MirrorBar.prototype:Enable(core)
self.frame.bottomUpperText:SetWidth(200) self.frame.bottomUpperText:SetWidth(200)
self.frame.bottomLowerText:SetWidth(200) self.frame.bottomLowerText:SetWidth(200)
self.frame:Hide() self:Show(false)
end end
@ -55,7 +55,7 @@ function MirrorBar.prototype:Create(parent)
MirrorBar.super.prototype.Create(self, parent) MirrorBar.super.prototype.Create(self, parent)
if (self.timer) then if (self.timer) then
self.frame:Show() self:Show(true)
end end
end end
@ -114,14 +114,14 @@ function MirrorBar.prototype:MirrorStart(timer, value, maxValue, scale, paused,
self.startTime = GetTime() self.startTime = GetTime()
self:Update() self:Update()
self.frame:Show() self:Show(true)
self.frame:SetScript("OnUpdate", function() self:OnUpdate(arg1) end) self.frame:SetScript("OnUpdate", function() self:OnUpdate(arg1) end)
end end
function MirrorBar.prototype:MirrorStop() function MirrorBar.prototype:MirrorStop()
self:CleanUp() self:CleanUp()
self.frame:Hide() self:Show(false)
self.frame:SetScript("OnUpdate", nil) self.frame:SetScript("OnUpdate", nil)
end end

View File

@ -78,11 +78,11 @@ end
function PetHealth.prototype:CheckPet() function PetHealth.prototype:CheckPet()
if (UnitExists(self.unit)) then if (UnitExists(self.unit)) then
self.frame:Show() self:Show(true)
self:PetHappiness(self.unit) self:PetHappiness(self.unit)
self:Update(self.unit) self:Update(self.unit)
else else
self.frame:Hide() self:Show(false)
end end
end end

View File

@ -73,10 +73,10 @@ end
function PetMana.prototype:CheckPet() function PetMana.prototype:CheckPet()
if (UnitExists(self.unit)) then if (UnitExists(self.unit)) then
self.frame:Show() self:Show(true)
self:Update(self.unit) self:Update(self.unit)
else else
self.frame:Hide() self:Show(false)
end end
end end
@ -98,10 +98,10 @@ function PetMana.prototype:Update(unit)
end end
if ((not UnitExists(unit)) or (self.maxMana == 0)) then if ((not UnitExists(unit)) or (self.maxMana == 0)) then
self.frame:Hide() self:Show(false)
return return
else else
self.frame:Show() self:Show(true)
end end
local color = "PetMana" local color = "PetMana"

View File

@ -143,7 +143,7 @@ function SunderCount.prototype:CreateFrame()
self.frame:ClearAllPoints() self.frame:ClearAllPoints()
self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos) self.frame:SetPoint("TOP", self.parent, "BOTTOM", 0, self.moduleSettings.vpos)
self.frame:Show() self:Show(true)
self:CreateSunderFrame() self:CreateSunderFrame()
end end

View File

@ -260,10 +260,10 @@ function TargetHealth.prototype:Update(unit)
end end
if not (UnitExists(unit)) then if not (UnitExists(unit)) then
self.frame:Hide() self:Show(false)
return return
else else
self.frame:Show() self:Show(true)
end end
self:UpdateRaidTargetIcon() self:UpdateRaidTargetIcon()

View File

@ -52,10 +52,10 @@ function TargetMana.prototype:Update(unit)
end end
if ((not UnitExists(unit)) or (self.maxMana == 0)) then if ((not UnitExists(unit)) or (self.maxMana == 0)) then
self.frame:Hide() self:Show(false)
return return
else else
self.frame:Show() self:Show(true)
end end