Mercurial > wow > reaction
comparison modules/VehicleExit.lua @ 222:d08a74e86c96
un-namespace totem, pet, stance, vehicle exit
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Sun, 21 Nov 2010 14:42:38 -0800 |
parents | e63aefb8a555 |
children | c4b134512c50 |
comparison
equal
deleted
inserted
replaced
221:bb13624de7e1 | 222:d08a74e86c96 |
---|---|
19 -- Button class | 19 -- Button class |
20 local Button = ReAction.Button.VehicleExit | 20 local Button = ReAction.Button.VehicleExit |
21 | 21 |
22 -- module methods | 22 -- module methods |
23 function module:OnInitialize() | 23 function module:OnInitialize() |
24 self.db = ReAction.db:RegisterNamespace( moduleID, | |
25 { | |
26 profile = { | |
27 buttons = { } | |
28 } | |
29 } | |
30 ) | |
31 self.registered = { } | 24 self.registered = { } |
32 self.buttons = { } | 25 self.buttons = { } |
33 | 26 |
34 ReAction:RegisterBarOptionGenerator(self, "GetBarOptions") | 27 ReAction:RegisterBarOptionGenerator(self, "GetBarOptions") |
35 | 28 |
36 ReAction.RegisterCallback(self, "OnCreateBar") | 29 ReAction.RegisterCallback(self, "OnCreateBar") |
37 ReAction.RegisterCallback(self, "OnDestroyBar") | 30 ReAction.RegisterCallback(self, "OnDestroyBar") |
38 ReAction.RegisterCallback(self, "OnRefreshBar") | 31 ReAction.RegisterCallback(self, "OnRefreshBar") |
39 ReAction.RegisterCallback(self, "OnEraseBar") | |
40 ReAction.RegisterCallback(self, "OnRenameBar") | |
41 end | 32 end |
42 | 33 |
43 function module:OnEnable() | 34 function module:OnEnable() |
44 ReAction:RegisterBarType(Button) | 35 ReAction:RegisterBarType(Button) |
45 end | 36 end |
53 self:OnRefreshBar(event, bar, name) | 44 self:OnRefreshBar(event, bar, name) |
54 end | 45 end |
55 end | 46 end |
56 | 47 |
57 function module:OnRefreshBar(event, bar, name) | 48 function module:OnRefreshBar(event, bar, name) |
58 if bar.config.type == moduleID then | 49 local config = bar:GetConfig() |
59 local profile = self.db.profile | 50 if config.type == moduleID then |
60 if profile.buttons[name] == nil then | 51 if not config.buttons then |
61 profile.buttons[name] = {} | 52 config.buttons = { } |
62 end | 53 end |
63 local btnCfg = profile.buttons[name] | 54 local btnCfg = config.buttons |
55 btnCfg[1] = btnCfg[1] or { } | |
64 | 56 |
65 if profile.buttons[name] == nil then | |
66 profile.buttons[name] = { } | |
67 end | |
68 if self.buttons[bar] == nil then | 57 if self.buttons[bar] == nil then |
69 local success, r = pcall(Button.New, Button, 1, profile.buttons[name], bar) | 58 local success, r = pcall(Button.New, Button, 1, btnCfg[1], bar) |
70 if success and r then | 59 if success and r then |
71 self.buttons[bar] = r | 60 self.buttons[bar] = r |
72 bar:AddButton(1,r) | 61 bar:AddButton(1,r) |
73 end | 62 end |
74 else | 63 else |
84 self.buttons[bar]:Destroy() | 73 self.buttons[bar]:Destroy() |
85 self.buttons[bar] = nil | 74 self.buttons[bar] = nil |
86 end | 75 end |
87 end | 76 end |
88 | 77 |
89 function module:OnEraseBar(event, bar, name) | |
90 self.db.profile.buttons[name] = nil | |
91 end | |
92 | |
93 function module:OnRenameBar(event, bar, oldname, newname) | |
94 local b = self.db.profile.buttons | |
95 b[newname], b[oldname] = b[oldname], nil | |
96 end | |
97 | |
98 | 78 |
99 function module:UpdateRegistration(bar) | 79 function module:UpdateRegistration(bar) |
100 -- auto show/hide when on a vehicle | 80 -- auto show/hide when on a vehicle |
101 local config = self.db.profile.buttons[bar:GetName()] | 81 local config = bar:GetConfig() |
102 local f = bar:GetFrame() | 82 local f = bar:GetFrame() |
103 if config.withControls then | 83 if config.withControls then |
104 if bar.vehicleExitStateRegistered then | 84 if bar.vehicleExitStateRegistered then |
105 UnregisterStateDriver(f, "unitexists") | 85 UnregisterStateDriver(f, "unitexists") |
106 bar.vehicleExitStateRegistered = false | 86 bar.vehicleExitStateRegistered = false |
126 bar = bar | 106 bar = bar |
127 }, meta) | 107 }, meta) |
128 end | 108 end |
129 | 109 |
130 function Handler:GetConfig() | 110 function Handler:GetConfig() |
131 return module.db.profile.buttons[self.bar:GetName()] | 111 return self.bar:GetConfig() |
132 end | 112 end |
133 | 113 |
134 function Handler:GetPassengerOnly() | 114 function Handler:GetPassengerOnly() |
135 return not self:GetConfig().withControls | 115 return not self:GetConfig().withControls |
136 end | 116 end |