Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*** menu.h - macros and constants for menu.c
* * Copyright <C> 1988, Microsoft Corporation * * Revision History: * 26-Nov-1991 mz Strip off near/far * *************************************************************************/
#if !defined(CW)
# error This module must be compiled with /DCW
#else
#define DLG_CONST
/****************************************************************************
* * * Editor constants * * * * C_MENUSTRINGS_MAX * * C_CITEM_MAX * * * ****************************************************************************/
#define C_MENUSTRINGS_MAX 128
#define C_ITEM_MAX 21
/****************************************************************************
* * * Actions associated with menu items * * * * Each menu item keeps a value in bParamUser that tells wich kind of action* * it is associated with (dialog box, command, macro or "other") and gives * * an index to the associated table (DialogData, CommandData or MacroData). * * * ****************************************************************************/
/*
* COMDATA structure used for menu items directly relating to editor commands */ typedef struct comData { PCMD pCmd; /* pointer to command */ flagType fKeepArg; /* arg to be used or not */ };
/*
* Mask to get the menu item type */ #define iXXXMENU 0xC0
/*
* Menu item action types */ #define iDLGMENU 0x00
#define iCOMMENU 0x40
#define iMACMENU 0x80
#define iOTHMENU 0xC0
/*
* CommandData indices for menu items directly relating to editor commands */ #define iCOMNEXT iCOMMENU /* 0 */
#define iCOMSAVEALL (1 + iCOMNEXT) /* 1 */
#define iCOMSHELL (1 + iCOMSAVEALL) /* 2 */
#define iCOMUNDO (1 + iCOMSHELL) /* 3 */
#define iCOMREPEAT (1 + iCOMUNDO) /* 0 */
#define iCOMCUT (1 + iCOMREPEAT) /* 0 */
#define iCOMCOPY (1 + iCOMCUT) /* 4 */
#define iCOMPASTE (1 + iCOMCOPY) /* 0 */
#define iCOMDROPANCHOR (1 + iCOMPASTE) /* 5 */
#define iCOMANCHOR (1 + iCOMDROPANCHOR) /* 0 */
#define iCOMBOXMODE (1 + iCOMANCHOR) /* 0 */
#define iCOMREADONLY (1 + iCOMBOXMODE) /* 6 */
#define iCOMFINDSEL (1 + iCOMREADONLY) /* 0 */
#define iCOMFINDLAST (1 + iCOMFINDSEL) /* 7 */
#define iCOMNEXTERR (1 + iCOMFINDLAST) /* 8 */
#define iCOMDEBUGBLD (1 + iCOMNEXTERR) /* 9 */
#define iCOMRECORD (1 + iCOMDEBUGBLD) /* 10 */
#define iCOMRESIZE (1 + iCOMRECORD) /* 11 */
#define iCOMMAXIMIZE (1 + iCOMRESIZE) /* 12 */
/*
* MacroData indices for menu items directly relating to pre-defined macros */ #define iMACSAVE iMACMENU /* 0 */
#define iMACQUIT (1 + iMACSAVE) /* 1 */
#define iMACREDO (1 + iMACQUIT) /* 2 */
#define iMACCLEAR (1 + iMACREDO) /* 3 */
#define iMACPREVERR (1 + iMACCLEAR) /* 4 */
#define iMACSETERR (1 + iMACPREVERR) /* 5 */
#define iMACCLEARLIST (1 + iMACSETERR) /* 6 */
#define iMACERRWIN (1 + iMACCLEARLIST) /* 7 */
#define iMACHSPLIT (1 + iMACERRWIN) /* 8 */
#define iMACVSPLIT (1 + iMACHSPLIT) /* 9 */
#define iMACCLOSE (1 + iMACVSPLIT) /* 10 */
#define iMACASSIGNKEY (1 + iMACCLOSE) /* 11 */
#define iMACRESTORE (1 + iMACASSIGNKEY) /* 12 */
/****************************************************************************
* * * Menu items with variable content and/or meaning: We store their set of * * data in an ITEMDATA structure and do the update with the UPDITEM macro * * * ****************************************************************************/
/*
* ITEMDATA structure used for menu items with variable content and/or meaning */ typedef struct { BYTE ichHilite; BYTE bParamUser; WORD wParamUser; } ITEMDATA, *PITEMDATA;
/*
* UPDITEM (pItem, pItemData) * * Where: * pItem is an object of type PMENUITEM * pItemData is an object of type PITEMDATA * * Will update Item with ItemData data: * * pItem->ichHilite with pItemData->ichHilite * pItem->bParamUser with pItemData->bParamUser * pItem->wParamUser with pItemData->wParamUser */ #define UPDITEM(pItem, pItemData) \
(pItem)->ichHilite = (pItemData)->ichHilite, \ (pItem)->bParamUser = (pItemData)->bParamUser,\ (pItem)->wParamUser = (pItemData)->wParamUser
/****************************************************************************
* * * Prdefined Menus and Menuitems data * * * * Note: * * * * MENU ID's are comprised of two parts: * * * * . The high byte identifies the parent menu * * . The low byte identifies the actual menu item. * * * * The low byte - 1 can be used as an index into the respective menu * * tables providing that the item is in the STATIC part of the menu * * * * For the 'dynamic' part of certain predefined menus, we use id's with * * low byte values with high bit set. This allow us to still use the low * * byte as an index for any extension-supplied items we might insert * * between the static part and the dynamic part. * * * * Menus with dynamic parts are the File and Run menus (for now..) * * * ****************************************************************************/
/*
* File Menu * * Note: Alternate files items are dynamic * */ #define MID_FILE 0x0000
#define RX_FILE 2
#define ICH_FILE 0
#define CCH_FILE 4
#define CCIT_FILE 12
#define WP_FILE ((12<<9)|(21<<4)|0)
#define MID_NEW (MID_FILE + 1)
#define MID_OPEN (MID_FILE + 2)
#define MID_MERGE (MID_FILE + 3)
#define MID_NEXT (MID_FILE + 4)
#define MID_SAVE (MID_FILE + 5)
#define MID_SAVEAS (MID_FILE + 6)
#define MID_SAVEALL (MID_FILE + 7)
#define MID_PRINT (MID_FILE + 9)
#define MID_SHELL (MID_FILE + 10)
#define MID_EXIT (MID_FILE + 12)
#define MID_FILE1 (MID_FILE + 0x80 + 0)
#define MID_FILE2 (MID_FILE + 0x80 + 1)
#define MID_FILE3 (MID_FILE + 0x80 + 2)
#define MID_FILE4 (MID_FILE + 0x80 + 3)
#define MID_FILE5 (MID_FILE + 0x80 + 4)
#define MID_FILE6 (MID_FILE + 0x80 + 5)
#define MID_FILE7 (MID_FILE + 0x80 + 6)
#define MID_MORE (MID_FILE + 0x80 + 7)
/*
* Edit Menu */ #define MID_EDIT 0x0100
#define RX_EDIT 8
#define ICH_EDIT 0
#define CCH_EDIT 4
#define CCIT_EDIT 18
#define WP_EDIT ((18<<9)|(18<<4)|1)
#define MID_UNDO (MID_EDIT + 1)
#define MID_REDO (MID_EDIT + 2)
#define MID_REPEAT (MID_EDIT + 3)
#define MID_CUT (MID_EDIT + 5)
#define MID_COPY (MID_EDIT + 6)
#define MID_PASTE (MID_EDIT + 7)
#define MID_CLEAR (MID_EDIT + 8)
#define MID_DROPANCHOR (MID_EDIT + 10)
#define MID_ANCHOR (MID_EDIT + 11)
#define MID_BOXMODE (MID_EDIT + 13)
#define MID_READONLY (MID_EDIT + 14)
#define MID_SETREC (MID_EDIT + 16)
#define MID_RECORD (MID_EDIT + 17)
#define MID_EDITMACROS (MID_EDIT + 18)
/*
* Search Menu */ #define MID_SEARCH 0x0200
#define RX_SEARCH 14
#define ICH_SEARCH 0
#define CCH_SEARCH 6
#define CCIT_SEARCH 14
#define WP_SEARCH ((14<<9)|(14<<4)|2)
#define MID_FIND (MID_SEARCH + 1)
#define MID_FINDSEL (MID_SEARCH + 2)
#define MID_FINDLAST (MID_SEARCH + 3)
#define MID_REPLACE (MID_SEARCH + 4)
#define MID_FINDFILE (MID_SEARCH + 5)
#define MID_NEXTERR (MID_SEARCH + 7)
#define MID_PREVERR (MID_SEARCH + 8)
#define MID_SETERR (MID_SEARCH + 9)
#define MID_ERRWIN (MID_SEARCH + 10)
#define MID_GOTOMARK (MID_SEARCH + 12)
#define MID_DEFMARK (MID_SEARCH + 13)
#define MID_SETMARK (MID_SEARCH + 14)
/*
* Make Menu */ #define MID_MAKE 0x0300
#define RX_MAKE 22
#define ICH_MAKE 0
#define CCH_MAKE 4
#define CCIT_MAKE 8
#define WP_MAKE ((8<<9)|(8<<4)|3)
#define MID_COMPILE (MID_MAKE + 1)
#define MID_BUILD (MID_MAKE + 2)
#define MID_REBUILD (MID_MAKE + 3)
#define MID_TARGET (MID_MAKE + 4)
#define MID_SETLIST (MID_MAKE + 6)
#define MID_EDITLIST (MID_MAKE + 7)
#define MID_CLEARLIST (MID_MAKE + 8)
/*
* Run Menu * * Note: User menu items are dynamic * */ #define MID_RUN 0x0400
#define RX_RUN 28
#define ICH_RUN 0
#define CCH_RUN 3
#define CCIT_RUN 5
#define WP_RUN ((5<<9)|(12<<4)|4)
#define MID_EXECUTE (MID_RUN + 1)
#define MID_DEBUG (MID_RUN + 2)
#define MID_RUNAPP (MID_RUN + 4)
#define MID_CUSTOM (MID_RUN + 5)
#define MID_USER1 (MID_RUN + 0x80 + 0)
#define MID_USER2 (MID_RUN + 0x80 + 1)
#define MID_USER3 (MID_RUN + 0x80 + 2)
#define MID_USER4 (MID_RUN + 0x80 + 3)
#define MID_USER5 (MID_RUN + 0x80 + 4)
#define MID_USER6 (MID_RUN + 0x80 + 5)
/*
* Window Menu */ #define MID_WINDOW 0x0500
#define RX_WINDOW 33
#define ICH_WINDOW 0
#define CCH_WINDOW 6
#define CCIT_WINDOW 5
#define WP_WINDOW ((5<<9)|(5<<4)|5)
#define MID_SPLITH (MID_WINDOW + 1)
#define MID_SPLITV (MID_WINDOW + 2)
#define MID_SIZE (MID_WINDOW + 3)
#define MID_MAXIMIZE (MID_WINDOW + 4)
#define MID_CLOSE (MID_WINDOW + 5)
/*
* Options Menu */ #define MID_OPTIONS 0x0600
#define RX_OPTIONS 41
#define ICH_OPTIONS 0
#define CCH_OPTIONS 7
#define CCIT_OPTIONS 4
#define WP_OPTIONS ((4<<9)|(4<<4)|6)
#define MID_DEBUGBLD (MID_OPTIONS + 1)
#define MID_ENVIRONMENT (MID_OPTIONS + 2)
#define MID_ASSIGNKEY (MID_OPTIONS + 3)
#define MID_SETSWITCH (MID_OPTIONS + 4)
/*
* Extension Menus are last+1 through last+n */ #define MID_EXTENSION 0x700
#if !defined(EXTINT)
/****************************************************************************
* * * FARDATA.C global variables * * * ****************************************************************************/
int cMenuStrings;
char * MenuTitles []; char * HelpStrings []; char * HelpContexts [];
char * MacroData []; struct comData CommandData [];
ITEMDATA InitItemData [];
ITEMDATA SelModeItemData []; ITEMDATA MaximizeItemData []; #endif
#endif /* if defined(CW) */
|