1*8bf240ccSlukem /* $NetBSD: attributes.c,v 1.7 2003/03/09 01:08:47 lukem Exp $ */
2b68c50bcSblymn
3b68c50bcSblymn /*-
4b7466e4fSblymn * Copyright (c) 1998-1999 Brett Lymn (blymn@baea.com.au, brett_lymn@yahoo.com.au)
5b68c50bcSblymn * All rights reserved.
6b68c50bcSblymn *
7b68c50bcSblymn * Redistribution and use in source and binary forms, with or without
8b68c50bcSblymn * modification, are permitted provided that the following conditions
9b68c50bcSblymn * are met:
10b68c50bcSblymn * 1. Redistributions of source code must retain the above copyright
11b68c50bcSblymn * notice, this list of conditions and the following disclaimer.
12b68c50bcSblymn * 2. The name of the author may not be used to endorse or promote products
13c03a48d6Swiz * derived from this software without specific prior written permission
14b68c50bcSblymn *
15b68c50bcSblymn * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16b68c50bcSblymn * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17b68c50bcSblymn * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18b68c50bcSblymn * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19b68c50bcSblymn * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20b68c50bcSblymn * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21b68c50bcSblymn * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22b68c50bcSblymn * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23b68c50bcSblymn * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24b68c50bcSblymn * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25b68c50bcSblymn *
26b68c50bcSblymn *
27b68c50bcSblymn */
28b68c50bcSblymn
29*8bf240ccSlukem #include <sys/cdefs.h>
30*8bf240ccSlukem __RCSID("$NetBSD: attributes.c,v 1.7 2003/03/09 01:08:47 lukem Exp $");
31*8bf240ccSlukem
32b68c50bcSblymn #include <menu.h>
33b68c50bcSblymn
34b68c50bcSblymn /* defined in menu.c - the default menu struct */
35b68c50bcSblymn extern MENU _menui_default_menu;
36b68c50bcSblymn
37b68c50bcSblymn /*
38b68c50bcSblymn * Set the menu foreground attribute
39b68c50bcSblymn */
40b68c50bcSblymn int
set_menu_fore(MENU * menu,attr_t attr)4132a993afSblymn set_menu_fore(MENU *menu, attr_t attr)
42b68c50bcSblymn {
43b68c50bcSblymn if (menu == NULL)
44b68c50bcSblymn _menui_default_menu.fore = attr;
45b68c50bcSblymn else
46b68c50bcSblymn menu->fore = attr;
47b68c50bcSblymn return E_OK;
48b68c50bcSblymn }
49b68c50bcSblymn
50b68c50bcSblymn /*
51b68c50bcSblymn * Return the menu foreground attribute
52b68c50bcSblymn */
53b68c50bcSblymn char
menu_fore(MENU * menu)5432a993afSblymn menu_fore(MENU *menu)
55b68c50bcSblymn {
56b68c50bcSblymn if (menu == NULL)
57b68c50bcSblymn return _menui_default_menu.fore;
58b68c50bcSblymn else
59b68c50bcSblymn return menu->fore;
60b68c50bcSblymn }
61b68c50bcSblymn
62b68c50bcSblymn /*
63b68c50bcSblymn * Set the menu background attribute
64b68c50bcSblymn */
65b68c50bcSblymn int
set_menu_back(MENU * menu,attr_t attr)6632a993afSblymn set_menu_back(MENU *menu, attr_t attr)
67b68c50bcSblymn {
68b68c50bcSblymn if (menu == NULL)
69b68c50bcSblymn _menui_default_menu.back = attr;
70b68c50bcSblymn else
71b68c50bcSblymn menu->back = attr;
72b68c50bcSblymn return E_OK;
73b68c50bcSblymn }
74b68c50bcSblymn
75b68c50bcSblymn /*
76b68c50bcSblymn * Return the menu background attribute
77b68c50bcSblymn */
78b68c50bcSblymn char
menu_back(MENU * menu)7932a993afSblymn menu_back(MENU *menu)
80b68c50bcSblymn {
81b68c50bcSblymn if (menu == NULL)
82b68c50bcSblymn return _menui_default_menu.back;
83b68c50bcSblymn else
84b68c50bcSblymn return menu->back;
85b68c50bcSblymn }
86b68c50bcSblymn
87b68c50bcSblymn /*
88b68c50bcSblymn * Set the menu greyed out attribute
89b68c50bcSblymn */
90b68c50bcSblymn int
set_menu_grey(MENU * menu,attr_t attr)9132a993afSblymn set_menu_grey(MENU *menu, attr_t attr)
92b68c50bcSblymn {
93b68c50bcSblymn if (menu == NULL)
94b68c50bcSblymn _menui_default_menu.grey = attr;
95b68c50bcSblymn else
96b68c50bcSblymn menu->grey = attr;
97b68c50bcSblymn return E_OK;
98b68c50bcSblymn }
99b68c50bcSblymn
100b68c50bcSblymn /*
101b68c50bcSblymn * Return the menu greyed out attribute
102b68c50bcSblymn */
103b68c50bcSblymn char
menu_grey(MENU * menu)10432a993afSblymn menu_grey(MENU *menu)
105b68c50bcSblymn {
106b68c50bcSblymn if (menu == NULL)
107b68c50bcSblymn return _menui_default_menu.grey;
108b68c50bcSblymn else
109b68c50bcSblymn return menu->grey;
110b68c50bcSblymn }
111b68c50bcSblymn
112b68c50bcSblymn /*
113b68c50bcSblymn * Set the menu pad character - the filler char between name and description
114b68c50bcSblymn */
115b68c50bcSblymn int
set_menu_pad(MENU * menu,int pad)11632a993afSblymn set_menu_pad(MENU *menu, int pad)
117b68c50bcSblymn {
118b68c50bcSblymn if (menu == NULL)
119b68c50bcSblymn _menui_default_menu.pad = pad;
120b68c50bcSblymn else
121b68c50bcSblymn menu->pad = pad;
122b68c50bcSblymn return E_OK;
123b68c50bcSblymn }
124b68c50bcSblymn
125b68c50bcSblymn /*
126b68c50bcSblymn * Return the menu pad character
127b68c50bcSblymn */
128b68c50bcSblymn int
menu_pad(MENU * menu)12932a993afSblymn menu_pad(MENU *menu)
130b68c50bcSblymn {
131b68c50bcSblymn if (menu == NULL)
132b68c50bcSblymn return _menui_default_menu.pad;
133b68c50bcSblymn else
134b68c50bcSblymn return menu->pad;
135b68c50bcSblymn }
136