/*
**	GadTools layout toolkit
**
**	Copyright © 1993-1996 by Olaf `Olsen' Barthel
**		Freely distributable.
**
**	:ts=4
*/

#ifndef _GTLAYOUT_GLOBAL_H
#include "gtlayout_global.h"
#endif

#ifdef DO_MENUS

	/* LTP_MakeMenu(RootMenu *Root,MenuNode *Menu,struct NewMenu *Template):
	 *
	 *	Create a single menu and fill it in.
	 */

MenuNode *
LTP_MakeMenu(RootMenu *Root,MenuNode *Menu,struct NewMenu *Template)
{
		// If none is provided, roll our own

	if(!Menu)
		Menu = (MenuNode *)AsmAllocPooled(Root->Pool,sizeof(MenuNode),SysBase);

	if(Menu)
	{
		STRPTR Label = Template->nm_Label;

			// Use the screen font for the layout

		SetFont(&Root->RPort,Root->DrawInfo->dri_Font);

			// Fill in the size

		Menu->Menu.Width	= TextLength(&Root->RPort,Label,strlen(Label)) + 6;
		Menu->Menu.Height	= Root->Screen->BarHeight;

		Menu->Menu.MenuName	= (BYTE *)Label;
		Menu->UserData		= Template->nm_UserData;

			// Return to the original font

		SetFont(&Root->RPort,Root->Font);

			// Take care of the only valid bit

		if(!(Template->nm_Flags & NM_MENUDISABLED))
			Menu->Menu.Flags = MENUENABLED;
	}

	return(Menu);
}

#endif	/* DO_MENUS */
