check curses-libs by configure
[openafs.git] / src / gtx / gtxcurseswin.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef __gator_curseswindows_h
11 #define __gator_curseswindows_h  1
12
13 #include "gtxwindows.h"         /*Base gator window dfns */
14
15 #if defined(HAVE_NCURSES_H)
16 # include <ncurses.h>
17 #elif defined(HAVE_CURSES_H)
18 # include <curses.h>
19 #endif
20
21 /*Value for gwin w_type field*/
22 #define GATOR_WIN_CURSES    2
23
24 /*Private data for a curses gwin*/
25 struct gator_cursesgwin {
26     WINDOW *wp;                 /*Window pointer */
27     int charwidth;              /*Character width in pixels */
28     int charheight;             /*Character height in pixels */
29     char box_vertchar;          /*Vertical char for boxing purposes */
30     char box_horizchar;         /*Horizontal char for boxing purposes */
31 };
32
33 /*Curses gwin's creation parameters*/
34 struct gator_cursesgwin_params {
35     struct gwin_createparams gwin_params;       /*Basic params for the window */
36     int charwidth;              /*Character width in pixels */
37     int charheight;             /*Character height in pixels */
38     char box_vertchar;          /*Vertical char for boxing purposes */
39     char box_horizchar;         /*Horizontal char for boxing purposes */
40 };
41
42 /*Curses initialization routine*/
43
44 extern int gator_cursesgwin_init(int adebug);
45     /*
46      * Summary:
47      *    Initialize the curses window package.
48      *
49      * Args:
50      *    int adebug: Is debugging turned on?
51      *
52      * Returns:
53      *    0 on success,
54      *    Error value otherwise.
55      */
56
57 /*Curses window's creation routine*/
58
59 extern struct gwin *gator_cursesgwin_create(void *);
60     /*
61      * Summary:
62      *    Create a curses window.
63      *
64      * Args:
65      *    struct gator_cursesgwin_params *params : Ptr to creation parameters.
66      *
67      * Returns:
68      *    Ptr to the created curses window structure if successful,
69      *    Error value otherwise.
70      */
71
72 /*Curses cleanup routine*/
73
74 extern int gator_cursesgwin_cleanup(struct gwin *);
75     /*
76      * Summary:
77      *    Clean up after the curses window package.
78      *
79      * Args:
80      *    struct gwin *gwp : Ptr to base window.
81      *
82      * Returns:
83      *    0 on success,
84      *    Error value otherwise.
85      */
86
87 extern struct gwinbaseops gator_curses_gwinbops;
88
89 /*Curses window's routines*/
90
91 extern int gator_cursesgwin_box(struct gwin *);
92     /*
93      * Summary:
94      *    Draw a box around the given curses window.
95      *
96      * Args:
97      *   struct gwin *gwp : Ptr to the curses window to draw
98      *                              a box around.
99      *
100      * Returns:
101      *    0: Success.
102      *    Error value otherwise.
103      */
104
105 extern int gator_cursesgwin_clear(struct gwin *);
106     /*
107      * Summary:
108      *    Clear out the given curses window.
109      *
110      * Args:
111      *   struct gwin *gwp : Ptr to the curses window to clear
112      *                              out.
113      *
114      * Returns:
115      *    0: Success.
116      *    Error value otherwise.
117      */
118
119 extern int gator_cursesgwin_destroy(struct gwin *);
120     /*
121      * Summary:
122      *    Destroy the given curses window.
123      *
124      * Args:
125      *   struct gwin *gwp : Ptr to the curses window to destroy.
126      *
127      * Returns:
128      *    0: Success.
129      *    Error value otherwise.
130      */
131
132 extern int gator_cursesgwin_display(struct gwin *);
133     /*
134      * Summary:
135      *    Display/redraw the given curses window.
136      *
137      * Args:
138      *   struct gwin *gwp : Ptr to the curses window to draw.
139      *
140      * Returns:
141      *    0: Success.
142      *    Error value otherwise.
143      */
144
145 extern int gator_cursesgwin_drawline(struct gwin *, struct gwin_lineparams *);
146     /*
147      * Summary:
148      *    Draw a line between two points in the given curses
149      *    window.
150      *
151      * Args:
152      *   struct gwin *gwp : Ptr to the curses window in which
153      *                              the line is to be drawn.
154      *   struct gwin_lineparams *params : Ptr to other params.
155      *
156      * Returns:
157      *    0: Success.
158      *    Error value otherwise.
159      */
160
161 extern int gator_cursesgwin_drawrectangle(struct gwin *,
162                                           struct gwin_rectparams *);
163     /*
164      * Summary:
165      *    Draw a rectangle in the given curses window.
166      *
167      * Args:
168      *   struct gwin *gwp : Ptr to the curses window in which
169      *                              the rectangle is to be drawn.
170      *   struct gwin_rectparams *params : Ptr to other params.
171      *
172      * Returns:
173      *    0: Success.
174      *    Error value otherwise.
175      */
176
177 extern int gator_cursesgwin_drawchar(struct gwin *, struct gwin_charparams *);
178     /*
179      * Summary:
180      *    Draw a character in the given curses window.
181      *
182      * Args:
183      *   struct gwin *gwp : Ptr to the curses window in which
184      *                              the character is to be drawn.
185      *   struct gwin_charparams *params : Ptr to other params.
186      *
187      * Returns:
188      *    0: Success.
189      *    Error value otherwise.
190      */
191
192 extern int gator_cursesgwin_drawstring(struct gwin *, struct gwin_strparams *);
193     /*
194      * Summary:
195      *    Draw a string in the given curses window.
196      *
197      * Args:
198      *   struct gwin *gwp : Ptr to the curses window in which
199      *                              the string is to be drawn.
200      *   struct gwin_strparams *params : Ptr to other params.
201      *
202      * Returns:
203      *    0: Success.
204      *    Error value otherwise.
205      */
206
207 extern int gator_cursesgwin_invert(struct gwin *, struct gwin_invparams *);
208     /*
209      * Summary:
210      *    Invert a region in the given curses window.
211      *
212      * Args:
213      *   struct gwin *gwp : Ptr to the curses window in which
214      *                              the inverted region lies.
215      *   struct gwin_invparams *params : Ptr to other params.
216      *
217      * Returns:
218      *    0: Success.
219      *    Error value otherwise.
220      */
221
222 extern int gator_cursesgwin_getchar(struct gwin *);
223
224 extern int gator_cursesgwin_getdimensions(struct gwin *,
225                                           struct gwin_sizeparams *aparms);
226
227 extern int gator_cursesgwin_wait(struct gwin *);
228
229 #endif /* __gator_curseswindows_h */