#ifndef VNC_MENU_H
#define VNC_MENU_H
/*********************************************************
 ** ViNCEd                                              **
 ** a DOS - window handler                              **
 **                                                     **
 ** © 1991-97 THOR-Software inc.                        **
 ** Version 3.30                                        **
 **                                                     **
 ** program version 1.23 05/03/91       THOR            **
 ** update  version 1.25 06/19/91       THOR            **
 ** header file 06/19/91                THOR            **
 ** updated to 3.30      03/31/97       THOR            **
 **                                                     **
 ** ViNCEd Menu constructor                             **
 **-----------------------------------------------------**
 **                                                     **
 ** all use at your own risk,etc.,etc.                  **
 **                                                     **
 ** Everything declared as "reserved" or                **
 ** "not used" is NOT free for your use,                **
 ** it will propably used in a later release.           **
 ** All FREE entries are free for public                **
 ** use and are, if not otherwise noticed,              **
 ** initialized as ZERO                                 **
 *********************************************************/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

struct ViNCMenu {
        UBYTE           vmc_Type;       /* see definitions below */
        UBYTE           vmc_Flags;      /* flags for intuition,
                                           goes to flags fields, lo byte */
        char            vmc_Shortcut;   /* shortcut character, if any */
        char            vmc_Text[1];    /* title goes here. MUST be NUL
                                           terminated string, more than one
                                           character is allowed, of course,
                                           but C syntax is too limiting to
                                           define it differently.
                                        */
};

/* The whole menu is simply a bunch of these structures, one followed
   by another. The list is terminated with an item of type VMC_LASTMENU.
   See the localization drawer sys1.asm for an example how this looks
   like */

/* Type definitions */

/* a menu title */
#define VMC_MENU        1

/* a menu item */
#define VMC_MENUITEM    2

/* a subitem of an item */
#define VMC_SUBITEM     3


/* the last menu at all */
#define VMC_LASTMENU    0x81

/* the last menu item in a menu */
#define VMC_LASTITEM    0x82

/* the last subitem in a list of subitems */
#define VMC_LASTSUBITEM 0x83

/* the last bit itself */
#define VMC_LAST_BIT    7
#define VMC_LAST_MASK   0x80

/* a bit that this is a special function, not a string */
#define VMC_ISFUNC_BIT  6
#define VMC_ISFUNC_MASK 0x40

/* the bits giving the function index and the type */
#define VMC_FUNCMASK    0x3c
#define VMC_FUNCSHIFT   2
#define VMC_TYPEMASK    3

/* Shift by FUNCSHIFT to get the function index.
   Functions 0..9 are the macro texts of macros 0..9
   10 to 12 are the history,upper and lower size
   13 to 15 are the copyright texts */

#endif

