/*** menu.h - macros and constants for menu.c * * Copyright 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) */