comparison UI.lua @ 72:da5ff1fc9fb6

- Fixed an issue with creating more than one output channel per UI session. - Cleanup of globals for slightly better performance when printing to a lot of channels at once
author Nenue
date Sat, 09 Apr 2016 05:51:19 -0400
parents d73b883b415b
children 80ad43c94033
comparison
equal deleted inserted replaced
71:d636ff1b17ce 72:da5ff1fc9fb6
318 t_info[k] = v 318 t_info[k] = v
319 end 319 end
320 end 320 end
321 -- new channel overrides 321 -- new channel overrides
322 if isNew then 322 if isNew then
323 if D.sigID[sig]then -- find a non-clashing signature 323 if D.sigID[sig] then -- find a non-clashing signature
324 local result, i = sig, 1 324 local result, i = sig, 1
325 while D.sigID[result] do 325 while D.sigID[result] do
326 result = sig .. i 326 result = sig .. i
327 i = i + 1 327 i = i + 1
328 end 328 end
329 t_info.signature = result 329 t_info.signature = result
330 end 330 end
331 t_id = self.max_channel + 1 331 t_id = self.max_channel + 1
332 t_info.index = t_id 332 t_info.index = t_id
333
334 self.max_channel = t_id
333 --@debug@ 335 --@debug@
334 --print('setchan(3a) t_id, isNew, sig, t_info.signature=', t_id, isNew, sig, t_info.signature)--@end-debug@ 336 --print('setchan(3a) t_id, isNew, sig, t_info.signature=', t_id, isNew, sig, t_info.signature)--@end-debug@
335 else 337 else
336 --@debug@ 338 --@debug@
337 --print('setchan(3b) t_id, isNew, sig, t_info.signature=', t_id, isNew, sig, t_info.signature)--@end-debug@ 339 --print('setchan(3b) t_id, isNew, sig, t_info.signature=', t_id, isNew, sig, t_info.signature)--@end-debug@
450 result[i] = tostring(id) .. ' = ' .. (self.console[id].enabled and 'ON' or 'OFF') 452 result[i] = tostring(id) .. ' = ' .. (self.console[id].enabled and 'ON' or 'OFF')
451 end 453 end
452 self:Print('toggled: '..concat(result, ', ')) 454 self:Print('toggled: '..concat(result, ', '))
453 end 455 end
454 end 456 end
457
458 local frame_helper = CreateFrame('Frame', 'DevianFrameHelper', UIParent)
459 frame_helper.fill = frame_helper:CreateTexture(nil, 'BACKGROUND')
460 frame_helper.fill:SetTexture(1,0,0,1)
461 frame_helper.fill:SetAllPoints(frame_helper)
462 D.FrameHelper_Update = function(input, editbox)
463 local frame, func = D:GetArgs(input,2)
464
465 if type(frame) == 'string' then
466 if not _G[frame] then
467 return
468 end
469 frame = _G[frame]
470 elseif type(frame) == 'table' and frame.IsVisible then
471 local x, y = frame:GetCenter()
472 if not (x or y) then
473 frame_helper:ClearAllPoints()
474 frame_helper:SetPoint('CENTER')
475 end
476 else
477 local frame = EnumerateFrames(); -- Get the first frame
478 while frame do
479 if ( frame:IsVisible() and MouseIsOver(frame) ) then
480 print(frame:GetName() or string.format("[Unnamed Frame: %s]", tostring(frame)));
481 end
482 frame = EnumerateFrames(frame); -- Get the next frame
483 end
484 end
485
486 frame_helper:SetPoint('TOPLEFT', UIParent, 'BOTTOMLEFT', frameHandle:GetLeft(), frameHandle:GetTop())
487 frame_helper:SetPoint('BOTTOMRIGHT', UIParent, 'BOTTOMLEFT', frameHandle:GetRight(), frameHandle:GetBottom())
488
489 end
490
491
492 local frame_guide_init = function(self)
493 self.testU = self.testU or self:CreateTexture('TestU', 'OVERLAY', 'VnTestLine')
494 self.testB = self.testB or self:CreateTexture('TestB', 'OVERLAY', 'VnTestLine')
495 self.testL = self.testL or self:CreateTexture('TestL', 'OVERLAY', 'VnTestLine')
496 self.testR = self.testR or self:CreateTexture('TestR', 'OVERLAY', 'VnTestLine')
497 end
498 local frame_guide = function(self, target)
499 if not target then return end
500 if target:IsDragging() then return end
501 local thickness = 1
502 local midX, midY = target:GetCenter()
503 local width, height = target:GetWidth() * 1.5, target:GetHeight() * 1.5
504 --print('frame', target:GetLeft(), target:GetTop(), target:GetRight(), target:GetBottom())
505 self.testB:ClearAllPoints()
506 self.testB:SetPoint('TOP', UIParent, 'BOTTOMLEFT', midX, target:GetBottom())
507 self.testB:SetSize(width,thickness)
508
509 self.testU:ClearAllPoints()
510 self.testU:SetPoint('BOTTOM', UIParent, 'BOTTOMLEFT', midX, target:GetTop())
511 self.testU:SetSize(width,thickness)
512
513 self.testL:ClearAllPoints()
514 self.testL:SetPoint('RIGHT', UIParent, 'BOTTOMLEFT', target:GetLeft(), midY)
515 self.testL:SetSize(thickness,height)
516
517 self.testR:ClearAllPoints()
518 self.testR:SetPoint('LEFT', UIParent, 'BOTTOMLEFT', target:GetRight(), midY)
519 self.testR:SetSize(thickness,height)
520 end