]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/tui/tui.h
import gdb-1999-07-07 post reformat
[thirdparty/binutils-gdb.git] / gdb / tui / tui.h
CommitLineData
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 */
23typedef char *Opaque;
c5aa993b
JM
24typedef
25Opaque (*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 }
49TuiStatus, *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 }
68TuiWinType, *TuiWinTypePtr;
c906108c
SS
69
70/* This is a point definition */
c5aa993b
JM
71 typedef struct _TuiPoint
72 {
73 int x, y;
74 }
75TuiPoint, *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 }
92TuiGenWinInfo, *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 */