vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |