{^MM010.APMM010.ABACKUP MM010.RELEASE_NOTES,KITINSTAL.COM,MENU_MANAGER.UID,MENU_MANAGER.OBJ,MM_MESSAGE_MBX.OBJ,MM_HELP.OBJ,DECWSHARLIBRARIES.OPT,MM_HELP.HLB,MM_STARTUP.COM,DECW$MM.MENU MM010.A/SAVE/INTER/GROUP=0/BLO=2048 HELLER hRǒV5.1 _VULCAN::  _DENEVA$DUA0: V5.0 =*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM010.RELEASE_NOTES;2+,y./h 4J-0123KPWO56(8ǒ7`L;8ǒ89ǒGhHJ>Users of this program should create a menu file (default name:JSYS$LOGIN:DECW$MM.MENU) containing a description of the menu commands theyIwant. This is a plain text file, containing two lines for each user menuGitem: the menu button text and the DCL command line to effect the menu function.8When the program is running, it creates a system logicalI_MM_MESSAGE_MAILBOX which points to a mailbox device. AnythingGwritten to this mailbox is displayed in the Menu Manager's text window.FThe program is best started up in a user's DECW$LOGIN.COM as a spawned sub-process.H------------------------------------------------------------------------IComments, bug reports, and questions should be directed to Robert Heller:' ARPANet (NSFNET): Heller@cs.umass.edu BITNET: Heller@UMass.BitNet( FidoNet: Robert Heller @ 1:321/153.0 BIX: locks.hill.bbs- UMass LAN: COINS::HELLER (or VIS::HELLER)`^MM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8QY7*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8+,0 ./h 4Q-0123KPWO56Bǒ7 ǒ89GhHJ:$!--------------------------------------------------------O$! KITINSTAL.COM - Kit Install procedure file for Robert Heller's Menu Manager5$! Robert Heller Created on Wed Oct 18 12:34:58 1989$! Last mod - :$!-------------------------------------------------------- $! Contents::$!--------------------------------------------------------*$ on control_y then vmi$callback CONTROL_Y$ on error then exit $status7$ if p1 .nes. "VMI$_INSTALL" then exit vmi$_unsupported$ type sys$inputH Installation of Robert Heller's Menu Manager V1.0 (DECWindows utility)$ !F$ ! Make sure that we have enough disk space to succeed and set up the$ ! environment.$ !$ mm$peak = 250$ mm$net = 200$ !1$ vmi$callback CHECK_NET_UTILIZATION mm$ 'mm$net'5$ if .not. mm$ then vmi$callback MESSAGE e noblocks -D "This kit requires ''mm$net' additional blocks after installation."%$ if .not. mm$ then exit vmi$_failure/$ vmi$callback SET safety conditional 'mm$peak'$ vmi$callback set purge YESrƢMM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8Ql$ !H$ ! Setup directories where files should go, and various other defaults.$ !)$ mm$exe_directory == "SYS$SYSTEM:"*$ mm$dat_directory == "SYS$LIBRARY:"'$ mm$hlb_directory == "SYS$HELP:"+$ mm$example_directory == "SYS$EXAMPLES:"?$ mm$source_directory == "SYS$SYSROOT:[MENU_MANAGER_SOURCE]"$ !B$ ! Now verify each of these defaults and create directories, etc.$ !#$exe_dir: ! first .EXE directory...E$ vmi$callback ASK mm$exe_directory "Directory to place .EXE files" -< 'mm$exe_directory' S "Enter a directory or a logical name"<$ if F$PARSE(mm$exe_directory) .nes. "" then GOTO exe_dir_ok$ !<$ ! Exe directory does not exist. See if we should make it.$ !!$ vmi$callback MESSAGE w nodire -I "The directory for the .EXE files (''mm$exe_directory') does not exist"L$ vmi$callback ASK mm$ok "Should I make this directory" Y B "Type Yes or No""$ if .not. mm$ok then GOTO exe_dir7$ vmi$callback create_directory user 'mm$exe_directory' $exe_dir_ok:#$dat_dir: ! first .EXE directory...L$ vmi$callback ASK mm$dat_directory "Directory to place data (.UID) files" -< 'mm$dat_directory' S "Enter a directory or a logical name"<$ if F$PARSE(mm$dat_directory) .nes. "" then GOTO dat_dir_ok$ !<$ ! dat directory does not exist. See if we should make it.$ !!$ vmi$callback MESSAGE w nodire -I "The directory for the data files (''mm$dat_directory') does not exist"L$ vmi$callback ASK mm$ok "Should I make this directory" Y B "Type Yes or No""$ if .not. mm$ok t;s-MM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8Q`hen GOTO dat_dir7$ vmi$callback create_directory user 'mm$dat_directory' $dat_dir_ok:#$hlb_dir: ! first .hlb directory...M$ vmi$callback ASK mm$hlb_directory "Directory to place help library files" -< 'mm$hlb_directory' S "Enter a directory or a logical name"<$ if F$PARSE(mm$hlb_directory) .nes. "" then GOTO hlb_dir_ok$ !<$ ! hlb directory does not exist. See if we should make it.$ !!$ vmi$callback MESSAGE w nodire -Q "The directory for the help library files (''mm$hlb_directory') does not exist"L$ vmi$callback ASK mm$ok "Should I make this directory" Y B "Type Yes or No""$ if .not. mm$ok then GOTO hlb_dir7$ vmi$callback create_directory user 'mm$hlb_directory' $hlb_dir_ok:'$example_dir: ! first .EXE directory...L$ vmi$callback ASK mm$example_directory "Directory to place example files" -@ 'mm$example_directory' S "Enter a directory or a logical name"D$ if F$PARSE(mm$example_directory) .nes. "" then GOTO example_dir_ok$ !@$ ! example directory does not exist. See if we should make it.$ !!$ vmi$callback MESSAGE w nodire -P "The directory for the example files (''mm$example_directory') does not exist"L$ vmi$callback ASK mm$ok "Should I make this directory" Y B "Type Yes or No"&$ if .not. mm$ok then GOTO example_dir;$ vmi$callback create_directory user 'mm$example_directory'$example_dir_ok:$ !7$ ! Now see if the source code should be made available$ !'$ vmi$callback ASK mm$provide_sources -G "Do you want the source code to be available (about 110 blockzfMM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8Q s)" Y B - "Type Yes or No"3$ if .not. mm$provide_sources then GOTO skip_source($source_dir: ! first source directory...J$ vmi$callback ASK mm$source_directory "Directory to place source files" -? 'mm$source_directory' S "Enter a directory or a logical name"B$ if F$PARSE(mm$source_directory) .nes. "" then GOTO source_dir_ok$ !?$ ! source directory does not exist. See if we should make it.$ !!$ vmi$callback MESSAGE w nodire -N "The directory for the source files (''mm$source_directory') does not exist"L$ vmi$callback ASK mm$ok "Should I make this directory" Y B "Type Yes or No"%$ if .not. mm$ok then GOTO source_dir:$ vmi$callback create_directory user 'mm$source_directory'$source_dir_ok: $skip_source:$ !7$ ! Questions done. Tell user he can go to lunch, etc.$ !$questions_done:$ say ""E$ say " No further questions will be asked during the installation."$!$! For all files in kit, $!#$! Set file owner = [1,4] (SYSTEM)7$! Set file protection = (S:RWED, O:RWED, G:RWED, W:RE)$!@$ on control_y then continue C$ on error then continue ;$ set message/nofacility/noseverity/notext/noidentificationQ$ set file/nolog/owner=[1,4]/protection=(S:RWED, O:RWED, G:RWED, W:RE)/truncate - vmi$kwd:*.*;*3$ set message/facility/severity/text/identification$ on error then exit $status*$ on control_y then vmi$callback CONTROL_Y$$ !$ ! link the .EXE file$ !I$ link /notraceback/g&MM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8Q+ nodebug/nodebug/nomap /exe=vmi$kwd:menu_manager.exe -: vmi$kwd:Menu_Manager.obj,mm_message_mbx.obj,mm_help.obj,-" DECWSHARLIBRARIES.OPT/opt$ !$ ! stash the files.$ !$ ! Executables:G$ vmi$callback provide_image mm$ menu_manager.exe 'mm$exe_directory'$ ! Example menu:K$ vmi$callback provide_file mm$ decw$mm.menu 'mm$example_directory'$ ! Help libraryG$ vmi$callback provide_file mm$ mm_help.hlb 'mm$hlb_directory' $ ! UID fileG$ vmi$callback provide_file mm$ menu_manager.uid 'mm$dat_directory'$ !$ ! setup the startup file$ !/$ open/write mm$upd_scom vmi$kwd:mm_updscom.comK$ write mm$upd_scom "$ edit/edt/nocommand/nojournal vmi$kwd:mm_startup.com"H$ write mm$upd_scom "subs/$$EXE_DIRECTORY$$/",mm$exe_directory,"/ whole"H$ write mm$upd_scom "subs/$$HLB_DIRECTORY$$/",mm$hlb_directory,"/ whole"H$ write mm$upd_scom "subs/$$DAT_DIRECTORY$$/",mm$dat_directory,"/ whole"$ write mm$upd_scom "exit"$ write mm$upd_scom "$ exit"$ close mm$upd_scom!$ @vmi$kwd:mm_updscom.com/out=nl:$ !B$ vmi$callback provide_file mm$ mm_startup.com sys$common:[sysmgr])$ vmi$callback set startup mm_startup.com$ type sys$input:KThe Menu_Manager needs some system logical names defined and the executableFneeds to be installed. A file named MM_STARTUP.COM will be placed in NSYS$COMMON:[SYSMGR]. This file should be run from SYS$STARTUP:SYSTARTUP_V5.COM<on all of the systems in the VAXCluster that run DECWindows.$ !$ ! do sources...$ !/$ if .no4vaMM010.A0 7[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]KITINSTAL.COM;8Qt. mm$provide_sources then GOTO mm_done$ ! $ vmi$callback restore_saveset bL$ vmi$callback provide_file mm$ menu_manager_const.dat 'mm$source_directory'L$ vmi$callback provide_file mm$ menu_manager_const.uil 'mm$source_directory'L$ vmi$callback provide_file mm$ menu_manager_const.h 'mm$source_directory'$!L$ vmi$callback provide_file mm$ menu_manager.c 'mm$source_directory'L$ vmi$callback provide_file mm$ mm_message_mbx.c 'mm$source_directory'L$ vmi$callback provide_file mm$ mm_help.c 'mm$source_directory'$!L$ vmi$callback provide_file mm$ menu_manager.uil 'mm$source_directory'$!L$ vmi$callback provide_file mm$ decwsharlibraries.opt 'mm$source_directory'$!L$ vmi$callback provide_file mm$ mm_help.hlp 'mm$source_directory'$!L$ vmi$callback provide_file mm$ makefile. 'mm$source_directory'$ ! $mm_done:$ exit vmi$_success;*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;20+,I.3/h 43)-0123KPWO456$7ǒ7o7ǒ89ǒGhHJ(cMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203EAro|DRM 1.0VMS UIL CompilerV1.0-00018-OCT-1989 10:44:49.61MENU_MANAGERv1.0  :MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203 DMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203|2ro|"nH .X HELP_DIALOGTEXT_FILE_SELECTION_BOXMENU_FILE_SELECTION_BOXGENERIC_WIP_BOXGENERIC_CAUTION_BOXGENERIC_MESSAGE_BOXGENERIC_SEPARATORUSERMENUMENU_MANAGER_MAINH I 2bMENU_MANAGER_MAINw xzyXPOUTPUT_WINDOWMAIN_MENU_BAR Bc/MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203 H @I Tp.MAIN_MENU_BARhfHCREATE_PROC<UIBHELP_MENU_ENTRYUSER_MENU_ENTRYOPTIONS_MENU_ENTRYFILE_MENU_ENTRYH  qIq 0FILE_MENU_ENTRYD Z L FILE_MENUH  I *FILE_MENUTRsbSAVE_TEXT_BUTTONRELOAD_USER_MENU_BUTTONCLEAR_TEXT_BUTTONEXIT_BUTTONH ~pI~ ,EXIT_BUTTON p, HhfbACTIVATE_PROCH +y00ExitH I 2CLEAR_TEXT_BUTTON v, NhfhACTIVATE_PROCH &y00Clear Text WindowH |I 8RELOAD_USER_MENU_BUTTON |, ThfnACTIVATE_PROCH %y00Reload User MenuH PI 1SAVE_TEXT_BUTTON u, MhfgACTIVATE_PROCH 1y00Save contents of text windowH y00FileH  w_Iw 3OPTIONS_MENU_ENTRYD ] O wMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;2037  OPTIONS_MENUH  ZIZ -OPTIONS_MENUTRASET_MENU_FILENAME_BUTTONH I 9SET_MENU_FILENAME_BUTTON }, UhfoACTIVATE_PROCH &y00Set Menu FilenameH  y00 OptionsH  T I V0USER_MENU_ENTRYhfJ CREATE_PROC C rhf ACTIVATE_PROCH  y00 CommandsH  < I 0HELP_MENU_ENTRYD  ~C Vhfp ACTIVATE_PROC  HELP_MENUH  gk Ig *HELP_MENUTRZJOVERVIEW_BUTTONABOUT_BUTTONH  I -ABOUT_BUTTON q, Ihfc ACTIVATE_PROC H  y00AboutH * I 0OVERVIEW_BUTTON t, Lhff ACTIVATE_PROC H V y00 OverviewH  y00HelpH  I T.OUTPUT_WINDOWhfHCREATE_PROC <wPxPb_ &MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203>^  H ID smk-Adobe-Courier-Bold-R-Normal--14-140-75-75-M-90-ISO8859-1H  )I) USERMENUH 2uI2 GENERIC_SEPARATORH hIh 4GENERIC_MESSAGE_BOX Z*Z H [y00There must be a bug in0 0your DWT:SET-VALUES call.ro| 0  0+Ppp0 P p  0  p     0k $ P  @ D V p I uP :+tMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203bW?MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203MHELP_OK_BUTTONHELP_INPUT_AREAHELP_CANCEL_BUTTONHELP_UP_LEVEL_BUTTONHELP_CLICKSHELP_OUTPUT_AREAHELP_DIALOGTEXT_FILE_SELECTION_BOXMENU_FILE_SELECTION_BOXGENERIC_WIP_BOXGENERIC_CAUTION_BOXGENERIC_MESSAGE_BOXGENERIC_SEPARATORUSERMENUOUTPUT_WINDOWOVERVIEW_BUTTONABOUT_BUTTONHELP_MENUHELP_MENU_ENTRYUSER_MENU_ENTRYSET_MENU_FILENAME_BUTTONOPTIONS_MENUOPTIONS_MENU_ENTRYSAVE_TEXT_BUTTONRELOAD_USER_MENU_BUTTONCLEAR_TEXT_BUTTONEXIT_BUTTONFILE_MENUFILE_MENU_ENTRYMAIN_MENU_BARMENU_MANAGER_MAINMENU_MANAGER`MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203oro|_|PT  <  *  n(Vg  w   MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203 TܵMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203Vro| H I 4GENERIC_CAUTION_BOX ZV 6 7 8 hfACTIVATE_PROChfACTIVATE_PROChf ACTIVATE_PROCH Wy00You should not see this.0 0Check your ARGLIST.H (y00H I 0GENERIJT^MM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203~"C_WIP_BOX ~Z8 VhfpACTIVATE_PROCH Wy00You should not see this.0 0Check your ARGLIST.H  VI  ^8MENU_FILE_SELECTION_BOXhfRCREATE_PROC : Z, 8 hfCANCEL_PROChfACTIVATE_PROCH %y00SYS$LOGIN:*.MENUH #y00Menu File NameH  I  ^8TEXT_FILE_SELECTION_BOXhfRCREATE_PROC : Z, 8 hfCANCEL_PROChfACTIVATE_PROCH $Iy00SYS$LOGIN:*.TXTH #gy00Text File NameH I R,HELP_DIALOGhfFCREATE_PROC: l xHELP_OK_BUTTON fRHELP_INPUT_AREAHELP_CLICKSHELP_OUTPUT_AREAH I W1HELP_OUTPUT_AREAhfKCREATE_PROC Pwx2c_^ H Ismk-Adobe-Courier-Bold-R-Nb uMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203r%ormal--12-120-75-75-M-70-ISO8859-1H  I ,pHELP_CLICKS<2wx|=wHELP_CANCEL_BUTTONHELP_OK_BUTTONHELP_UP_LEVEL_BUTTONH I 5HELP_UP_LEVEL_BUTTON wx, ehfACTIVATE_PROCH y00UpH  I 3HELP_CANCEL_BUTTON wxB, chf}CANCEL_PROCH  y00 DismissH w I V0HELP_INPUT_AREAhfJCREATE_PROC Pwxc_^b H I smk-Adobe-Courier-Bold-R-Normal--12-120-75-75-M-70-ISO8859-1H & y00Menu Manager HelpH  I /HELP_OK_BUTTON wx!, _hfyACTIVATE_PROCH $ y00OKawSMM010.AI;[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.UID;203(:*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.OBJ;3+,D./h 4 -0123KPWO56`vǒ7ߦǒ89ǒGhHJ9 MENU_MANAGERV1.018-OCT-1989 10:39VAX C V3.0-031Pmm$data:menu_manager.uid0PPACTIVATE_PROC P'PCREATE_PROC P'3PCANCEL_PROC P3?PUSER_MENU_BUTTON_PROC$ P?, PUPMenuManageraPcan't open hierarchyvPMENU_MANAGER_MAINPcan't fetch main windowPCreate operator box...PDismiss operator box...P P 0 PMenu ManagerPSYS$LOGIN:DECW$MM.MENUPSYS$LOGIN:DECW$MM.DATPrPMenuManager.Menu;|}MM010.AD:[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.OBJ;30<File='PMenuManager.HeaderString=AP%s EPHELP_DIALOGQPCan't fetch %s widget! iPMENU_FILE_SELECTION_BOXPMENU_FILE_SELECTION_BOXPMENU_FILE_SELECTION_BOXPSYS$LOGIN:DECW$MM.DATPrPSYS$LOGIN:DECW$MM.DATPwPMenuManager.MenuFile=PMenuManager.MenuFile=%s PTEXT_FILE_SELECTION_BOX(PTEXT_FILE_SELECTION_BOX@PTEXT_FILE_SELECTION_BOXXPwZPCould not open file %s 4PrPNLA0:8PrPO<xP PxzPError from LIB$SPAWN: %s +PPsubMenuIdPrPCould not open %s! Pme C$V_CTYPEDEFS OBJECTCLASS RECTOBJCLASSWINDOWOBJCLASS WIDGETCLASSCOMPOSITEWIDGETCLASSCOMPOSITEOBJECTCLASSCONSTRAINTWIDGETCLASSSHELLWIDGETCLASSOVERRIDESHELLWIDGETCLASSWMSHELLWIDGETCLASSTRANSIENTSHELLWIDGETCLASSTOPLEVELSHELLWIDGETCLASSAPPLICATIONSHELLWIDGETCLASSFILTER_CTRL_CHARSREAD_AND_ATTACH_USER_MENUMAIN_TEXT_PRINTFWPRINTF SPAWN_ERRORS_ERRORREAD_CUSTOMIZATION_FILECREATE_MM_MESSAGE_MAILBOXS_ERRORDWTFETCHWIDGETDWTREGISTERDRMNAMESDWTOPENHIERARCHYDWTINITIALIZEDRMDWTGETNEXTSEGMENTDWTINITGETSEGMENTDWTLATIN1STRINGDWTSTEXTSETSTRINGDWTSTEXTGETSTRING DWTPUSHBUTTONXTFREE XTREALLOC XTGETVALUES XTSETVALUES XTINITIALIZE XTISMANAGEDXTDESTROYWIDGETXTREALIZEWIDGET XTMAINLOOPXTUNMANAGECHILD XTMANAGECHILDSTRLENSTRCHRSTRNCMn9MM010.AD:[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.OBJ;30wPnu_managerPmenu_managerPToo many menu items, excess ignored! PUSERMENUPcan't fetch user pulldowen menu widget%PactivateCallback6PsubMenuId@Perror in copyfromCStosimpleP<^ C$MAIN_ARGSTUSREAD_CUSTOMIZATION_FILEDWTINITIALIZEDRMݬ߬|~ߤU8 XTINITIALIZEPcߣ(ߣ0ݣ4DWTOPENHIERARCHYPߤaAPRINTFEXITPRbRPQQP@8Rb@<Rb@HRbcQ||ĠDWTLATIN1STRINGRbPķbPbP bP$CREATE_MM_MESSAGE_MAILBOXP0 , DWTREGISTERDRMNAMESߣ,ߣcߤvݣ(DWTFETCHWIDGETPĈAPRINTFEXITݣ XTMANAGECHILDcXTREALIZEWIDGET XTMAINLOOPP^TSR\ޣQaQ\PP\L8QaL<QaLH\lcP||ĠDWTLATIN1STRING\lPķlPlP lP$CREATE_MM_MESSAGE_MAILBOXP0 ^SR8STRCPYߢ8STRCPYFOPENPW1W<~4 STRNCPYSTRCPYPERRORSPRINTFPRINTFFPRINTFFPUTSFGETSFCLOSEFOPENREAD_CUSTOMIZATION_FILEFGETSEXITMM_HELP_UP_LEVEL MM_HELP_OKMM_HELP_OVERVIEW MM_HELP_ABOUTREAD_AND_ATTACH_USER_MENUEXITMM_HELP_CANCELEXITMAIN_TEXT_PRINTF SPAWN_ERROR LIB$SPAWNMAIN_TEXT_PRINTF SYS$GETMSGEXITFILTER_CTRL_CHARSFREECALLOCFGETS <MAIN READ_CUSTOMIZATION_FILE0uMM010.AD:[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MENU_MANAGER.OBJ;30F%FGETSP\1STRNCMPVSTRNCPYUSTRCHRTP\fP!<~\~ߢ8e ߢ8dP\4l0'\fP <~\~8e 8dP\lW<~4 FGETSP\WFCLOSE ^RݬAPRINTFEXIT ^ЬЬ ߭ XTSETVALUES ^ЬЬ ߭ XTGETVALUES<^STURмPPPPb?PEXITREAD_AND_ATTACH_USER_MENUPÔݤDWTSTEXTSETSTRINGPD@d3ߢ,@dbݮPݢ(DWTFETCHWIDGETPݮDQeFPRINTFEXITݤH XTISMANAGEDP1ݤH XTMANAGECHILDPբ1READ_AND_ATTACH_USER_MENUPi@@d3ߢ,@dbݮLݢ(DWTFETCHWIDGETPݮ@QeFPRINTFEXITݤD XTISMANAGEDP1ݤD XTMANAGECHILDP MM_HELP_ABOUTMM_HELP_OVERVIEW MM_HELP_OKMM_HELP_UP_LEVELݬ ϴPݬ ϼPPE<@d3ߢ,@dbݮHݢ(DWTFETCHWIDGETPݮ4PP P~Ю<\6 PD P P$( P` +P` _CUSTOMIZATION_FILEDWTINITIALIZEDRMݬ߬|~ߤU8 XTINITIALIZEPcߣ(ߣ0ݣ4DWTOPENHIERARCHYPߤaAPRINTFEXITPRbRPQQP@8Rb@<Rb@HRbcQ||ĠDWTLATIN1STRINGRbPķbP<*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_MESSAGE_MBX.OBJ;1+,./h 4: -0123KPWO56~ƒ7 ~~ƒ89ǒGhHJXMM010.A<[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_MESSAGE_MBX.OBJ;1v;MM_MESSAGE_MBXV1.017-OCT-1989 15:49VAX C V3.0-031P"P P%s_MM_MESSAGE_MAILBOXP%s P ^S|~"|~ SYS$GETJPIWP\ˏ\RR \ LIB$SIGNAL Q<PPQQRb Pr Rb ߣSPRINTFߣSTRLENP|~<~<~?c SYS$CREMBXP\ʏPP \ LIB$SIGNAL|~|~߯t|~<#~;MM010.A 5[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_HELP.OBJ;7OBJ;30 a5*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_HELP.OBJ;7+, . /h 4  -0123KPWO 56@3}ǒ7Vǒ89GhHJ4MM_HELPV1.019-OCT-1989 12:33VAX C V3.0-031 C$V_CTYPEDEFS OBJECTCLASS RECTOBJCLASSWINDOWOBJCLASS WIDGETCLASSCOMPOSITEWIDGETCLASSCOMPOSITEOBJECTCLASSCONSTRAINTWIDGETCLASSSHELLWIDGETCLASSOVERRIDESHELLWIDGETCLASSWMSHELLWIDGETCLASSTRANSIENTSHELLWIDGETCLASSTOPLEVELSHELLWIDGETCLASSAPPLICATIONSHELLWIDGETCLASSCALLOCMALLOCDWTSTEXTSETSTRINGDWTSTEXTGETSTRINGXTFREE XTISMANAGEDXTUNMANAGECHILD XTMANAGECHILDSTRLENPPMM$HELP:MM_HELP.HLBP(PPABOUTPABOUT %POVERIVEW.POVERVIEW ;P%s ?Pmemory allocation problem in mm_helpdPmemory allocation problem in mm_helpP<4^UTSݥL XTISMANAGEDP ݥL XTMANAGECHILDߤݥPDWTSTEXTSETSTRINGߤݥ\DWTSTEXTSETSTRINGѣ(Z߭߭ߣ(LBR$INI_CONTROLˏP\\ P LIB$SIGNAL|~|~hߣ(LBR$OPENˏP\\ P LIB$SIGNALޤ MALLMM010.A 5[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_HELP.OBJ;7OBJ;30 OCPR ߤ?S_ERRORݮ STRLENPb_MM_MESSAGE_MAILBOX. is the5username of the user who started up the Menu Manager.b2 USE_of_the_text_output_windowoHThe main window on the menu manager is used as the output stream for theJsub-processes it creates. It can also be written to by user programs via aKmailbox device (see the MESSAGE_area_Access_from_a_user_program sub-topic).IIn addition, the user can enter and edit text directly from the ke'2MM010.Ac5[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_HELP.HLB;1OBJ;30fD LOGIN:DECW$MM.MENU.)2 MESSAGE_area_Access_from_a_user_programiEThe Menu Manager's message area is accessed by writing to the logicalb5name _MM_MESSAGE_MAILBOX. is thep5username of the user who started up the Menu Manager.2 USE_of_the_text_output_windowHThe main window on the menu manager is used as the output stream for theJsub-processes it creates. It can also be written to by user programs via aKmailbox device (see the MESSAGE_area_Access_from_a_user_program yboard.LThe textual contents of the window can also be saved in a text file (see the4FILE sub-sub-topic of the PULLDOWN_menus sub-topic).ww)aǒ 1 OVERVIEWDMenu Manager is a simple menuing program. It features a user-definedEmenu and a user-accessable message area. Click on the About button onthe Help menu for more details.ww sub-topic).IIn addition, the user can enter and edit text directly from the keyboard.LThe textual contents of the window can also be saved in a text file (see the4FILE sub-sub-topic of the PULLDOWN_menus sub-topic).wwb.ǒ 1 OVERVIEWDMenu Manager is a simple menuing program. It features a user-definedEmenu and a user-accessable message area. Click on the About button onthe Help menu for more details.ww(&ZIMM010.Ax8[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_STARTUP.COM;1;30H28*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]MM_STARTUP.COM;1+,x./h 4H-0123KPWO56Hѱ6ǒ7 6ǒ89ǒGhHJ:$!--------------------------------------------------------3$! MM_STARTUP.COM - Menu_Manager startup .COM file5$! Robert Heller Created on Wed Oct 18 13:43:11 1989$! Last mod - :$!-------------------------------------------------------- $! Contents::$!-------------------------------------------------------- $ set noon$ exe_dir = "$$EXE_DIRECTORY$$"$ hlb_dir = "$$HLB_DIRECTORY$$"$ dat_dir = "$$DAT_DIRECTORY$$"$!%$ define/system/exec MM$EXE 'exe_dir'&$ define/system/exec MM$HELP 'hlb_dir'&$ define/system/exec MM$DATA 'dat_dir'$!$ install = "$install/command"H$ install replace mm$exe:menu_manager.exe/open/head/priv=(prmmbx,sysnam)$!7$ write sys$output "******* Menu Manager Setup *******"$ exit 16*[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]DECW$MM.MENU;1+,w./h 4L*-0123KPWO56`kh7ǒ77ǒ89ǒGhHJ)>tMM010.Aw6[HELLER.DECW_MAGIC.ROBERTS_MENU_MANAGER]DECW$MM.MENU;1.OBJ;1L.$.! sample Menu Manager menu specification file.9! Place a copy of this file in your SYS$LOGIN: directory.!L! Each pair of non-comment lines defines one button of the Commands pulldownL! menu. The first line defines the text displayed as the button label. TheL! second line is a DCL command to be spawned (via LIB$SPAWN) when the button! is selected.!/! list users in the Menu Manager's message areaUsers Show Users/! list disks in the Menu Manager's message areaDisks Show Device D! list memory statsMemory Show Memory