annotate oldXMenu/AddSel.c @ 65980:4520ae2624f2

* mh-init.el (mh-image-load-path): New function that adds the path to the MH-E images to the image-load-path or load-path depending on the version of Emacs. * mh-customize.el: Call mh-image-load-path just before mh-tool-bar-define so that the toolbar images can be found. * mh-customize.el (mh-invisible-header-fields-internal) (mh-invisible-header-fields-internal): Add Received-SPF header and X-Gmail- prefixes seen from Gmail. Jeffrey C Honig <jch@honig.net> * mh-customize.el (mh-customize): Use customization group mh-e. * mh-e.el (desktop-buffer-mode-handlers): Only add to this list if the variable exists. Not present pre-version 22. (Version, mh-version): Added +cvs to version. * mh-unit.el (mh-unit): Changed lm-verify test to Emacs 22. * Makefile: Incorporated ideas from Clemens Fruhwirth to generalize mh-loaddefs.el to make it work for both GNU Emacs and XEmacs. (EMACS_OPTIONS, XEMACS_OPTIONS): Use double-dash for all long options. (EMACS_LOADDEFS_COOKIE): New variable for generate-autoload-cookie setting. Obsoletes XEMACS_LOADDEFS_COOKIE. (EMACS_EXPORT_MH_LOADDEFS): New variable for GNU Emacs commands to rebuild mh-loaddefs.el. (XEMACS_EXPORT_MH_LOADDEFS): New variable for XEmacs commands to rebuild mh-loaddefs.el. Obsoletes XEMACS_LOADDEFS_FILE and XEMACS_LOADDEFS_PKG_NAME. (MH-E-LOADDEFS-SRC): New variable which is set to $(MH-E-SRC) on GNU Emacs, and adds $(MH-E-XEMACS-SRC) on XEmacs. (all): Modify EMACS_EXPORT_MH_LOADDEFS and MH-E-LOADDEFS-SRC on XEMacs. (mh-loaddefs.el): Now depends on $(MH-E-LOADDEFS-SRC) and has generic compile command that works on both GNU Emacs XEmacs. (xemacs): Depend on autoloads instead of deleted loaddefs-xemacs. (loaddefs-xemacs): Deleted. * mh-comp.el (mh-font-lock-field-data): Fix a bug where the function would return t but match-data was being set to nil (closes SF #1241017). Satyaki Das <satyaki@theforce.stanford.edu>. * mh-comp.el (mh-insert-auto-fields): Inset identity regardless of whether one was already set, since if one used a default identity it would never be overridden. Peter S Galbraith <psg@debian.org> * mh-init.el (mh-path): Use customization group mh-e. Thanks to Peter Whaite for these patches (closes SF #1213716). * mh-mime.el (mh-compose-forward): Only use mh-sent-from-msg as a default message if it's a number (as is done elsewhere). Otherwise, an error is thrown if this function is called from a draft created by mh-forward since this variable is a list. Also added a space after the "Messages [%s]:" prompt. * mh-mime.el (mh-compose-forward): Allow insertion of multiple forwarded messages by range (including sequences). For the sent folder the default message presented is the sent message. For other folders, the default message is "cur", if it exists. Jeffrey C Honig <jch@honig.net>
author Bill Wohler <wohler@newt.com>
date Mon, 10 Oct 2005 16:37:54 +0000
parents 3861ff8f4bf1
children e8a3fb527b77 532e0a9335a9 2d92f5c9d6ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 #include "copyright.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
2
Dave Love <fx@gnu.org>
parents:
diff changeset
3 /* Copyright Massachusetts Institute of Technology 1985 */
65000
3861ff8f4bf1 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 54770
diff changeset
4 /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
7 * XMenu: MIT Project Athena, X Window system menu package
Dave Love <fx@gnu.org>
parents:
diff changeset
8 *
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * XMenuAddSelection - Adds a selection to an XMenu object.
Dave Love <fx@gnu.org>
parents:
diff changeset
10 *
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * Author: Tony Della Fera, DEC
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * August, 1985
Dave Love <fx@gnu.org>
parents:
diff changeset
13 *
Dave Love <fx@gnu.org>
parents:
diff changeset
14 */
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 #include <config.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
17 #include "XMenuInt.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 int
27455
d93b1a9c3c96 (XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents: 25858
diff changeset
20 XMenuAddSelection(display, menu, p_num, data, label, active, help)
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
21 Display *display;
Dave Love <fx@gnu.org>
parents:
diff changeset
22 register XMenu *menu; /* Menu object to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
23 register int p_num; /* Pane number to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
24 char *data; /* Data value. */
Dave Love <fx@gnu.org>
parents:
diff changeset
25 char *label; /* Selection label. */
Dave Love <fx@gnu.org>
parents:
diff changeset
26 int active; /* Make selection active? */
27455
d93b1a9c3c96 (XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents: 25858
diff changeset
27 char *help; /* Help string */
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
28 {
Dave Love <fx@gnu.org>
parents:
diff changeset
29 register XMPane *pane; /* Pane containing the new selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
30 register XMSelect *select; /* Newly created selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
31
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 int label_length; /* Label lenght in characters. */
Dave Love <fx@gnu.org>
parents:
diff changeset
34 int label_width; /* Label width in pixels. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 27455
diff changeset
35
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
36 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
37 * Check for NULL pointers!
Dave Love <fx@gnu.org>
parents:
diff changeset
38 */
Dave Love <fx@gnu.org>
parents:
diff changeset
39 if (label == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
40 _XMErrorCode = XME_ARG_BOUNDS;
Dave Love <fx@gnu.org>
parents:
diff changeset
41 return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
42 }
Dave Love <fx@gnu.org>
parents:
diff changeset
43 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
44 * Find the right pane.
Dave Love <fx@gnu.org>
parents:
diff changeset
45 */
Dave Love <fx@gnu.org>
parents:
diff changeset
46 pane = _XMGetPanePtr(menu, p_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
47 if (pane == NULL) return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
48
Dave Love <fx@gnu.org>
parents:
diff changeset
49 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
50 * Calloc the XMSelect structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
51 */
Dave Love <fx@gnu.org>
parents:
diff changeset
52 select = (XMSelect *)calloc(1, sizeof(XMSelect));
Dave Love <fx@gnu.org>
parents:
diff changeset
53 if (select == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
54 _XMErrorCode = XME_CALLOC;
Dave Love <fx@gnu.org>
parents:
diff changeset
55 return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
56 }
Dave Love <fx@gnu.org>
parents:
diff changeset
57 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
58 * Determine label size.
Dave Love <fx@gnu.org>
parents:
diff changeset
59 */
Dave Love <fx@gnu.org>
parents:
diff changeset
60 label_length = strlen(label);
Dave Love <fx@gnu.org>
parents:
diff changeset
61 label_width = XTextWidth(menu->s_fnt_info, label, label_length);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 27455
diff changeset
62
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
63 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
64 * Fill the XMSelect structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
65 */
Dave Love <fx@gnu.org>
parents:
diff changeset
66 if (!strcmp (label, "--") || !strcmp (label, "---"))
Dave Love <fx@gnu.org>
parents:
diff changeset
67 {
Dave Love <fx@gnu.org>
parents:
diff changeset
68 select->type = SEPARATOR;
Dave Love <fx@gnu.org>
parents:
diff changeset
69 select->active = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
70 }
Dave Love <fx@gnu.org>
parents:
diff changeset
71 else
Dave Love <fx@gnu.org>
parents:
diff changeset
72 {
Dave Love <fx@gnu.org>
parents:
diff changeset
73 select->type = SELECTION;
Dave Love <fx@gnu.org>
parents:
diff changeset
74 select->active = active;
Dave Love <fx@gnu.org>
parents:
diff changeset
75 }
Dave Love <fx@gnu.org>
parents:
diff changeset
76
Dave Love <fx@gnu.org>
parents:
diff changeset
77 select->serial = -1;
Dave Love <fx@gnu.org>
parents:
diff changeset
78 select->label = label;
Dave Love <fx@gnu.org>
parents:
diff changeset
79 select->label_width = label_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
80 select->label_length = label_length;
Dave Love <fx@gnu.org>
parents:
diff changeset
81 select->data = data;
Dave Love <fx@gnu.org>
parents:
diff changeset
82 select->parent_p = pane;
27455
d93b1a9c3c96 (XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents: 25858
diff changeset
83 select->help_string = help;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 27455
diff changeset
84
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
85 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
86 * Insert the selection at the end of the selection list.
Dave Love <fx@gnu.org>
parents:
diff changeset
87 */
Dave Love <fx@gnu.org>
parents:
diff changeset
88 emacs_insque(select, pane->s_list->prev);
Dave Love <fx@gnu.org>
parents:
diff changeset
89
Dave Love <fx@gnu.org>
parents:
diff changeset
90 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
91 * Update the selection count.
Dave Love <fx@gnu.org>
parents:
diff changeset
92 */
Dave Love <fx@gnu.org>
parents:
diff changeset
93 pane->s_count++;
Dave Love <fx@gnu.org>
parents:
diff changeset
94
Dave Love <fx@gnu.org>
parents:
diff changeset
95 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
96 * Schedule a recompute.
Dave Love <fx@gnu.org>
parents:
diff changeset
97 */
Dave Love <fx@gnu.org>
parents:
diff changeset
98 menu->recompute = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
99
Dave Love <fx@gnu.org>
parents:
diff changeset
100 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
101 * Return the selection number just added.
Dave Love <fx@gnu.org>
parents:
diff changeset
102 */
Dave Love <fx@gnu.org>
parents:
diff changeset
103 _XMErrorCode = XME_NO_ERROR;
Dave Love <fx@gnu.org>
parents:
diff changeset
104 return((pane->s_count - 1));
Dave Love <fx@gnu.org>
parents:
diff changeset
105 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
106
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
107 /* arch-tag: 0161f024-c739-440d-9498-050280c6c355
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
108 (do not change this comment) */