1/*	$NetBSD: mdb.h,v 1.12 2019/06/23 22:46:41 christos Exp $	*/
2
3/*
4 * Copyright 1997 Piermont Information Systems Inc.
5 * All rights reserved.
6 *
7 * Written by Philip A. Nelson for Piermont Information Systems Inc.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. The name of Piermont Information Systems Inc. may not be used to endorse
18 *    or promote products derived from this software without specific prior
19 *    written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 */
34
35/* mdb.h - definitions for the menu database. */
36
37#ifndef MDB_H
38#define MDB_H
39
40/* forward declaration */
41typedef struct menu_info menu_info;
42
43/* The declarations for the balanced binary trees. */
44
45typedef struct id_rec {
46	/* The balanced binary tree fields. */
47	char  *id;      /* The name. */
48	short balance;  /* For the balanced tree. */
49	struct id_rec *left, *right; /* Tree pointers. */
50
51	/* Other information fields. */
52	menu_info *info;
53	int menu_no;
54} id_rec;
55
56
57/* menu definitions records. */
58
59typedef struct action {
60	char *code;
61	int   endwin;
62} action;
63
64typedef struct optn_info {
65	char *name;
66	int   name_is_code;
67	int   menu;
68	int   issub;
69	int   doexit;
70	action optact;
71	struct optn_info *next;
72} optn_info;
73
74struct menu_info {
75	char *title;
76	char *helpstr;
77	char *exitstr;
78	int mopt;
79	int y, x;
80	int h, w;
81	int numopt;
82	int name_is_code;
83	optn_info *optns;
84	action expact;
85	action postact;
86	action exitact;
87};
88
89/* defines for mopt */
90#define MC_NOEXITOPT		0x001
91#define MC_NOBOX		0x002
92#define MC_SCROLL		0x004
93#define MC_NOSHORTCUT		0x008
94#define MC_NOCLEAR		0x010
95#define MC_DFLTEXIT		0x020
96#define MC_ALWAYS_SCROLL	0x040
97#define MC_SUBMENU 		0x080
98#define	MC_CONTINUOUS 		0x100
99#define MC_VALID		0x200
100#endif
101