Mercurial > wow > reaction
comparison classes/Button.lua @ 129:28b430de5875
More fixes for new action button
| author | Flick <flickerstreak@gmail.com> |
|---|---|
| date | Fri, 06 Mar 2009 23:44:33 +0000 |
| parents | 729232aeeb5e |
| children | e39d80bb0b7a |
comparison
equal
deleted
inserted
replaced
| 128:729232aeeb5e | 129:28b430de5875 |
|---|---|
| 28 -- Button class | 28 -- Button class |
| 29 local Button = { } | 29 local Button = { } |
| 30 | 30 |
| 31 ReAction.Button = Button -- export to ReAction | 31 ReAction.Button = Button -- export to ReAction |
| 32 | 32 |
| 33 function Button:New( name, barConfig, bar, idx, inherits, buttonType ) | 33 function Button:New( name, config, bar, idx, inherits, buttonType ) |
| 34 buttonType = buttonType or "CheckButton" | 34 buttonType = buttonType or "CheckButton" |
| 35 | 35 |
| 36 -- create new self | 36 -- create new self |
| 37 self = setmetatable( | 37 self = setmetatable( |
| 38 { | 38 { |
| 39 bar = bar, | 39 bar = bar, |
| 40 idx = idx, | 40 idx = idx, |
| 41 barConfig = barConfig, | 41 config = config, |
| 42 config = barConfig.buttons[idx], | |
| 43 name = name, | 42 name = name, |
| 44 }, | 43 }, |
| 45 { __index = self } ) | 44 { __index = self } ) |
| 46 | 45 |
| 47 -- have to recycle frames with the same name: CreateFrame() doesn't overwrite | 46 -- have to recycle frames with the same name: CreateFrame() doesn't overwrite |
| 97 return self.name | 96 return self.name |
| 98 end | 97 end |
| 99 | 98 |
| 100 function Button:GetConfig() | 99 function Button:GetConfig() |
| 101 return self.config | 100 return self.config |
| 102 end | |
| 103 | |
| 104 function Button:GetBarConfig() | |
| 105 -- this is the per-bar Button config structure, | |
| 106 -- not the config structure of the bar itself | |
| 107 return self.barConfig | |
| 108 end | 101 end |
| 109 | 102 |
| 110 function Button:GetActionID() | 103 function Button:GetActionID() |
| 111 -- derived classes should override this | 104 -- derived classes should override this |
| 112 return nil | 105 return nil |
| 177 pool.nWraps = min(pool.useCount[id], pool.nWraps) | 170 pool.nWraps = min(pool.useCount[id], pool.nWraps) |
| 178 end | 171 end |
| 179 end | 172 end |
| 180 | 173 |
| 181 function Button:Refresh() | 174 function Button:Refresh() |
| 182 self.bar:PlaceButton( self, self.frame:GetWidth(), self.frame:GetHeight() ) | 175 local f = self:GetFrame() |
| 176 self.bar:PlaceButton( self, f:GetWidth(), f:GetHeight() ) | |
| 183 end | 177 end |
| 184 | 178 |
| 185 function Button:SetKeybindMode( mode ) | 179 function Button:SetKeybindMode( mode ) |
| 186 local f = self.frame | 180 local f = self.frame |
| 187 if mode then | 181 if mode then |
| 208 end | 202 end |
| 209 | 203 |
| 210 function Button:UpdateHotkey( hotkey ) | 204 function Button:UpdateHotkey( hotkey ) |
| 211 hotkey = hotkey or self.hotkey | 205 hotkey = hotkey or self.hotkey |
| 212 if not hotkey then | 206 if not hotkey then |
| 213 hotkey = _G[format("%sHotKey", tostring(self:GetName()))] | 207 hotkey = _G[self:GetName().."HotKey"] |
| 214 self.hotkey = hotkey | 208 self.hotkey = hotkey |
| 215 end | 209 end |
| 216 if hotkey then | 210 if hotkey then |
| 217 local txt = self.frame:GetHotkey() | 211 local txt = self.frame:GetHotkey() |
| 218 hotkey:SetText( txt ) | 212 hotkey:SetText( txt ) |
| 223 end | 217 end |
| 224 end | 218 end |
| 225 end | 219 end |
| 226 | 220 |
| 227 function Button:GetActionIDLabel( create ) | 221 function Button:GetActionIDLabel( create ) |
| 228 local f = self.frame | 222 local f = self:GetFrame() |
| 229 if not f.actionIDLabel and create then | 223 if not f.actionIDLabel and create then |
| 230 local label = f:CreateFontString(nil,"OVERLAY","GameFontNormalLarge") | 224 local label = f:CreateFontString(nil,"OVERLAY","GameFontNormalLarge") |
| 231 label:SetAllPoints() | 225 label:SetAllPoints() |
| 232 label:SetJustifyH("CENTER") | 226 label:SetJustifyH("CENTER") |
| 233 label:SetShadowColor(0,0,0,1) | 227 label:SetShadowColor(0,0,0,1) |
| 252 end | 246 end |
| 253 end | 247 end |
| 254 | 248 |
| 255 function Button:SetNormalVertexColor( r, g, b, a ) | 249 function Button:SetNormalVertexColor( r, g, b, a ) |
| 256 if LBF then | 250 if LBF then |
| 257 LBF:SetNormalVertexColor(self.frame, r, g, b, a) | 251 LBF:SetNormalVertexColor(self:GetFrame(), r, g, b, a) |
| 258 else | 252 else |
| 259 self.frame:GetNormalTexture():SetVertexColor(r,g,b,a) | 253 self:GetFrame():GetNormalTexture():SetVertexColor(r,g,b,a) |
| 260 end | 254 end |
| 261 end | 255 end |
| 262 | 256 |
| 263 function Button:GetNormalVertexColor() | 257 function Button:GetNormalVertexColor() |
| 264 if LBF then | 258 if LBF then |
| 265 return LBF:GetNormalVertexColor(self.frame) | 259 return LBF:GetNormalVertexColor(self:GetFrame()) |
| 266 else | 260 else |
| 267 return self.frame:GetNormalTexture():GetVertexColor() | 261 return self:GetFrame():GetNormalTexture():GetVertexColor() |
| 268 end | 262 end |
| 269 end | 263 end |
| 270 | 264 |
| 271 function Button:UpdateShowGrid() | 265 function Button:UpdateShowGrid() |
| 272 -- does nothing by default | 266 -- does nothing by default |
