/*  GadTools layout toolkit
**
**  Copyright © 1993-1995 by Olaf `Olsen' Barthel
**  Freely distributable.
*/

#include "gtlayout_global.h"

VOID LIBENT
LT_Activate(REG(a0) LayoutHandle *handle,REG(d0) LONG id)
{
	struct Gadget *gadget;

	if(gadget = LTP_FindGadget(handle,id))
	{
		ObjectNode *node;

		if(GETOBJECT(gadget,node))
		{
			if(!node -> Disabled)
			{
				if(LIKE_STRING_KIND(node) || (node -> Type == INTEGER_KIND) || (node -> Type == BOOPSI_KIND && node -> Special . BOOPSI . ActivateHook))
				{
					handle -> Previous = gadget;

					if(node -> Type == BOOPSI_KIND)
					{
						if(node -> Special . BOOPSI . ActivateHook)
							CallHookPkt(node -> Special . BOOPSI . ActivateHook,(APTR)handle,node -> Host);
					}
					else
						ActivateGadget(handle -> Previous,handle -> Window,NULL);
				}
			}
		}
	}
}
