Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 12 | Taonnor-14572 | --[[ |
2 | Taonnor-14572 | Addon: Taos Group Ultimate |
|
3 | Taonnor-14572 | Author: TProg Taonnor |
|
4 | Taonnor-14572 | Created by @Taonnor |
|
5 | Taonnor-14572 | ]]-- |
|
6 | Taonnor-14572 | ||
7 | Taonnor-14572 | --[[ |
|
8 | 37 | Taonnor-14572 | Local variables |
9 | 12 | Taonnor-14572 | ]]-- |
10 | Taonnor-14572 | local LOG_ACTIVE = false |
|
11 | 46 | Taonnor-14572 | |
12 | 56 | Taonnor-14572 | local REFRESHRATE = 1000 -- ms; RegisterForUpdate is in miliseconds |
13 | Taonnor-14572 | local TIMEOUT = 4 -- s; GetTimeStamp() is in seconds |
|
14 | Taonnor-14572 | ||
15 | 37 | Taonnor-14572 | local _logger = nil |
16 | 46 | Taonnor-14572 | local _control = nil |
17 | 56 | Taonnor-14572 | local _players = {} |
18 | 12 | Taonnor-14572 | |
19 | Taonnor-14572 | --[[ |
|
20 | 37 | Taonnor-14572 | Table TGU_SimpleList |
21 | 12 | Taonnor-14572 | ]]-- |
22 | 37 | Taonnor-14572 | TGU_SimpleList = {} |
23 | Taonnor-14572 | TGU_SimpleList.__index = TGU_SimpleList |
|
24 | 12 | Taonnor-14572 | |
25 | Taonnor-14572 | --[[ |
|
26 | 37 | Taonnor-14572 | Table Members |
27 | 12 | Taonnor-14572 | ]]-- |
28 | 56 | Taonnor-14572 | TGU_SimpleList.IsMocked = false |
29 | 12 | Taonnor-14572 | |
30 | Taonnor-14572 | --[[ |
|
31 | Taonnor-14572 | Sets visibility of labels |
|
32 | Taonnor-14572 | ]]-- |
|
33 | 37 | Taonnor-14572 | function TGU_SimpleList.RefreshList() |
34 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_SimpleList.RefreshList") end |
|
35 | 12 | Taonnor-14572 | |
36 | 56 | Taonnor-14572 | for i=1, GROUP_SIZE_MAX, 1 do |
37 | Taonnor-14572 | local row = TGU_SimpleListControlContainerScrollChild:GetNamedChild("Row" .. i) |
|
38 | Taonnor-14572 | local listPlayer = _players[i] |
|
39 | Taonnor-14572 | ||
40 | Taonnor-14572 | if (listPlayer ~= nil) then |
|
41 | Taonnor-14572 | local isPlayerNotGrouped = IsUnitGrouped(listPlayer.PingTag) == false |
|
42 | Taonnor-14572 | ||
43 | Taonnor-14572 | if (TGU_SimpleList.IsMocked) then |
|
44 | Taonnor-14572 | isPlayerNotGrouped = false |
|
45 | Taonnor-14572 | end |
|
46 | Taonnor-14572 | ||
47 | Taonnor-14572 | local isPlayerTimedOut = (GetTimeStamp() - listPlayer.LastMapPingTimestamp) > TIMEOUT |
|
48 | Taonnor-14572 | ||
49 | Taonnor-14572 | if (isPlayerNotGrouped or isPlayerTimedOut) then |
|
50 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug("Player invalid, hide row: " .. tostring(i)) end |
|
51 | Taonnor-14572 | ||
52 | Taonnor-14572 | row:SetHidden(true) |
|
53 | Taonnor-14572 | table.remove(_players, i) |
|
54 | Taonnor-14572 | end |
|
55 | 12 | Taonnor-14572 | else |
56 | 56 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug("Row empty, hide: " .. tostring(i)) end |
57 | Taonnor-14572 | row:SetHidden(true) |
|
58 | 12 | Taonnor-14572 | end |
59 | 56 | Taonnor-14572 | end |
60 | Taonnor-14572 | ||
61 | Taonnor-14572 | if (TGU_SettingsHandler.SavedVariables.IsSortingActive) then |
|
62 | Taonnor-14572 | -- Sort list with all players |
|
63 | Taonnor-14572 | TGU_SimpleList.SortList() |
|
64 | 12 | Taonnor-14572 | end |
65 | Taonnor-14572 | end |
|
66 | Taonnor-14572 | ||
67 | Taonnor-14572 | --[[ |
|
68 | 56 | Taonnor-14572 | Sorts swimlane |
69 | Taonnor-14572 | ]]-- |
|
70 | Taonnor-14572 | function TGU_SimpleList.SortList() |
|
71 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_SimpleList.SortList") end |
|
72 | Taonnor-14572 | ||
73 | Taonnor-14572 | -- Comparer |
|
74 | Taonnor-14572 | function compare(playerLeft, playerRight) |
|
75 | 59 | Taonnor-14572 | if (playerLeft.RelativeUltimate == playerRight.RelativeUltimate) then |
76 | Taonnor-14572 | return playerLeft.PingTag < playerRight.PingTag |
|
77 | Taonnor-14572 | else |
|
78 | Taonnor-14572 | return playerLeft.RelativeUltimate > playerRight.RelativeUltimate |
|
79 | Taonnor-14572 | end |
|
80 | 56 | Taonnor-14572 | end |
81 | Taonnor-14572 | ||
82 | Taonnor-14572 | table.sort(_players, compare) |
|
83 | Taonnor-14572 | ||
84 | Taonnor-14572 | -- Update sorted swimlane list |
|
85 | Taonnor-14572 | for i,listPlayer in ipairs(_players) do |
|
86 | Taonnor-14572 | TGU_SimpleList.UpdateListRow(TGU_SimpleListControlContainerScrollChild:GetNamedChild("Row" .. i), listPlayer) |
|
87 | Taonnor-14572 | end |
|
88 | Taonnor-14572 | end |
|
89 | Taonnor-14572 | ||
90 | Taonnor-14572 | --[[ |
|
91 | 12 | Taonnor-14572 | Updates list row |
92 | Taonnor-14572 | ]]-- |
|
93 | 56 | Taonnor-14572 | function TGU_SimpleList.UpdateListRow(row, player) |
94 | 12 | Taonnor-14572 | if (LOG_ACTIVE) then |
95 | 37 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.UpdateListRow") |
96 | 12 | Taonnor-14572 | end |
97 | Taonnor-14572 | ||
98 | 56 | Taonnor-14572 | local localizedUltimateName = zo_strformat(SI_ABILITY_TOOLTIP_NAME, player.UltimateName) |
99 | Taonnor-14572 | local nameLength = string.len(localizedUltimateName) |
|
100 | 12 | Taonnor-14572 | |
101 | 56 | Taonnor-14572 | if (nameLength > 22) then |
102 | Taonnor-14572 | localizedUltimateName = string.sub(localizedUltimateName, 0, 22) .. "..." |
|
103 | Taonnor-14572 | end |
|
104 | 19 | Taonnor-14572 | |
105 | 56 | Taonnor-14572 | row:GetNamedChild("SenderNameValueLabel"):SetText(player.PlayerName) |
106 | Taonnor-14572 | row:GetNamedChild("UltimateValueLabel"):SetText(localizedUltimateName) |
|
107 | Taonnor-14572 | row:GetNamedChild("ReadyValueLabel"):SetText(player.RelativeUltimate) |
|
108 | 12 | Taonnor-14572 | |
109 | 56 | Taonnor-14572 | if (player.IsPlayerDead) then |
110 | Taonnor-14572 | row:GetNamedChild("SenderNameValueLabel"):SetColor(1.0, 0.0, 0.0, 1) |
|
111 | Taonnor-14572 | row:GetNamedChild("UltimateValueLabel"):SetColor(1.0, 0.0, 0.0, 1) |
|
112 | Taonnor-14572 | row:GetNamedChild("ReadyValueLabel"):SetColor(1.0, 0.0, 0.0, 1) |
|
113 | Taonnor-14572 | elseif (player.RelativeUltimate == 100) then |
|
114 | Taonnor-14572 | row:GetNamedChild("SenderNameValueLabel"):SetColor(0.0, 1.0, 0.0, 1) |
|
115 | Taonnor-14572 | row:GetNamedChild("UltimateValueLabel"):SetColor(0.0, 1.0, 0.0, 1) |
|
116 | Taonnor-14572 | row:GetNamedChild("ReadyValueLabel"):SetColor(0.0, 1.0, 0.0, 1) |
|
117 | Taonnor-14572 | else |
|
118 | Taonnor-14572 | row:GetNamedChild("SenderNameValueLabel"):SetColor(1.0, 1.0, 1.0, 1) |
|
119 | Taonnor-14572 | row:GetNamedChild("UltimateValueLabel"):SetColor(1.0, 1.0, 1.0, 1) |
|
120 | Taonnor-14572 | row:GetNamedChild("ReadyValueLabel"):SetColor(1.0, 1.0, 1.0, 1) |
|
121 | Taonnor-14572 | end |
|
122 | 55 | Taonnor-14572 | |
123 | 56 | Taonnor-14572 | if (row:IsHidden()) then |
124 | Taonnor-14572 | row:SetHidden(false) |
|
125 | 12 | Taonnor-14572 | end |
126 | Taonnor-14572 | end |
|
127 | Taonnor-14572 | ||
128 | Taonnor-14572 | --[[ |
|
129 | 56 | Taonnor-14572 | Updates list row |
130 | Taonnor-14572 | ]]-- |
|
131 | Taonnor-14572 | function TGU_SimpleList.UpdatePlayer(player) |
|
132 | Taonnor-14572 | if (LOG_ACTIVE) then |
|
133 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.UpdatePlayer") |
|
134 | Taonnor-14572 | end |
|
135 | Taonnor-14572 | ||
136 | Taonnor-14572 | if (player) then |
|
137 | Taonnor-14572 | local row = nil |
|
138 | Taonnor-14572 | ||
139 | Taonnor-14572 | for i,listPlayer in ipairs(_players) do |
|
140 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug(listPlayer.PlayerName .. " == " .. player.PlayerName) end |
|
141 | Taonnor-14572 | if (listPlayer.PlayerName == player.PlayerName) then |
|
142 | Taonnor-14572 | row = TGU_SimpleListControlContainerScrollChild:GetNamedChild("Row" .. i) |
|
143 | Taonnor-14572 | end |
|
144 | Taonnor-14572 | end |
|
145 | Taonnor-14572 | ||
146 | Taonnor-14572 | -- Update timestamp |
|
147 | Taonnor-14572 | if (row ~= nil) then |
|
148 | Taonnor-14572 | for i,listPlayer in ipairs(_players) do |
|
149 | Taonnor-14572 | if (listPlayer.PlayerName == player.PlayerName) then |
|
150 | Taonnor-14572 | listPlayer.LastMapPingTimestamp = GetTimeStamp() |
|
151 | Taonnor-14572 | listPlayer.IsPlayerDead = player.IsPlayerDead |
|
152 | Taonnor-14572 | listPlayer.RelativeUltimate = player.RelativeUltimate |
|
153 | Taonnor-14572 | break |
|
154 | Taonnor-14572 | end |
|
155 | Taonnor-14572 | end |
|
156 | Taonnor-14572 | else |
|
157 | Taonnor-14572 | -- Add new player |
|
158 | Taonnor-14572 | local nextFreeRow = 1 |
|
159 | Taonnor-14572 | ||
160 | Taonnor-14572 | for i,player in ipairs(_players) do |
|
161 | Taonnor-14572 | nextFreeRow = nextFreeRow + 1 |
|
162 | Taonnor-14572 | end |
|
163 | Taonnor-14572 | ||
164 | Taonnor-14572 | if (nextFreeRow <= GROUP_SIZE_MAX) then |
|
165 | Taonnor-14572 | if (LOG_ACTIVE) then |
|
166 | Taonnor-14572 | _logger:logDebug("TGU_SimpleList.UpdatePlayer, add player " .. tostring(player.PlayerName) .. " to row " .. tostring(nextFreeRow)) |
|
167 | Taonnor-14572 | end |
|
168 | Taonnor-14572 | ||
169 | Taonnor-14572 | player.LastMapPingTimestamp = GetTimeStamp() |
|
170 | Taonnor-14572 | _players[nextFreeRow] = player |
|
171 | Taonnor-14572 | row = TGU_SimpleListControlContainerScrollChild:GetNamedChild("Row" .. nextFreeRow) |
|
172 | Taonnor-14572 | else |
|
173 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug("TGU_SimpleList.UpdatePlayer, too much players for list" .. tostring(nextFreeRow)) end |
|
174 | Taonnor-14572 | end |
|
175 | Taonnor-14572 | end |
|
176 | Taonnor-14572 | ||
177 | Taonnor-14572 | -- Only update if player in a row |
|
178 | Taonnor-14572 | if (row ~= nil) then |
|
179 | Taonnor-14572 | -- Directly update row with player, sorting will be triggered on RefreshList |
|
180 | Taonnor-14572 | TGU_SimpleList.UpdateListRow(row, player) |
|
181 | Taonnor-14572 | end |
|
182 | Taonnor-14572 | end |
|
183 | Taonnor-14572 | end |
|
184 | Taonnor-14572 | ||
185 | Taonnor-14572 | --[[ |
|
186 | 12 | Taonnor-14572 | SetControlMovable sets the Movable and MouseEnabled flag in UI elements |
187 | Taonnor-14572 | ]]-- |
|
188 | 37 | Taonnor-14572 | function TGU_SimpleList.SetControlMovable(isMovable) |
189 | 12 | Taonnor-14572 | if (LOG_ACTIVE) then |
190 | 37 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.SetControlMovable") |
191 | Taonnor-14572 | _logger:logDebug("isMovable", isMovable) |
|
192 | 12 | Taonnor-14572 | end |
193 | Taonnor-14572 | ||
194 | 46 | Taonnor-14572 | _control:GetNamedChild("MovableControl"):SetHidden(isMovable == false) |
195 | 28 | Taonnor-14572 | |
196 | 46 | Taonnor-14572 | _control:SetMovable(isMovable) |
197 | Taonnor-14572 | _control:SetMouseEnabled(isMovable) |
|
198 | 12 | Taonnor-14572 | end |
199 | Taonnor-14572 | ||
200 | Taonnor-14572 | --[[ |
|
201 | 37 | Taonnor-14572 | RestorePosition sets TGU_SimpleList on settings position |
202 | 12 | Taonnor-14572 | ]]-- |
203 | 37 | Taonnor-14572 | function TGU_SimpleList.RestorePosition(posX, posY) |
204 | 12 | Taonnor-14572 | if (LOG_ACTIVE) then |
205 | 37 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.RestorePosition") |
206 | Taonnor-14572 | _logger:logDebug("posX, posY", posX, posY) |
|
207 | 12 | Taonnor-14572 | end |
208 | Taonnor-14572 | ||
209 | 46 | Taonnor-14572 | _control:ClearAnchors() |
210 | Taonnor-14572 | _control:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, posX, posY) |
|
211 | 12 | Taonnor-14572 | end |
212 | Taonnor-14572 | ||
213 | Taonnor-14572 | --[[ |
|
214 | 37 | Taonnor-14572 | OnSimpleListMoveStop saves current TGU_SimpleList position to settings |
215 | 12 | Taonnor-14572 | ]]-- |
216 | 37 | Taonnor-14572 | function TGU_SimpleList.OnSimpleListMoveStop() |
217 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_SimpleList.OnSimpleListMoveStop") end |
|
218 | 12 | Taonnor-14572 | |
219 | 46 | Taonnor-14572 | local left = _control:GetLeft() |
220 | Taonnor-14572 | local top = _control:GetTop() |
|
221 | 12 | Taonnor-14572 | |
222 | 37 | Taonnor-14572 | TGU_SettingsHandler.SavedVariables.PosX = left |
223 | Taonnor-14572 | TGU_SettingsHandler.SavedVariables.PosY = top |
|
224 | 12 | Taonnor-14572 | |
225 | Taonnor-14572 | if (LOG_ACTIVE) then |
|
226 | 37 | Taonnor-14572 | _logger:logDebug("PosX, PosY", TGU_SettingsHandler.SavedVariables.PosX, TGU_SettingsHandler.SavedVariables.PosY) |
227 | 12 | Taonnor-14572 | end |
228 | Taonnor-14572 | end |
|
229 | Taonnor-14572 | ||
230 | Taonnor-14572 | --[[ |
|
231 | Taonnor-14572 | SetControlHidden sets hidden on control |
|
232 | Taonnor-14572 | ]]-- |
|
233 | 50 | Taonnor-14572 | function TGU_SimpleList.SetControlHidden(isHidden) |
234 | 12 | Taonnor-14572 | if (LOG_ACTIVE) then |
235 | 37 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.SetControlHidden") |
236 | 50 | Taonnor-14572 | _logger:logDebug("isHidden", isHidden) |
237 | 12 | Taonnor-14572 | end |
238 | Taonnor-14572 | ||
239 | 58 | Taonnor-14572 | if (TGU_GroupHandler.IsGrouped) then |
240 | Taonnor-14572 | _control:SetHidden(isHidden) |
|
241 | Taonnor-14572 | else |
|
242 | Taonnor-14572 | _control:SetHidden(true) |
|
243 | Taonnor-14572 | end |
|
244 | 50 | Taonnor-14572 | end |
245 | Taonnor-14572 | ||
246 | Taonnor-14572 | --[[ |
|
247 | Taonnor-14572 | SetControlActive sets hidden on control |
|
248 | Taonnor-14572 | ]]-- |
|
249 | Taonnor-14572 | function TGU_SimpleList.SetControlActive() |
|
250 | Taonnor-14572 | if (LOG_ACTIVE) then |
|
251 | Taonnor-14572 | _logger:logTrace("TGU_SimpleList.SetControlActive") |
|
252 | Taonnor-14572 | end |
|
253 | Taonnor-14572 | ||
254 | 37 | Taonnor-14572 | local isHidden = TGU_SettingsHandler.IsSimpleListVisible() == false |
255 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug("isHidden", isHidden) end |
|
256 | 50 | Taonnor-14572 | |
257 | 58 | Taonnor-14572 | TGU_SimpleList.SetControlHidden(isHidden or CurrentHudHiddenState()) |
258 | 15 | Taonnor-14572 | |
259 | 19 | Taonnor-14572 | if (isHidden) then |
260 | 56 | Taonnor-14572 | -- Stop timeout timer |
261 | Taonnor-14572 | EVENT_MANAGER:UnregisterForUpdate(TGU_SimpleList.Name) |
|
262 | Taonnor-14572 | ||
263 | 38 | Taonnor-14572 | CALLBACK_MANAGER:UnregisterCallback(TGU_GROUP_CHANGED, TGU_SimpleList.RefreshList) |
264 | 56 | Taonnor-14572 | CALLBACK_MANAGER:UnregisterCallback(TGU_PLAYER_DATA_CHANGED, TGU_SimpleList.UpdatePlayer) |
265 | 38 | Taonnor-14572 | CALLBACK_MANAGER:UnregisterCallback(TGU_MOVABLE_CHANGED, TGU_SimpleList.SetControlMovable) |
266 | 50 | Taonnor-14572 | CALLBACK_MANAGER:UnregisterCallback(TUI_HUD_HIDDEN_STATE_CHANGED, TGU_SimpleList.SetControlHidden) |
267 | 19 | Taonnor-14572 | else |
268 | 37 | Taonnor-14572 | TGU_SimpleList.SetControlMovable(TGU_SettingsHandler.SavedVariables.Movable) |
269 | Taonnor-14572 | TGU_SimpleList.RestorePosition(TGU_SettingsHandler.SavedVariables.PosX, TGU_SettingsHandler.SavedVariables.PosY) |
|
270 | 24 | Taonnor-14572 | |
271 | 56 | Taonnor-14572 | -- Start timeout timer |
272 | Taonnor-14572 | EVENT_MANAGER:RegisterForUpdate(TGU_SimpleList.Name, REFRESHRATE, TGU_SimpleList.RefreshList) |
|
273 | Taonnor-14572 | ||
274 | 38 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_GROUP_CHANGED, TGU_SimpleList.RefreshList) |
275 | 56 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_PLAYER_DATA_CHANGED, TGU_SimpleList.UpdatePlayer) |
276 | 38 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_MOVABLE_CHANGED, TGU_SimpleList.SetControlMovable) |
277 | 50 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TUI_HUD_HIDDEN_STATE_CHANGED, TGU_SimpleList.SetControlHidden) |
278 | 19 | Taonnor-14572 | end |
279 | 12 | Taonnor-14572 | end |
280 | Taonnor-14572 | ||
281 | Taonnor-14572 | --[[ |
|
282 | Taonnor-14572 | CreateSimpleListRows creates simple list rows |
|
283 | Taonnor-14572 | ]]-- |
|
284 | 37 | Taonnor-14572 | function TGU_SimpleList.CreateSimpleListRows() |
285 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_SimpleList.CreateSimpleListRows") end |
|
286 | 12 | Taonnor-14572 | |
287 | Taonnor-14572 | for i=1, GROUP_SIZE_MAX, 1 do |
|
288 | 37 | Taonnor-14572 | local row = CreateControlFromVirtual("$(parent)Row", TGU_SimpleListControlContainerScrollChild, "GroupUltimateSimpleListRow", i) |
289 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logDebug("Row created " .. row:GetName()) end |
|
290 | 12 | Taonnor-14572 | |
291 | Taonnor-14572 | row:SetHidden(true) -- initial not visible |
|
292 | Taonnor-14572 | ||
293 | Taonnor-14572 | if i == 1 then |
|
294 | 37 | Taonnor-14572 | row:SetAnchor(TOPLEFT, TGU_SimpleListControlContainerScrollChild, TOPLEFT, 0, 0) |
295 | 12 | Taonnor-14572 | else |
296 | Taonnor-14572 | row:SetAnchor(TOP, lastRow, BOTTOM, 0, 0) |
|
297 | Taonnor-14572 | end |
|
298 | Taonnor-14572 | ||
299 | Taonnor-14572 | lastRow = row |
|
300 | Taonnor-14572 | end |
|
301 | Taonnor-14572 | end |
|
302 | Taonnor-14572 | ||
303 | Taonnor-14572 | --[[ |
|
304 | 37 | Taonnor-14572 | Initialize initializes TGU_SimpleList |
305 | 12 | Taonnor-14572 | ]]-- |
306 | 56 | Taonnor-14572 | function TGU_SimpleList.Initialize(logger, isMocked) |
307 | 12 | Taonnor-14572 | if (LOG_ACTIVE) then |
308 | 37 | Taonnor-14572 | logger:logTrace("TGU_SimpleList.Initialize") |
309 | 12 | Taonnor-14572 | end |
310 | Taonnor-14572 | ||
311 | 37 | Taonnor-14572 | _logger = logger |
312 | 46 | Taonnor-14572 | _control = TGU_SimpleListControl |
313 | 56 | Taonnor-14572 | |
314 | Taonnor-14572 | TGU_SimpleList.IsMocked = isMocked |
|
315 | 12 | Taonnor-14572 | |
316 | 37 | Taonnor-14572 | TGU_SimpleList.CreateSimpleListRows() |
317 | Taonnor-14572 | ||
318 | 50 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_STYLE_CHANGED, TGU_SimpleList.SetControlActive) |
319 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_IS_ZONE_CHANGED, TGU_SimpleList.SetControlActive) |
|
320 | 58 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_UNIT_GROUPED_CHANGED, TGU_SimpleList.SetControlActive) |
321 | 5 | Taonnor-14572 | end |