Commit | Line | Data |
---|---|---|
c906108c SS |
1 | /* External/Public TUI Header File */ |
2 | ||
3 | #ifndef TUI_H | |
4 | #define TUI_H | |
5 | #include <curses.h> | |
6 | ||
7 | #ifdef ANSI_PROTOTYPES | |
8 | #include <stdarg.h> | |
9 | #else | |
10 | #include <varargs.h> | |
11 | #endif | |
12 | ||
13 | #include "ansidecl.h" | |
14 | ||
15 | #if defined(reg) | |
16 | #undef reg | |
17 | #endif | |
18 | #if defined(chtype) | |
19 | #undef chtype | |
20 | #endif | |
21 | ||
22 | /* Opaque data type */ | |
23 | typedef char *Opaque; | |
c5aa993b JM |
24 | typedef |
25 | Opaque (*OpaqueFuncPtr) PARAMS ((va_list)); | |
26 | typedef char **OpaqueList; | |
27 | typedef OpaqueList OpaquePtr; | |
c906108c SS |
28 | |
29 | /* Generic function pointer */ | |
c5aa993b JM |
30 | typedef void (*TuiVoidFuncPtr) PARAMS ((va_list)); |
31 | typedef int (*TuiIntFuncPtr) PARAMS ((va_list)); | |
c906108c | 32 | /* |
c5aa993b JM |
33 | typedef Opaque (*TuiOpaqueFuncPtr) PARAMS ((va_list)); |
34 | */ | |
35 | typedef OpaqueFuncPtr TuiOpaqueFuncPtr; | |
c906108c | 36 | |
c5aa993b JM |
37 | extern Opaque vcatch_errors PARAMS ((OpaqueFuncPtr,...)); |
38 | extern Opaque va_catch_errors PARAMS ((OpaqueFuncPtr, va_list)); | |
c906108c | 39 | |
c5aa993b JM |
40 | extern void strcat_to_buf PARAMS ((char *, int, char *)); |
41 | extern void strcat_to_buf_with_fmt PARAMS ((char *, int, char *,...)); | |
c906108c SS |
42 | |
43 | /* Types of error returns */ | |
c5aa993b JM |
44 | typedef enum |
45 | { | |
46 | TUI_SUCCESS, | |
47 | TUI_FAILURE | |
48 | } | |
49 | TuiStatus, *TuiStatusPtr; | |
c906108c SS |
50 | |
51 | /* Types of windows */ | |
c5aa993b JM |
52 | typedef enum |
53 | { | |
54 | SRC_WIN = 0, | |
55 | DISASSEM_WIN, | |
56 | DATA_WIN, | |
57 | CMD_WIN, | |
58 | /* This must ALWAYS be AFTER the major windows last */ | |
59 | MAX_MAJOR_WINDOWS, | |
60 | /* auxillary windows */ | |
61 | LOCATOR_WIN, | |
62 | EXEC_INFO_WIN, | |
63 | DATA_ITEM_WIN, | |
64 | /* This must ALWAYS be next to last */ | |
65 | MAX_WINDOWS, | |
66 | UNDEFINED_WIN /* LAST */ | |
67 | } | |
68 | TuiWinType, *TuiWinTypePtr; | |
c906108c SS |
69 | |
70 | /* This is a point definition */ | |
c5aa993b JM |
71 | typedef struct _TuiPoint |
72 | { | |
73 | int x, y; | |
74 | } | |
75 | TuiPoint, *TuiPointPtr; | |
c906108c SS |
76 | |
77 | /* Generic window information */ | |
c5aa993b JM |
78 | typedef struct _TuiGenWinInfo |
79 | { | |
80 | WINDOW *handle; /* window handle */ | |
81 | TuiWinType type; /* type of window */ | |
82 | int width; /* window width */ | |
83 | int height; /* window height */ | |
84 | TuiPoint origin; /* origin of window */ | |
85 | OpaquePtr content; /* content of window */ | |
86 | int contentSize; /* Size of content (# of elements) */ | |
87 | int contentInUse; /* Can it be used, or is it already used? */ | |
88 | int viewportHeight; /* viewport height */ | |
89 | int lastVisibleLine; /* index of last visible line */ | |
90 | int isVisible; /* whether the window is visible or not */ | |
91 | } | |
92 | TuiGenWinInfo, *TuiGenWinInfoPtr; | |
c906108c SS |
93 | |
94 | /* GENERAL TUI FUNCTIONS */ | |
95 | /* tui.c */ | |
c5aa993b JM |
96 | extern void tuiInit PARAMS ((char *argv0)); |
97 | extern void tuiInitWindows PARAMS ((void)); | |
98 | extern void tuiResetScreen PARAMS ((void)); | |
99 | extern void tuiCleanUp PARAMS ((void)); | |
100 | extern void tuiError PARAMS ((char *, int)); | |
101 | extern void tui_vError PARAMS ((va_list)); | |
102 | extern void tuiFree PARAMS ((char *)); | |
103 | extern Opaque tuiDo PARAMS ((TuiOpaqueFuncPtr,...)); | |
104 | extern Opaque tuiDoAndReturnToTop PARAMS ((TuiOpaqueFuncPtr,...)); | |
105 | extern Opaque tuiGetLowDisassemblyAddress PARAMS ((Opaque, Opaque)); | |
106 | extern Opaque tui_vGetLowDisassemblyAddress PARAMS ((va_list)); | |
107 | extern void tui_vSelectSourceSymtab PARAMS ((va_list)); | |
c906108c SS |
108 | |
109 | /* tuiDataWin.c */ | |
c5aa993b | 110 | extern void tui_vCheckDataValues PARAMS ((va_list)); |
c906108c SS |
111 | |
112 | /* tuiIO.c */ | |
c5aa993b | 113 | extern void tui_vStartNewLines PARAMS ((va_list)); |
c906108c SS |
114 | |
115 | /* tuiLayout.c */ | |
c5aa993b JM |
116 | extern void tui_vAddWinToLayout PARAMS ((va_list)); |
117 | extern TuiStatus tui_vSetLayoutTo PARAMS ((va_list)); | |
c906108c SS |
118 | |
119 | /* tuiSourceWin.c */ | |
c5aa993b JM |
120 | extern void tuiDisplayMainFunction PARAMS ((void)); |
121 | extern void tuiUpdateAllExecInfos PARAMS ((void)); | |
122 | extern void tuiUpdateOnEnd PARAMS ((void)); | |
123 | extern void tui_vAllSetHasBreakAt PARAMS ((va_list)); | |
124 | extern void tui_vUpdateSourceWindowsWithAddr PARAMS ((va_list)); | |
c906108c SS |
125 | |
126 | /* tuiStack.c */ | |
c5aa993b JM |
127 | extern void tui_vShowFrameInfo PARAMS ((va_list)); |
128 | extern void tui_vUpdateLocatorFilename PARAMS ((va_list)); | |
c906108c | 129 | #endif /* TUI_H */ |