Mercurial > emacs
annotate oldXMenu/ChgPane.c @ 106768:21fd634f447a
Make line<->pixel_y conversion macros aware of native menu/tool bars.
They are placed above the internal border. This supersedes special
treatment of native tool bars in the display code.
This fixes wrong display position of native menu bars and bogus mouse
highlighting of native tool bars, both of which can be found when
internal border width is large. Also it fixes wrong flashed part on
visible bell with native menu bars.
* frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro.
(FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo
windows above internal border.
* window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros.
(WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo
windows above internal border.
* xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat
tool bar windows specially.
* xfns.c (x_set_tool_bar_lines): Take account of menu bar height.
* xterm.c (x_after_update_window_line): Don't treat tool bar windows
specially.
(XTflash): Take account of menu bar height.
* w32term.c (x_after_update_window_line): Don't treat tool bar windows
specially.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sat, 09 Jan 2010 13:16:32 +0900 |
parents | d4f6522bb9d2 |
children | e9f94688a064 5cc91198ffb2 |
rev | line source |
---|---|
76174
fec5e03aaf59
Remove FSF copyright since file does not differ significantly from X11
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
1 /* Copyright Massachusetts Institute of Technology 1985 */ |
fec5e03aaf59
Remove FSF copyright since file does not differ significantly from X11
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
2 |
25858 | 3 #include "copyright.h" |
4 | |
5 | |
6 /* | |
7 * XMenu: MIT Project Athena, X Window system menu package | |
8 * | |
9 * XMenuChangePane - Change the label of a menu pane. | |
10 * | |
11 * Author: Tony Della Fera, DEC | |
12 * December 19, 1985 | |
13 * | |
14 */ | |
15 | |
77868
d4f6522bb9d2
Quiet --with-x-toolkit=no compilation warnings: #include <config.h>.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
76174
diff
changeset
|
16 #include <config.h> |
25858 | 17 #include "XMenuInt.h" |
18 | |
19 int | |
20 XMenuChangePane(menu, p_num, label) | |
21 register XMenu *menu; /* Menu object to be modified. */ | |
22 register int p_num; /* Pane number to be modified. */ | |
23 char *label; /* Selection label. */ | |
24 { | |
25 register XMPane *p_ptr; /* XMPane pointer. */ | |
26 | |
27 int label_length; /* Label length in characters. */ | |
28 int label_width; /* Label width in pixels. */ | |
29 | |
30 /* | |
31 * Check for NULL pointers! | |
32 */ | |
33 if (label == NULL) { | |
34 _XMErrorCode = XME_ARG_BOUNDS; | |
35 return(XM_FAILURE); | |
36 } | |
37 | |
38 /* | |
39 * Find the right pane. | |
40 */ | |
41 p_ptr = _XMGetPanePtr(menu, p_num); | |
42 if (p_ptr == NULL) return(XM_FAILURE); | |
43 | |
44 /* | |
45 * Determine label size. | |
46 */ | |
47 label_length = strlen(label); | |
48 label_width = XTextWidth(menu->p_fnt_info, label, label_length); | |
49 | |
50 /* | |
51 * Change the pane data. | |
52 */ | |
53 p_ptr->label = label; | |
54 p_ptr->label_width = label_width; | |
55 p_ptr->label_length = label_length; | |
56 | |
57 /* | |
58 * Schedule a recompute. | |
59 */ | |
60 menu->recompute = 1; | |
61 | |
62 /* | |
63 * Return the pane number just changed. | |
64 */ | |
65 _XMErrorCode = XME_NO_ERROR; | |
66 return(p_num); | |
67 } | |
52401 | 68 |
69 /* arch-tag: e267e9de-a3f0-4a0d-8c45-413afa176fd8 | |
70 (do not change this comment) */ |