home *** CD-ROM | disk | FTP | other *** search
- From: pjc@pcbox.UUCP (Paul J. Condie)
- Newsgroups: alt.sources
- Subject: menu(1) part 10 of 11
- Message-ID: <432@pcbox.UUCP>
- Date: 6 Apr 90 17:57:32 GMT
-
-
- #!/bin/sh
- # this is part 10 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file utilities.d/libgeti.d/popmenu.c continued
- #
- CurArch=10
- if test ! -r s2_seq_.tmp
- then echo "Please unpack part 1 first!"
- exit 1; fi
- ( read Scheck
- if test "$Scheck" != $CurArch
- then echo "Please unpack part $Scheck next!"
- exit 1;
- else exit 0; fi
- ) < s2_seq_.tmp || exit 1
- echo "x - Continuing file utilities.d/libgeti.d/popmenu.c"
- sed 's/^X//' << 'SHAR_EOF' >> utilities.d/libgeti.d/popmenu.c
- X switch ( ch )
- X {
- X case KEY_DOWN:
- X case KEY_RIGHT:
- X fptr = (fptr >= menu->NumItems+1) ? 1 : ++fptr;
- X
- X /* stroll off window? */
- X if ( fptr-top+1 > menu->winSize || fptr == 1 )
- X {
- X if ( fptr == 1 )
- X top = 1 ;
- X else
- X top += inc ;
- X _showWin( menu, top ) ;
- X }
- X break;
- X
- X case KEY_UP:
- X case KEY_LEFT:
- X wrefresh( menu->win ) ;
- X fptr = (fptr <= 1) ? menu->NumItems+1 : --fptr;
- X
- X /* stroll off window? */
- X if ( fptr == menu->NumItems+1 || fptr < top )
- X {
- X if ( fptr == menu->NumItems+1 && inc > 0 )
- X top = menu->NumItems - menu->winSize + 2 ;
- X else
- X top -= inc ;
- X if ( top < 1 ) top = 1 ;
- X _showWin( menu, top ) ;
- X }
- X break;
- X
- X case '0':
- X case '1':
- X case '2':
- X case '3':
- X case '4':
- X case '5':
- X case '6':
- X case '7':
- X case '8':
- X case '9':
- X case 'A':
- X case 'B':
- X case 'C':
- X case 'D':
- X case 'E':
- X case 'F':
- X case 'G':
- X case 'H':
- X case 'I':
- X case 'J':
- X case 'K':
- X case 'L':
- X case 'M':
- X case 'N':
- X case 'O':
- X case 'P':
- X case 'Q':
- X case 'R':
- X case 'S':
- X case 'T':
- X case 'U':
- X case 'V':
- X case 'W':
- X case 'X':
- X case 'Y':
- X case 'Z':
- X wrefresh( menu->win ) ;
- X /* look for first char match from here on down */
- X for ( i=fptr+1; i<=menu->NumItems+1 &&
- X toupper(*menu->items[i-1])!=ch; i++ ) ;
- X
- X /* no match? how about from here on up? */
- X if ( i > menu->NumItems+1 )
- X for ( i=1; i<fptr &&
- X toupper(*menu->items[i-1])!=ch; i++ ) ;
- X
- X fptr = i ; /* i would still be fptr if both failed */
- X
- X /* need to display a different window? */
- X if ( fptr >= top+menu->winSize || fptr < top )
- X {
- X top = fptr ;
- X _showWin( menu, top ) ;
- X }
- X break ;
- X
- X case KEY_RETURN:
- X case KEY_ENTER:
- X menu->ActiveItem = fptr;
- X wrefresh (menu->win); /* force flush of attributes */
- X putp ( cursor_visible ) ;
- X return (menu->ActiveItem);
- X
- X case KEY_CANCEL:
- X putp ( cursor_visible ) ;
- X return (-1);
- X
- X case KEY_HELP:
- X ShowHelp (menu->helpfile, "popmenu", LINES);
- X break;
- X
- X case KEY_REFRESH:
- X clearok (menu->win, TRUE);
- X wrefresh (menu->win);
- X break;
- X
- X default:
- X break;
- X } /* end switch (ch) */
- X }
- X}
- X
- X/* pjc 7/87 */
- X
- X_showWin( menu, top )
- X MENU *menu ;
- X int top ;
- X{
- X register int i ;
- X
- X for (i=0; i < menu->winSize && top+i-1 < menu->NumItems+1; i++)
- X mvwprintw (menu->win, i+1, 2, "%-*s", menu->width, menu->items[top+i-1]);
- X for (; i < menu->winSize ; i++)
- X mvwprintw (menu->win, i+1, 2, "%*s", menu->width, " ");
- X}
- SHAR_EOF
- echo "File utilities.d/libgeti.d/popmenu.c is complete"
- chmod 0644 utilities.d/libgeti.d/popmenu.c || echo "restore of utilities.d/libgeti.d/popmenu.c fails"
- echo "x - extracting utilities.d/libgeti.d/GetInput.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/GetInput.h &&
- X#ifndef LINT
- Xstatic char ID_GetInput[] = "%W% DeltaDate %G% ExtrDate %H%";
- X#endif
- X
- X/*
- X** Type of allowable characters
- X*/
- X
- X#define ALPHANUM ' '
- X#define ALPHA 'A'
- X#define NUMERIC '9'
- X#define SET 'E'
- X#define MENU 'M'
- X#define UPPER 'U'
- X#define UPPER_AN 'V'
- X#define HEX 'H'
- X#define STATE 'S'
- X#define ZIP 'Z'
- X#define DATE 'D'
- X#define TIME 'T'
- X#define PROTECT 'P'
- X
- X/*
- X** Adjust/Fill
- X*/
- X
- X#define NOFILL ' '
- X#define RTADJ_ZFILL 'Z'
- X#define RTADJ_BFILL 'B'
- X#define LFADJ_ZFILL 'z'
- X#define LFADJ_BFILL 'b'
- X
- X/*
- X** 'C' field types
- X*/
- X
- X#define CHAR '0'
- X#define INT '1'
- X#define SHORT '2'
- X#define LONG '3'
- X#define DOUBLE '4'
- X#define MONEY 'M'
- X#define FLOAT '5'
- X
- X/*
- X** Union to take care of a field that could be any valid
- X** 'c' field type.
- X*/
- X
- Xtypedef union FldUnion {
- X long *longVal ;
- X double *doubleVal ;
- X float *floatVal ;
- X int *intVal ;
- X short *shortVal ;
- X char *strVal ;
- X} *FldUnPointer ;
- X
- X
- X#define AUTONEXT TRUE
- X#define NOAUTO FALSE
- X
- X#define MUSTENTER TRUE
- X#define NOMUST FALSE
- X
- X#define NOHELP ""
- X#define NORANGE NULL
- X#define NOMSG NULL
- X#define NOMASK NULL
- X#define NOTAG ""
- X#define A_SAME -1 /* same as what's on the screen */
- X
- X
- X#ifndef KEY_RETURN
- X# define KEY_RETURN '\r'
- X#endif
- X#ifndef KEY_BEG
- X# define KEY_BEG 0542
- X#endif
- X#ifndef KEY_END
- X# define KEY_END 0550
- X#endif
- X#ifndef KEY_SAVE
- X# define KEY_SAVE 0571
- X#endif
- X#ifndef KEY_PRINT
- X# define KEY_PRINT 0532
- X#endif
- X#ifndef KEY_HELP
- X# define KEY_HELP 0553
- X#endif
- X#ifndef KEY_REFRESH
- X# define KEY_REFRESH 0565
- X#endif
- X#ifndef KEY_TAB
- X# define KEY_TAB '\t'
- X#endif
- X#ifndef KEY_BTAB
- X# define KEY_BTAB 0541
- X#endif
- X#ifndef KEY_CANCEL
- X# define KEY_CANCEL 0543
- X#endif
- X#ifndef KEY_ACCEPT
- X# define KEY_ACCEPT 1000
- X#endif
- X#ifndef KEY_TOC
- X# define KEY_TOC 1001
- X#endif
- X
- X#define NOKEY '\0'
- X#define KEY_CTLA '\001'
- X#define KEY_CTLB '\002'
- X#define KEY_CTLC '\003'
- X#define KEY_CTLD '\004'
- X#define KEY_CTLE '\005'
- X#define KEY_CTLF '\006'
- X#define KEY_CTLG '\007'
- X#define KEY_CTLH '\010'
- X#define KEY_CTLI '\011'
- X#define KEY_CTLJ '\012'
- X#define KEY_CTLK '\013'
- X#define KEY_CTLL '\014'
- X#define KEY_CTLM '\015'
- X#define KEY_CTLN '\016'
- X#define KEY_CTLO '\017'
- X#define KEY_CTLP '\020'
- X#define KEY_CTLQ '\021'
- X#define KEY_CTLR '\022'
- X#define KEY_CTLS '\023'
- X#define KEY_CTLT '\024'
- X#define KEY_CTLU '\025'
- X#define KEY_CTLV '\026'
- X#define KEY_CTLW '\027'
- X#define KEY_CTLX '\030'
- X#define KEY_CTLY '\031'
- X#define KEY_CTLZ '\032'
- X
- X/*
- X** Macros
- X*/
- X#define wattrOn(a, b) wattrset(a, b)
- X#define wattrOff(a) wattrset(a, 0)
- X#ifndef BELL
- X#define BELL printf ("%c", 7)
- X#endif
- X
- X#define CLEARROW(row) { \
- X int col; \
- X int tmprow; \
- X tmprow = ((row%100) == row) ? row : row/100; \
- X col = ((row%100) == row) ? 0 : row%100; \
- X for (; col<=COLS-2; col++) \
- X mvwaddch (stdscr, tmprow,col, ' '); \
- X }
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/GetInput.h || echo "restore of utilities.d/libgeti.d/GetInput.h fails"
- echo "x - extracting utilities.d/libgeti.d/keys.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/keys.h &&
- X#ifndef LINT
- Xstatic char ID_keys[] = "%W% DeltaDate %G% ExtrDate %H%";
- X#endif
- X
- Xextern int KeyReturn;
- Xextern int KeyDown;
- Xextern int KeyUp;
- Xextern int KeyTab;
- Xextern int KeyBTab;
- Xextern int KeyAccept;
- X
- Xextern int KeyBeg;
- Xextern int KeyEnd;
- Xextern int KeyRight;
- Xextern int KeyLeft;
- Xextern int KeyBackspace;
- Xextern int KeyEOL;
- Xextern int KeyDL;
- Xextern int KeyDC;
- Xextern int KeyIC;
- X
- Xextern int KeyHelp;
- Xextern int KeyTOC;
- Xextern int KeyRedraw;
- Xextern int KeySave;
- Xextern int KeyPrint;
- Xextern int KeyCancel;
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/keys.h || echo "restore of utilities.d/libgeti.d/keys.h fails"
- echo "x - extracting utilities.d/libgeti.d/makefile (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/makefile &&
- X# %W% DeltaDate %G% ExtrDate %H%
- X
- XTITLE = GETINPUT
- X
- XINSTALLLIB =
- XINSTALLHDR =
- XMANDIR = .
- X
- X#CC = cc
- X
- X### CFLAG settings
- X
- X### Sys5
- XCFLAGS = -O
- X### Xenix
- X#CFLAGS = -O -DM_TERMINFO -LARGE -Ml -Mlt34 -F 4000
- X
- XARFLAGS = rv
- X
- XLIBS = libgeti.a -lcurses -lc
- X
- X
- XCFILES = AdjField.c DateFun.c DisPrmpt.c FindSet.c GetSetLen.c \
- X GetInput.c IsDate.c IsFldOk.c IsMask.c IsRange.c IsState.c IsTime.c \
- X ReDispFld.c ScrnOut.c ShowChar.c ShowSet.c ShowHelp.c \
- X popmenu.c BuildMenu.c checkmask.c doinsert.c InitGetI.c drawbox.c \
- X RingMenu.c
- X
- XHFILES = GetInput.h keys.h
- XMANPAGES = GetInput.3X popmenu.3 drawbox.3 ShowHelp.3
- X
- XOBJECTS =${CFILES:.c=.o}
- X
- Xinstall : libgeti.a
- X -ln libgeti.a ../../libgeti.a
- X -ln GetInput.h ../../GetInput.h
- X
- Xtest : libgeti.a _Main.o
- X $(CC) $(CFLAGS) _Main.o $(LIBS) -o test.out
- X
- Xlibgeti.a : $(OBJECTS)
- X ar $(ARFLAGS) libgeti.a $?
- X
- Xlint:
- X lint -I$(INCDIR) _Main.c $(CFILES) -lcurses > lint.out
- X
- Xprint :
- X PrintPrg $(MANPAGES) makefile $(CFILES) $(HFILES) _Main.c | lp -t$(TITLE)
- X
- Xshar:
- X shar -b GetInput.hlp $(MANPAGES) makefile $(CFILES) $(HFILES) _Main.c > libgeti.shar
- X
- Xclean :
- X rm -f *.o core libgeti.a test.out lint.out libgeti.shar \
- X ../../libgeti.a ../../GetInput.h libgeti.shar.Z
- X
- X#####
- X#####
- X
- X_Main.o: _Main.c GetInput.h keys.h
- XAdjField.o: AdjField.c GetInput.h
- XDisPrmpt.o: DisPrmpt.c GetInput.h
- XFindSet.o: FindSet.c GetInput.h
- XGetSetLen.o: GetSetLen.c GetInput.h
- XGetInput.o: GetInput.c GetInput.h keys.h
- XIsDate.o: IsDate.c GetInput.h
- XIsFldOk.o: IsFldOk.c GetInput.h
- XIsMask.o: IsMask.c GetInput.h
- XIsRange.o: IsRange.c GetInput.h
- XIsTime.o: IsTime.c GetInput.h
- XReDispFld.o: ReDispFld.c GetInput.h
- XScrnOut.o: ScrnOut.c GetInput.h
- XShowChar.o: ShowChar.c GetInput.h
- XShowSet.o: ShowSet.c GetInput.h
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/makefile || echo "restore of utilities.d/libgeti.d/makefile fails"
- echo "x - extracting utilities.d/libgeti.d/GetInput.3X (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/GetInput.3X &&
- X. \ %W% DeltaDate %G% ExtrDate %H%
- X.TH GETINPUT 3X "libgeti"
- X.SH NAME
- XGetInput \- manages terminal input using curses
- X.SH SYNOPSIS
- X.LP
- X.nf
- X#include <curses.h>
- X#include "GetInput.h"
- X
- Xint GetInput (win, row, col, &Fld, FldAttribute, FldMask,
- X FldRange, FldLength, FldMin, FldCharType,
- X FldAdjust, FldType, FldExit, MustEnter,
- X ErrRow, MsgRow, PromptMsg, HelpFile, HelpTag)
- X
- XWINDOW *win;
- Xint row, col, FldAttrbute, FldLength, FldMin,
- X FldExit, MustEnter, ErrRow, MsgRow;
- XFldUnPointer Fld;
- Xchar *FldMask, *FldRange, FldCharType, FldAdjust,
- X FldType, *PromptMsg, HelpFile[], HelpTag[];
- X.fi
- X.SH DESCRIPTION
- XGets terminal input using curses(3X).
- XGetInput uses a field by field approach. All
- Xedits and processing are performed for that field as the user
- Xmoves from field to field. It is not a fill form methodology where
- Xall edits and processing are performed after the user has inputed
- Xa number of fields in a form.
- X
- X.SH GETTING STARTED
- XYou need to include GetInput.h in your program.
- X
- XCurses tty modes should be - cbreak(), noecho(), nonl() and
- Xkeypad () if you want to use arrow keys and the like.
- X
- XYou should trap and ignore SIGALRM (see BUGS).
- X
- X.SS Defining Keyboard Keys
- XGetInput uses a number of keyboard keys to tell it what to do.
- XA default value to the various keys is automatically assigned when you use
- Xthis library. Those default values may be changed by declaring the variable
- Xas extern in your program and assigning a new value.
- XIn addition to the default variable values, if the terminal
- Xhas an associated curses key defined (see curses.h) that key may also be used.
- XFor example, ^b (KeyBeg) is the default value to place cursor at beginning
- Xof a field but if there is a key defined for KEY_BEG, in curses, then that
- Xkey may also be used. If the value of KeyBeg and KEY_BEG are different,
- XGetInput will return the value of KEY_BEG not KeyBeg regardless of which
- Xone is pressed.
- XNot all keys may have an associated curses key.
- XThe "^" indicates press and hold the control key. A negative one disables
- Xthe key, although the associated curses key is still active.
- X.br
- XBelow is listed the InitGetI() function with the default value and the
- Xassociated curses key.
- X.nf
- X
- X/*
- X** InitGetI()
- X** All this does is define some global variables for the keys
- X** used in GetInput(3) and assign some default values.
- X*/
- X
- X#include <curses.h>
- X#include "GetInput.h"
- X
- X /* ACCEPT INPUT KEYS */
- X /* These are the only keys that will return the data inputted into your variable. */
- Xint KeyReturn = '\\r'; /* ^m KEY_RETURN */
- Xint KeyDown = 10; /* ^j KEY_DOWN */
- Xint KeyUp = 11; /* ^k KEY_UP */
- Xint KeyTab = '\\t'; /* ^i KEY_TAB */
- Xint KeyBTab = -1; /* KEY_BTAB */
- Xint KeyAccept = 1; /* ^a KEY_ACCEPT - Typically this is the key the user presses
- X to signify he/she is finished with this screen. */
- X
- X /* FIELD EDITING KEYS */
- Xint KeyBeg = 2; /* ^b KEY_BEG - Place cursor at beginning of field */
- Xint KeyEnd = 5; /* ^e KEY_END - Place cursor at end of input in field */
- Xint KeyRight = 12; /* ^l KEY_RIGHT - Forward space in field */
- Xint KeyLeft = 8; /* ^h KEY_LEFT - Backspace in field (non-destructive) */
- Xint KeyBackspace = '\\b'; /* \\b KEY_BACKSPACE - Same as KEY_LEFT */
- Xint KeyEOL = 4; /* ^d KEY_EOL - Delete from cursor to end of field */
- Xint KeyDL = 3; /* ^c KEY_DL - Clear field and home cursor */
- Xint KeyDC = 24; /* ^x KEY_DC - Delete a character */
- Xint KeyIC = 20; /* ^t KEY_IC - Toggle between type-over and insert mode */
- X
- X /* OTHER KEYS */
- Xint KeyRedraw = 18; /* ^r KEY_REFRESH - Redraw screen */
- Xint KeySave = 6; /* ^f KEY_SAVE - Save screen to a file */
- Xint KeyPrint = 16; /* ^p KEY_PRINT - Print screen to lp */
- Xint KeyCancel = 27; /* esc KEY_CANCEL - Cancel pop-up menu selection */
- Xint KeyHelp = '?'; /* KEY_HELP - Display help screen */
- X /* If the user needs to input a "?" you will have to change this. */
- Xint KeyTOC = 20; /* ^t KEY_TOC - When in help display Table of Contents */
- X
- Xvoid
- XInitGetI()
- X{
- X /* i don't do nuthin */
- X}
- X.fi
- X
- X.SH ARGUMENT DESCRIPTION
- X.TP 6
- X*win
- XA pointer to a curses window that this routine will operate under.
- X.TP
- Xrow
- XThe row to position cursor on.
- X.TP
- Xcol
- XThe starting column for field.
- X.TP
- X&Fld
- XA pointer to a union variable where you have loaded the
- Xaddress of your memory variable to accept the input data. Upon
- Xentry to GetInput the value in your memory variable will be
- Xdisplayed as the default value. The type of union you select must be compatible
- Xwith the \fIFldType\fP you've specified.
- X
- X.nf
- XFor example:
- X union FldUnion Fld;
- X double myvar;
- X
- X Fld.doubleVal = &myvar;
- X GetInput (......);
- X
- X /*
- X ** After returning from GetInput() what the user typed in will
- X ** be in \fImyvar\fP;
- X */
- X
- X
- X
- X/*
- X** Structure of Union
- X*/
- Xtypedef union FldUnion
- X{
- X long *longVal;
- X double *doubleVal;
- X float *floatVal;
- X int *intVal;
- X short *shortVal;
- X char *strVal;
- X} *FldUnPointer;
- X.fi
- X.TP
- XFldAttrbute
- XCurses attribute you want your input field to be. For
- Xexample A_REVERSE. Refer to curses(3X) for further
- Xinformation on allowable terminal attributes.
- X.br
- XA_SAME is a special attribute that tells GetInput to use
- Xthe same attributes that is already on the screen in the
- Xfirst column of the field.
- X
- X. \ **********************************
- X.TP
- XFldMask
- XA char pointer to a mask for the field. This permits the user to mix
- Xalpha with numeric while letting GetInput do the edit checking. You can also
- Xuse this to format a field.
- X
- XThe keyword \fBNOMASK\fP may be placed here if no mask is required.
- X
- XValid masks for a field depend upon the type of field
- Xyou specify, see \fIFldCharType\fP.
- X
- XThe \fIFldLength\fP should not include character positions where no input
- Xis allowed in the mask (format characters), because format characters
- Xare not returned into \fIFld\fP. For example, \fIFldCharType = DATE,
- XFldMask = "MM/DD/YY"\fP. The "/" is a format character. The cursor
- Xwill skip over those positions in the field. Only the characters typed in
- Xthe MM DD YY positions will be in your memory variable \fIFld\fP.
- XThe FldLength would be six for this case.
- X
- XBecause the mask is so closely tied to the \fIFldCharType\fP, a complete
- Xdescription of what mask characters are valid with what field types is
- Xdescribed under
- X\fIFldCharType\fP. Any character in the mask that is not listed as a valid
- Xmask character for that field type becomes a format character.
- X. \ **********************************
- X.TP
- XFldRange
- XA char pointer to a set of valid ranges permitted for this field.
- XRanges may be specified as comma separated values ("ONE,TWO,THREE")
- Xor as a range ("1-5"), or a combination of both ("1-5,M,E").
- XRange values must be compatible with the \fIFldCharType\fP and \fIFldType\fP
- Xthat you
- Xhave selected.
- X.br
- XSome examples:
- X.nf
- X "1-10"
- X "5,10,15,16"
- X "1-10,20,M,E,32-40"
- X "CA,TX,ID"
- X.fi
- X
- XThe keyword \fBNORANGE\fP may be used if no range checking is to be
- Xperformed for this field.
- X. \ **********************************
- X.TP
- XFldLength
- XMaximum length of this field. For field types (FldCharTypes) SET and MENU
- Xthe field length is automatically set to the longest set value in the FldRange.
- X. \ **********************************
- X.TP
- XFldMin
- XIf \fIMUSTENTER\fP is selected in \fIFldExit\fP then this is the minimum
- Xrequired input. Otherwise, it is the minimum required input only if they try
- Xto input something.
- X. \ **********************************
- X.TP
- XFldCharType
- XThis argument defines edit checks to be performed on the
- Xinput characters as they are being typed in. If no mask is provided then
- Xthe field type itself determines the edit checks to be performed on all
- Xcharacters in the field.
- X.RS 6
- X.TP 11
- XALPHANUM
- XAny alpha/numeric character is allowed.
- X.br
- XValid mask characters:
- X.nf
- X space alpha/numeric
- X A alpha
- X 9 numeric
- X U upper alpha
- X V upper alpha/numeric
- X H ???
- X.fi
- X.TP
- XALPHA
- XAlpha only.
- X.br
- XValid mask characters:
- X.nf
- X A alpha
- X.fi
- X.TP
- XNUMERIC
- XNumeric only.
- X.br
- XValid mask characters:
- X.nf
- X 9 numeric
- X.fi
- X.TP
- XUPPER
- XConvert to upper case. Only alpha permitted.
- X.br
- XValid mask characters:
- X.nf
- X U upper alpha
- X.fi
- X.TP
- XUPPER_AN
- XAlpha and numeric permitted. Convert alpha characters to upper-case.
- X.br
- XValid mask characters:
- X.nf
- X V upper alpha/numeric
- X.fi
- X.TP
- XHEX
- XOnly hex characters permitted.
- X.br
- XValid mask characters:
- X.nf
- X H ???
- X space ???
- X.fi
- X.TP
- XSTATE
- XValid two character Post Office abbreviations for the fifty states.
- XA edit check is done for a valid state.
- X.br
- XValid mask characters:
- X.nf
- X SS two character state
- X S ???
- X space ???
- X.fi
- X.TP
- XZIP
- XPost Office zip code.
- X.br
- XValid mask characters:
- X.nf
- X 99999-9999 ???
- X.fi
- X.TP
- XDATE
- XA valid date.
- X.br
- XValid mask characters:
- X.nf
- X MM month (01-12)
- X DD day (01-31)
- X YY year (00-99)
- X YYYY full year with century
- X.fi
- XThe mask must contain at least MM and DD. If no mask is specified for the
- Xfield a default mask of "MMDDYY" is used.
- X.br
- XSome examples:
- X.nf
- X MMDDYY
- X MM/DD/YY
- X YY-MM-DD
- X MM DD YYYY
- X.fi
- X.TP
- XTIME
- XA time field.
- X.br
- XValid mask characters:
- X.nf
- X HH hours (01-12)
- X MM minutes (00-59)
- X SS seconds (00-59)
- X TT tenths (00-99)
- X II military hours (00-24)
- X.fi
- XSome examples:
- X.nf
- X HH:MM
- X HH:MM:SS
- X HH:MM:SS:TT
- X II:MM
- X II:MM:SS
- X II:MM:SS:TT
- X.fi
- X.TP
- XSET
- XThis field type specifies a set of values that are acceptable in the input
- Xfield.
- XThe acceptable values within the set are specified in the \fIFldRange\fP
- Xargument.
- XThe user selects one of the set values specified in the field range by
- Xpressing the space bar, which will toggle through the set values,
- Xor by pressing the first character in the desired value.
- X
- XThe format of the FldRange can only be comma separated values
- X(ex. "CA,ID,TX").
- XRange values, such as "1-5", don't work. You would have to say "1,2,3,4,5".
- X.br
- XThe FldLength is automatically set to the longest set value in the FldRange.
- X.TP
- XMENU
- XThis field type is similar to the SET type. The difference is when the user
- Xattempts to type something in the field a pop-up menu of available choices
- Xare displyed, as specified in field_range.
- XThe user makes a selection by hi-lighting the choice and pressing return.
- X.br
- XSee SET type for specifying the FldRange.
- XThe limit is ten items in the FldRange.
- X.TP
- XPROTECT
- XThis X's out the field so what is typed on the keyboard can not be seen on
- Xthe screen. Useful for password entry.
- X.RE
- X. \ ---------------------------------
- X.TP
- XFldAdjust
- XIndicates whether to adjust the text right or left within the field
- Xand whether or not to zero or blank fill the field.
- X.RS 6
- X.TP 15
- XNOFILL
- Xno action.
- X.TP
- XRTADJ_ZFILL
- Xright adjust, zero fill
- X.TP
- XRTADJ_BFILL
- Xright adjust, blank fill
- X.TP
- XLFADJ_ZFILL
- Xleft adjust, zero fill
- X.TP
- XLFADJ_BFILL
- Xleft adjust, blank fill
- X.RE
- X. \ ---------------------------------
- X.TP 6
- XFldType
- XThis argument describes the memory variable that is to hold
- Xthe input data. The address that you loaded into "&Fld".
- X.RS 6
- X.TP 10
- XCHAR
- Xcharacter field
- X.TP
- XINT
- Xinteger
- X.TP
- XSHORT
- Xshort integer
- X.TP
- XLONG
- Xlong integer
- X.TP
- XDOUBLE
- Xdouble
- X.TP
- XFLOAT
- Xfloating point
- X.TP
- XMONEY
- Xdouble which accepts only two decimal positions.
- X.RE
- X. \ ---------------------------------
- X.TP 11
- XFldExit
- X.RS 6
- X.TP 10
- XAUTONEXT
- XGetInput() will exit, with the value of KEY_RETURN, when the last character
- Xin the field is keyed in.
- X.TP
- XNOAUTO
- XWill not exit field until a accept key (see defining keyboard keys) is pressed.
- X.RE
- X. \ ---------------------------------
- X.TP
- XMustEnter
- X.RS 6
- X.TP 12
- XMUSTENTER
- XThis is a must enter field and the value of FldMin must be
- Xentered before exiting field.
- X.TP
- XNOMUST
- XNot a must enter field.
- X.RE
- X. \ ---------------------------------
- X.RE
- X.TP 6
- XErrRow
- XIndicates what row/column to display an error message if one occurs.
- XThe row specified is for stdscr.
- XIf a optional column is to be specified on where to start the message, the
- Xformat would be for example 2302 where 23 is the row and 02 is the column.
- XOtherwise, a default of column zero is used.
- XGetInput will do a clrtoeol() before displaying the error message, therefore,
- Xthe entire row must be given over to GetInput.
- XIf this row is outside the boundary of the window unpredictable results will
- Xoccur, for example, winch() will return garbage.
- X.TP
- XMsgRow
- XIndicates what row to display help messages.
- XThe row specified is for stdscr.
- XIf a optional column is to be specified on where to start the message, the
- Xformat would be for example 2202 where 22 is the row and 02 is the column.
- XOtherwise, a default of column zero is used.
- XGetInput will do a clrtoeol() before displaying the message, therefore,
- Xthe entire row must be given over to GetInput.
- XIf this row is outside the boundary of the window unpredictable results will
- Xoccur, for example, winch() will return garbage.
- X.RS 6
- X.TP 10
- XNULL
- XNo active message line. Only if PromptMsg == NOMSG.
- X.RE
- X.TP
- X*PromptMsg
- XPrompt message to be displayed. The prompt message is always displayed
- Xto stdscr, regardless of the win specified.
- X.RS 6
- X.TP 10
- XNOMSG
- XNo message to be displayed.
- X.RE
- X.TP
- XHelpFile
- XFile name containing on-line help messages. Current directory
- Xis searched first for helpfile and then getenv("HELPDIR") directory is
- Xsearched.
- X.RS 6
- X.TP 10
- XNOHELP
- XNo help file is available for this field.
- X
- X.PP
- XThe default helpfile (GetInput.hlp) is shown below. Where this file is
- Xinstalled will vary from machine to machine.
- X
- X.nf
- X\fBGETINPUT\fP
- X .TITLE GETINPUT Help
- XMover Keys:
- X KEY_RETURN (^m) Traverse forwards through the fields.
- X KEY_DOWN (^j) Traverse forwards through the fields.
- X KEY_UP (^k) Traverse backwards through the fields.
- X KEY_TAB (^i) Fast forward through the fields.
- X KEY_BTAB Fast reverse through the fields.
- XField Editing Keys:
- X KEY_BEG (^b) Place cursor at beginning of field.
- X KEY_END (^e) Place cursor at end of input in field.
- X KEY_RIGHT (^l) Forward space within the field.
- X KEY_LEFT (^h) Backspace within the field (non-destructive).
- X KEY_BACKSPACE (^h) Same as KEY_LEFT.
- X KEY_EOL (^d) Delete from cursor to end of field.
- X KEY_DL (^c) Clear field and home cursor.
- X KEY_DC (^x) Delete a character.
- X KEY_IC (^t) Toggle between type-over and insert mode.
- XOther Keys:
- X KEY_HELP (?) Display help screen.
- X KEY_REFRESH (^r) Redraw the screen.
- X KEY_ACCEPT (^a) Accept all input and exit screen.
- X KEY_CANCEL (esc) Cancel all input and exit screen.
- X KEY_SAVE (^f) Save screen to a file.
- X KEY_PRINT (^p) Print screen to lp.
- X\fBGETINPUT\fP
- X
- X
- X
- X\fBpopmenu\fP
- X.TITLE Pop-Up Menu Help
- XSELECTING OPTIONS:
- X To select an option press the "up arrow key",
- X "k", "down arrow key", "j" to place bar on
- X option and press "return".
- X
- X KEY_CANCEL (esc) - Cancel selection.
- X\fBpopmenu\fP
- X
- X
- X
- X\fBhelp\fP
- X.TITLE Using Help
- XHelp displays consist of a description displayed in a window.
- XIf the description doesn't fit in the window, the Up Arrow and
- XDown Arrow keys can be used to view a few more lines of the
- Xdisplay. Exiting the help system will return the display to
- Xthe state it was in when you asked for help.
- X
- X The following keys are active in help:
- X KEY_CANCEL (esc) Exit help.
- X KEY_DOWN (^j) View a few more lines.
- X KEY_UP (^k) View the previous lines.
- X KEY_BEG (^b) Display first page.
- X KEY_END (^e) Display last page.
- X KEY_TOC (^t) Display table of contents.
- X\fBhelp\fP
- X.fi
- X.RE
- X.TP
- XHelpTag
- XTag in help file where messages are to be found. The tag
- Xsurrounds the help message. For example:
- X.nf
- X
- Xhelptag
- X[ .TITLE Title line goes here. ]
- XI put any help message for the user between the tags.
- XIt can be any length as it will be displayed one screen
- Xat a time.
- XThe following screen attributes may be used:
- X\\S = Standout
- X\\B = Bold
- X\\U = Underline
- X\\D = Dim
- X\\R = Reverse video
- X\\L = Blink
- X\\N = Normal (reset)
- X
- X\\BThis text is in bold face. \\NBack in normal mode.
- Xhelptag
- X
- XThe \fITABLE_OF_CONTENTS\fP tagname is a special tag describing what
- Xis to be contained in the table of contents menu. The following is the
- Xsyntax for this tagname.
- XTABLE_OF_CONTENTS
- Xhelpfile tagname description
- XTABLE_OF_CONTENTS
- X.fi
- X.RS 6
- X.TP 10
- XNOTAG
- XNo tag. Should only be used if (HelpFile == NOHELP).
- X.RE
- X.SH EXAMPLE
- X.nf
- X#include <curses.h>
- X#include "GetInput.h"
- X
- Xmain ()
- X{
- X union FldUnion Fld;
- X char name[20], tempstring[50];
- X int exitcode;
- X
- X initscr ();
- X cbreak ();
- X noecho ();
- X nonl ();
- X keypad (stdscr, TRUE);
- X
- X name[0] = '\\0';
- X Fld.strVal = name;
- X exitcode = GetInput (stdscr, 2, 0, &Fld, A_REVERSE, NOMASK,
- X NORANGE, 20, 0, UPPER_AN, NOFILL, CHAR,
- X NOAUTO, MUSTENTER, 21, 20,
- X "Please enter your name.", NOHELP, NOTAG);
- X
- X Fld.strVal = tempstring;
- X exitcode = GetInput (stdscr, 4, 0, &Fld, A_BOLD, "HH:MM:SS:TT",
- X NORANGE, 6, 6, TIME, NOFILL, CHAR, AUTONEXT,
- X NOMUST, 20, 21, "Time Field HH:MM:SS:TT",
- X "myhelpfile", "field2");
- X
- X Fld.strVal = tempstring;
- X exitcode = GetInput (stdscr, 8, 0, &Fld, A_NORMAL,
- X "(999) 999-9999", NORANGE, 10, 5, NUMERIC,
- X RTADJ_ZFILL, CHAR, NOAUTO, MUSTENTER, 20, NULL,
- X NOMSG, NOHELP, NOTAG);
- X
- X Fld.strVal = tempstring;
- X exitcode = GetInput (stdscr, 9, 1, &Fld, A_REVERSE, NOMASK,
- X "CA, NV, ID", 2, 2, SET, NOFILL, CHAR, NOAUTO,
- X NOMUST, 20, 20, "Select your state.", NOHELP,
- X NOTAG);
- X endwin ();
- X}
- X.fi
- X.SH AUTHOR
- XIrving Griesman (original author)
- X.br
- XEnhanced & Maintained by Paul J. Condie
- X.br
- X{ihnp4,lll-crg,qantel,pyramid}!ptsfa!pbody!pcbox!pjc
- X
- X.SH FILES
- XGetInput.hlp - default GetInput help file.
- X
- X.SH DIAGNOSTICS
- XGetInput returns the the decimal value of the key pressed from the getch()
- Xfunction. If the key pressed has an associated curses key GetInput returns
- Xthe value of the curses key. See Defining keyboard keys.
- X
- X.SH SEE ALSO
- Xcurses(3X), popmenu(3).
- X
- X.SH WARNING
- XPutting a field on the same row as your message row or error row may cause
- Xunpredictable results. This is not recommended.
- X
- X.SH BUGS
- XThere is a bug in curses when you call getch() which this routine does.
- XWhen in keypad() mode and an ESC character is read, curses
- Xdoes a timed read (1 second) waiting for other characters to appear. if
- Xsome other characters are received within the one second time interval,
- Xcurses attempts to match the received string with a caps string defined for the terminal (i.e. ESC[A, ESC[B are arrow keys for a vt100 type terminal)
- Xand then returns a #defined int value which can be tested for easily.
- XIn some cases untrapped alarm calls occur. The solution is to trap (ignore)
- Xalarm calls.
- X.PP
- XOn a mustenter field with a fldmin specified a control key (i.e. KEY_DOWN, etc.)
- Xwill exit the
- Xfield if that is the first key the user presses. Once the user has tried
- Xto input a value in the field even if he clears the field the control key
- Xwill not exit until fldmin is inputed.
- X
- X.nf
- XThe following example does not turn the reverse video off when you leave the field on the sun.
- Xrc = GetInput (stdscr, 0, 1, &Fld, A_REVERSE, "VVVVVV.VVVVV.VV.VV.V",
- X NORANGE, 16, 6, UPPER_AN, NOFILL, CHAR, NOAUTO, MUSTENTER,
- X ERRROW, MSGROW, "Please enter niu location.", "cfgsrn.hlp", NOTAG);
- X.fi
- X
- X.PP
- XA core dump of (DisPrmpt at line 37) indicates the string was not null terminated.
- X
- X..PP
- XIf a range is given on a field and a invalid range is inputed and then you
- Xclear the field you are unable to exit field.
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/GetInput.3X || echo "restore of utilities.d/libgeti.d/GetInput.3X fails"
- echo "x - extracting utilities.d/libgeti.d/RingMenu.3 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/RingMenu.3 &&
- X. \ @(#)RingMenu.3 1.1 DeltaDate 1/22/90 ExtrDate 1/22/90
- X.po 6
- X.TH RINGMENU 3L
- X.SH NAME
- XRingMenu \- Produce a Ring Menu.
- X
- X.SH SYNOPSIS
- X.B "int RingMenu ( win, line, optNum, title, optTable )"
- X.B "WINDOW *win ;"
- X.B "unsigned short line, optNum ;"
- X.B "char *title, *optTable[][2] ;"
- X
- X.SH DESCRIPTION
- XRingMenu accepts a two dimensional pointers arrary, optTable, as specification to display a ring
- Xmenu. OptTable[][0] is the option name, while optTable[][1] is the description for the option. The
- Xlast pair of entry in OpTable must be NULL to signify the end of the menu. The optNumth option is
- Xhighlighted, or the first item will be highlighted if optNum is 0. The ring menu will be displayed on
- Xwindow win on line number line. Description for option is displayed on the line+1 line. An option-
- Xal title may be displayed to the left of the ring menu or NULL may be passed if no title is desired..
- X
- XUser may use the arrow keys, or the equivalent control keys to move the highlighted option, and then
- Xhit the RETURN key to select the desired option. Or a capital letter match may also select a particu-
- Xlar option, there is no need to hit RETURN in this case.
- X
- XRingMenu accepts at most 20 options.
- X
- X.SH AUTHOR
- XSam S. Lok
- X
- X.SH RETURN VALUES
- XThe position number of the selected option. The first option being 1.
- X
- X.SH DIAGNOSTICS
- XNone.
- X
- X.SH EXAMPLES
- X short option = 1 ;
- X
- X static char *emp_menu[][2] = { /* The menu */
- X { "Query", "Query existing employee" },
- X { "Add", "Add new employee" },
- X { "Change", "Update existing employee" },
- X { "Delete", "Delete existing employee" },
- X { "Print", "Screen dump to printer" },
- X { "Exit", "Return to menu" },
- X { NULL, NULL }
- X } ;
- X
- X option = RingMenu( stdscr, ERRLINE, option, "Employee:", emp_menu ) ;
- X
- X.SH FILES
- XNone.
- X
- X.SH SEE ALSO
- Xmenu(1L), popmenu(3L), GetInput(3L).
- X
- X.SH WARNINGS
- XRingMenu ignores options more than 20.
- XRingMenu.c makes uses of GetInput(3L)'s GetInput.h, keys.h, ShowHelp() and ScrnPrnt(), other-
- Xwise, it is very much self contained.
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/RingMenu.3 || echo "restore of utilities.d/libgeti.d/RingMenu.3 fails"
- echo "x - extracting utilities.d/libgeti.d/ShowHelp.3 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/ShowHelp.3 &&
- X. \ %W% DeltaDate %G% ExtrDate %H%
- X.po 6
- X.TH SHOWHELP 3 "libgeti"
- X
- X.SH NAME
- XShowHelp \- creates and displays a help window using curses
- X
- X.SH SYNOPSIS
- X.B "void ShowHelp (help_file_name, tag, error_row)
- X.br
- X.B "char help_file_name[];"
- X.br
- X.B "char tag[];"
- X.br
- X.B "int error_row;"
- X
- X.SH \s9DESCRIPTION\s0
- X.B ShowHelp
- Xsearches the \fIhelp_file_name\fP for the specified \fItag\fP, creates and
- Xcenters a curses window on the screen. Then displays the content of the tag
- Xin the window. The size of the help window is automatically adjusted to the
- Xsize of message to be displayed.
- X
- X.SS ARGUMENTS
- X.TP 6
- Xhelp_file_name
- XThe unix file name containing the help message to be displayed.
- X.TP 6
- Xtag
- XThe tag in the help file that contains the help message to be displayed.
- X.TP 6
- Xerror_row
- XThe row on the screen (stdscr) to display any error messages.
- X
- X.SH HELP FILE SYNTAX
- XA help file may consist of multiple help tags. Any text found outside a helptag
- Xis ignored. See the following example.
- X
- X.nf
- X\fBhelptag\fP
- X[ .TITLE A optional Title line goes here. ]
- XI put any help message for the user between the tags.
- XIt can be any length as it will be displayed one screen
- Xat a time.
- XThe following screen attributes may be used:
- X\\S = Standout
- X\\B = Bold
- X\\U = Underline
- X\\D = Dim
- X\\R = Reverse video
- X\\L = Blink
- X\\N = Normal (reset)
- X
- X\\BThis text is in bold face. \\NBack in normal mode.
- X\fBhelptag\fP
- X
- X
- XThe \fITABLE_OF_CONTENTS\fP tagname is a special tag describing what
- Xis to be contained in the table of contents menu. The following is the
- Xsyntax for this tagname.
- XTABLE_OF_CONTENTS
- Xhelpfile tagname description
- XTABLE_OF_CONTENTS
- X
- X
- X\fBhelp\fP
- X .TITLE Using Help
- XHelp displays consist of a description displayed in a window.
- XIf the description doesn't fit in the window, the Up Arrow and
- XDown Arrow keys can be used to view a few more lines of the
- Xdisplay. Exiting the help system will return the display to
- Xthe state it was in when you asked for help.
- X
- X The following keys are active in help:
- X KEY_CANCEL (esc) Exit help.
- X KEY_DOWN (^j) View a few more lines.
- X KEY_UP (^k) View the previous lines.
- X KEY_BEG (^b) Display first page.
- X KEY_END (^e) Display last page.
- X KEY_TOC (^t) Display table of contents.
- X\fBhelp\fP
- X.fi
- X
- X.SH AUTHOR
- XPaul J. Condie 2/89
- X.br
- X{ihnp4,lll-crg,qantel,pyramid}!ptsfa!pbody!pcbox!pjc
- X
- X.SH SEE ALSO
- Xcurses(3X).
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/ShowHelp.3 || echo "restore of utilities.d/libgeti.d/ShowHelp.3 fails"
- echo "x - extracting utilities.d/libgeti.d/drawbox.3 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/drawbox.3 &&
- X. \ @(#)drawbox.3 1.2 DeltaDate 1/22/90 ExtrDate 1/22/90
- X.po 6
- X.TH DRAWBOX 3 "libgeti"
- X
- X.SH NAME
- Xdrawbox \- draws a box in a curses window
- X
- X.SH SYNOPSIS
- X.B #define DumbLine 1
- X.br
- X.B #define StandoutLine 2
- X.br
- X.B #define SingleLine 3 /* alternate character line */
- X.br
- X.B #define MosaicLine 4 /* alternate character line */
- X.br
- X.B #define DiamondLine 5 /* alternate character line */
- X.br
- X.B #define DotLine 6 /* alternate character line */
- X.br
- X.B #define PlusLine 7 /* alternate character line */
- X
- Xextern int KeyHelp;
- X
- X.B "void drawbox (win, from_row, from_col, to_row, to_col, trythis, trythat, vscroll, help)"
- X.br
- X.B "WINDOW *win;"
- X.br
- X.B "int from_row;"
- X.br
- X.B "int from_col;"
- X.br
- X.B "int to_row;"
- X.br
- X.B "int to_col;"
- X.br
- X.B "int trythis;"
- X.br
- X.B "int trythat;"
- X.br
- X.B "int vscroll;"
- X.br
- X.B "int help;"
- X
- X.SH DESCRIPTION
- X.B Drawbox
- Xdraws a box within a curses window. This is similar to the box(3X) function
- Xin curses, but provides more flexibility in where to draw the box and what
- Xthe box should look like.
- X
- X.SS ARGUMENTS
- X.TP 6
- Xwin
- XThe curses window to draw the box in.
- X.TP 6
- Xfrom_row, from_col, to_row, to_col
- XDimensions of the box. Upper left corner and lower right corner of the box.
- XTo draw a box around the whole window (like box(3) does)
- Xtry: \fI1,1, LINES,COLS\fP as the box dimensions.
- X.TP 6
- Xtrythis
- XWhat line type to try first. Any one of the #defines shown above.
- XIf the terminal
- Xdoes not support alternate character lines then drawbox will \fItrythat\fP line.
- X.TP 6
- Xtrythat
- XWhat line to use if trythis doesn't work. This should not be a
- Xalternate character line.
- X.TP 6
- Xvscroll
- XIf TRUE vertical scroll bars will be drawn in the right side of the box.
- X.TP 6
- Xhelp
- XIf TRUE the help key (KeyHelp) will be displayed in the lower right corner
- Xof the box to indicate help is available.
- X
- X.SH AUTHOR
- XPaul J. Condie 7/87
- X.br
- X{ihnp4,lll-crg,qantel,pyramid}!ptsfa!pbody!pcbox!pjc
- X
- X.SH EXAMPLE
- X.nf
- X#include <curses.h>
- X
- X
- Xmain ()
- X{
- X drawbox (stdscr, 1,1, LINES,COLS, SingleLine, StandoutLine, TRUE, TRUE);
- X}
- X.fi
- X
- X.SH SEE ALSO
- Xcurses(3X).
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/drawbox.3 || echo "restore of utilities.d/libgeti.d/drawbox.3 fails"
- echo "x - extracting utilities.d/libgeti.d/popmenu.3 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/popmenu.3 &&
- X.po 6
- X.TH POPMENU 3 "libgeti"
- X
- X.SH NAME
- Xpopmenu \- runs a popup type menu
- X
- X.SH SYNOPSIS
- X.B #define NEWMENU 0
- X.br
- X.B #define CREATEMENU -2
- X.br
- X.B #define DIMWINDOW -1
- X.br
- X.br
- X.B extern int KeyHelp;
- X.br
- X.B extern int KeyCancel;
- X.br
- X.B extern int KeyUp;
- X.br
- X.B extern int KeyDown;
- X.br
- X
- X.B "int popmenu (menu_id)"
- X.br
- X.B "int menu_id;"
- X
- X.SH \s9DESCRIPTION\s0
- X.B Popmenu
- Xis a generic curses popup menu program. The synopsis of popmenu will vary
- Xdepending on whether you are initializing a new menu or running
- Xa previously defined menu. The above synopsis will run menu (menu_id)
- Xthat you have previously defined.
- X.PP
- XPopmenu will return the number (counting from the top of the menu)
- Xof the item selected. If the user selected the second item in the menu
- Xthen \fIpopmenu\fP will return (2).
- X.br
- XA negative return value indicates the user canceled the selection.
- X.PP
- XAfter you run a menu you will need to touchwin(stdscr); wrefresh(stdscr);
- Xin order to remove the popmenu from the screen.
- X.PP
- XThe KeyCancel defines the key where the user does not want to make any
- Xchoice. The KeyHelp defines what key is to display the help. The KeyUp and
- XKeyDown inaddition to the curses arrow key move the select bar up and down.
- X
- X.SH DEFINE NEW MENU
- X.B "popmenu (action, menu_id, row, column, title, helpfile, win_size, sizeof( option_base ), option_base )"
- X.br
- X.B "int action;"
- X.br
- X.B "int menu_id;"
- X.br
- X.B "int row;"
- X.br
- X.B "int column;"
- X.br
- X.B "char *title;"
- X.br
- X.B "char *helpfile;"
- X.br
- X.B "int win_size;"
- X.br
- X.B "char *option_base;"
- X.br
- X or
- X.br
- X.B "char **option_base;"
- X
- X.SS ARGUMENTS
- X.TP 6
- Xaction
- XNEWMENU - tells popmenu that you want to initialize a new menu.
- XIf one already exists for this menu_id it will be deleted and then recreated
- Xfrom the new list.
- X.br
- X
- XCREATEMENU - If a menu already exists for this menu_id then this flag has
- Xno effect. Otherwise, it initializes a new menu from the list provided.
- X
- XDIMWINDOW - Dims the reverse video box around the menu.
- X.br
- Xpopmenu (DIMWINDOW, menu_id);
- X.TP 6
- Xmenu_id
- XA unique identifier that you chose to be assiciated with a menu.
- XYou use this identifier to run the menu.
- X.TP 6
- Xrow, column
- XThe upper left corner of where you want the menu box to popup at.
- X.TP 6
- Xtitle
- XTitle to be centered on the first row of the menu. If title is null no title
- SHAR_EOF
- echo "End of part 10"
- echo "File utilities.d/libgeti.d/popmenu.3 is continued in part 11"
- echo "11" > s2_seq_.tmp
- exit 0
-