Mercurial > emacs
annotate src/menu.h @ 107887:948294352a25
Don't redraw lucid menus more than needed. Use double buffer to reduce flicker.
* xlwmenu.c: Include Shell.h, remove duplicate declaration of
XlwMenuRedisplay.
(display_menu_item): Replace ws->window with ws->pixmap, remove
call to XftDrawRect.
(display_menu): Remove this and that argument. Remove
just_compute_this_one_p. Fill pixmap at start and copy it to window
at end.
(expose_cb): New function.
(make_windows_if_needed): Replace XCreateWindow with XtCreatePopup.
Add eventhandler for expose to expose_cb. Remove creation of
xft_draw.
(create_pixmap_for_menu): New function.
(remap_menubar): Pop down menus that aren't the same as in old_stack.
Set width, heigh, x, y on widget with XtVaSetValues. Call
create_pixmap_for_menu.
Replace XUnmapWindow with XtPopdown.
Remowe two last parameters to display_menu.
(map_event_to_widget_value, XlwMenuRedisplay, Key, Select)
(pop_up_menu): Remowe two last parameters to display_menu.
(XlwMenuRealize): Call create_pixmap_for_menu, set w and pixmap.
Remove call to XftDrawCreate.
(XlwMenuDestroy): Free pixmap. Call XtDestroyWidget instead of
XDestroyWindow.
(handle_motion_event): Only call handle_single_motion_event once.
* xlwmenuP.h (window_state): Add pixmap and w.
author | Jan D <jan.h.d@swipnet.se> |
---|---|
date | Sat, 17 Apr 2010 19:49:18 +0200 |
parents | 1d1d5d9bd884 |
children | e16f43875a48 376148b31b5e |
rev | line source |
---|---|
96608 | 1 /* Functions to manipulate menus. |
106815 | 2 Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. |
96608 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software: you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation, either version 3 of the License, or | |
9 (at your option) any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |
18 | |
19 #ifndef MENU_H | |
20 #define MENU_H | |
21 | |
105923
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
22 extern Lisp_Object Vmenu_updating_frame; |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
23 |
96608 | 24 extern void init_menu_items P_ ((void)); |
25 extern void finish_menu_items P_ ((void)); | |
26 extern void discard_menu_items P_ ((void)); | |
27 extern void save_menu_items P_ ((void)); | |
28 extern int parse_single_submenu P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); | |
29 extern void list_of_panes P_ ((Lisp_Object)); | |
30 #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) | |
31 extern void free_menubar_widget_value_tree P_ ((widget_value *)); | |
32 extern void update_submenu_strings P_ ((widget_value *)); | |
96759
1e2f7aab70ba
* Makefile.in: Undef LIB_STANDARD before defining it to silence warning
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96621
diff
changeset
|
33 extern void find_and_call_menu_selection P_ ((FRAME_PTR, int, |
96608 | 34 Lisp_Object, void *)); |
35 #endif | |
36 | |
105923
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
37 #ifdef HAVE_X_WINDOWS |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
38 extern void mouse_position_for_popup (FRAME_PTR f, int *x, int *y); |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
39 #endif |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
40 |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
41 extern Lisp_Object w32_menu_show (FRAME_PTR, int, int, int, int, |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
42 Lisp_Object, char **); |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
43 extern Lisp_Object ns_menu_show (FRAME_PTR, int, int, int, int, |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
44 Lisp_Object, char **); |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
45 extern Lisp_Object xmenu_show (FRAME_PTR, int, int, int, int, |
1011707400d3
* menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100951
diff
changeset
|
46 Lisp_Object, char **, EMACS_UINT); |
96608 | 47 #endif /* MENU_H */ |
96621 | 48 |
49 /* arch-tag: c32b2778-724d-4e85-81d7-45f98530a988 | |
50 (do not change this comment) */ |