kernel - CAM cleanup 1/N - Remove ancient scsi pccard drivers ncv, nsp, stg
[dragonfly.git] / usr.sbin / installer / dfuife_curses / curses_widget.h
blob9d4f4e8694ef2874cec21cd6f05a315ef57805f0
1 /*
2 * Copyright (c)2004 Cat's Eye Technologies. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
16 * Neither the name of Cat's Eye Technologies nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
31 * OF THE POSSIBILITY OF SUCH DAMAGE.
35 * curses_widget.h
36 * $Id: curses_widget.h,v 1.5 2005/02/08 07:49:03 cpressey Exp $
39 #include "curses_form.h"
41 #ifndef __CURSES_WIDGET_H
42 #define __CURSES_WIDGET_H
44 typedef enum {
45 CURSES_LABEL,
46 CURSES_TEXTBOX,
47 CURSES_BUTTON,
48 CURSES_PROGRESS,
49 CURSES_CHECKBOX,
50 CURSES_LISTBOX
51 } widget_t;
53 struct curses_widget {
54 struct curses_widget *next; /* chain of widgets in form */
55 struct curses_widget *prev;
57 struct curses_form *form; /* form in which widget lives */
59 unsigned int x; /* x pos of widget in form, 0 = left edge */
60 unsigned int y; /* y pos of widget in form, 0 = top edge */
61 unsigned int width; /* width of widget */
62 unsigned int type; /* CURSES_* type of widget */
63 char *text; /* for labels, textboxes, buttons */
64 unsigned int size; /* for textboxes, allocated size of text */
65 unsigned int curpos; /* for textboxes, cursor position */
66 unsigned int offset; /* for textboxes, first displayed char */
67 int editable; /* for textboxes, text is editable */
68 int obscured; /* for textboxes, text is ****'ed out */
69 int amount; /* for progress bars, sliders, checkboxes */
70 int spin; /* for progress bars */
71 char *tooltip; /* short help text displayed on statusbar */
72 char accel; /* 'accelerator' - shortcut key */
73 int flags; /* flags */
75 int user_id; /* misc integer */
76 void *userdata; /* misc pointer */
78 /* callback for when widget is clicked */
79 /* for buttons */
80 int (*click_cb)(struct curses_widget *);
83 #define CURSES_WIDGET_CENTER 1 /* auto center this widget? */
84 #define CURSES_WIDGET_WIDEN 2 /* auto widen this widget? */
86 struct curses_widget *curses_widget_new(unsigned int, unsigned int,
87 unsigned int, widget_t,
88 const char *,
89 unsigned int, unsigned int);
90 void curses_widget_free(struct curses_widget *);
91 void curses_widget_draw(struct curses_widget *);
92 void curses_widget_draw_tooltip(struct curses_widget *);
93 int curses_widget_can_take_focus(struct curses_widget *);
94 void curses_widget_tooltip_set(struct curses_widget *, const char *);
95 int curses_widget_set_click_cb(struct curses_widget *,
96 int (*)(struct curses_widget *));
97 int curses_widget_click(struct curses_widget *);
99 int curses_textbox_advance_char(struct curses_widget *);
100 int curses_textbox_retreat_char(struct curses_widget *);
101 int curses_textbox_home(struct curses_widget *);
102 int curses_textbox_end(struct curses_widget *);
103 int curses_textbox_insert_char(struct curses_widget *, char);
104 int curses_textbox_backspace_char(struct curses_widget *);
105 int curses_textbox_delete_char(struct curses_widget *);
106 int curses_textbox_set_text(struct curses_widget *, const char *);
108 int curses_checkbox_toggle(struct curses_widget *);
110 int curses_progress_spin(struct curses_widget *);
112 #endif /* !__CURSES_WIDGET_H */