2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: NewCvt.c /main/5 1996/03/26 19:53:53 drk $
25 * (c) Copyright 1996 Digital Equipment Corporation.
26 * (c) Copyright 1990,1996 Hewlett-Packard Company.
27 * (c) Copyright 1996 International Business Machines Corp.
28 * (c) Copyright 1996 Sun Microsystems, Inc.
29 * (c) Copyright 1996 Novell, Inc.
30 * (c) Copyright 1996 FUJITSU LIMITED.
31 * (c) Copyright 1996 Hitachi.
34 /**---------------------------------------------------------------------
38 *** project: Motif Widgets
40 *** description: Source code for new MotifPlus resource converters.
42 ***-------------------------------------------------------------------*/
45 /*-------------------------------------------------------------
49 #include <Dt/DialogBox.h>
51 #include <Dt/TitleBox.h>
52 #include "DtWidgetI.h"
55 extern void _DtRegisterNewConverters( void ) ;
57 /******** Static Function Declarations ********/
59 static Boolean _StringsAreEqual(
62 static void _DtCvtStringToBehavior(
67 static void _DtCvtStringToChildType(
72 static void _DtCvtStringToFillMode(
77 static void _DtCvtStringToPixmapPosition(
82 static void _DtCvtStringToStringPosition(
87 static void _DtCvtStringToTitlePosition(
93 /******** End Static Function Declarations ********/
96 /*-------------------------------------------------------------
97 ** _DtRegisterNewConverters
98 ** Convert MotifPlus resource converters.
101 _DtRegisterNewConverters( void )
103 static Boolean new_converters_registered = False;
105 if (!new_converters_registered)
108 if (!new_converters_registered)
110 /* Register new converters. */
111 XtAddConverter (XmRString, XmRBehavior,
112 _DtCvtStringToBehavior, NULL, 0);
114 XtAddConverter (XmRString, XmRChildType,
115 _DtCvtStringToChildType, NULL, 0);
117 XtAddConverter (XmRString, XmRFillMode,
118 _DtCvtStringToFillMode, NULL, 0);
120 XtAddConverter (XmRString, XmRPixmapPosition,
121 _DtCvtStringToPixmapPosition, NULL, 0);
123 XtAddConverter (XmRString, XmRStringPosition,
124 _DtCvtStringToStringPosition, NULL, 0);
126 XtAddConverter (XmRString, XmRTitlePosition,
127 _DtCvtStringToTitlePosition, NULL, 0);
129 new_converters_registered = True;
137 /*-------------------------------------------------------------
139 ** Compare possibly mixed case string with lowercase string.
155 if (i != j) return (False);
156 if (i == 0) return (True);
165 /*-------------------------------------------------------------
166 ** _DtCvtStringToBehavior
167 ** Convert XmRString to XmRBehavior.
170 _DtCvtStringToBehavior(
176 String string = (String) from_val->addr;
177 static unsigned char value;
179 to_val->size = sizeof (unsigned char);
180 to_val->addr = (XtPointer) &value;
182 if (_StringsAreEqual (string, STR_ICON_LABEL))
183 value = XmICON_LABEL;
184 else if (_StringsAreEqual (string, STR_ICON_BUTTON))
185 value = XmICON_BUTTON;
186 else if (_StringsAreEqual (string, STR_ICON_TOGGLE))
187 value = XmICON_TOGGLE;
188 else if (_StringsAreEqual (string, STR_ICON_DRAG))
194 XtStringConversionWarning ((String) from_val->addr,
201 /*-------------------------------------------------------------
202 ** _DtCvtStringToChildType
203 ** Convert XmRString to XmRChildType.
206 _DtCvtStringToChildType(
212 String string = (String) from_val->addr;
213 static unsigned char value;
215 to_val->size = sizeof (unsigned char);
216 to_val->addr = (XtPointer) &value;
218 if (_StringsAreEqual (string, STR_WORK_AREA))
220 else if (_StringsAreEqual (string, STR_TITLE_AREA))
221 value = XmTITLE_AREA;
222 else if (_StringsAreEqual (string, STR_SEPARATOR))
224 else if (_StringsAreEqual (string, STR_BUTTON))
230 XtStringConversionWarning ((String) from_val->addr,
237 /*-------------------------------------------------------------
238 ** _DtCvtStringToFillMode
239 ** Convert XmRString to XmRFillMode.
242 _DtCvtStringToFillMode(
248 String string = (String) from_val->addr;
249 static unsigned char value;
251 to_val->size = sizeof (unsigned char);
252 to_val->addr = (XtPointer) &value;
254 if (_StringsAreEqual (string, STR_FILL_NONE))
256 else if (_StringsAreEqual (string, STR_FILL_PARENT))
257 value = XmFILL_PARENT;
258 else if (_StringsAreEqual (string, STR_FILL_SELF))
260 else if (_StringsAreEqual (string, STR_FILL_TRANSPARENT))
261 value = XmFILL_TRANSPARENT;
266 XtStringConversionWarning ((String) from_val->addr,
273 /*-------------------------------------------------------------
274 ** _DtCvtStringToPixmapPosition
275 ** Convert string to pixmap position.
278 _DtCvtStringToPixmapPosition(
284 String string = (String) from_val->addr;
285 static unsigned char value;
287 to_val->size = sizeof (unsigned char);
288 to_val->addr = (XtPointer) &value;
290 if (_StringsAreEqual (string, STR_PIXMAP_TOP))
291 value = XmPIXMAP_TOP;
292 else if (_StringsAreEqual (string, STR_PIXMAP_BOTTOM))
293 value = XmPIXMAP_BOTTOM;
294 else if (_StringsAreEqual (string, STR_PIXMAP_LEFT))
295 value = XmPIXMAP_LEFT;
296 else if (_StringsAreEqual (string, STR_PIXMAP_RIGHT))
297 value = XmPIXMAP_RIGHT;
298 else if (_StringsAreEqual (string, "pixmap_middle"))
299 value = XmPIXMAP_MIDDLE;
304 XtStringConversionWarning ((String) from_val->addr,
311 /*-------------------------------------------------------------
312 ** _DtCvtStringToStringPosition
313 ** Convert XmRString to XmRStringPosition.
316 _DtCvtStringToStringPosition(
322 String string = (String) from_val->addr;
323 static unsigned char value;
325 to_val->size = sizeof (unsigned char);
326 to_val->addr = (XtPointer) &value;
328 if (_StringsAreEqual (string, STR_STRING_TOP))
329 value = XmSTRING_TOP;
330 else if (_StringsAreEqual (string, STR_STRING_BOTTOM))
331 value = XmSTRING_BOTTOM;
332 else if (_StringsAreEqual (string, STR_STRING_LEFT))
333 value = XmSTRING_LEFT;
334 else if (_StringsAreEqual (string, STR_STRING_RIGHT))
335 value = XmSTRING_RIGHT;
340 XtStringConversionWarning ((String) from_val->addr,
347 /*-------------------------------------------------------------
348 ** _DtCvtStringToTitlePosition
349 ** Convert XmRString to XmRTitlePosition.
352 _DtCvtStringToTitlePosition(
358 String string = (String) from_val->addr;
359 static unsigned char value;
361 to_val->size = sizeof (unsigned char);
362 to_val->addr = (XtPointer) &value;
364 if (_StringsAreEqual (string, STR_TITLE_TOP))
366 else if (_StringsAreEqual (string, STR_TITLE_BOTTOM))
367 value = XmTITLE_BOTTOM;
372 XtStringConversionWarning ((String) from_val->addr,