Mercurial > emacs
annotate oldXMenu/AddSel.c @ 44466:f200fce92816
ada-mode no longer supports a different
project file per buffer. This was too complex. Instead, there is now
a single active project file at any given time, and the user can switch
the active one through the Ada menu. This revision also provides
better handling of the Windows command line, and the various available
shells on that platform. ada-mode is now fully integrated with the GNU
visual debugger gvd, see http://libre.act-europe.fr.
(ada-prj-default-comp-opt): Use the new GNAT switch -gnatQ. This is only
available with GNAT 3.14.
(ada-prj-gnatfind-switches, ada-cd-command): New variable.
(ada-quote-cmd): New function.
(ada-initialize-runtime-library): Get the location of the actual
runtime the compiler will be using, including support for
cross-platform environments.
(ada-treat-cmd-string): Add support for the new variable
${full_current} add support for debug-pre-cmd and debug-post-cmd, two
commands to run just prior to running the debugger, and just after
starting it. This provide better support for cross-platform and
remote debugging.
(ada-get-absolute-dir): Remove, replace with expand-file-name.
(ada-gdb-application): New parameter executable-name.
(ada-get-ali-file-name): Better handling of separate packages.
Checkin on behalf of the ada-mode maintainer.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 09 Apr 2002 18:54:20 +0000 |
parents | d93b1a9c3c96 |
children | 23a1cea22d13 |
rev | line source |
---|---|
25858 | 1 #include "copyright.h" |
2 | |
27455
d93b1a9c3c96
(XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents:
25858
diff
changeset
|
3 /* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/AddSel.c,v 1.1 1999/10/03 19:34:52 fx Exp $ */ |
25858 | 4 /* Copyright Massachusetts Institute of Technology 1985 */ |
5 | |
6 /* | |
7 * XMenu: MIT Project Athena, X Window system menu package | |
8 * | |
9 * XMenuAddSelection - Adds a selection to an XMenu object. | |
10 * | |
11 * Author: Tony Della Fera, DEC | |
12 * August, 1985 | |
13 * | |
14 */ | |
15 | |
16 #include <config.h> | |
17 #include "XMenuInt.h" | |
18 | |
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 | 21 Display *display; |
22 register XMenu *menu; /* Menu object to be modified. */ | |
23 register int p_num; /* Pane number to be modified. */ | |
24 char *data; /* Data value. */ | |
25 char *label; /* Selection label. */ | |
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 | 28 { |
29 register XMPane *pane; /* Pane containing the new selection. */ | |
30 register XMSelect *select; /* Newly created selection. */ | |
31 | |
32 | |
33 int label_length; /* Label lenght in characters. */ | |
34 int label_width; /* Label width in pixels. */ | |
35 | |
36 /* | |
37 * Check for NULL pointers! | |
38 */ | |
39 if (label == NULL) { | |
40 _XMErrorCode = XME_ARG_BOUNDS; | |
41 return(XM_FAILURE); | |
42 } | |
43 /* | |
44 * Find the right pane. | |
45 */ | |
46 pane = _XMGetPanePtr(menu, p_num); | |
47 if (pane == NULL) return(XM_FAILURE); | |
48 | |
49 /* | |
50 * Calloc the XMSelect structure. | |
51 */ | |
52 select = (XMSelect *)calloc(1, sizeof(XMSelect)); | |
53 if (select == NULL) { | |
54 _XMErrorCode = XME_CALLOC; | |
55 return(XM_FAILURE); | |
56 } | |
57 /* | |
58 * Determine label size. | |
59 */ | |
60 label_length = strlen(label); | |
61 label_width = XTextWidth(menu->s_fnt_info, label, label_length); | |
62 | |
63 /* | |
64 * Fill the XMSelect structure. | |
65 */ | |
66 if (!strcmp (label, "--") || !strcmp (label, "---")) | |
67 { | |
68 select->type = SEPARATOR; | |
69 select->active = 0; | |
70 } | |
71 else | |
72 { | |
73 select->type = SELECTION; | |
74 select->active = active; | |
75 } | |
76 | |
77 select->serial = -1; | |
78 select->label = label; | |
79 select->label_width = label_width; | |
80 select->label_length = label_length; | |
81 select->data = data; | |
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; |
25858 | 84 |
85 /* | |
86 * Insert the selection at the end of the selection list. | |
87 */ | |
88 emacs_insque(select, pane->s_list->prev); | |
89 | |
90 /* | |
91 * Update the selection count. | |
92 */ | |
93 pane->s_count++; | |
94 | |
95 /* | |
96 * Schedule a recompute. | |
97 */ | |
98 menu->recompute = 1; | |
99 | |
100 /* | |
101 * Return the selection number just added. | |
102 */ | |
103 _XMErrorCode = XME_NO_ERROR; | |
104 return((pane->s_count - 1)); | |
105 } |