vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --$Id: OneBag.lua 8277 2006-08-17 14:11:43Z kaelten $
2 OneBag = OneCore:NewModule("OneBag", "AceEvent-2.0", "AceHook-2.0", "AceDebug-2.0", "AceConsole-2.0", "AceDB-2.0")
3  
4 local L = AceLibrary("AceLocale-2.0"):new("OneBag")
5  
6 function OneBag:OnInitialize()
7 local baseArgs = OneCore:GetFreshOptionsTable(self)
8  
9 local customArgs = {
10 ["0"] = {
11 name = L"Backpack", type = 'toggle', order = 5,
12 desc = L"Turns display of your backpack on and off.",
13 get = function() return self.db.profile.show[0] end,
14 set = function(v)
15 self.db.profile.show[0] = v
16 self:OrganizeFrame(true)
17 end,
18 },
19 ["1"] = {
20 name = L"First Bag", type = 'toggle', order = 6,
21 desc = L"Turns display of your first bag on and off.",
22 get = function() return self.db.profile.show[1] end,
23 set = function(v)
24 self.db.profile.show[1] = v
25 self:OrganizeFrame(true)
26 end,
27 },
28 ["2"] = {
29 name = L"Second Bag", type = 'toggle', order = 7,
30 desc = L"Turns display of your second bag on and off.",
31 get = function() return self.db.profile.show[2] end,
32 set = function(v)
33 self.db.profile.show[2] = v
34 self:OrganizeFrame(true)
35 end,
36 },
37 ["3"] = {
38 name = L"Third Bag", type = 'toggle', order = 8,
39 desc = L"Turns display of your third bag on and off.",
40 get = function() return self.db.profile.show[3] end,
41 set = function(v)
42 self.db.profile.show[3] = v
43 self:OrganizeFrame(true)
44 end,
45 },
46 ["4"] = {
47 name = L"Fourth Bag", type = 'toggle', order = 9,
48 desc = L"Turns display of your fourth bag on and off.",
49 get = function() return self.db.profile.show[4] end,
50 set = function(v)
51 self.db.profile.show[4] = v
52 self:OrganizeFrame(true)
53 end,
54 },
55 }
56  
57 OneCore:CopyTable(customArgs, baseArgs.args.show.args)
58  
59 OneCore:LoadOptionalCommands(baseArgs, self)
60  
61 self:RegisterDB("OneBagDB")
62 self:RegisterDefaults('profile', OneCore.defaults)
63 self:RegisterChatCommand({"/ob", "/OneBag"}, baseArgs, string.upper(self.title))
64  
65 --self:SetDebugging(true)
66 self.fBags = {0, 1, 2, 3, 4}
67 self.rBags = {4, 3, 2, 1, 0}
68  
69 OneBagFrameName:SetText(UnitName("player").. L"'s Bags")
70  
71 self.frame = OneBagFrame
72 self.frame.handler = self
73  
74 self.frame.bagFrame = OBBagFram
75 self.frame.bagFrame.handler = self
76  
77 self.frame.bags = {}
78  
79 self:RegisterDewdrop(baseArgs)
80 end
81  
82 function OneBag:OnEnable()
83 self:Hook("IsBagOpen")
84 self:Hook("ToggleBag")
85 self:Hook("OpenBag")
86 self:Hook("CloseBag")
87 self:Hook("OpenBackpack", "OpenBag")
88 self:Hook("CloseBackpack", "CloseBag")
89 self:Hook("ToggleBackpack", "ToggleBag")
90  
91 self:RegisterEvent("BAG_UPDATE", function() self:UpdateBag(arg1) end)
92 self:RegisterEvent("BAG_UPDATE_COOLDOWN", function() self:UpdateBag(arg1) end)
93  
94 self:RegisterEvent("ITEM_LOCK_CHANGED", function() for i = 0, 4 do self:UpdateBag(i) end end)
95 self:RegisterEvent("UPDATE_INVENTORY_ALERTS", function() for i = 0, 4 do self:UpdateBag(i) end end)
96  
97 self:RegisterEvent("AUCTION_HOUSE_SHOW", function() self:OpenBag() end)
98 self:RegisterEvent("AUCTION_HOUSE_CLOSED", function() self:CloseBag() end)
99 self:RegisterEvent("BANKFRAME_OPENED", function() self:OpenBag() end)
100 self:RegisterEvent("BANKFRAME_CLOSED", function() self:CloseBag() end)
101 self:RegisterEvent("MAIL_CLOSED", function() self:CloseBag() end)
102 self:RegisterEvent("MERCHANT_SHOW", function() self:OpenBag() end)
103 self:RegisterEvent("MERCHANT_CLOSED", function() self:CloseBag() end)
104 self:RegisterEvent("TRADE_SHOW", function() self:OpenBag() end)
105 self:RegisterEvent("TRADE_CLOSED", function() self:CloseBag() end)
106 end
107  
108 function OneBag:OnDisable()
109 for id=1, 12 do
110 local frame = getglobal("ContainerFrame"..id)
111 frame:ClearAllPoints()
112 frame:SetScale(1)
113 frame:SetAlpha(1)
114 end
115 end
116  
117 function OneBag:OnKeyRingButtonClick()
118 if (CursorHasItem()) then
119 PutKeyInKeyRing();
120 else
121 ToggleKeyRing();
122 end
123 local shownContainerID = IsBagOpen(KEYRING_CONTAINER)
124 if ( shownContainerID ) then
125 local frame = getglobal("ContainerFrame"..shownContainerID)
126 frame:ClearAllPoints()
127 frame:SetPoint("BOTTOMLEFT", this:GetParent():GetName() , "TOPLEFT", -9, 0)
128 frame:SetScale(OneBag.db.profile.scale)
129 frame:SetAlpha(OneBag.db.profile.alpha)
130 else
131 for id=1, 12 do
132 local frame = getglobal("ContainerFrame"..id)
133 frame:ClearAllPoints()
134 frame:SetScale(1)
135 frame:SetAlpha(1)
136 end
137 end
138 end
139  
140 --Hook responses
141 function OneBag:ToggleBag(bag)
142 if bag and (bag < 0 or bag > 4) then
143 return self.hooks.ToggleBag.orig(bag)
144 end
145  
146 if self.frame:IsVisible() then
147 self.frame:Hide()
148 else
149 self.frame:Show()
150 end
151 end
152  
153 function OneBag:IsBagOpen(bag)
154 self:Debug(L"Checking if bag %s is open", bag)
155 if bag < 0 or bag > 4 then
156 return self.hooks.IsBagOpen.orig(bag)
157 end
158  
159 if self.frame:IsVisible() then
160 return bag
161 else
162 return nil
163 end
164 end
165  
166 function OneBag:OpenBag(bag)
167 self:Debug(L"Opening bag %s", bag)
168 if bag and (bag < 0 or bag > 4) then
169 return self.hooks.OpenBag.orig(bag)
170 end
171  
172 self.frame:Show()
173 end
174  
175  
176 function OneBag:CloseBag(bag)
177 self:Debug(L"Closing bag %s", bag)
178 if bag and (bag < 0 or bag > 4) then
179 return self.hooks.CloseBag.orig(bag)
180 end
181  
182 self.frame:Hide()
183 end
184  
185 function OneBag:OnCustomShow()
186 if self.db.profile.point then
187 local point = self.db.profile.point
188 this:ClearAllPoints()
189 this:SetPoint("TOPLEFT", point.parent, "BOTTOMLEFT", point.left, point.top)
190 end
191 end
192  
193 function OneBag:OnCustomHide()
194 local shownContainerID = IsBagOpen(KEYRING_CONTAINER)
195 if ( shownContainerID ) then
196 getglobal("ContainerFrame"..shownContainerID):Hide()
197 end
198 for id=1, 12 do
199 local frame = getglobal("ContainerFrame"..id)
200 frame:ClearAllPoints()
201 frame:SetScale(1)
202 frame:SetAlpha(1)
203 end
204 end