4
static int in_popup = 0;
6
/**********************/
7
/* Callback functions */
8
/**********************/
10
void new_game_cb (Widget w, XtPointer client_data, XtPointer call_data) {
14
void quit_game_cb (Widget w, XtPointer client_data, XtPointer call_data) {
18
void get_coords (Position *x, Position *y) {
19
XWindowAttributes wattr;
22
XGetWindowAttributes (ui.display, ui.window, &wattr);
23
XTranslateCoordinates (ui.display, ui.window, wattr.root,
24
-wattr.border_width, -wattr.border_width, &rx, &ry, &junk);
29
void popup (Widget w, Widget *box, XtPointer call_data) {
34
XtMoveWidget(XtParent(*box), x, y);
37
XtAddCallback(XtParent(*box), XtNpopdownCallback,
38
(XtCallbackProc) popdown, NULL);
39
XtPopup(XtParent(*box), XtGrabExclusive);
40
while (in_popup || XtAppPending(ui.app))
41
XtAppProcessEvent(ui.app, XtIMXEvent);
44
void popdown (Widget w, XtPointer client_data, XtPointer call_data) {
52
void leave_window_eh(Widget w, XtPointer client_data, XEvent *event) {
56
void enter_window_eh(Widget w, XtPointer client_data, XEvent *event) {
60
void redraw_window_eh(Widget w, XtPointer client_data, XEvent *event) {
64
void button_press_eh(Widget w, XtPointer data, XButtonEvent *event) {
65
game.button_press(event->x, event->y);
68
void button_release_eh(Widget w, XtPointer data, XButtonEvent *event) {
69
game.button_release(event->x, event->y);
72
void timer_eh(XtPointer client_data, XtIntervalId *timer_id) {