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 @@