
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/intuition.h>
#include <proto/gadtools.h>



struct NewMenu newmenu[] = {

	{NM_TITLE,"Project",            NULL,0,0,0},
	{ NM_ITEM,"Open...",             "O" ,0,0,0},
	{ NM_ITEM,"Save",                "S" ,0,0,0},
	{ NM_ITEM,"Save As...",          "A" ,0,0,0},
	{ NM_ITEM,NM_BARLABEL,          NULL,0,0,0},
	{ NM_ITEM,"Quit",                "Q" ,0,0,0},

	{NM_TITLE,"Edit",               NULL,0,0,0},
	{ NM_ITEM,"Mark",                "B" ,0,0,0},
	{ NM_ITEM,"Cut",                 "X" ,0,0,0},
	{ NM_ITEM,"Copy",                "C" ,0,0,0},
	{ NM_ITEM,"Paste",               "V" ,0,0,0},

	{NM_TITLE,"Settings",           NULL,0,0,0},
	{ NM_ITEM,"Reset to defaults",   "D" ,0,0,0},
	{ NM_ITEM,"Reset to last saved", "L" ,0,0,0},
	{ NM_ITEM,"Previous settings",   "P" ,0,0,0},

	{  NM_END}
	};


int main (void)

{
struct Window *win;
struct Screen *scr;
struct IntuiMessage *imsg;
BOOL cont;
APTR vi = NULL;
struct Menu *menu = NULL;
struct MenuItem *item;


if (win = OpenWindowTags (NULL,
		WA_Left,20,
		WA_Top,30,
		WA_Width,100,
		WA_Height,50,
		WA_Flags,WFLG_CLOSEGADGET | WFLG_DRAGBAR | WFLG_DEPTHGADGET | WFLG_ACTIVATE | WFLG_NEWLOOKMENUS | WFLG_NOCAREREFRESH,
		WA_IDCMP,IDCMP_CLOSEWINDOW | IDCMP_VANILLAKEY | IDCMP_MENUPICK,
		TAG_END))
	{
	scr = win->WScreen;

	if (vi = GetVisualInfoA (scr,NULL))
		if (menu = CreateMenusA (newmenu,NULL))
			if (LayoutMenus (menu,vi,GTMN_NewLookMenus,TRUE,TAG_END))
				SetMenuStrip (win,menu);

	cont = TRUE;
	do	{
		if (Wait ((1L << win->UserPort->mp_SigBit) | SIGBREAKF_CTRL_C) & SIGBREAKF_CTRL_C)
			cont = FALSE;
		while (imsg = (struct IntuiMessage *) GetMsg (win->UserPort))
			{
			switch (imsg->Class)
				{
			case IDCMP_VANILLAKEY:
				if (imsg->Code == 0x1b) /* Esc */
					cont = FALSE;
				break;
			case IDCMP_CLOSEWINDOW:
				cont = FALSE;
				break;
			case IDCMP_MENUPICK:
				for (item = ItemAddress(menu,imsg->Code); item; item = ItemAddress(menu,item->NextSelect))
					{
					Printf ("menu selected: %s\n",((struct IntuiText *)item->ItemFill)->IText);
					}
				break;
				}
			ReplyMsg ((struct Message *)imsg);
			}
		}
	while (cont);

	ClearMenuStrip (win);

	if (menu) FreeMenus (menu);
	if (vi)   FreeVisualInfo (vi);

	CloseWindow (win);
	}

return (0);
}

