(comint-replace-by-expanded-filename, comint-prompt-regexp,
[bpt/emacs.git] / oldXMenu / ChgSel.c
CommitLineData
e745ede7
DL
1#include "copyright.h"
2
e745ede7
DL
3/* Copyright Massachusetts Institute of Technology 1985 */
4
5/*
6 * XMenu: MIT Project Athena, X Window system menu package
7 *
8 * XMenuChangeSelection - Change a menu selection.
9 *
10 * Author: Tony Della Fera, DEC
11 * December 19, 1985
12 *
13 */
14
15#include "XMenuInt.h"
16
17int
18XMenuChangeSelection(display, menu, p_num, s_num, data, data_sw, label, label_sw)
19 Display *display; /* previously opened display. */
20 register XMenu *menu; /* Menu object to be modified. */
21 register int p_num; /* Pane number to be modified. */
22 register int s_num; /* Selection number to modified. */
23 char *data; /* Data value. */
24 int data_sw; /* Change to new data value? */
25 char *label; /* Selection label. */
26 int label_sw; /* Change to new label? */
27{
28 register XMPane *p_ptr; /* XMPane pointer. */
29 register XMSelect *s_ptr; /* XMSelect pointer. */
177c0ea7 30
e745ede7
DL
31 int label_length; /* Label length in characters. */
32 int label_width; /* Label width in pixels. */
33
34 /*
35 * Check for NULL pointers!
36 */
37 if (label == NULL) {
38 _XMErrorCode = XME_ARG_BOUNDS;
39 return(XM_FAILURE);
40 }
41
42 /*
43 * Find the right pane.
44 */
45 p_ptr = _XMGetPanePtr(menu, p_num);
46 if (p_ptr == NULL) return(XM_FAILURE);
47
48 /*
49 * Find the right selection.
50 */
51 s_ptr = _XMGetSelectionPtr(p_ptr, s_num);
52 if (s_ptr == NULL) return(XM_FAILURE);
53
54 /*
55 * Reset the label?
56 */
57 if (label_sw) {
58 /*
59 * Determine label size.
60 */
61 label_length = strlen(label);
62 label_width = XTextWidth(menu->s_fnt_info, label, label_length);
63
64 /*
65 * Change the selection data.
66 */
67 s_ptr->label = label;
68 s_ptr->label_width = label_width;
69 s_ptr->label_length = label_length;
70
71 /*
72 * Schedule a recompute.
73 */
74 menu->recompute = 1;
75 }
76
77 /*
78 * Reset the data?
79 */
80 if (data_sw) s_ptr->data = data;
81
82 /*
83 * Return successfully.
84 */
85 _XMErrorCode = XME_NO_ERROR;
86 return(s_num);
87}
ab5796a9
MB
88
89/* arch-tag: 229732a6-46bf-4a3a-ad90-3d8ed65c0841
90 (do not change this comment) */