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) |