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

#include "gtlayout_global.h"

struct Gadget * __regargs
LTP_CreatePicker(LayoutHandle *handle,ObjectNode *parentNode,struct Gadget *parentGadget,struct NewGadget *ng)
{
	ObjectNode	*node;
	struct Gadget	*picker;

	if(node = LTP_CreateObjectNode(handle,PICKER_KIND,parentGadget -> GadgetID,NULL))
	{
		ng -> ng_LeftEdge	= ng -> ng_LeftEdge + ng -> ng_Width;
		ng -> ng_Width		= (4 + (((6 * handle -> GlyphWidth) / 4) & ~1) + 1 + 4);
		ng -> ng_GadgetText	= "";
		ng -> ng_UserData	= node;
		ng -> ng_Flags		= NULL;

		node -> Special . Picker . Image = NewObject(LTP_ImageClass,NULL,
			IIA_ImageType,	IMAGECLASS_PICKER,
			IA_Width,	ng -> ng_Width,
			IA_Height,	ng -> ng_Height,
		TAG_DONE);

		if(node -> Special . Picker . Image)
		{
			if(picker = CreateGadgetA(GENERIC_KIND,parentGadget,ng,NULL))
			{
				picker -> GadgetType	|= GTYP_BOOLGADGET;
				picker -> Flags 	|= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
				picker -> Activation	|= GACT_RELVERIFY;
				picker -> GadgetRender	 = node -> Special . Picker . Image;
				picker -> SelectRender	 = node -> Special . Picker . Image;

				if(parentNode -> Disabled)
					picker -> Flags |= GFLG_DISABLED;

				node -> Host = picker;

				node -> Special . Picker . Parent = parentGadget;

				return(picker);
			}
			else
				LTP_DeleteObjectNode(handle,node);
		}
	}

	return(NULL);
}
