diff options
Diffstat (limited to 'gdb/tui/tui.h')
-rw-r--r-- | gdb/tui/tui.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/gdb/tui/tui.h b/gdb/tui/tui.h new file mode 100644 index 0000000..bc9fb31 --- /dev/null +++ b/gdb/tui/tui.h @@ -0,0 +1,120 @@ +/* External/Public TUI Header File */ + +#ifndef TUI_H +#define TUI_H +#include <curses.h> + +#ifdef ANSI_PROTOTYPES +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +#include "ansidecl.h" + +#if defined(reg) +#undef reg +#endif +#if defined(chtype) +#undef chtype +#endif + +/* Opaque data type */ +typedef char *Opaque; +typedef Opaque (*OpaqueFuncPtr) PARAMS ((va_list)); +typedef char **OpaqueList; +typedef OpaqueList OpaquePtr; + +/* Generic function pointer */ +typedef void (*TuiVoidFuncPtr) PARAMS ((va_list)); +typedef int (*TuiIntFuncPtr) PARAMS ((va_list)); +/* +typedef Opaque (*TuiOpaqueFuncPtr) PARAMS ((va_list)); +*/ +typedef OpaqueFuncPtr TuiOpaqueFuncPtr; + +extern Opaque vcatch_errors PARAMS ((OpaqueFuncPtr, ...)); +extern Opaque va_catch_errors PARAMS ((OpaqueFuncPtr, va_list)); + +extern void strcat_to_buf PARAMS ((char *, int, char *)); +extern void strcat_to_buf_with_fmt PARAMS ((char *, int, char *, ...)); + +/* Types of error returns */ +typedef enum { + TUI_SUCCESS, + TUI_FAILURE +} TuiStatus, *TuiStatusPtr; + +/* Types of windows */ +typedef enum { + SRC_WIN = 0, + DISASSEM_WIN, + DATA_WIN, + CMD_WIN, + /* This must ALWAYS be AFTER the major windows last */ + MAX_MAJOR_WINDOWS, + /* auxillary windows */ + LOCATOR_WIN, + EXEC_INFO_WIN, + DATA_ITEM_WIN, + /* This must ALWAYS be next to last */ + MAX_WINDOWS, + UNDEFINED_WIN /* LAST */ +} TuiWinType, *TuiWinTypePtr; + +/* This is a point definition */ +typedef struct _TuiPoint { + int x, y; +} TuiPoint, *TuiPointPtr; + +/* Generic window information */ +typedef struct _TuiGenWinInfo { + WINDOW *handle; /* window handle */ + TuiWinType type; /* type of window */ + int width; /* window width */ + int height; /* window height */ + TuiPoint origin; /* origin of window */ + OpaquePtr content; /* content of window */ + int contentSize; /* Size of content (# of elements) */ + int contentInUse; /* Can it be used, or is it already used? */ + int viewportHeight; /* viewport height */ + int lastVisibleLine; /* index of last visible line */ + int isVisible; /* whether the window is visible or not */ +} TuiGenWinInfo, *TuiGenWinInfoPtr; + +/* GENERAL TUI FUNCTIONS */ +/* tui.c */ +extern void tuiInit PARAMS ((char *argv0)); +extern void tuiInitWindows PARAMS ((void)); +extern void tuiResetScreen PARAMS ((void)); +extern void tuiCleanUp PARAMS ((void)); +extern void tuiError PARAMS ((char *, int)); +extern void tui_vError PARAMS ((va_list)); +extern void tuiFree PARAMS ((char *)); +extern Opaque tuiDo PARAMS ((TuiOpaqueFuncPtr, ...)); +extern Opaque tuiDoAndReturnToTop PARAMS ((TuiOpaqueFuncPtr, ...)); +extern Opaque tuiGetLowDisassemblyAddress PARAMS ((Opaque, Opaque)); +extern Opaque tui_vGetLowDisassemblyAddress PARAMS ((va_list)); +extern void tui_vSelectSourceSymtab PARAMS ((va_list)); + +/* tuiDataWin.c */ +extern void tui_vCheckDataValues PARAMS ((va_list)); + +/* tuiIO.c */ +extern void tui_vStartNewLines PARAMS ((va_list)); + +/* tuiLayout.c */ +extern void tui_vAddWinToLayout PARAMS ((va_list)); +extern TuiStatus tui_vSetLayoutTo PARAMS ((va_list)); + +/* tuiSourceWin.c */ +extern void tuiDisplayMainFunction PARAMS ((void)); +extern void tuiUpdateAllExecInfos PARAMS ((void)); +extern void tuiUpdateOnEnd PARAMS ((void)); +extern void tui_vAllSetHasBreakAt PARAMS ((va_list)); +extern void tui_vUpdateSourceWindowsWithAddr PARAMS ((va_list)); + +/* tuiStack.c */ +extern void tui_vShowFrameInfo PARAMS ((va_list)); +extern void tui_vUpdateLocatorFilename PARAMS ((va_list)); +#endif /* TUI_H */ |