- added proper support for profiles instead of storing everything in account-wide un-customizable settings

- added FuBar support...why has this not been in and why haven't i noticed it?!
This commit is contained in:
Parnic
2008-11-17 04:50:18 +00:00
parent 5bf37b221d
commit 8210e25858
5 changed files with 98 additions and 33 deletions

View File

@ -9,6 +9,8 @@ externals:
libs/AceAddon-2.0: svn://svn.wowace.com/wow/ace2/mainline/trunk/AceAddon-2.0
libs/AceConsole-2.0: svn://svn.wowace.com/wow/ace2/mainline/trunk/AceConsole-2.0
libs/Deformat-2.0: svn://svn.wowace.com/wow/deformat/mainline/trunk/Deformat-2.0
libs/Dewdrop-2.0: svn://svn.wowace.com/wow/dewdroplib/mainline/trunk/Dewdrop-2.0
libs/FuBarPlugin-2.0: svn://svn.wowace.com/wow/fubarplugin-2-0/mainline/trunk/FuBarPlugin-2.0
libs/LibDogTag-Unit-3.0: svn://svn.wowace.com/wow/libdogtag-unit-3-0/mainline/trunk
libs/LibRangeCheck-2.0: svn://svn.wowace.com/wow/librangecheck-2-0/mainline/trunk/LibRangeCheck-2.0
libs/LibSharedMedia-3.0: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk

View File

