Mercurial > wow > reaction
comparison ReAction.lua @ 25:bf997ea151ca
yet another attempt to add missing files
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Fri, 07 Mar 2008 22:19:03 +0000 |
parents | |
children | f1e838841ce1 |
comparison
equal
deleted
inserted
replaced
24:9e1984088124 | 25:bf997ea151ca |
---|---|
1 --[[ | |
2 | |
3 ReAction Add-On main file. | |
4 | |
5 Performs add-on and library initialization and setup. | |
6 | |
7 --]] | |
8 | |
9 | |
10 -- 'ReAction' is exported as a global. | |
11 ReAction = AceLibrary("AceAddon-2.0"):new( | |
12 "AceModuleCore-2.0", | |
13 "AceEvent-2.0", | |
14 "AceDB-2.0" | |
15 ) | |
16 | |
17 local ReAction = ReAction | |
18 local L = AceLibrary("AceLocale-2.2"):new("ReAction") | |
19 local AceOO = AceLibrary("AceOO-2.0") | |
20 | |
21 | |
22 ReAction.revision = tonumber(("$Revision: 1 $"):match("%d+")) | |
23 ReAction.L = L | |
24 | |
25 -- global variable strings for integration with WoW keybindings dialog (see bindings.xml) | |
26 BINDING_HEADER_REACTION = L["ReAction"] | |
27 BINDING_NAME_REACTION_TOGGLELOCK = L["Toggle ReAction Bar Lock"] | |
28 BINDING_NAME_REACTION_TOGGLEKEYBIND = L["ReAction Keybinding Mode"] | |
29 | |
30 -- from AceAddon-2.0 | |
31 function ReAction:OnInitialize() | |
32 self:RegisterDB("ReActionDB") | |
33 end | |
34 | |
35 -- from AceAddon-2.0 | |
36 function ReAction:OnEnable() | |
37 | |
38 end | |
39 | |
40 -- from AceAddon-2.0 | |
41 function ReAction:OnDisable() | |
42 | |
43 end | |
44 | |
45 -- from AceDB-2.0 | |
46 function ReAction:OnProfileEnable() | |
47 | |
48 end | |
49 | |
50 -- from AceDB-2.0 | |
51 function ReAction:OnProfileDisable() | |
52 | |
53 end | |
54 | |
55 -- from AceModuleCore-2.0 | |
56 function ReAction:OnModuleEnable(module) | |
57 -- this handles initialization ordering issues with ReAction_Bar | |
58 local barMod = self:GetModule("Bar") | |
59 if barMod and module.ApplyToBar then | |
60 for _, b in pairs(barMod.bars) do | |
61 if b then | |
62 module:ApplyToBar(b) | |
63 end | |
64 end | |
65 end | |
66 end | |
67 | |
68 -- from AceModuleCore-2.0 | |
69 function ReAction:OnModuleDisable(module) | |
70 local barMod = self:GetModule("Bar") | |
71 if barMod and module.RemoveFromBar then | |
72 for _, b in pairs(barMod.bars) do | |
73 if b then | |
74 module:RemoveFromBar(b) | |
75 end | |
76 end | |
77 end | |
78 end | |
79 | |
80 --[[ | |
81 Module API (see bar.lua for usage) | |
82 | |
83 module:ApplyToBar(bar) | |
84 module:RemoveFromBar(bar) | |
85 module:RefreshBar(bar) | |
86 module:ApplyConfigMode(mode,listOfBars) | |
87 module:GetBarNameModifier(bar) | |
88 module:EraseBarConfig(barName) | |
89 ]]-- | |
90 | |
91 | |
92 -- debugging | |
93 ReAction.debug = true | |
94 if ReAction.debug then | |
95 ReAction.print = function(msg) | |
96 DEFAULT_CHAT_FRAME:AddMessage(msg) | |
97 end | |
98 --seterrorhandler(ReAction.print) | |
99 else | |
100 ReAction.print = function() end | |
101 end | |
102 | |
103 | |
104 -- utility | |
105 local newTable, recycle, deepCopy, deepDelete, varName | |
106 do | |
107 local pool = setmetatable( { }, {__mode="kv"} ) | |
108 | |
109 function newTable(...) | |
110 local t = table.remove(pool) or { } | |
111 for i = 1, select('#',...), 2 do | |
112 local k = select(i,...) | |
113 local v = select(i+1,...) | |
114 if k and v then | |
115 t[k] = v | |
116 end | |
117 end | |
118 return t | |
119 end | |
120 | |
121 function recycle(t) | |
122 if type(t) == "table" then | |
123 table.insert(pool,t) | |
124 end | |
125 end | |
126 | |
127 function deepCopy( x ) | |
128 if type(x) ~= "table" then | |
129 return x | |
130 end | |
131 local r = newTable() | |
132 for k,v in pairs(x) do | |
133 r[k] = deepCopy(v) | |
134 end | |
135 return r | |
136 end | |
137 | |
138 function deepDelete( x ) | |
139 if type(x) == "table" and x.IsObjectType == nil and not(AceOO.inherits(x,AceOO.Object)) then -- don't want to delete WoW or AceOO objects! | |
140 for k,v in pairs(x) do | |
141 x[k] = deepDelete(v) | |
142 end | |
143 recycle(x) | |
144 end | |
145 end | |
146 | |
147 function varName(s) | |
148 return tostring(s):gsub("[^a-zA-Z0-9_]","_") | |
149 end | |
150 | |
151 local u = setmetatable( { }, {__newindex = function(self,k,v) rawset(self,#self+1,v) ; rawset(self,k,v) end} ) | |
152 u.deepCopy = deepCopy | |
153 u.deepDelete = deepDelete | |
154 u.newTable = newTable | |
155 u.recycle = recycle | |
156 u.varName = varName | |
157 | |
158 ReAction.util = u | |
159 end | |
160 | |
161 function ReAction:GetUtilFuncs() | |
162 return unpack(self.util) | |
163 end | |
164 |