Mercurial > wow > buffalo2
comparison ObjectiveFrame.lua @ 18:d1812fb10ae6
ObjectiveStyle
- move tag/template logic into the corresponding GetInfo
author | Nenue |
---|---|
date | Tue, 05 Apr 2016 02:38:01 -0400 |
parents | 880828018bf4 |
children | 605e8f0e46db |
comparison
equal
deleted
inserted
replaced
17:c33497b116d6 | 18:d1812fb10ae6 |
---|---|
39 local wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'NONE' | 39 local wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'NONE' |
40 local headerFont, headerSize, headerHeight = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 18, 24 | 40 local headerFont, headerSize, headerHeight = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 18, 24 |
41 local headerOutline, headerColor, headerSpacing = 'OUTLINE', {1,1,1,1}, 2 | 41 local headerOutline, headerColor, headerSpacing = 'OUTLINE', {1,1,1,1}, 2 |
42 local wrapperPosition = {'RIGHT', UIParent, 'RIGHT', -84, 0} | 42 local wrapperPosition = {'RIGHT', UIParent, 'RIGHT', -84, 0} |
43 | 43 |
44 | |
45 mod.InitializeWrapper = function() | 44 mod.InitializeWrapper = function() |
46 | 45 |
47 mod.SetBlockStyle(Scroller, 'Scroller', 'Normal') | 46 mod.SetBlockStyle(Scroller, 'Scroller', 'Normal') |
48 mod.SetBlockStyle(Scroller, 'Scroll', 'Normal') | 47 mod.SetBlockStyle(Scroller, 'Scroll', 'Normal') |
49 mod.SetBlockStyle(Wrapper, 'Wrapper', 'Normal') | 48 mod.SetBlockStyle(Wrapper, 'Wrapper', 'Normal') |
157 | 156 |
158 mod.UpdateTracker = function(handler) | 157 mod.UpdateTracker = function(handler) |
159 local tracker = handler.Tracker | 158 local tracker = handler.Tracker |
160 print('|cFFFF4400'..tracker:GetName().. '|r:Update()') | 159 print('|cFFFF4400'..tracker:GetName().. '|r:Update()') |
161 local blockIndex = 0 | 160 local blockIndex = 0 |
162 local trackerHeight = headerHeight | 161 local trackerHeight = tracker.titleHeight |
163 | 162 |
164 | 163 |
165 previousBlock = tracker.title | 164 previousBlock = tracker.title |
166 local numWatched = handler.GetNumWatched() | 165 local numWatched = handler.GetNumWatched() |
167 local numBlocks = handler.numBlocks | 166 local numBlocks = handler.numBlocks |
224 end | 223 end |
225 local tracker = handler.Tracker | 224 local tracker = handler.Tracker |
226 local t = handler:GetBlock(blockIndex) | 225 local t = handler:GetBlock(blockIndex) |
227 t.handler = handler | 226 t.handler = handler |
228 t.info = info | 227 t.info = info |
229 t.mainStyle = 'Normal' | 228 t.mainStyle = info.mainStyle or 'Normal' |
230 t.subStyle = nil | 229 t.subStyle = info.subStyle |
231 | 230 |
232 info.blockIndex = blockIndex | 231 info.blockIndex = blockIndex |
233 if info.questID then handler.QuestBlock[info.questID] = t end | 232 if info.questID then handler.QuestBlock[info.questID] = t end |
234 if info.questLogIndex then handler.LogBlock[info.questLogIndex] = t end | 233 if info.questLogIndex then handler.LogBlock[info.questLogIndex] = t end |
235 if info.watchIndex then handler.WatchBlock[info.watchIndex] = t end | 234 if info.watchIndex then handler.WatchBlock[info.watchIndex] = t end |
236 handler.BlockInfo[blockIndex] = info | 235 handler.BlockInfo[blockIndex] = info |
237 | 236 |
238 | 237 |
239 t.attachmentHeight = 0 | 238 t.attachmentHeight = 0 |
240 --if info.isComplete then | 239 |
241 --t.status:Show() | 240 |
242 --t.status:SetText(info.completionText) | 241 |
243 --end | 242 |
244 | 243 |
245 if info.numObjectives >= 1 then | 244 if info.isComplete == 1 then |
245 if info.popupInfo then | |
246 t.status:SetText('(Click to Complete)') | |
247 else | |
248 t.status:SetText('Ready to turn in') | |
249 end | |
250 elseif info.completed then | |
251 t.status:SetText(nil) | |
252 elseif info.numObjectives >= 1 then | |
246 t.attachmentHeight = 0 | 253 t.attachmentHeight = 0 |
247 t.status:Show() | 254 t.status:Show() |
248 print(' lines to build:', info.numObjectives) | 255 print(' lines to build:', info.numObjectives) |
249 | |
250 local text = '' | 256 local text = '' |
251 | 257 |
252 mod.UpdateObjectives(t, info, text) | 258 mod.UpdateObjectives(t, info, text) |
253 elseif info.description then | 259 elseif info.description then |
254 t.status:SetText(info.description) | 260 t.status:SetText(info.description) |
263 print(' - |cFF00FFFFgenerating item button for info set') | 269 print(' - |cFF00FFFFgenerating item button for info set') |
264 info.itemButton = mod.SetItemButton(t, info) | 270 info.itemButton = mod.SetItemButton(t, info) |
265 else | 271 else |
266 --info.itemButton = nil | 272 --info.itemButton = nil |
267 end | 273 end |
268 | |
269 handler.SetBlockTags(t, info) | |
270 | 274 |
271 if previousBlock then | 275 if previousBlock then |
272 t:SetPoint('TOPLEFT', previousBlock, 'BOTTOMLEFT', 0, 0) | 276 t:SetPoint('TOPLEFT', previousBlock, 'BOTTOMLEFT', 0, 0) |
273 t:SetPoint('RIGHT', tracker,'RIGHT', 0, 0) | 277 t:SetPoint('RIGHT', tracker,'RIGHT', 0, 0) |
274 print(' anchor to|cFF0088FF', previousBlock:GetName()) | 278 print(' anchor to|cFF0088FF', previousBlock:GetName()) |
279 t:SetStyle('TrackerBlock', handler.name, t.mainStyle, t.subStyle) | 283 t:SetStyle('TrackerBlock', handler.name, t.mainStyle, t.subStyle) |
280 t:Show() | 284 t:Show() |
281 | 285 |
282 print(' |cFF00FFFF)|r -> ', t, t:GetHeight()) | 286 print(' |cFF00FFFF)|r -> ', t, t:GetHeight()) |
283 | 287 |
288 local tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t, 'TOPRIGHT' | |
284 if info.rewardInfo then | 289 if info.rewardInfo then |
285 print('has immediate reward') | 290 print('has immediate reward') |
286 if info.rewardInfo[1].type == 'currency' or info.rewardInfo[1].type == 'item' then | 291 if info.rewardInfo[1].type == 'currency' or info.rewardInfo[1].type == 'item' then |
287 t.icon:Show() | 292 t.icon:Show() |
288 t.iconLabel:SetText(info.rewardInfo[1].count) | 293 t.iconLabel:SetText(info.rewardInfo[1].count) |
289 t.icon:SetSize(t.height, t.height) | 294 t.icon:SetSize(t.height, t.height) |
295 t.icon:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0) | |
296 tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.icon, 'TOPLEFT' | |
290 t.icon:SetTexture(info.rewardInfo[1].texture) | 297 t.icon:SetTexture(info.rewardInfo[1].texture) |
291 end | 298 end |
292 | |
293 else | 299 else |
294 t.icon:Hide() | 300 t.icon:Hide() |
295 end | 301 end |
296 | 302 |
297 if Devian and Devian.InWorkspace() then | 303 if info.selected then |
304 t.SelectionOverlay:Show() | |
305 else | |
306 t.SelectionOverlay:Hide() | |
307 end | |
308 | |
309 if info.frequencyTag then | |
310 t.FrequencyTag:SetTexCoord(unpack(info.frequencyTag)) | |
311 t.FrequencyTag:Show() | |
312 t.FrequencyTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0) | |
313 tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.FrequencyTag, 'TOPLEFT' | |
314 else | |
315 t.FrequencyTag:Hide() | |
316 end | |
317 if info.typeTag then | |
318 t.TypeTag:SetTexCoord(unpack(info.typeTag)) | |
319 t.TypeTag:Show() | |
320 t.TypeTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0) | |
321 tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.TypeTag, 'TOPLEFT' | |
322 else | |
323 t.TypeTag:Hide() | |
324 end | |
325 if info.completionTag then | |
326 t.CompletionTag:SetTexCoord(unpack(info.completionTag)) | |
327 t.CompletionTag:Show() | |
328 t.CompletionTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0) | |
329 tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.CompletionTag, 'TOPLEFT' | |
330 else | |
331 t.CompletionTag:Hide() | |
332 end | |
333 | |
334 --[[if Devian and Devian.InWorkspace() then | |
298 t.debugText:Show() | 335 t.debugText:Show() |
299 t.debugText:SetText(tostring(blockIndex) .. '\n' .. tostring(info.itemButton and info.itemButton:GetName()) .. "\n" .. (tostring(t.mainStyle) .. '/' .. tostring(t.subStyle))) | 336 t.debugText:SetText(tostring(blockIndex) .. '\n' .. tostring(info.itemButton and info.itemButton:GetName()) .. "\n" .. (tostring(t.mainStyle) .. '/' .. tostring(t.subStyle))) |
300 end | 337 end]] |
301 return t | 338 return t |
302 end | 339 end |
303 | 340 |
304 mod.UpdateObjectives = function(block, info, text) | 341 mod.UpdateObjectives = function(block, info, text) |
305 local print = B.print('BlockLine') | 342 local print = B.print('BlockLine') |
306 print(' |cFF00FF00objective updates for', block:GetName()) | 343 print(' |cFF00FF00objective updates for', block:GetName()) |
307 | 344 |
308 local attachmentHeight = block.attachmentHeight | 345 local attachmentHeight = block.attachmentHeight |
309 if info.description then | 346 if info.description and not(info.earnedBy or info.isComplete) then |
310 print(' -- has description text:', select('#', info.description), info.description) | 347 print(' -- has description text:', select('#', info.description), info.description) |
311 text = info.description | 348 text = info.description |
312 end | 349 end |
313 local completionScore, completionMax = 0, 0 | 350 local completionScore, completionMax = 0, 0 |
314 | 351 |
318 | 355 |
319 if line.title then | 356 if line.title then |
320 info.title = line.title | 357 info.title = line.title |
321 line.title = nil | 358 line.title = nil |
322 end | 359 end |
323 | |
324 | 360 |
325 if line.widget then | 361 if line.widget then |
326 if attachmentHeight == 0 then | 362 if attachmentHeight == 0 then |
327 attachmentHeight = block.status.spacing | 363 attachmentHeight = block.status.spacing |
328 end | 364 end |
329 | |
330 line.widget:Show() | 365 line.widget:Show() |
331 line.widget:SetParent(block) | 366 line.widget:SetParent(block) |
332 line.widget:SetPoint('TOPLEFT', block.status, 'BOTTOMLEFT', 0, -attachmentHeight ) | 367 line.widget:SetPoint('TOPLEFT', block.status, 'BOTTOMLEFT', 0, -attachmentHeight ) |
333 print(' has a widget, height is', line.widget.height) | 368 print(' has a widget, height is', line.widget.height) |
334 attachmentHeight = attachmentHeight + line.widget.height | 369 attachmentHeight = attachmentHeight + line.widget.height |
338 | 373 |
339 if line.displayText then | 374 if line.displayText then |
340 print(' has text') | 375 print(' has text') |
341 text = text .. ((text == '') and "" or "\n") .. '|cFF'..line.displayColor.. line.displayText .. '|r' | 376 text = text .. ((text == '') and "" or "\n") .. '|cFF'..line.displayColor.. line.displayText .. '|r' |
342 end | 377 end |
343 | |
344 end | 378 end |
345 | 379 |
346 block.completionScore = completionScore / completionMax | 380 block.completionScore = completionScore / completionMax |
347 block.attachmentHeight = attachmentHeight | 381 block.attachmentHeight = attachmentHeight |
348 | 382 |
349 block.status:SetText(text) | 383 if #text >= 1 then |
350 block.status:SetWordWrap(true) | 384 block.status:SetText(text) |
385 block.status:SetWordWrap(true) | |
386 else | |
387 block.status:SetText(nil) | |
388 block.status:Hide() | |
389 end | |
390 | |
351 end | 391 end |
352 | 392 |
353 --- Objective parsers | 393 --- Objective parsers |
354 -- defines the following variables | 394 -- defines the following variables |
355 -- * height - height of whatever display widget is involved in conveying the task | 395 -- * height - height of whatever display widget is involved in conveying the task |
515 print('|cFF00FF00'..Scroll:GetName()..'|r:', Scroll:GetWidth(), Scroll:GetHeight(), | 555 print('|cFF00FF00'..Scroll:GetName()..'|r:', Scroll:GetWidth(), Scroll:GetHeight(), |
516 '|cFF00FF00'..Scroller:GetName()..'|r:', Scroller:GetWidth(), Scroller:GetHeight(), | 556 '|cFF00FF00'..Scroller:GetName()..'|r:', Scroller:GetWidth(), Scroller:GetHeight(), |
517 '|cFF00FF00'..Wrapper:GetName()..'|r:', Wrapper:GetWidth(), Wrapper:GetHeight(), | 557 '|cFF00FF00'..Wrapper:GetName()..'|r:', Wrapper:GetWidth(), Wrapper:GetHeight(), |
518 '|cFF0088FFvScrollRange|r:', floor(Scroller:GetVerticalScrollRange()+.5) | 558 '|cFF0088FFvScrollRange|r:', floor(Scroller:GetVerticalScrollRange()+.5) |
519 ) | 559 ) |
560 --]] | |
520 mod.UpdateActionButtons() | 561 mod.UpdateActionButtons() |
521 --]] | |
522 | 562 |
523 end | 563 end |
524 | 564 |
525 --- Queue any active item buttons for update for that frame | 565 --- Queue any active item buttons for update for that frame |
526 mod.UpdateActionButtons = function(updateReason) | 566 mod.UpdateActionButtons = function(updateReason) |
620 end | 660 end |
621 | 661 |
622 mod.UpdateItemButtonCooldown = function(button) | 662 mod.UpdateItemButtonCooldown = function(button) |
623 | 663 |
624 end | 664 end |
665 | |
666 local unitLevel = UnitLevel('player') | |
667 | |
668 |