1/* vi:set ts=8 sts=4 sw=4:
2 *
3 * VIM - Vi IMproved	by Bram Moolenaar
4 *			Visual Workshop integration by Gordon Prieur
5 *
6 * Do ":help uganda"  in Vim to read copying and usage conditions.
7 * Do ":help credits" in Vim to see a list of people who contributed.
8 */
9
10#if !defined(GUI_BEVAL_H) && (defined(FEAT_BEVAL) || defined(PROTO))
11#define GUI_BEVAL_H
12
13#ifdef FEAT_GUI_GTK
14# include <gtk/gtkwidget.h>
15#else
16# if defined(FEAT_GUI_X11)
17#  include <X11/Intrinsic.h>
18# endif
19#endif
20
21typedef enum
22{
23    ShS_NEUTRAL,			/* nothing showing or pending */
24    ShS_PENDING,			/* data requested from debugger */
25    ShS_UPDATE_PENDING,			/* switching information displayed */
26    ShS_SHOWING				/* the balloon is being displayed */
27} BeState;
28
29typedef struct BalloonEvalStruct
30{
31#ifdef FEAT_GUI_GTK
32    GtkWidget		*target;	/* widget we are monitoring */
33    GtkWidget		*balloonShell;
34    GtkWidget		*balloonLabel;
35    unsigned int	timerID;	/* timer for run */
36    BeState		showState;	/* tells us whats currently going on */
37    int			x;
38    int			y;
39    unsigned int	state;		/* Button/Modifier key state */
40#else
41# if !defined(FEAT_GUI_W32)
42    Widget		target;		/* widget we are monitoring */
43    Widget		balloonShell;
44    Widget		balloonLabel;
45    XtIntervalId	timerID;	/* timer for run */
46    BeState		showState;	/* tells us whats currently going on */
47    XtAppContext	appContext;	/* used in event handler */
48    Position		x;
49    Position		y;
50    Position		x_root;
51    Position		y_root;
52    int			state;		/* Button/Modifier key state */
53# else
54    HWND		target;
55    HWND		balloon;
56    int			x;
57    int			y;
58    BeState		showState;	/* tells us whats currently going on */
59# endif
60#endif
61    int			ts;		/* tabstop setting for this buffer */
62    char_u		*msg;
63    void		(*msgCB)__ARGS((struct BalloonEvalStruct *, int));
64    void		*clientData;	/* For callback */
65#if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
66    Dimension		screen_width;	/* screen width in pixels */
67    Dimension		screen_height;	/* screen height in pixels */
68#endif
69} BalloonEval;
70
71#define EVAL_OFFSET_X 15 /* displacement of beval topleft corner from pointer */
72#define EVAL_OFFSET_Y 10
73
74#include "gui_beval.pro"
75
76#endif /* GUI_BEVAL_H and FEAT_BEVAL */
77