Mercurial > wow > reaction
comparison classes/ReBar.lua @ 8:c05fd3e18b4f
Version 0.31
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Tue, 20 Mar 2007 21:33:59 +0000 |
parents | f920db5fc6b1 |
children | f3a7bfebc283 |
comparison
equal
deleted
inserted
replaced
7:f920db5fc6b1 | 8:c05fd3e18b4f |
---|---|
147 error("ReBar: Supplied Button type does not meet required interface.") | 147 error("ReBar: Supplied Button type does not meet required interface.") |
148 end | 148 end |
149 | 149 |
150 | 150 |
151 -- create the bar and control widgets | 151 -- create the bar and control widgets |
152 self.barFrame = CreateFrame("Frame", "ReBar"..id, config.parent and getglobal(config.parent) or UIParent, "ReBarTemplate") | 152 local name = "ReBar"..id |
153 self.barFrame = CreateFrame("Frame", name, config.parent and getglobal(config.parent) or UIParent, "ReBarTemplate") | |
153 self.controlFrame = getglobal(self.barFrame:GetName().."Controls") | 154 self.controlFrame = getglobal(self.barFrame:GetName().."Controls") |
154 self.controlFrame.reBar = self | 155 self.controlFrame.reBar = self |
155 self.barFrame:SetClampedToScreen(true) | 156 self.barFrame:SetClampedToScreen(true) |
156 | 157 |
158 -- get references to sub-frames | |
159 self.labelString = getglobal(name.."ControlsLabelString") | |
160 self.upArrow = getglobal(name.."PageUp") | |
161 self.downArrow = getglobal(name.."PageDown") | |
162 self.pageNum = getglobal(name.."PageNumber") | |
163 | |
157 -- set the text label on the control widget | 164 -- set the text label on the control widget |
158 self.labelString = getglobal(self.controlFrame:GetName().."LabelString") | |
159 self.labelString:SetText(id) | 165 self.labelString:SetText(id) |
160 | 166 |
161 -- initial stateheader state | 167 -- initial stateheader state |
162 self.barFrame.StateChanged = function() self:StateChanged() end | 168 self.barFrame.StateChanged = function() self:StateChanged() end |
163 self.barFrame:SetAttribute("state",config.pages and config.pages.currentPage or 1) -- initial state | 169 self.barFrame:SetAttribute("state",config.pages and config.pages.currentPage or 1) -- initial state |
176 self:RefreshPageControls() | 182 self:RefreshPageControls() |
177 end | 183 end |
178 | 184 |
179 -- register page up/down buttons with ReBound for keybinding | 185 -- register page up/down buttons with ReBound for keybinding |
180 if ReBound then | 186 if ReBound then |
181 ReBound:AddKeybindTarget(getglobal(self.barFrame:GetName().."PageUp")) | 187 ReBound:AddKeybindTarget(self.upArrow) |
182 ReBound:AddKeybindTarget(getglobal(self.barFrame:GetName().."PageDown")) | 188 ReBound:AddKeybindTarget(self.downArrow) |
183 end | 189 end |
184 | 190 |
185 -- add bar to anchorTargets list | 191 -- add bar to anchorTargets list |
186 table.insert(ReBar.anchorTargets, self) | 192 table.insert(ReBar.anchorTargets, self) |
187 end | 193 end |
279 function ReBar.prototype:SetVisibility(v) | 285 function ReBar.prototype:SetVisibility(v) |
280 self.config.visible = v and true or false -- force data integrity | 286 self.config.visible = v and true or false -- force data integrity |
281 self:ApplyVisibility() | 287 self:ApplyVisibility() |
282 end | 288 end |
283 | 289 |
284 function ReBar.prototype:GetOpacity() | |
285 return tonumber(self.config.opacity) or 100 | |
286 end | |
287 | |
288 function ReBar.prototype:SetOpacity( o ) | |
289 o = tonumber(o) | |
290 if o then | |
291 self.config.opacity = o | |
292 self:ApplyVisibility() | |
293 return self.config.opacity | |
294 end | |
295 end | |
296 | |
297 function ReBar.prototype:GetButtonList() | 290 function ReBar.prototype:GetButtonList() |
298 return self.buttons | 291 return self.buttons |
299 end | 292 end |
300 | 293 |
301 function ReBar.prototype:GetGrowLeft() | 294 function ReBar.prototype:GetGrowLeft() |
376 self:SetAutoStanceSwitch( not self:GetAutoStanceSwitch() ) | 369 self:SetAutoStanceSwitch( not self:GetAutoStanceSwitch() ) |
377 end | 370 end |
378 | 371 |
379 function ReBar.prototype:ApplyAutoStanceSwitch() | 372 function ReBar.prototype:ApplyAutoStanceSwitch() |
380 local switch = self:GetAutoStanceSwitch() | 373 local switch = self:GetAutoStanceSwitch() |
381 local _, class = UnitClass("player") | |
382 if switch then | 374 if switch then |
383 -- check that the number of pages available is sufficient | 375 -- check that the number of pages available is sufficient |
384 local totalPages = nStancePages[class] + (self:GetAutoStealthSwitch() and 1 or 0) | 376 local totalPages = nStancePages[playerClass] + (self:GetAutoStealthSwitch() and 1 or 0) |
385 if self:GetPages() < totalPages then | 377 if self:GetPages() < totalPages then |
386 self:SetPages(totalPages) | 378 self:SetPages(totalPages) |
387 end | 379 end |
388 for form, spec in pairs(stanceMaps[class]) do | 380 for form, spec in pairs(stanceMaps[playerClass]) do |
389 self.barFrame:SetAttribute("statemap-stance-"..form,spec) | 381 self.barFrame:SetAttribute("statemap-stance-"..form,spec) |
390 end | 382 end |
391 -- set initial value | 383 -- set initial value |
392 self.barFrame:SetAttribute("state-stance",GetShapeshiftForm(true)) | 384 self.barFrame:SetAttribute("state-stance",GetShapeshiftForm(true)) |
393 else | 385 else |
394 for form, _ in pairs(stanceMaps[class]) do | 386 for form, _ in pairs(stanceMaps[playerClass]) do |
395 self.barFrame:SetAttribute("statemap-stance-"..form, ATTRIBUTE_NOOP) | 387 self.barFrame:SetAttribute("statemap-stance-"..form, ATTRIBUTE_NOOP) |
396 end | 388 end |
397 end | 389 end |
398 end | 390 end |
399 | 391 |
413 self:SetAutoStealthSwitch( not self:GetAutoStealthSwitch() ) | 405 self:SetAutoStealthSwitch( not self:GetAutoStealthSwitch() ) |
414 end | 406 end |
415 | 407 |
416 function ReBar.prototype:ApplyAutoStealthSwitch() | 408 function ReBar.prototype:ApplyAutoStealthSwitch() |
417 local switch = self:GetAutoStealthSwitch() | 409 local switch = self:GetAutoStealthSwitch() |
418 local _, class = UnitClass("player") | |
419 if switch then | 410 if switch then |
420 -- check that the number of pages available is sufficient | 411 -- check that the number of pages available is sufficient |
421 local totalPages = (self:GetAutoStanceSwitch() and nStancePages[class] > 0 and nStancePages[class] or 1) + 1 | 412 local totalPages = (self:GetAutoStanceSwitch() and nStancePages[playerClass] > 0 and nStancePages[playerClass] or 1) + 1 |
422 if self:GetPages() < totalPages then | 413 if self:GetPages() < totalPages then |
423 self:SetPages(totalPages) | 414 self:SetPages(totalPages) |
424 end | 415 end |
425 local s, s2 | 416 local s, s2 |
426 if class == "DRUID" and not self:GetAutoStanceSwitch() then | 417 if playerClass == "DRUID" and not self:GetAutoStanceSwitch() then |
427 -- change mapping for cat->prowl and prowl->cat to 1:2 and 2:1 since no stance mapping | 418 -- change mapping for cat->prowl and prowl->cat to 1:2 and 2:1 since no stance mapping |
428 s = "1:2" | 419 s = "1:2" |
429 s2 = "2:1" | 420 s2 = "2:1" |
430 end | 421 end |
431 self.barFrame:SetAttribute("statemap-stealth-1",s or stealthMaps[class]) | 422 self.barFrame:SetAttribute("statemap-stealth-1",s or stealthMaps[playerClass]) |
432 self.barFrame:SetAttribute("statemap-stealth-0",s2 or unstealthMaps[class]) | 423 self.barFrame:SetAttribute("statemap-stealth-0",s2 or unstealthMaps[playerClass]) |
433 -- set initial value | 424 -- set initial value |
434 self.barFrame:SetAttribute("state-stealth",IsStealthed() or 0) | 425 self.barFrame:SetAttribute("state-stealth",IsStealthed() or 0) |
435 else | 426 else |
436 self.barFrame:SetAttribute("statemap-stealth-1",ATTRIBUTE_NOOP) | 427 self.barFrame:SetAttribute("statemap-stealth-1",ATTRIBUTE_NOOP) |
437 self.barFrame:SetAttribute("statemap-stealth-0",ATTRIBUTE_NOOP) | 428 self.barFrame:SetAttribute("statemap-stealth-0",ATTRIBUTE_NOOP) |
460 end | 451 end |
461 end | 452 end |
462 | 453 |
463 function ReBar.prototype:RefreshPageControls() | 454 function ReBar.prototype:RefreshPageControls() |
464 local b = self.barFrame; | 455 local b = self.barFrame; |
465 local upArrow = getglobal(b:GetName().."PageUp") | 456 local upArrow = self.upArrow |
466 local downArrow = getglobal(b:GetName().."PageDown") | 457 local downArrow = self.downArrow |
467 local pageNum = getglobal(b:GetName().."PageNumber") | 458 local pageNum = self.pageNum |
468 | 459 |
469 if self:GetPages() > 1 and self.config.pages.showControls then | 460 if self:GetPages() > 1 and self.config.pages.showControls then |
470 local loc = self.config.pages.controlsLoc | 461 local loc = self.config.pages.controlsLoc |
462 | |
463 upArrow:SetAttribute("hidestates",nil) | |
464 downArrow:SetAttribute("hidestates",nil) | |
471 | 465 |
472 pageNum:ClearAllPoints() | 466 pageNum:ClearAllPoints() |
473 upArrow:ClearAllPoints() | 467 upArrow:ClearAllPoints() |
474 downArrow:ClearAllPoints() | 468 downArrow:ClearAllPoints() |
475 | 469 |
517 self:StateChanged() | 511 self:StateChanged() |
518 upArrow:Show() | 512 upArrow:Show() |
519 downArrow:Show() | 513 downArrow:Show() |
520 pageNum:Show() | 514 pageNum:Show() |
521 else | 515 else |
516 upArrow:SetAttribute("hidestates","1-"..self:GetPages()) | |
517 downArrow:SetAttribute("hidestates","1-"..self:GetPages()) | |
518 | |
522 upArrow:Hide() | 519 upArrow:Hide() |
523 downArrow:Hide() | 520 downArrow:Hide() |
524 pageNum:Hide() | 521 pageNum:Hide() |
525 end | 522 end |
526 end | 523 end |
564 end | 561 end |
565 | 562 |
566 function ReBar.prototype:ApplyVisibility() | 563 function ReBar.prototype:ApplyVisibility() |
567 local v = self.config.visible or not self.locked | 564 local v = self.config.visible or not self.locked |
568 | 565 |
569 if tonumber(self.config.opacity) then | |
570 self.barFrame:SetAlpha(self.config.opacity / 100) | |
571 end | |
572 | |
573 if v then | 566 if v then |
574 self.barFrame:Show() | 567 self.barFrame:Show() |
575 else | 568 else |
576 self.barFrame:Hide() | 569 self.barFrame:Hide() |
577 end | 570 end |
829 function ReBar.prototype:ShowBarResizeTooltip(point) | 822 function ReBar.prototype:ShowBarResizeTooltip(point) |
830 GameTooltip:SetOwner(self.barFrame, "ANCHOR_"..point) | 823 GameTooltip:SetOwner(self.barFrame, "ANCHOR_"..point) |
831 GameTooltip:AddLine("Drag to add/remove buttons") | 824 GameTooltip:AddLine("Drag to add/remove buttons") |
832 GameTooltip:Show() | 825 GameTooltip:Show() |
833 end | 826 end |
827 |