DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦4efa81e3f⟧ TextFile

    Length: 4165 (0x1045)
    Types: TextFile
    Notes: UNIX file
    Names: »menu.h«

Derivation

└─⟦7decd0fac⟧ Bits:30004155/disk4.imd SW95713I 386/ix Software Development System Rel. 2.0
└─⟦7decd0fac⟧ UNIX Filesystem
    └─⟦this⟧ »sd/new/usr/include/menu.h« 

TextFile

/*	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 */