aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Rumney2000-08-20 21:14:08 +0000
committerJason Rumney2000-08-20 21:14:08 +0000
commite5cd3d111a4661b2384ad20ad8f14c75cda76597 (patch)
treefdd0fcfcf3383f850fc39af7b44fc7f0950e0c4f /src
parent158cba563f2eed5806264f624559af2e50a54a3f (diff)
downloademacs-e5cd3d111a4661b2384ad20ad8f14c75cda76597.tar.gz
emacs-e5cd3d111a4661b2384ad20ad8f14c75cda76597.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog24
-rw-r--r--src/w32menu.c26
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 @@
12000-08-20 Jason Rumney <jasonr@gnu.org>
2
3 * w32term.h (x_display_info_for_display): Remove as this function
4 does not exist on W32.
5
6 * w32term.c (help_echo_window): New variable.
7 (syms_of_w32term): staticpro it.
8 (note_mode_line_highlight): Set it.
9 (XTextExtents16): Removed as there is no equivalent on W32.
10 (x_compute_glyph_string_overhangs): Incomplete body removed, as
11 the X way of doing this will not work for W32.
12 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
13 (x_draw_image_foreground): Avoid drawing outside of the clip area
14 when image doesn't have a mask.
15 (note_mouse_highlight): Process overlays in the right order of
16 priority. Set help_echo_window.
17 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
18 because that's more visible for large images.
19
20 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
21 name to single_keymap_panes.
22 (w32_menu_show): Set wv->title when dealing with titles.
23 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
24
12000-08-21 Miles Bader <miles@gnu.org> 252000-08-21 Miles Bader <miles@gnu.org>
2 26
3 * minibuf.c (do_completion): Try again if we rewrite the input 27 * 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)
399 But don't make a pane that is empty--ignore that map instead. 399 But don't make a pane that is empty--ignore that map instead.
400 P is the number of panes we have made so far. */ 400 P is the number of panes we have made so far. */
401 for (mapno = 0; mapno < nmaps; mapno++) 401 for (mapno = 0; mapno < nmaps; mapno++)
402 single_keymap_panes (keymaps[mapno], Qnil, Qnil, notreal, 10); 402 single_keymap_panes (keymaps[mapno],
403 map_prompt (keymaps[mapno]), Qnil, notreal, 10);
403 404
404 finish_menu_items (); 405 finish_menu_items ();
405} 406}
@@ -1733,6 +1734,7 @@ w32_menu_show (f, x, y, for_click, keymaps, title, error)
1733#endif 1734#endif
1734 wv_title->name = (char *) XSTRING (title)->data; 1735 wv_title->name = (char *) XSTRING (title)->data;
1735 wv_title->enabled = True; 1736 wv_title->enabled = True;
1737 wv_title->title = True;
1736 wv_title->button_type = BUTTON_TYPE_NONE; 1738 wv_title->button_type = BUTTON_TYPE_NONE;
1737 wv_title->next = wv_sep; 1739 wv_title->next = wv_sep;
1738 first_wv->contents = wv_title; 1740 first_wv->contents = wv_title;
@@ -2157,11 +2159,17 @@ popup_activated ()
2157void 2159void
2158w32_menu_display_help (HMENU menu, UINT item, UINT flags) 2160w32_menu_display_help (HMENU menu, UINT item, UINT flags)
2159{ 2161{
2162 int pane = 0; /* NTEMACS_TODO: Set this to pane number. */
2163
2160 HMODULE user32 = GetModuleHandle ("user32.dll"); 2164 HMODULE user32 = GetModuleHandle ("user32.dll");
2161 FARPROC get_menu_item_info = GetProcAddress (user32, "GetMenuItemInfoA"); 2165 FARPROC get_menu_item_info = GetProcAddress (user32, "GetMenuItemInfoA");
2162 2166
2163 if (get_menu_item_info) 2167 if (get_menu_item_info)
2164 { 2168 {
2169 extern Lisp_Object Qmenu_item;
2170 Lisp_Object *first_item;
2171 Lisp_Object pane_name;
2172 Lisp_Object menu_object;
2165 MENUITEMINFO info; 2173 MENUITEMINFO info;
2166 2174
2167 bzero (&info, sizeof (info)); 2175 bzero (&info, sizeof (info));
@@ -2169,9 +2177,23 @@ w32_menu_display_help (HMENU menu, UINT item, UINT flags)
2169 info.fMask = MIIM_DATA; 2177 info.fMask = MIIM_DATA;
2170 get_menu_item_info (menu, item, FALSE, &info); 2178 get_menu_item_info (menu, item, FALSE, &info);
2171 2179
2180 first_item = XVECTOR (menu_items)->contents;
2181 if (EQ (first_item[0], Qt))
2182 pane_name = first_item[MENU_ITEMS_PANE_NAME];
2183 else if (EQ (first_item[0], Qquote))
2184 /* This shouldn't happen, see w32_menu_show. */
2185 pane_name = build_string ("");
2186 else
2187 pane_name = first_item[MENU_ITEMS_ITEM_NAME];
2188
2189 /* (menu-item MENU-NAME PANE-NUMBER) */
2190 menu_object = Fcons (Qmenu_item,
2191 Fcons (pane_name,
2192 Fcons (make_number (pane), Qnil)));
2193
2172 show_help_echo (info.dwItemData ? 2194 show_help_echo (info.dwItemData ?
2173 build_string ((char *) info.dwItemData) : Qnil, 2195 build_string ((char *) info.dwItemData) : Qnil,
2174 Qnil, -1, 1); 2196 Qnil, menu_object, make_number (item), 1);
2175 } 2197 }
2176} 2198}
2177 2199