Merge branch 'master' of https://git.code.sf.net/p/cdesktopenv/code
[oweals/cde.git] / cde / programs / dtcalc / ds_widget.c
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
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)
10  * any later version.
11  *
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
16  * details.
17  *
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
22  */
23 /* $XConsortium: ds_widget.c /main/5 1996/09/23 11:20:59 mustafa $ */
24 /*                                                                      *
25  *  ds_widet.c                                                          *
26  *   Contains some common functions which create some Xm widget which   *
27  *   are used throughout the Desktop Calculator.                        *
28  *                                                                      *
29  * (c) Copyright 1993, 1994 Hewlett-Packard Company                     *
30  * (c) Copyright 1993, 1994 International Business Machines Corp.       *
31  * (c) Copyright 1993, 1994 Sun Microsystems, Inc.                      *
32  * (c) Copyright 1993, 1994 Novell, Inc.                                *
33  */
34
35 #include <stdio.h>
36 #include <limits.h>
37 #include "ds_widget.h"
38
39 #ifndef  LINT_CAST
40 #ifdef   lint
41 #define  LINT_CAST(arg)    (arg ? 0 : 0)
42 #else
43 #define  LINT_CAST(arg)    (arg)
44 #endif /*lint*/
45 #endif /*LINT_CAST*/
46
47 struct tW_struct *
48 make_textW(owner, label)
49 Widget owner ;
50 char *label ;
51 {
52   struct tW_struct *w ;
53  
54   w = (struct tW_struct *) LINT_CAST(calloc(1, sizeof(struct tW_struct))) ;
55  
56   w->manager = XtVaCreateManagedWidget("manager",
57                                        xmRowColumnWidgetClass,
58                                        owner,
59                                        XmNorientation,  XmHORIZONTAL,
60                                        XmNnumColumns,   1,
61                                        NULL) ;
62   w->label = XtVaCreateManagedWidget(label,
63                                      xmLabelWidgetClass,
64                                      w->manager,
65                                      XmNalignment, XmALIGNMENT_BEGINNING,
66                                      NULL) ;
67   w->textfield = XtVaCreateManagedWidget("textfield",
68                                          xmTextFieldWidgetClass,
69                                          w->manager,
70                                          XmNmaxLength, INT_MAX,
71                                          NULL) ;
72   return(w) ;
73 }
74
75 void
76 set_text_str(w, ttype, str)
77 struct tW_struct *w ;
78 enum text_type ttype ;
79 char *str ;
80 {
81   XmString cstr ;
82
83   switch (ttype)
84     {
85       case T_LABEL : cstr = XmStringCreateLocalized(str) ;
86                      XtVaSetValues(w->label, XmNlabelString, cstr, 0) ;
87                      XmStringFree(cstr) ;
88                      break ;
89       case T_VALUE : XmTextFieldSetString(w->textfield, str) ;
90     }
91 }