Mercurial > wow > onering3
diff OneRing3.lua @ 0:54e8dbc97ee3
initial commit of onering3
author | Bryan McLemore <kaelten@gmail.com> |
---|---|
date | Fri, 17 Apr 2009 04:19:16 -0500 |
parents | |
children | b4037e0bbae1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OneRing3.lua Fri Apr 17 04:19:16 2009 -0500 @@ -0,0 +1,82 @@ + +local OneBag3 = LibStub('AceAddon-3.0'):GetAddon('OneBag3') +local OneRing3 = LibStub('AceAddon-3.0'):NewAddon('OneRing3', 'OneCore-1.0', 'OneFrame-1.0', 'OneConfig-1.0', 'OnePlugin-1.0', 'AceHook-3.0', 'AceEvent-3.0', 'AceConsole-3.0') +local AceDB3 = LibStub('AceDB-3.0') +local L = LibStub("AceLocale-3.0"):GetLocale("OneRing3") + +OneRing3:InitializePluginSystem() + +--- Handles the do once configuration, including db, frames and configuration +function OneRing3:OnInitialize() + self.db = OneBag3.db + self.displayName = "OneRing3" + + self.bagIndexes = {-2} + self.forcedCols = 4 + + self.frame = self:CreateMainFrame("OneRingFrame") + self.frame.handler = self + + table.insert(OneBag3.frame.childrenFrames, self.frame) + + self.frame:SetPosition(self.db.profile.position) + self.frame:CustomizeFrame(self.db.profile) + + self.frame.moneyframe:Hide() + self.frame.sidebarButton:Hide() + self.frame.configButton:Hide() + + self.frame.name:ClearAllPoints() + self.frame.name:SetPoint("TOPLEFT", "OneRingFrame", "TOPLEFT", 10, -15) + + self.frame:SetScript("OnShow", function() + if not self.frame.slots then + self.frame.slots = {} + end + + self:BuildFrame() + self:OrganizeFrame() + self:UpdateFrame() + + local UpdateBag = function(event, bag) + self:UpdateBag(bag) + end + + self:RegisterEvent("BAG_UPDATE", UpdateBag) + self:RegisterEvent("BAG_UPDATE_COOLDOWN", UpdateBag) + self:RegisterEvent("UPDATE_INVENTORY_ALERTS", "UpdateFrame") + + self.frame.name:SetText(L["%s's KeyRing"]:format(UnitName("player"))) + + self.frame:ClearAllPoints() + if not OneBag3.frame:IsVisible() then + self.frame:SetPoint("CENTER", UIParent, "CENTER", 0, 0) + else + self.frame:SetPoint("BOTTOMLEFT", OneBag3.frame, "TOPLEFT", 0, 8) + end + end) + + self.frame:SetScript("OnHide", function() + self:UnregisterEvent("BAG_UPDATE") + self:UnregisterEvent("BAG_UPDATE_COOLDOWN") + self:UnregisterEvent("UPDATE_INVENTORY_ALERTS") + end) +end + +--- Sets up hooks and registers events +function OneRing3:OnEnable() + self:SecureHook("ToggleKeyRing", function() + if self.frame:IsVisible() then + self.frame:Hide() + else + self.frame:Show() + end + + local shownContainerID = IsBagOpen(KEYRING_CONTAINER) + if ( shownContainerID ) then + local frame = getglobal("ContainerFrame"..shownContainerID) + frame:Hide() + end + end) +end + \ No newline at end of file