|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U m
Length: 4165 (0x1045)
Types: TextFile
Notes: UNIX file
Names: »menu.h«
└─⟦7decd0fac⟧ Bits:30004155/disk4.imd SW95713I 386/ix Software Development System Rel. 2.0
└─⟦7decd0fac⟧ UNIX Filesystem
└─⟦this⟧ »sd/new/usr/include/menu.h«
/* Copyright (c) 1984, 1986, 1987, 1988 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ident "@(#)menu.h 2.3 - 88/05/27"
#include <curses.h>
#include "eti.h"
#ifndef STI_MENU
#define STI_MENU
/* Menu options: */
#define O_ONEVALUE 0x01
#define O_SHOWDESC 0x02
#define O_ROWMAJOR 0x04
#define O_IGNORECASE 0x08
#define O_SHOWMATCH 0x10
#define O_NONCYCLIC 0x20
/* Item options: */
#define O_SELECTABLE 0x01
typedef struct {
char *str;
int length;
} TEXT;
typedef struct ITEM {
TEXT name;
TEXT description;
int index; /* Item number */
struct MENU *imenu; /* Pointer to parent menu */
int value;
char *userptr;
OPTIONS opt;
int status;
short y; /* y and x location of item in menu */
short x;
struct ITEM *left;
struct ITEM *right;
struct ITEM *up;
struct ITEM *down;
} ITEM;
#define _POSTED 0x1
#define _IN_DRIVER 0x2
#define _LINK_NEEDED 0x4
typedef struct MENU {
int height; /* Number of chars high */
int width; /* Number of chars wide */
int rows; /* Number of items high */
int cols; /* Number of items wide */
int frows; /* Number of formated items high */
int fcols; /* Number of formated items wide */
int namelen; /* Length of widest name */
int desclen; /* Length of widest description */
int marklen; /* Length of mark */
int itemlen; /* Length of an one item */
char *pattern; /* Buffer used to store match chars */
int pindex; /* Index into pattern buffer */
WINDOW *win; /* Window containing entire menu */
WINDOW *sub; /* Portion of menu displayed */
WINDOW *userwin; /* User's window */
WINDOW *usersub; /* User's subwindow */
ITEM **items;
int nitems; /* Total number of items in menu */
ITEM *curitem; /* Current item */
int toprow; /* Top row of menu */
int pad; /* Pad character */
chtype fore; /* Attribute for selection */
chtype back; /* Attribute for nonselection */
chtype grey; /* Attribute for inactive */
PTF_void menuinit;
PTF_void menuterm;
PTF_void iteminit;
PTF_void itemterm;
char *userptr;
char *mark;
OPTIONS opt;
int status;
} MENU;
/* Define keys */
#define REQ_LEFT_ITEM KEY_MAX+1
#define REQ_RIGHT_ITEM KEY_MAX+2
#define REQ_UP_ITEM KEY_MAX+3
#define REQ_DOWN_ITEM KEY_MAX+4
#define REQ_SCR_ULINE KEY_MAX+5
#define REQ_SCR_DLINE KEY_MAX+6
#define REQ_SCR_DPAGE KEY_MAX+7
#define REQ_SCR_UPAGE KEY_MAX+8
#define REQ_FIRST_ITEM KEY_MAX+9
#define REQ_LAST_ITEM KEY_MAX+10
#define REQ_NEXT_ITEM KEY_MAX+11
#define REQ_PREV_ITEM KEY_MAX+12
#define REQ_TOGGLE_ITEM KEY_MAX+13
#define REQ_CLEAR_PATTERN KEY_MAX+14
#define REQ_BACK_PATTERN KEY_MAX+15
#define REQ_NEXT_MATCH KEY_MAX+16
#define REQ_PREV_MATCH KEY_MAX+17
extern ITEM **menu_items (),
*current_item (),
*new_item ();
extern MENU *new_menu ();
extern OPTIONS item_opts (),
menu_opts ();
extern PTF_void item_init (),
item_term (),
menu_init (),
menu_term ();
extern WINDOW *menu_sub (),
*menu_win ();
extern char *item_description (),
*item_name (),
*item_userptr (),
*menu_mark (),
*menu_pattern (),
*menu_userptr ();
extern chtype menu_back (),
menu_fore (),
menu_grey ();
extern int free_item (),
free_menu (),
item_count (),
item_index (),
item_opts_off (),
item_opts_on (),
item_value (),
item_visible (),
menu_driver (),
menu_opts_off (),
menu_opts_on (),
menu_pad (),
pos_menu_cursor (),
post_menu (),
scale_menu (),
set_current_item (),
set_item_init (),
set_item_opts (),
set_item_term (),
set_item_userptr (),
set_item_value (),
set_menu_back (),
set_menu_fore (),
set_menu_format (),
set_menu_grey (),
set_menu_init (),
set_menu_items (),
set_menu_mark (),
set_menu_opts (),
set_menu_pad (),
set_menu_pattern (),
set_menu_sub (),
set_menu_term (),
set_menu_userptr (),
set_menu_win (),
set_top_row (),
top_row (),
unpost_menu ();
void menu_format ();
#endif /* STI_MENU */