From e5cd3d111a4661b2384ad20ad8f14c75cda76597 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Sun, 20 Aug 2000 21:14:08 +0000 Subject: [PATCH] (keymap_panes): Pass the keymap's prompt as the pane name to single_keymap_panes. (w32_menu_show): Set wv->title when dealing with titles. (w32_menu_display_help): Call show_help_echo with OBJECT and POS. --- src/ChangeLog | 24 ++++++++++++++++++++++++ src/w32menu.c | 26 ++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index db632de81b4..bb9269fcd85 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,27 @@ +2000-08-20 Jason Rumney + + * w32term.h (x_display_info_for_display): Remove as this function + does not exist on W32. + + * w32term.c (help_echo_window): New variable. + (syms_of_w32term): staticpro it. + (note_mode_line_highlight): Set it. + (XTextExtents16): Removed as there is no equivalent on W32. + (x_compute_glyph_string_overhangs): Incomplete body removed, as + the X way of doing this will not work for W32. + (w32_intersect_rectangles): Removed. Use IntersectRect API call. + (x_draw_image_foreground): Avoid drawing outside of the clip area + when image doesn't have a mask. + (note_mouse_highlight): Process overlays in the right order of + priority. Set help_echo_window. + (x_draw_bar_cursor): If cursor is on an image, draw a box cursor + because that's more visible for large images. + + * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane + name to single_keymap_panes. + (w32_menu_show): Set wv->title when dealing with titles. + (w32_menu_display_help): Call show_help_echo with OBJECT and POS. + 2000-08-21 Miles Bader * minibuf.c (do_completion): Try again if we rewrite the input diff --git a/src/w32menu.c b/src/w32menu.c index 52baa248a46..ac740671c81 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -399,7 +399,8 @@ keymap_panes (keymaps, nmaps, notreal) But don't make a pane that is empty--ignore that map instead. P is the number of panes we have made so far. */ for (mapno = 0; mapno < nmaps; mapno++) - single_keymap_panes (keymaps[mapno], Qnil, Qnil, notreal, 10); + single_keymap_panes (keymaps[mapno], + map_prompt (keymaps[mapno]), Qnil, notreal, 10); finish_menu_items (); } @@ -1733,6 +1734,7 @@ w32_menu_show (f, x, y, for_click, keymaps, title, error) #endif wv_title->name = (char *) XSTRING (title)->data; wv_title->enabled = True; + wv_title->title = True; wv_title->button_type = BUTTON_TYPE_NONE; wv_title->next = wv_sep; first_wv->contents = wv_title; @@ -2157,11 +2159,17 @@ popup_activated () void w32_menu_display_help (HMENU menu, UINT item, UINT flags) { + int pane = 0; /* NTEMACS_TODO: Set this to pane number. */ + HMODULE user32 = GetModuleHandle ("user32.dll"); FARPROC get_menu_item_info = GetProcAddress (user32, "GetMenuItemInfoA"); if (get_menu_item_info) { + extern Lisp_Object Qmenu_item; + Lisp_Object *first_item; + Lisp_Object pane_name; + Lisp_Object menu_object; MENUITEMINFO info; bzero (&info, sizeof (info)); @@ -2169,9 +2177,23 @@ w32_menu_display_help (HMENU menu, UINT item, UINT flags) info.fMask = MIIM_DATA; get_menu_item_info (menu, item, FALSE, &info); + first_item = XVECTOR (menu_items)->contents; + if (EQ (first_item[0], Qt)) + pane_name = first_item[MENU_ITEMS_PANE_NAME]; + else if (EQ (first_item[0], Qquote)) + /* This shouldn't happen, see w32_menu_show. */ + pane_name = build_string (""); + else + pane_name = first_item[MENU_ITEMS_ITEM_NAME]; + + /* (menu-item MENU-NAME PANE-NUMBER) */ + menu_object = Fcons (Qmenu_item, + Fcons (pane_name, + Fcons (make_number (pane), Qnil))); + show_help_echo (info.dwItemData ? build_string ((char *) info.dwItemData) : Qnil, - Qnil, -1, 1); + Qnil, menu_object, make_number (item), 1); } } -- 2.39.2