annotate 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
rev   line source
kaelten@0 1
kaelten@0 2 local OneBag3 = LibStub('AceAddon-3.0'):GetAddon('OneBag3')
kaelten@0 3 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')
kaelten@0 4 local AceDB3 = LibStub('AceDB-3.0')
kaelten@0 5 local L = LibStub("AceLocale-3.0"):GetLocale("OneRing3")
kaelten@0 6
kaelten@0 7 OneRing3:InitializePluginSystem()
kaelten@0 8
kaelten@0 9 --- Handles the do once configuration, including db, frames and configuration
kaelten@0 10 function OneRing3:OnInitialize()
kaelten@0 11 self.db = OneBag3.db
kaelten@0 12 self.displayName = "OneRing3"
kaelten@0 13
kaelten@0 14 self.bagIndexes = {-2}
kaelten@0 15 self.forcedCols = 4
kaelten@0 16
kaelten@0 17 self.frame = self:CreateMainFrame("OneRingFrame")
kaelten@0 18 self.frame.handler = self
kaelten@0 19
kaelten@0 20 table.insert(OneBag3.frame.childrenFrames, self.frame)
kaelten@0 21
kaelten@0 22 self.frame:SetPosition(self.db.profile.position)
kaelten@0 23 self.frame:CustomizeFrame(self.db.profile)
kaelten@0 24
kaelten@0 25 self.frame.moneyframe:Hide()
kaelten@0 26 self.frame.sidebarButton:Hide()
kaelten@0 27 self.frame.configButton:Hide()
kaelten@0 28
kaelten@0 29 self.frame.name:ClearAllPoints()
kaelten@0 30 self.frame.name:SetPoint("TOPLEFT", "OneRingFrame", "TOPLEFT", 10, -15)
kaelten@0 31
kaelten@0 32 self.frame:SetScript("OnShow", function()
kaelten@0 33 if not self.frame.slots then
kaelten@0 34 self.frame.slots = {}
kaelten@0 35 end
kaelten@0 36
kaelten@0 37 self:BuildFrame()
kaelten@0 38 self:OrganizeFrame()
kaelten@0 39 self:UpdateFrame()
kaelten@0 40
kaelten@0 41 local UpdateBag = function(event, bag)
kaelten@0 42 self:UpdateBag(bag)
kaelten@0 43 end
kaelten@0 44
kaelten@0 45 self:RegisterEvent("BAG_UPDATE", UpdateBag)
kaelten@0 46 self:RegisterEvent("BAG_UPDATE_COOLDOWN", UpdateBag)
kaelten@0 47 self:RegisterEvent("UPDATE_INVENTORY_ALERTS", "UpdateFrame")
kaelten@0 48
kaelten@0 49 self.frame.name:SetText(L["%s's KeyRing"]:format(UnitName("player")))
kaelten@0 50
kaelten@0 51 self.frame:ClearAllPoints()
kaelten@0 52 if not OneBag3.frame:IsVisible() then
kaelten@0 53 self.frame:SetPoint("CENTER", UIParent, "CENTER", 0, 0)
kaelten@0 54 else
kaelten@0 55 self.frame:SetPoint("BOTTOMLEFT", OneBag3.frame, "TOPLEFT", 0, 8)
kaelten@0 56 end
kaelten@0 57 end)
kaelten@0 58
kaelten@0 59 self.frame:SetScript("OnHide", function()
kaelten@0 60 self:UnregisterEvent("BAG_UPDATE")
kaelten@0 61 self:UnregisterEvent("BAG_UPDATE_COOLDOWN")
kaelten@0 62 self:UnregisterEvent("UPDATE_INVENTORY_ALERTS")
kaelten@0 63 end)
kaelten@0 64 end
kaelten@0 65
kaelten@0 66 --- Sets up hooks and registers events
kaelten@0 67 function OneRing3:OnEnable()
kaelten@0 68 self:SecureHook("ToggleKeyRing", function()
kaelten@0 69 if self.frame:IsVisible() then
kaelten@0 70 self.frame:Hide()
kaelten@0 71 else
kaelten@0 72 self.frame:Show()
kaelten@0 73 end
kaelten@0 74
kaelten@0 75 local shownContainerID = IsBagOpen(KEYRING_CONTAINER)
kaelten@0 76 if ( shownContainerID ) then
kaelten@0 77 local frame = getglobal("ContainerFrame"..shownContainerID)
kaelten@0 78 frame:Hide()
kaelten@0 79 end
kaelten@0 80 end)
kaelten@0 81 end
kaelten@0 82