Mercurial > wow > reaction
comparison classes/Button.lua @ 126:6a4b4d3c5fad
More fixes for button base class
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Tue, 03 Mar 2009 23:18:35 +0000 |
parents | 0c5017f6062d |
children | 729232aeeb5e |
comparison
equal
deleted
inserted
replaced
125:a7f18adee694 | 126:6a4b4d3c5fad |
---|---|
74 | 74 |
75 return self | 75 return self |
76 end | 76 end |
77 | 77 |
78 function Button:Destroy() | 78 function Button:Destroy() |
79 local f = self.frame | 79 local f = self:GetFrame() |
80 gridProxy:RemoveGridFrame(f) | 80 if f then |
81 f:Hide() | 81 f:Hide() |
82 f:SetParent(trash) | 82 f:SetParent(trash) |
83 f:ClearAllPoints() | 83 f:ClearAllPoints() |
84 end | |
84 end | 85 end |
85 | 86 |
86 function Button:GetFrame() | 87 function Button:GetFrame() |
87 return self.frame | 88 return self.frame |
88 end | 89 end |
120 idPools[poolID] = pool | 121 idPools[poolID] = pool |
121 end | 122 end |
122 local useCount = pool.useCount | 123 local useCount = pool.useCount |
123 if id == nil then | 124 if id == nil then |
124 repeat | 125 repeat |
125 local nWraps = pool.nWraps | 126 local nWraps = pool.nWraps or 0 |
126 if useCount[hint] == nil or useCount[hint] == nWraps then | 127 if hint and (useCount[hint] == nil or useCount[hint] == nWraps) then |
127 id = hint | 128 id = hint |
128 else | 129 else |
129 local start = hint or 1 | 130 local start = hint or 1 |
130 for i = start, maxID do | 131 for i = start, maxID do |
131 if useCount[i] == nil or useCount[i] == nWraps then | 132 if useCount[i] == nil or useCount[i] == nWraps then |
146 if unique then | 147 if unique then |
147 return nil | 148 return nil |
148 end | 149 end |
149 pool.nWraps = nWraps + 1 | 150 pool.nWraps = nWraps + 1 |
150 end | 151 end |
151 until id | 152 until id ~= nil |
152 end | 153 end |
153 useCount[id] = (useCount[id] or 0) + 1 | 154 useCount[id] = (useCount[id] or 0) + 1 |
154 return id | 155 return id |
155 end | 156 end |
156 | 157 |