1 /* $TOG: BBUtil.c /main/8 1997/04/15 10:23:34 dbl $ */
2 /*
3 * Motif
4 *
5 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
6 *
7 * These libraries and programs are free software; you can
8 * redistribute them and/or modify them under the terms of the GNU
9 * Lesser General Public License as published by the Free Software
10 * Foundation; either version 2 of the License, or (at your option)
11 * any later version.
12 *
13 * These libraries and programs are distributed in the hope that
14 * they will be useful, but WITHOUT ANY WARRANTY; without even the
15 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 * PURPOSE. See the GNU Lesser General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with these librararies and programs; if not, write
21 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
22 * Floor, Boston, MA 02110-1301 USA
23 *
24 */
25 /*
26 * HISTORY
27 */
28
29
30 #ifdef HAVE_CONFIG_H
31 #include <config.h>
32 #endif
33
34
35 #include <Xm/Xm.h>
36 #include <Xm/PushBG.h>
37 #include <Xm/LabelG.h>
38 #include <Xm/TraitP.h>
39 #include <Xm/TakesDefT.h>
40 #include "BulletinBI.h"
41 #include "MessagesI.h"
42
43 /* defines for label string resources coming from message catalog */
44 #define OK_STRING _XmMMsgResource_0001
45 #define CANCEL_STRING _XmMMsgResource_0002
46 #define SELECTION_STRING _XmMMsgResource_0003
47 #define APPLY_STRING _XmMMsgResource_0004
48 #define HELP_STRING _XmMMsgResource_0005
49 #define FILTER_STRING _XmMMsgResource_0006
50 #define DIRLIST_STRING _XmMMsgResource_0008
51 #define ITEMS_STRING _XmMMsgResource_0009
52 #define DIRTEXT_STRING _XmMMsgResource_0011
53 #define PROMPT_STRING _XmMMsgResource_0012
54
55
56
57 /****************************************************************/
58 static char *
GetLabelString(XmLabelStringLoc l_loc)59 GetLabelString(
60 XmLabelStringLoc l_loc )
61 {
62 char *retval = (char*)NULL;
63 switch (l_loc)
64 {
65 case XmOkStringLoc:
66 retval = OK_STRING;
67 break;
68 case XmCancelStringLoc:
69 retval = CANCEL_STRING;
70 break;
71 case XmSelectionStringLoc:
72 retval = SELECTION_STRING;
73 break;
74 case XmApplyStringLoc:
75 retval = APPLY_STRING;
76 break;
77 case XmHelpStringLoc:
78 retval = HELP_STRING;
79 break;
80 case XmFilterStringLoc:
81 retval = FILTER_STRING;
82 break;
83 case XmDirListStringLoc:
84 retval = DIRLIST_STRING;
85 break;
86 case XmItemsStringLoc:
87 retval = ITEMS_STRING;
88 break;
89 case XmDirTextStringLoc:
90 retval = DIRTEXT_STRING;
91 break;
92 case XmPromptStringLoc:
93 retval = PROMPT_STRING;
94 break;
95 default:
96 /* internal error */
97 break;
98 }
99 return retval;
100 }
101
102
103 /****************************************************************/
104 Widget
_XmBB_CreateButtonG(Widget bb,XmString l_string,char * name,XmLabelStringLoc l_loc)105 _XmBB_CreateButtonG(
106 Widget bb,
107 XmString l_string,
108 char *name,
109 XmLabelStringLoc l_loc )
110 {
111 Arg al[10] ;
112 register Cardinal ac = 0 ;
113 Widget button ;
114 XmTakesDefaultTrait trait_default ;
115 XmString default_label_string_loc = NULL;
116 /****************/
117
118 if( l_string )
119 {
120 XtSetArg( al[ac], XmNlabelString, l_string) ; ac++ ;
121 }
122 else
123 {
124 default_label_string_loc = XmStringCreate(GetLabelString(l_loc),
125 XmFONTLIST_DEFAULT_TAG);
126 XtSetArg( al[ac], XmNlabelString, default_label_string_loc); ac++;
127 }
128
129 XtSetArg( al[ac], XmNstringDirection, BB_StringDirection( bb)) ; ac++ ;
130
131 button = XmCreatePushButtonGadget( (Widget) bb, name, al, ac) ;
132
133 trait_default = (XmTakesDefaultTrait) XmeTraitGet((XtPointer)
134 XtClass(button),
135 XmQTtakesDefault) ;
136 if (trait_default)
137 trait_default->showAsDefault (button, XmDEFAULT_READY);
138
139 if (default_label_string_loc)
140 XmStringFree(default_label_string_loc);
141
142 return( button ) ;
143 }
144
145 /****************************************************************/
146 Widget
_XmBB_CreateLabelG(Widget bb,XmString l_string,char * name,XmLabelStringLoc l_loc)147 _XmBB_CreateLabelG(
148 Widget bb,
149 XmString l_string,
150 char *name,
151 XmLabelStringLoc l_loc )
152 {
153 Arg al[10] ;
154 register int ac = 0 ;
155 Widget label ;
156 XmString default_label_string_loc = NULL;
157 /****************/
158
159 if( l_string )
160 {
161 XtSetArg( al[ac], XmNlabelString, l_string) ; ac++ ;
162 }
163 else
164 {
165 default_label_string_loc = XmStringCreate(GetLabelString(l_loc),
166 XmFONTLIST_DEFAULT_TAG);
167 XtSetArg( al[ac], XmNlabelString, default_label_string_loc); ac++;
168 }
169
170 XtSetArg( al[ac], XmNstringDirection, BB_StringDirection( bb)) ; ac++ ;
171 XtSetArg( al[ac], XmNhighlightThickness, 0) ; ac++ ;
172 XtSetArg( al[ac], XmNtraversalOn, False) ; ac++ ;
173 XtSetArg( al[ac], XmNalignment, XmALIGNMENT_BEGINNING) ; ac++ ;
174
175 label = XmCreateLabelGadget( bb, name, al, ac);
176
177 if (default_label_string_loc)
178 XmStringFree(default_label_string_loc);
179
180 return( label ) ;
181
182 }
183
184