/*
 *	sccsid:	@(#)Menu.h	1.8	5/7/87
 */

/*
 * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
 * 
 *                         All Rights Reserved
 * 
 * Permission to use, copy, modify, and distribute this software and its 
 * documentation for any purpose and without fee is hereby granted, 
 * provided that the above copyright notice appear in all copies and that
 * both that copyright notice and this permission notice appear in 
 * supporting documentation, and that the name of Digital Equipment
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior permission.  
 * 
 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */

#ifndef _Menu_h
#define _Menu_h

/****************************************************************
 *
 * Basic Menu Widget
 *
 ****************************************************************/

#define XtNname			"name"
#define XtNwindow		"window"
#define XtNx			"x"
#define XtNy			"y"
#define XtNwidth		"width"
#define XtNheight		"height"
#define XtNorientation		"orientation"
#define XtNborderWidth		"borderWidth"
#define XtNborder		"border"
#define XtNbackground		"background"
#define XtNinternalWidth	"internalWidth"
#define XtNinternalHeight	"internalHeight"
#define XtNspace		"space"
#define XtNnotify		"notify"
#define XtNparameter		"parameter"
#define XtNreason		"reason"
#define XtNmenuEntry		"menuEntry"


#ifndef _XtOrientation_e
#define _XtOrientation_e
typedef enum {XtorientHorizontal, XtorientVertical} XtOrientation;
#endif _XtOrientation_e

/*
 * Format for Callback procedure:
 *
 *    proc(tag, reason)
 *    caddr_t tag;              /* passed in by application as XtNparameter 
 *    unsigned long reason;     /* passed in by application as XtNreason 
 *
 */

typedef struct {
    Window index;	/* insert w in front of this window; NULL=append*/
    Window w;		/* window id of entry to be added */
} XtMenuEntry, *XtMenuEntryPtr;

extern Window XtMenuCreate(); /* parent, args, argCount */
    /* Window   parent;     */
    /* ArgList  args;    */
    /* int      argCount;   */

extern XtStatus XtMenuAddEntry(); /* parent, args, argCount */
    /* Window   parent;     */
    /* ArgList  args;    */
    /* int      argCount;   */

extern XtStatus XtMenuDeleteEntry(); /* parent, args, argCount */
    /* Window   parent;     */
    /* ArgList  args;    */
    /* int      argCount;   */

extern void XtMenuGetValues(); /* w, args, argCount */
    /* Window w; */
    /* ArgList  args;    */
    /* int      argCount;   */

extern void XtMenuSetValues(); /* w, args, argCount */
    /* Window w; */
    /* ArgList  args;    */
    /* int      argCount;   */

/*
 * Note: The following default menu geometry manager is provided as an
 * aid to prototyping pop-up menus.  It says "geometryYES" to everything.
 * Clients should replace this with their own geometry manager as
 * necessary.
 */
extern XtGeometryReturnCode XtMenuGeometryManager(); /* w,req,reqBox,repBox */
    /* Window w; */	/* window requesting geometry change */
    /* XtGeometryRequest req; */	/* ignored, but must be present */
    /* WindowBox *reqBox, *RepBox; */ /* size boxes for request */

#endif _Menu_h
/* DON'T ADD STUFF AFTER THIS #endif */
