Mercurial > emacs
annotate oldXMenu/AddPane.c @ 99492:ee792794d888
(isearch-search-fun): Compare the length of the
current search string with the length of the string from the
previous search state to detect the situation when the user
adds or removes characters in the search string.
Use word-search-forward-lax and word-search-backward-lax in this
case, and otherwise word-search-forward and word-search-backward.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Tue, 11 Nov 2008 19:43:09 +0000 |
parents | fec5e03aaf59 |
children | edf631bdbb7a ec58e5c426ef 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 */ |
25858 | 2 |
76174
fec5e03aaf59
Remove FSF copyright since file does not differ significantly from X11
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
3 #include "copyright.h" |
25858 | 4 |
5 /* | |
6 * XMenu: MIT Project Athena, X Window system menu package | |
7 * | |
8 * XMenuAddPane - Adds a pane to an XMenu object. | |
9 * | |
10 * Author: Tony Della Fera, DEC | |
11 * August, 1985 | |
12 * | |
13 */ | |
14 | |
15 #include <config.h> | |
16 #include "XMenuInt.h" | |
17 | |
18 int | |
19 XMenuAddPane(display, menu, label, active) | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
20 Display *display; |
25858 | 21 register XMenu *menu; /* Menu object to be modified. */ |
22 register char *label; /* Selection label. */ | |
23 int active; /* Make selection active? */ | |
24 { | |
25 register XMPane *pane; /* Newly created pane. */ | |
26 register XMSelect *select; /* Initial selection for the new pane. */ | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
27 |
25858 | 28 int label_length; /* Label length in characters. */ |
29 int label_width; /* Label width in pixels. */ | |
30 | |
31 /* | |
32 * Check for NULL pointers! | |
33 */ | |
34 if (label == NULL) { | |
35 _XMErrorCode = XME_ARG_BOUNDS; | |
36 return(XM_FAILURE); | |
37 } | |
38 | |
39 /* | |
40 * Calloc the XMPane structure and the initial XMSelect. | |
41 */ | |
42 pane = (XMPane *)calloc(1, sizeof(XMPane)); | |
43 if (pane == NULL) { | |
44 _XMErrorCode = XME_CALLOC; | |
45 return(XM_FAILURE); | |
46 } | |
47 select = (XMSelect *)calloc(1, sizeof(XMSelect)); | |
48 if (select == NULL) { | |
49 _XMErrorCode = XME_CALLOC; | |
50 return(XM_FAILURE); | |
51 } | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
52 |
25858 | 53 /* |
54 * Determine label size. | |
55 */ | |
56 label_length = strlen(label); | |
57 label_width = XTextWidth(menu->p_fnt_info, | |
58 label, | |
59 label_length); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
60 |
25858 | 61 /* |
62 * Set up the initial selection. | |
63 * Values not explicitly set are zeroed by calloc. | |
64 */ | |
65 select->next = select; | |
66 select->prev = select; | |
67 select->type = SL_HEADER; | |
68 select->serial = -1; | |
69 select->parent_p = pane; | |
70 | |
71 /* | |
72 * Fill the XMPane structure. | |
73 * X and Y position are set to 0 since a recompute will follow. | |
74 */ | |
75 pane->type = PANE; | |
76 pane->active = active; | |
77 pane->serial = -1; | |
78 pane->label = label; | |
79 pane->label_width = label_width; | |
80 pane->label_length = label_length; | |
81 pane->s_list = select; | |
82 | |
83 /* | |
84 * Insert the pane at the end of the pane list. | |
85 */ | |
86 emacs_insque(pane, menu->p_list->prev); | |
87 | |
88 /* | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
89 * Update the pane count. |
25858 | 90 */ |
91 menu->p_count++; | |
92 | |
93 /* | |
94 * Schedule a recompute. | |
95 */ | |
96 menu->recompute = 1; | |
97 | |
98 /* | |
99 * Return the pane number just added. | |
100 */ | |
101 _XMErrorCode = XME_NO_ERROR; | |
102 return((menu->p_count - 1)); | |
103 } | |
52401 | 104 |
105 /* arch-tag: 62a26021-f29d-48ba-96ef-3b6c4ebd6547 | |
106 (do not change this comment) */ |