diff --git a/.pkgmeta b/.pkgmeta
index 3552256..0f42c61 100644
--- a/.pkgmeta
+++ b/.pkgmeta
@@ -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
diff --git a/IceCore.lua b/IceCore.lua
index 75997be..ad2282a 100644
--- a/IceCore.lua
+++ b/IceCore.lua
@@ -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)
diff --git a/IceHUD.lua b/IceHUD.lua
index b2d6715..2fe01ce 100644
--- a/IceHUD.lua
+++ b/IceHUD.lua
@@ -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())
@@ -423,14 +424,14 @@ IceHUD.options =
args = {},
order = 42
},
-
+
headerOtherBlank = { type = 'header', name = ' ', order = 90 },
headerOther = {
type = 'header',
name = 'Other',
order = 90
},
-
+--[[
enabled = {
type = "toggle",
name = "|cff11aa11Enabled|r",
@@ -447,7 +448,7 @@ IceHUD.options =
end,
order = 91
},
-
+]]
debug = {
type = "toggle",
name = "Debugging",
@@ -556,32 +557,70 @@ StaticPopupDialogs["ICEHUD_RESET"] =
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()
- self:SetDebugging(self.IceCore:GetDebug())
- self.debugFrame = ChatFrame2
-
- self.options.args.modules.args = self.IceCore:GetModuleOptions()
- self.options.args.colors.args = self.IceCore:GetColorOptions()
-
- waterfall:Register("IceHUD", 'aceOptions', IceHUD.options)
- -- Parnic - added /icehudcl to make rock config pick this up
- self:RegisterChatCommand({"/icehudcl"}, IceHUD.options)
- self:RegisterChatCommand({ "/icehud" }, IceHUD.slashMenu)
+ if isFirst then
+ self:SetDebugging(self.IceCore:GetDebug())
+ self.debugFrame = ChatFrame2
+
+ self.options.args.modules.args = self.IceCore:GetModuleOptions()
+ self.options.args.colors.args = self.IceCore:GetColorOptions()
+
+ waterfall:Register("IceHUD", 'aceOptions', IceHUD.options)
+
+ -- 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
diff --git a/IceHUD.toc b/IceHUD.toc
index 9b7016b..d2a35a8 100644
--- a/IceHUD.toc
+++ b/IceHUD.toc
@@ -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
diff --git a/embeds.xml b/embeds.xml
index bb5ade2..daf5faf 100644
--- a/embeds.xml
+++ b/embeds.xml
@@ -8,6 +8,8 @@
+
+