|
|
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: 3362 (0xd22)
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/tam/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"
#ifndef _MENU
#define _MENU
#include "track.h"
#include "sys/window.h"
extern char *strtok(), *strchr();
/* cosmetic and build params */
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))
#define ROUND(a,b) (((a)+(b-1))/(b))
#define MINROW 4 /* min space in rows for vscroll arrows */
#define M_MAXLINE 76 /* size of typing line */
#define M_SHORT 15 /* size before leave 1 col */
#define M_MAXHEIGHT 20 /* maximum menu height */
#define M_MAXWIDTH 75 /* maximum menu width */
#define M_LRMARGIN 2 /* size of left, right margins */
#define M_TBMARGIN 1 /* size of top/bottom margins */
#define M_CSPACE 2 /* space between columns */
#define M_BORDFLAGS (BORDHELP|BORDCANCEL|BORDVSCROLL|BORDRESIZE)
/* menu operations */
#define M_BEGIN 0x1 /* begin a menu */
#define M_END 0x2 /* end (delete) the menu */
#define M_INPUT 0x4 /* accept input */
#define M_DESEL 0x8 /* de-select everything first */
#define M_POPUP (M_BEGIN|M_END|M_INPUT|M_DESEL)
/* menu flags */
#define M_SINGLE 0x1 /* allow only single selections */
#define M_USEWIN 0x2 /* use caller's window */
#define M_WINSON 0x4 /* use son placement algorithm */
#define M_WINNEW 0x8 /* use new placement algorithm */
#define M_NOMOVE 0X10 /* true if no move icon */
#define M_NOHELP 0X20 /* true if no help icon */
#define M_NORESIZE 0X40 /* true if no resize icon */
#define M_ASISTITLE 0X80 /* true if use title as is */
/* item flags */
#define M_MARKED 0x1 /* item is marked */
#define M_DIMMED 0x2 /* item is lower intensity */
#define M_REDISP 0x80 /* needs redisplay (internal) */
/* return codes */
/* positive number is keycode */
#define MERR_OK 0 /* returned when no keystroke */
#define MERR_SYS -1 /* system err (signal) */
#define MERR_ARGS -2 /* catch all for bad args */
#define MERR_NOWIN -3 /* can't create a window */
#define MERR_TOOSMALL -4 /* window is too small */
#define MERR_GETSTAT -5 /* error during getstat */
#define MERR_SETSTAT -6 /* error during setstat */
#define MERR_NOMEM -7 /* malloc failed */
#define MERR_BIG -8 /* window is too big */
#define MERR_WRITE -9 /* window write failed */
typedef struct
{
char *mi_name; /* name of item */
char mi_flags; /* flags */
int mi_val; /* user-supplied value */
} mitem_t;
typedef struct
{
char *m_label; /* menu label */
char *m_title; /* menu title */
char *m_prompt; /* menu prompt */
char m_rows; /* desired rows */
char m_cols; /* desired cols */
char m_iwidth; /* truncation width */
char m_iheight; /* item height */
char m_flags; /* flags */
char m_lbuf[M_MAXLINE]; /* input buffer */
int m_win; /* window pointer */
track_t *m_track; /* ptr to allocated track */
int m_oldwidth; /* last known width */
int m_oldheight; /* last known height */
int m_selcnt; /* count of # selected */
mitem_t *m_items; /* pointer to items */
mitem_t *m_curi; /* current item */
mitem_t *m_topi; /* top item */
} menu_t;
#endif /*_MENU*/