diff options
| author | Gerd Moellmann | 2000-01-17 09:09:39 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-01-17 09:09:39 +0000 |
| commit | fa616ec497a0913e322c57f8561456a5def5607f (patch) | |
| tree | b4eebf4dd0a55f2abfb35e6307f89975e7c2f69c /lwlib | |
| parent | d3065ce277122a6cc45bcc07227abee3fcd3fb60 (diff) | |
| download | emacs-fa616ec497a0913e322c57f8561456a5def5607f.tar.gz emacs-fa616ec497a0913e322c57f8561456a5def5607f.zip | |
(highlight_hook): New function.
(xlw_create_menubar, xlw_create_popup_menu): Add highlight_hook as
callback XtNhighlightCallback.
Diffstat (limited to 'lwlib')
| -rw-r--r-- | lwlib/lwlib-Xlw.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c index ee6596c27ef..bcc2198ff4f 100644 --- a/lwlib/lwlib-Xlw.c +++ b/lwlib/lwlib-Xlw.c | |||
| @@ -31,6 +31,26 @@ Boston, MA 02111-1307, USA. */ | |||
| 31 | #include "xlwmenu.h" | 31 | #include "xlwmenu.h" |
| 32 | 32 | ||
| 33 | /* Menu callbacks */ | 33 | /* Menu callbacks */ |
| 34 | |||
| 35 | /* Callback XtNhighlightCallback for Lucid menus. W is the menu | ||
| 36 | widget, CLIENT_DATA contains a pointer to the widget_instance | ||
| 37 | for the menu, CALL_DATA contains a pointer to the widget_value | ||
| 38 | structure for the highlighted menu item. The latter may be null | ||
| 39 | if there isn't any highlighted menu item. */ | ||
| 40 | |||
| 41 | static void | ||
| 42 | highlight_hook (w, client_data, call_data) | ||
| 43 | Widget w; | ||
| 44 | XtPointer client_data; | ||
| 45 | XtPointer call_data; | ||
| 46 | { | ||
| 47 | widget_instance *instance = (widget_instance *) client_data; | ||
| 48 | |||
| 49 | if (instance->info->highlight_cb | ||
| 50 | && !w->core.being_destroyed) | ||
| 51 | instance->info->highlight_cb (w, instance->info->id, call_data); | ||
| 52 | } | ||
| 53 | |||
| 34 | static void | 54 | static void |
| 35 | pre_hook (w, client_data, call_data) | 55 | pre_hook (w, client_data, call_data) |
| 36 | Widget w; | 56 | Widget w; |
| @@ -100,6 +120,8 @@ xlw_create_menubar (instance) | |||
| 100 | 120 | ||
| 101 | XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); | 121 | XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); |
| 102 | XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 122 | XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
| 123 | XtAddCallback (widget, XtNhighlightCallback, highlight_hook, | ||
| 124 | (XtPointer)instance); | ||
| 103 | return widget; | 125 | return widget; |
| 104 | } | 126 | } |
| 105 | 127 | ||
| @@ -125,7 +147,8 @@ xlw_create_popup_menu (instance) | |||
| 125 | popup_shell, al, ac); | 147 | popup_shell, al, ac); |
| 126 | 148 | ||
| 127 | XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 149 | XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
| 128 | 150 | XtAddCallback (widget, XtNhighlightCallback, highlight_hook, | |
| 151 | (XtPointer)instance); | ||
| 129 | return popup_shell; | 152 | return popup_shell; |
| 130 | } | 153 | } |
| 131 | 154 | ||