Thread Tools Display Modes
Prev Previous Post   Next Post Next
02-21-14, 08:47 AM   #1
Duugu
Premium Member
 
Duugu's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2006
Posts: 851
What I'm doing wrong with secureframehandle:GetChildList()?

Ok. Please ignore my post below (can' delete it?). I just realized that tables are restricted and solved my Problem with
kids = table.new(self:GetChildren())

Thanks for peeking in

-------------------------------------------------




I currently trying to familiarize myself with the secure frame stuff. (no fun at all ... feels really complicated and undocumented)

My very first steps are this:

Lua Code:
  1. local bar = CreateFrame("Frame", "TestBar", UIParent, "SecureHandlerStateTemplate")
  2. bar:SetPoint("CENTER", UIParent, "CENTER")
  3. bar:SetSize(120, 50)
  4. bar:SetBackdrop({bgFile="Interface\\Tooltips\\UI-Tooltip-Background", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile = false, tileSize = 1, edgeSize = 10, insets = { left = 0, right = 0, top = 0, bottom = 0 }})
  5. bar:SetAttribute('_onstate-stance', [[
  6.     local btn = self:GetFrameRef('TestButton1')
  7.     if btn then
  8.         print(btn:GetName())
  9.     end
  10.     local kids
  11.     self:GetChildList(kids)
  12.     if kids then
  13.         for i, v in ipairs(kids) do
  14.             print(i)
  15.         end
  16.     end
  17.  
  18. ]])
  19. RegisterStateDriver(bar, "stance", "[stance:0] stance0; [stance:1] stance1; [stance:2] stance2; [stance:3] stance3; [stance:4] stance4; [stance:5] stance5;")
  20.  
  21.    
  22. local TestButton1 = CreateFrame("CheckButton", "TestButton1", bar, "SecureHandlerClickTemplate, ActionButtonTemplate")
  23. TestButton1:SetPoint("LEFT", bar, "LEFT")
  24. TestButton1:SetSize(40, 40)
  25. TestButton1:EnableMouse(true)
  26. TestButton1:RegisterForClicks("AnyUp")
  27. TestButton1:SetAttribute("_onclick", [[
  28.     print(self:GetParent():GetName())
  29. ]])
  30.  
  31. local TestButton2 = CreateFrame("CheckButton", "TestButton2", bar, "SecureHandlerClickTemplate, ActionButtonTemplate")
  32. TestButton2:SetPoint("LEFT", bar, "LEFT", 50, 0)
  33. TestButton1:SetSize(40, 40)
  34. TestButton2:EnableMouse(true)
  35. TestButton2:RegisterForClicks("AnyUp")
  36. TestButton2:SetAttribute("_onclick", [[
  37.     print(self:GetParent():GetName())
  38. ]])
  39.        
  40. bar:SetFrameRef("TestButton1", TestButton1)
  41. bar:SetFrameRef("TestButton2", TestButton2)

This code fails on GetChildList with

Code:
14x FrameXML\RestrictedExecution.lua:397: Call failed: FrameXML\RestrictedFrames.lua:197: attempt to get length of local "result" (a nil value)
<in C code>
FrameXML\RestrictedExecution.lua:397: in function <FrameXML\RestrictedExecution.lua:390>
(tail call): ?
(tail call): ?
FrameXML\SecureHandlers.lua:113: in function <FrameXML\SecureHandlers.lua:108>
<in C code>
FrameXML\SecureStateDriver.lua:114: in function <FrameXML\SecureStateDriver.lua:95>
FrameXML\SecureStateDriver.lua:164: in function <FrameXML\SecureStateDriver.lua:146>
<in C code>
FrameXML\SecureStateDriver.lua:11: in function <FrameXML\SecureStateDriver.lua:8>
(tail call): ?
BAB-0.0.1\Core.lua:1501: in main chunk

Locals:
workingEnv = <userdata>
ctrlHandle = <userdata>
pcallFlag = false
LOCAL_Function_Environment_Manager = <function> defined @Interface\FrameXML\RestrictedExecution.lua:209
error = <function> defined =[C]:-1
tostring = <function> defined =[C]:-1
As this is my very first try to do something with the complex secure handler thingi I have no idea what's wrong.

I took GetChildList() from Iriel’s Field Guide to Secure Handlers which states:
<...>Handles can be obtained for other frames as well through the following mechanisms:
• Via the return values from the handle:GetParent(), handle:GetChildren(), and handle:GetChildList(tbl) methods.<...>


Could anyone please show me what I'm doing wrong? I'm lost.

Last edited by Duugu : 02-21-14 at 09:08 AM.
  Reply With Quote
 

WoWInterface » Developer Discussions » General Authoring Discussion » What I'm doing wrong with secureframehandle:GetChildList()?


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off