1 #ifndef H_NEWT_PR
2 #define H_NEWT_PR
3 
4 #define COLORSET_ROOT 		NEWT_COLORSET_ROOT
5 #define COLORSET_BORDER 	NEWT_COLORSET_BORDER
6 #define COLORSET_WINDOW		NEWT_COLORSET_WINDOW
7 #define COLORSET_SHADOW		NEWT_COLORSET_SHADOW
8 #define COLORSET_TITLE		NEWT_COLORSET_TITLE
9 #define COLORSET_BUTTON		NEWT_COLORSET_BUTTON
10 #define COLORSET_ACTBUTTON	NEWT_COLORSET_ACTBUTTON
11 #define COLORSET_CHECKBOX	NEWT_COLORSET_CHECKBOX
12 #define COLORSET_ACTCHECKBOX	NEWT_COLORSET_ACTCHECKBOX
13 #define COLORSET_ENTRY		NEWT_COLORSET_ENTRY
14 #define COLORSET_LABEL		NEWT_COLORSET_LABEL
15 #define COLORSET_LISTBOX	NEWT_COLORSET_LISTBOX
16 #define COLORSET_ACTLISTBOX	NEWT_COLORSET_ACTLISTBOX
17 #define COLORSET_TEXTBOX	NEWT_COLORSET_TEXTBOX
18 #define COLORSET_ACTTEXTBOX	NEWT_COLORSET_ACTTEXTBOX
19 
20 int newtSetFlags(int oldFlags, int newFlags, enum newtFlagsSense sense);
21 
22 void newtGotorc(int row, int col);
23 void newtGetrc(int * row, int * col);
24 void newtGetWindowPos(int * x, int * y);
25 void newtDrawBox(int left, int top, int width, int height, int shadow);
26 void newtClearBox(int left, int top, int width, int height);
27 
28 int newtGetKey(void);
29 void newtTrashScreen(void);
30 
31 struct newtComponent_struct {
32     /* common data */
33     int height, width;
34     int top, left;
35     int takesFocus;
36     int isMapped;
37 
38     struct componentOps * ops;
39 
40     newtCallback callback;
41     void * callbackData;
42 
43     newtCallback destroyCallback;
44     void * destroyCallbackData;
45 
46     void * data;
47 } ;
48 
49 enum eventResultTypes { ER_IGNORED, ER_SWALLOWED, ER_EXITFORM, ER_SETFOCUS,
50 			ER_NEXTCOMP };
51 struct eventResult {
52     enum eventResultTypes result;
53     union {
54 	newtComponent focus;
55     } u;
56 };
57 
58 enum eventTypes { EV_FOCUS, EV_UNFOCUS, EV_KEYPRESS, EV_MOUSE };
59 enum eventSequence { EV_EARLY, EV_NORMAL, EV_LATE };
60 
61 struct event {
62     enum eventTypes event;
63     enum eventSequence when;
64     union {
65 	int key;
66 	struct {
67 	    enum { MOUSE_MOTION, MOUSE_BUTTON_DOWN, MOUSE_BUTTON_UP } type;
68 	    int x, y;
69 	} mouse;
70     } u;
71 } ;
72 
73 struct componentOps {
74     void (* draw)(newtComponent c);
75     struct eventResult (* event)(newtComponent c, struct event ev);
76     void (* destroy)(newtComponent c);
77     void (* place)(newtComponent c, int newLeft, int newTop);
78     void (* mapped)(newtComponent c, int isMapped);
79 } ;
80 
81 void newtDefaultPlaceHandler(newtComponent c, int newLeft, int newTop);
82 void newtDefaultMappedHandler(newtComponent c, int isMapped);
83 struct eventResult newtDefaultEventHandler(newtComponent c,
84 					   struct event ev);
85 
86 int _newt_wstrlen(const char *str, int len);
87 #define wstrlen(str,len) _newt_wstrlen((str),(len))
88 void trim_string(char *title, int chrs);
89 
90 #endif /* H_NEWT_PR */
91