# HG changeset patch # User Gerd Moellmann # Date 948100179 0 # Node ID b0f7b611a20ea24d359a63ccc7e0400fc84706af # Parent a5bceda5d689924b519d022b80595cdd8a024de6 (highlight_hook): New function. (xlw_create_menubar, xlw_create_popup_menu): Add highlight_hook as callback XtNhighlightCallback. diff -r a5bceda5d689 -r b0f7b611a20e lwlib/lwlib-Xlw.c --- a/lwlib/lwlib-Xlw.c Mon Jan 17 09:09:08 2000 +0000 +++ b/lwlib/lwlib-Xlw.c Mon Jan 17 09:09:39 2000 +0000 @@ -31,6 +31,26 @@ #include "xlwmenu.h" /* Menu callbacks */ + +/* Callback XtNhighlightCallback for Lucid menus. W is the menu + widget, CLIENT_DATA contains a pointer to the widget_instance + for the menu, CALL_DATA contains a pointer to the widget_value + structure for the highlighted menu item. The latter may be null + if there isn't any highlighted menu item. */ + +static void +highlight_hook (w, client_data, call_data) + Widget w; + XtPointer client_data; + XtPointer call_data; +{ + widget_instance *instance = (widget_instance *) client_data; + + if (instance->info->highlight_cb + && !w->core.being_destroyed) + instance->info->highlight_cb (w, instance->info->id, call_data); +} + static void pre_hook (w, client_data, call_data) Widget w; @@ -100,6 +120,8 @@ XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); + XtAddCallback (widget, XtNhighlightCallback, highlight_hook, + (XtPointer)instance); return widget; } @@ -125,7 +147,8 @@ popup_shell, al, ac); XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); - + XtAddCallback (widget, XtNhighlightCallback, highlight_hook, + (XtPointer)instance); return popup_shell; }