Thread: Clickthrough
View Single Post
04-01-08, 10:02 AM   #4
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
You have to walk the frame hierarchy and set it for children (including un-named) of the frame that interests you.

I coded that part to help another author in locking/unlocking his frame and making it click-through.
This is the relevant part of the code:
Code:
local FrameCollection = {};
function GetChildrenTree(Frame) --- Walk the frame hierarchy recursively adding children.
		if Frame:GetChildren() then
			for _,child in pairs({Frame:GetChildren()}) do
				if child:IsMouseEnabled() then
					tinsert(FrameCollection,child);
				end
				GetChildrenTree(child);
			end 
		end
	end
	GetChildrenTree(ParentFrame);
This is to get all children of the frame I want to make click-through and put them in a table.
Then later when actually toggling clickthrough on / off this code runs
Code:
-- check lock status and enable/disable mouse.
	if ParentFrame:IsVisible() then
		if Config.Locked then
			ParentFrame:EnableMouse(false);
			for _,childframe in pairs (FrameCollection) do
				childframe:EnableMouse(false);
			end
		else
			ParentFrame:EnableMouse(true);
			for _,childframe in pairs (FrameCollection) do
				childframe:EnableMouse(true);
			end		
		end
	end
Hope it helps.

Erm wait! (I just read the initial question)
You want to make the assist frame clickthrough??
Why on earth would you want to do that?
You might as well hide it / disable it completely then.. what good is an assist frame you can't use for "assisting"?

Last edited by Dridzt : 04-01-08 at 10:12 AM.
  Reply With Quote