FACT++  1.0
dui_util.c
Go to the documentation of this file.
1 /*
2 **++
3 ** FACILITY: DUI
4 **
5 ** MODULE DESCRIPTION:
6 **
7 ** Implements MOTIF utility functions
8 **
9 ** AUTHORS:
10 **
11 ** C. Gaspar
12 **
13 ** CREATION DATE: 24-01-1993
14 **
15 **--
16 */
17 #include <stdio.h>
18 #include <Mrm/MrmAppl.h> /* Motif Toolkit */
19 #include <Xm/Xm.h>
20 
21 #include <dim.h>
22 #include "dui_util.h"
23 
24 /* compound strings */
25 
26 
27 static XmString Active_str;
28 
29 XmString get_str(text)
30 char *text;
31 {
32 
33  Active_str = XmStringCreateLtoR ( text, XmSTRING_DEFAULT_CHARSET);
34  return(Active_str);
35 }
36 
37 
38 void free_str()
39 {
40 
41  XmStringFree(Active_str);
42 }
43 
44 
45 XmString create_str(text)
46 char *text;
47 {
48 XmString str;
49 
50 
51  str = XmStringCreate ( text, XmSTRING_DEFAULT_CHARSET);
52  return(str);
53 }
54 
56 XmString str;
57 {
58 
59  XmStringFree(str);
60 }
61 
62 void set_something(w, resource, value)
63  Widget w;
64  char *resource, *value;
65 {
66  Arg al[1];
67  int free = 0;
68 DISABLE_AST
69  if( (!strcmp(resource,XmNlabelString)) ||
70  (!strcmp(resource,XmNmessageString)) ||
71  (!strcmp(resource,XmNtextString)) ||
72  (!strcmp(resource,XmNlistLabelString)) ||
73  (!strcmp(resource,XmNselectionLabelString)) )
74  {
75  free = 1;
76  value = (char *)get_str(value);
77  }
78  XtSetArg(al[0], resource, value);
79  XtSetValues(w, al, 1);
80  if(free)
81  free_str();
82  /*
83  printf("Flushing %s for widget %s...\n",resource,w->core.name);
84  */
85  /*
86  XFlush(XtDisplay(w));
87  */
88  /*
89  printf("Flushed!\n");
90  */
91 ENABLE_AST
92 }
93 
94 void get_something(w, resource, value)
95  Widget w;
96  char *resource, *value;
97 {
98 
99  Arg al[1];
100  int free = 0;
101  XmString str;
102  char *cstr;
103 
104  if( (!strcmp(resource,XmNlabelString)) ||
105  (!strcmp(resource,XmNmessageString)) ||
106  (!strcmp(resource,XmNtextString)) ||
107  (!strcmp(resource,XmNlistLabelString)) ||
108  (!strcmp(resource,XmNselectionLabelString)) )
109  {
110  free = 1;
111  XtSetArg(al[0], resource, &str);
112  }
113  else
114  XtSetArg(al[0], resource, value);
115  XtGetValues(w, al, 1);
116  if(free)
117  {
118  XmStringGetLtoR(str, XmSTRING_DEFAULT_CHARSET, &cstr);
119  strcpy(value,cstr);
120  XtFree(cstr);
121  }
122 }
123 /*
124 void set_something_uid(hid, w, resource, value)
125  MrmHierarchy hid;
126  Widget w;
127  char *resource, *value;
128 {
129  Arg al[1];
130 
131  XtSetArg(al[0], resource, value);
132 
133  MrmFetchSetValues(hid, w, al, 1);
134 }
135 */
136 
137 static XmString str_table[50];
138 
139 XmStringTable create_str_table(strs)
140 char strs[50][256];
141 {
142 int i;
143 
144  for(i=0;strs[i][0];i++)
145  {
146  str_table[i] = XmStringCreate ( strs[i], XmSTRING_DEFAULT_CHARSET);
147  }
148  str_table[i] = (XmString)0;
149  return((XmStringTable)str_table);
150 }
151 
153 {
154 int i;
155 
156  for(i=0;str_table[i];i++)
157  XmStringFree(str_table[i]);
158 
159 }
160 
162 static Pixmap pixmap_colors[MAX_COLORS];
163 static Pixmap watch_colors[MAX_COLORS];
164 static Pixmap locks[MAX_COLORS];
165 static Pixmap unlock;
166 static Pixmap faces[MAX_COLORS];
167 
169 int color;
170 {
171  return(rgb_colors[color]);
172 }
173 
174 void set_color(w, resource, color)
175 Widget w;
176 char *resource;
177 int color;
178 {
179 
180 DISABLE_AST
181 /*
182  if(resource == XmNbackgroundPixmap)
183 */
184  if(!strcmp(resource,XmNbackgroundPixmap))
185  set_something(w,resource,pixmap_colors[color]);
186  else
187  set_something(w,resource,rgb_colors[color]);
188 ENABLE_AST
189 }
190 
191 void set_watch(w, color)
192 Widget w;
193 int color;
194 {
195  set_something(w,XmNbackgroundPixmap,watch_colors[color]);
196 }
197 
198 void set_lock(w, color)
199 Widget w;
200 int color;
201 {
202  set_something(w,XmNbackgroundPixmap,locks[color]);
203 }
204 
205 void set_unlock(w)
206 Widget w;
207 {
208  set_something(w,XmNbackgroundPixmap,unlock);
209 }
210 
211 void set_face(w, color)
212 Widget w;
213 int color;
214 {
215  set_something(w,XmNbackgroundPixmap,faces[color]);
216 }
217 
219  Display *display;
220  Widget w;
221 {
222  XColor a,b;
223  Colormap cm;
224  cm = DefaultColormap ( display, DefaultScreen(display));
225 
226  XAllocNamedColor ( display, cm, "Medium Aquamarine", &a,&b );
227  rgb_colors[GREEN] = b.pixel;
228 
229  XAllocNamedColor ( display, cm, "Turquoise", &a,&b );
230  rgb_colors[BLUE] = b.pixel;
231 
232  XAllocNamedColor ( display, cm, "Yellow", &a,&b );
233  rgb_colors[YELLOW] = b.pixel;
234 
235  XAllocNamedColor ( display, cm, "Orange", &a,&b );
236  rgb_colors[ORANGE] = b.pixel;
237 
238  XAllocNamedColor ( display, cm, "Red", &a,&b );
239  rgb_colors[RED] = b.pixel;
240 
241  XAllocNamedColor ( display, cm, "Black", &a,&b );
242  rgb_colors[BLACK] = b.pixel;
243 
244  XAllocNamedColor ( display, cm, "White", &a,&b );
245  rgb_colors[WHITE] = b.pixel;
246 
247  XAllocNamedColor ( display, cm, "Light Gray", &a,&b );
248  rgb_colors[GRAY] = b.pixel;
249 
250  XAllocNamedColor ( display, cm, "Gainsboro", &a,&b );
251  rgb_colors[LIGHTGRAY] = b.pixel;
252 /*
253  MrmFetchColorLiteral(hid, "green", display, 0, &rgb_colors[GREEN]);
254  MrmFetchColorLiteral(hid, "blue", display, 0, &rgb_colors[BLUE]);
255  MrmFetchColorLiteral(hid, "yellow", display, 0, &rgb_colors[YELLOW]);
256  MrmFetchColorLiteral(hid, "orange", display, 0, &rgb_colors[ORANGE]);
257  MrmFetchColorLiteral(hid, "red", display, 0, &rgb_colors[RED]);
258  MrmFetchColorLiteral(hid, "black", display, 0, &rgb_colors[BLACK]);
259  MrmFetchColorLiteral(hid, "white", display, 0, &rgb_colors[WHITE]);
260 */
261  get_something(w,XmNbackground,&rgb_colors[NONE]);
262 }
263 
264 
265 static int was_sensitive = 0;
266 
267 void set_sensitive(widget_id)
268 Widget widget_id;
269 {
270 
271  if(was_sensitive)
272  XtSetSensitive(widget_id,True);
273 }
274 
275 void set_insensitive(widget_id)
276 Widget widget_id;
277 {
278 
279  if( (was_sensitive = XtIsSensitive(widget_id)) )
280  XtSetSensitive(widget_id,False);
281 }
282 
283 void set_title(w, title)
284  Widget w;
285  char *title;
286 {
287  Arg al[1];
288 
289  XtSetArg(al[0], XmNtitle, title);
290  XtSetValues(w, al, 1);
291  /*
292  XFlush(XtDisplay(w));
293  */
294 }
295 
296 void set_icon_title(w, title)
297  Widget w;
298  char *title;
299 {
300  Arg al[1];
301 
302  XtSetArg(al[0], XmNiconName, title);
303  XtSetValues(w, al, 1);
304  /*
305  XFlush(XtDisplay(w));
306  */
307 }
308 
void free_str()
Definition: dui_util.c:38
static Pixmap pixmap_colors[MAX_COLORS]
Definition: dui_util.c:162
void set_insensitive(Widget widget_id)
Definition: dui_util.c:275
void set_sensitive(Widget widget_id)
Definition: dui_util.c:267
static Pixmap faces[MAX_COLORS]
Definition: dui_util.c:166
void set_lock(Widget w, int color)
Definition: dui_util.c:198
int i
Definition: db_dim_client.c:21
void get_something(Widget w, char *resource, char *value)
Definition: dui_util.c:94
XmString get_str(char *text)
Definition: dui_util.c:29
char str[80]
Definition: test_client.c:7
static XmString str_table[50]
Definition: dui_util.c:137
void get_all_colors(Display *display, Widget w)
Definition: dui_util.c:218
void set_icon_title(Widget w, char *title)
Definition: dui_util.c:296
Definition: dui_colors.h:4
static Pixmap watch_colors[MAX_COLORS]
Definition: dui_util.c:163
Pixel rgb_colors[MAX_COLORS]
Definition: dui_util.c:161
void set_title(Widget w, char *title)
Definition: dui_util.c:283
void set_unlock(Widget w)
Definition: dui_util.c:205
Pixel get_named_color(int color)
Definition: dui_util.c:168
XmString create_str(char *text)
Definition: dui_util.c:45
Definition: dui_colors.h:4
Display * display
Definition: did.h:37
void set_color(Widget w, char *resource, int color)
Definition: dui_util.c:174
static Pixmap unlock
Definition: dui_util.c:165
void del_str_table()
Definition: dui_util.c:152
void set_watch(Widget w, int color)
Definition: dui_util.c:191
void delete_str(XmString str)
Definition: dui_util.c:55
void free(void *mem)
void set_face(Widget w, int color)
Definition: dui_util.c:211
static XmString Active_str
Definition: dui_util.c:27
static Pixmap locks[MAX_COLORS]
Definition: dui_util.c:164
static int was_sensitive
Definition: dui_util.c:265
function color(col)
Definition: color.js:31
Definition: dui_colors.h:4
XmStringTable create_str_table(strs)
Definition: dui_util.c:139
void set_something(Widget w, char *resource, char *value)
Definition: dui_util.c:62
Definition: dui_colors.h:4