WoWInterface SVN bdGrid

[/] [trunk/] [lib/] [oUF/] [elements/] [ricons.lua] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 Blooblahguy-207965
--[[ Element: Raid Icon
2 Blooblahguy-207965
 
3 Blooblahguy-207965
 Handles updating and toggles visibility of raid target icons.
4 Blooblahguy-207965
 
5 Blooblahguy-207965
 Widget
6 Blooblahguy-207965
 
7 Blooblahguy-207965
 RaidIcon - A Texture used to display the raid target icon.
8 Blooblahguy-207965
 
9 Blooblahguy-207965
 Notes
10 Blooblahguy-207965
 
11 Blooblahguy-207965
 This element updates by changing the texture.
12 Blooblahguy-207965
 
13 Blooblahguy-207965
 The default raid icons will be used if the UI widget is a texture and doesn't
14 Blooblahguy-207965
 have a texture or color defined.
15 Blooblahguy-207965
 
16 Blooblahguy-207965
 Examples
17 Blooblahguy-207965
 
18 Blooblahguy-207965
   -- Position and size
19 Blooblahguy-207965
   local RaidIcon = self:CreateTexture(nil, 'OVERLAY')
20 Blooblahguy-207965
   RaidIcon:SetSize(16, 16)
21 Blooblahguy-207965
   RaidIcon:SetPoint('TOPRIGHT', self)
22 Blooblahguy-207965
 
23 Blooblahguy-207965
   -- Register it with oUF
24 Blooblahguy-207965
   self.RaidIcon = RaidIcon
25 Blooblahguy-207965
 
26 Blooblahguy-207965
 Hooks
27 Blooblahguy-207965
 
28 Blooblahguy-207965
 Override(self) - Used to completely override the internal update function.
29 Blooblahguy-207965
                  Removing the table key entry will make the element fall-back
30 Blooblahguy-207965
                  to its internal function again.
31 Blooblahguy-207965
]]
32 Blooblahguy-207965
 
33 Blooblahguy-207965
local parent, ns = ...
34 Blooblahguy-207965
local oUF = ns.oUF
35 Blooblahguy-207965
 
36 Blooblahguy-207965
local GetRaidTargetIndex = GetRaidTargetIndex
37 Blooblahguy-207965
local SetRaidTargetIconTexture = SetRaidTargetIconTexture
38 Blooblahguy-207965
 
39 Blooblahguy-207965
local Update = function(self, event)
40 Blooblahguy-207965
        local icon = self.RaidIcon
41 Blooblahguy-207965
        if(icon.PreUpdate) then
42 Blooblahguy-207965
                icon:PreUpdate()
43 Blooblahguy-207965
        end
44 Blooblahguy-207965
 
45 Blooblahguy-207965
        local index = GetRaidTargetIndex(self.unit)
46 Blooblahguy-207965
        if(index) then
47 Blooblahguy-207965
                SetRaidTargetIconTexture(icon, index)
48 Blooblahguy-207965
                icon:Show()
49 Blooblahguy-207965
        else
50 Blooblahguy-207965
                icon:Hide()
51 Blooblahguy-207965
        end
52 Blooblahguy-207965
 
53 Blooblahguy-207965
        if(icon.PostUpdate) then
54 Blooblahguy-207965
                return icon:PostUpdate(index)
55 Blooblahguy-207965
        end
56 Blooblahguy-207965
end
57 Blooblahguy-207965
 
58 Blooblahguy-207965
local Path = function(self, ...)
59 Blooblahguy-207965
        return (self.RaidIcon.Override or Update) (self, ...)
60 Blooblahguy-207965
end
61 Blooblahguy-207965
 
62 Blooblahguy-207965
local ForceUpdate = function(element)
63 Blooblahguy-207965
        if(not element.__owner.unit) then return end
64 Blooblahguy-207965
        return Path(element.__owner, 'ForceUpdate')
65 Blooblahguy-207965
end
66 Blooblahguy-207965
 
67 Blooblahguy-207965
local Enable = function(self)
68 Blooblahguy-207965
        local ricon = self.RaidIcon
69 Blooblahguy-207965
        if(ricon) then
70 Blooblahguy-207965
                ricon.__owner = self
71 Blooblahguy-207965
                ricon.ForceUpdate = ForceUpdate
72 Blooblahguy-207965
 
73 Blooblahguy-207965
                self:RegisterEvent("RAID_TARGET_UPDATE", Path, true)
74 Blooblahguy-207965
 
75 Blooblahguy-207965
                if(ricon:IsObjectType"Texture" and not ricon:GetTexture()) then
76 Blooblahguy-207965
                        ricon:SetTexture[[Interface\TargetingFrame\UI-RaidTargetingIcons]]
77 Blooblahguy-207965
                end
78 Blooblahguy-207965
 
79 Blooblahguy-207965
                return true
80 Blooblahguy-207965
        end
81 Blooblahguy-207965
end
82 Blooblahguy-207965
 
83 Blooblahguy-207965
local Disable = function(self)
84 Blooblahguy-207965
        local ricon = self.RaidIcon
85 Blooblahguy-207965
        if(ricon) then
86 Blooblahguy-207965
                ricon:Hide()
87 Blooblahguy-207965
                self:UnregisterEvent("RAID_TARGET_UPDATE", Path)
88 Blooblahguy-207965
        end
89 Blooblahguy-207965
end
90 Blooblahguy-207965
 
91 Blooblahguy-207965
oUF:AddElement('RaidIcon', Path, Enable, Disable)