annotate OneRing3.lua @ 5:4755d97184c4 v3.1.0-beta

added lock event to keyring
author Bryan McLemore <kaelten@gmail.com>
date Mon, 20 Apr 2009 02:33:07 -0500
parents b4037e0bbae1
children 567f0db87e18 98c19c1af01f
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@1 16 self.bottomBorder = 5
kaelten@1 17 self.topBorder = -5
kaelten@0 18
kaelten@0 19 self.frame = self:CreateMainFrame("OneRingFrame")
kaelten@0 20 self.frame.handler = self
kaelten@0 21
kaelten@0 22 table.insert(OneBag3.frame.childrenFrames, self.frame)
kaelten@0 23
kaelten@0 24 self.frame:SetPosition(self.db.profile.position)
kaelten@0 25 self.frame:CustomizeFrame(self.db.profile)
kaelten@0 26
kaelten@0 27 self.frame.moneyframe:Hide()
kaelten@0 28 self.frame.sidebarButton:Hide()
kaelten@0 29 self.frame.configButton:Hide()
kaelten@0 30
kaelten@0 31 self.frame.name:ClearAllPoints()
kaelten@0 32 self.frame.name:SetPoint("TOPLEFT", "OneRingFrame", "TOPLEFT", 10, -15)
kaelten@0 33
kaelten@0 34 self.frame:SetScript("OnShow", function()
kaelten@0 35 if not self.frame.slots then
kaelten@0 36 self.frame.slots = {}
kaelten@0 37 end
kaelten@0 38
kaelten@0 39 self:BuildFrame()
kaelten@0 40 self:OrganizeFrame()
kaelten@0 41 self:UpdateFrame()
kaelten@0 42
kaelten@0 43 local UpdateBag = function(event, bag)
kaelten@0 44 self:UpdateBag(bag)
kaelten@0 45 end
kaelten@0 46
kaelten@0 47 self:RegisterEvent("BAG_UPDATE", UpdateBag)
kaelten@0 48 self:RegisterEvent("BAG_UPDATE_COOLDOWN", UpdateBag)
kaelten@5 49 self:RegisterEvent("UPDATE_INVENTORY_ALERTS", "UpdateFrame")
kaelten@5 50 self:RegisterEvent("ITEM_LOCK_CHANGED", "UpdateItemLock")
kaelten@0 51
kaelten@0 52 self.frame.name:SetText(L["%s's KeyRing"]:format(UnitName("player")))
kaelten@0 53
kaelten@0 54 self.frame:ClearAllPoints()
kaelten@0 55 if not OneBag3.frame:IsVisible() then
kaelten@0 56 self.frame:SetPoint("CENTER", UIParent, "CENTER", 0, 0)
kaelten@0 57 else
kaelten@0 58 self.frame:SetPoint("BOTTOMLEFT", OneBag3.frame, "TOPLEFT", 0, 8)
kaelten@0 59 end
kaelten@0 60 end)
kaelten@0 61
kaelten@0 62 self.frame:SetScript("OnHide", function()
kaelten@0 63 self:UnregisterEvent("BAG_UPDATE")
kaelten@0 64 self:UnregisterEvent("BAG_UPDATE_COOLDOWN")
kaelten@5 65 self:UnregisterEvent("UPDATE_INVENTORY_ALERTS")
kaelten@5 66 self:UnregisterEvent("ITEM_LOCK_CHANGED")
kaelten@0 67 end)
kaelten@0 68 end
kaelten@0 69
kaelten@0 70 --- Sets up hooks and registers events
kaelten@0 71 function OneRing3:OnEnable()
kaelten@0 72 self:SecureHook("ToggleKeyRing", function()
kaelten@0 73 if self.frame:IsVisible() then
kaelten@0 74 self.frame:Hide()
kaelten@0 75 else
kaelten@0 76 self.frame:Show()
kaelten@0 77 end
kaelten@0 78
kaelten@0 79 local shownContainerID = IsBagOpen(KEYRING_CONTAINER)
kaelten@0 80 if ( shownContainerID ) then
kaelten@0 81 local frame = getglobal("ContainerFrame"..shownContainerID)
kaelten@0 82 frame:Hide()
kaelten@0 83 end
kaelten@0 84 end)
kaelten@0 85 end
kaelten@0 86