@ -6,6 +6,8 @@ IceCore.Side = { Left = "LEFT", Right = "RIGHT" }
IceCore.BuffLimit = 40
IceCore.prototype.defaults = {}
-- Events modules should register/trigger during load
IceCore.Loaded = "IceCore_Loaded"
IceCore.RegisterModule = "IceCore_RegisterModule"
@ -27,8 +29,6 @@ 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
@ -36,9 +36,14 @@ function IceCore.prototype:init()
self:TriggerEvent(IceCore.Loaded)
-- DEFAULT SETTINGS
self:SetupDefaults()
end
function IceCore.prototype:SetupDefaults()
-- DEFAULT SETTINGS
local defaultPreset = "RoundBar"
local defaults = {
self.defaults = {
gap = 150,
verticalPos = -110,
horizontalPos = 0,
@ -67,28 +72,23 @@ function IceCore.prototype:init()
self:LoadPresets()
for k, v in pairs(self.presets[defaultPreset]) do
defaults[k] = v
self.defaults[k] = v
end
-- get default settings from the modules
defaults.modules = {}
self.defaults.modules = {}
for i = 1, table.getn(self.elements) do
local name = self.elements[i]:GetElementName()
defaults.modules[name] = self.elements[i]:GetDefaultSettings()
self.defaults.modules[name] = self.elements[i]:GetDefaultSettings()
end
if (table.getn(self.elements) > 0) then
defaults.colors = self.elements[1].defaultColors
self.defaults.colors = self.elements[1].defaultColors
end
self:RegisterDefaults('account', defaults)
end
function IceCore.prototype:Enable()
self.settings = self.db.account
self:DrawFrame()
for i = 1, table.getn(self.elements) do
@ -103,6 +103,15 @@ function IceCore.prototype:Enable()
end
function IceCore.prototype:ProfileChanged()
for i = 1, table.getn(self.elements) do
self.elements[i]:SetDatabase(self.settings)
end
self:Redraw()
end
function IceCore.prototype:Disable()
self:ConfigModeToggle(false)

View File

@ -1,9 +1,10 @@
IceHUD = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0")
IceHUD = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0", "AceDB-2.0", "FuBarPlugin-2.0")
local waterfall = AceLibrary("Waterfall-1.0")
local SML = AceLibrary("LibSharedMedia-3.0")
IceHUD.CurrTagVersion = 3
IceHUD.debugging = false
IceHUD.WowVer = select(4, GetBuildInfo())
@ -430,7 +431,7 @@ IceHUD.options =
name = 'Other',
order = 90
},
--[[
enabled = {
type = "toggle",
name = "|cff11aa11Enabled|r",
@ -447,7 +448,7 @@ IceHUD.options =
end,
order = 91
},
]]
debug = {
type = "toggle",
name = "Debugging",
@ -557,14 +558,33 @@ function IceHUD:OnInitialize()
self:SetDebugging(false)
self:Debug("IceHUD:OnInitialize()")
self:RegisterDB("IceCoreDB")
self.IceCore = IceCore:new()
if not self.db.account.settingsMoved then
self:RegisterDefaults('account', self.IceCore.defaults)
end
self:RegisterDefaults('profile', self.IceCore.defaults)
end
function IceHUD:OnEnable()
function IceHUD:OnEnable(isFirst)
self:Debug("IceHUD:OnEnable()")
if not self.db.account.settingsMoved then
for k,v in pairs(self.db.account) do
self.db.profile[k] = v
end
self:ResetDB("account")
self.db.account.settingsMoved = true
end
self.IceCore.settings = self.db.profile
self.IceCore:Enable()
if isFirst then
self:SetDebugging(self.IceCore:GetDebug())
self.debugFrame = ChatFrame2
@ -576,12 +596,31 @@ function IceHUD:OnEnable()
-- Parnic - added /icehudcl to make rock config pick this up
self:RegisterChatCommand({"/icehudcl"}, IceHUD.options)
self:RegisterChatCommand({ "/icehud" }, IceHUD.slashMenu)
end
end
function IceHUD:Debug()
-- fubar stuff
IceHUD.OnMenuRequest = IceHUD.options
IceHUD.hasIcon = "Interface\\Icons\\Spell_Frost_Frost"
IceHUD.hideWithoutStandby = true
function IceHUD.OnClick()
if not waterfall then return end
if waterfall:IsOpen("IceHUD") then
waterfall:Close("IceHUD")
else
waterfall:Open("IceHUD")
end
end
function IceHUD:SetDebugging()
function IceHUD:Debug(msg)
if self.debugging then
self.debugFrame:AddMessage(msg)
end
end
function IceHUD:SetDebugging(bIsDebugging)
self.debugging = bIsDebugging
end
-- rounding stuff
@ -613,3 +652,16 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine)
return 0
end
function IceHUD:OnDisable()
IceHUD.IceCore:Disable()
end
function IceHUD:OnProfileDisable()
self.IceCore:Disable()
end
function IceHUD:OnProfileEnable(oldName, oldData)
self.IceCore.settings = self.db.profile
self.IceCore:Enable()
end

View File

@ -5,9 +5,9 @@
## Notes: Another HUD addon
## Version: @project-version@ (Revision: @project-revision@)
## SavedVariables: IceCoreDB
## OptionalDeps: Ace2, LibSharedMedia-3.0, Waterfall-1.0, Deformat, LibDogTag-3.0, LibDogTag-Unit-3.0, LibDruidMana-1.0, LibRangeCheck-2.0
## OptionalDeps: Ace2, LibSharedMedia-3.0, Waterfall-1.0, Deformat, DewdropLib, LibDogTag-3.0, LibDogTag-Unit-3.0, FuBarPlugin-2.0, LibDruidMana-1.0, LibRangeCheck-2.0
## X-Category: HUDs
## X-Website: http://www.wowace.com/projects/wowace-ice-hud/
## X-Website: http://www.wowace.com/projects/ice-hud/
# Libraries
embeds.xml

View File

@ -8,6 +8,8 @@
<Script file="libs\AceEvent-2.0\AceEvent-2.0.lua"/>
<Script file="libs\AceConsole-2.0\AceConsole-2.0.lua"/>
<Script file="libs\AceAddon-2.0\AceAddon-2.0.lua"/>
<Script file="libs\Dewdrop-2.0\Dewdrop-2.0.lua"/>
<Script file="libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua"/>
<Include file="libs\LibDogTag-3.0\lib.xml"/>
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>