Blame lib/Xm/BBUtil.c

Packit b099d7
/* $TOG: BBUtil.c /main/8 1997/04/15 10:23:34 dbl $ */
Packit b099d7
/*
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
 * 
Packit b099d7
 */
Packit b099d7
/*
Packit b099d7
 * HISTORY
Packit b099d7
 */
Packit b099d7
Packit b099d7
Packit b099d7
#ifdef HAVE_CONFIG_H
Packit b099d7
#include <config.h>
Packit b099d7
#endif
Packit b099d7
Packit b099d7
Packit b099d7
#include <Xm/Xm.h>
Packit b099d7
#include <Xm/PushBG.h>
Packit b099d7
#include <Xm/LabelG.h>
Packit b099d7
#include <Xm/TraitP.h>
Packit b099d7
#include <Xm/TakesDefT.h>
Packit b099d7
#include "BulletinBI.h"
Packit b099d7
#include "MessagesI.h"
Packit b099d7
Packit b099d7
/* defines for label string resources coming from message catalog */
Packit b099d7
#define OK_STRING         _XmMMsgResource_0001
Packit b099d7
#define CANCEL_STRING     _XmMMsgResource_0002
Packit b099d7
#define SELECTION_STRING  _XmMMsgResource_0003
Packit b099d7
#define APPLY_STRING      _XmMMsgResource_0004
Packit b099d7
#define HELP_STRING       _XmMMsgResource_0005
Packit b099d7
#define FILTER_STRING     _XmMMsgResource_0006
Packit b099d7
#define DIRLIST_STRING    _XmMMsgResource_0008
Packit b099d7
#define ITEMS_STRING      _XmMMsgResource_0009
Packit b099d7
#define DIRTEXT_STRING    _XmMMsgResource_0011
Packit b099d7
#define PROMPT_STRING     _XmMMsgResource_0012
Packit b099d7
Packit b099d7

Packit b099d7
Packit b099d7
/****************************************************************/
Packit b099d7
static char *
Packit b099d7
GetLabelString(
Packit b099d7
       XmLabelStringLoc l_loc )
Packit b099d7
{
Packit b099d7
    char *retval = (char*)NULL;
Packit b099d7
    switch (l_loc)
Packit b099d7
	{
Packit b099d7
	case XmOkStringLoc:
Packit b099d7
	    retval = OK_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmCancelStringLoc:
Packit b099d7
	    retval = CANCEL_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmSelectionStringLoc:
Packit b099d7
	    retval = SELECTION_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmApplyStringLoc:
Packit b099d7
	    retval = APPLY_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmHelpStringLoc:
Packit b099d7
	    retval = HELP_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmFilterStringLoc:
Packit b099d7
	    retval = FILTER_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmDirListStringLoc:
Packit b099d7
	    retval = DIRLIST_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmItemsStringLoc:
Packit b099d7
	    retval = ITEMS_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmDirTextStringLoc:
Packit b099d7
	    retval = DIRTEXT_STRING;
Packit b099d7
	    break;
Packit b099d7
	case XmPromptStringLoc:
Packit b099d7
	    retval = PROMPT_STRING;
Packit b099d7
	    break;
Packit b099d7
	default:
Packit b099d7
		/* internal error */
Packit b099d7
		break;
Packit b099d7
	}
Packit b099d7
    return retval;
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/****************************************************************/
Packit b099d7
Widget 
Packit b099d7
_XmBB_CreateButtonG(
Packit b099d7
        Widget bb,
Packit b099d7
        XmString l_string,
Packit b099d7
	char *name,
Packit b099d7
        XmLabelStringLoc l_loc )
Packit b099d7
{
Packit b099d7
    Arg		        al[10] ;
Packit b099d7
    register Cardinal   ac = 0 ;
Packit b099d7
    Widget              button ;
Packit b099d7
    XmTakesDefaultTrait trait_default ;
Packit b099d7
    XmString            default_label_string_loc = NULL;
Packit b099d7
/****************/
Packit b099d7
Packit b099d7
    if(    l_string    )
Packit b099d7
	{
Packit b099d7
	    XtSetArg( al[ac], XmNlabelString, l_string) ; ac++ ;
Packit b099d7
        }
Packit b099d7
    else
Packit b099d7
	{
Packit b099d7
	    default_label_string_loc = XmStringCreate(GetLabelString(l_loc),
Packit b099d7
						      XmFONTLIST_DEFAULT_TAG);
Packit b099d7
	    XtSetArg( al[ac], XmNlabelString, default_label_string_loc); ac++;
Packit b099d7
	}
Packit b099d7
	    
Packit b099d7
    XtSetArg( al[ac], XmNstringDirection, BB_StringDirection( bb)) ; ac++ ;
Packit b099d7
Packit b099d7
    button = XmCreatePushButtonGadget( (Widget) bb, name, al, ac) ;
Packit b099d7
Packit b099d7
    trait_default = (XmTakesDefaultTrait) XmeTraitGet((XtPointer)
Packit b099d7
						      XtClass(button), 
Packit b099d7
						      XmQTtakesDefault) ;
Packit b099d7
    if (trait_default) 
Packit b099d7
	trait_default->showAsDefault  (button, XmDEFAULT_READY);
Packit b099d7
Packit b099d7
    if (default_label_string_loc)
Packit b099d7
	XmStringFree(default_label_string_loc);
Packit b099d7
Packit b099d7
    return( button ) ;
Packit b099d7
}
Packit b099d7
Packit b099d7
/****************************************************************/
Packit b099d7
Widget 
Packit b099d7
_XmBB_CreateLabelG(
Packit b099d7
        Widget bb,
Packit b099d7
        XmString l_string,
Packit b099d7
        char *name,
Packit b099d7
        XmLabelStringLoc l_loc )
Packit b099d7
{
Packit b099d7
            Arg		    al[10] ;
Packit b099d7
    register int            ac = 0 ;
Packit b099d7
    Widget                  label ;
Packit b099d7
    XmString                default_label_string_loc = NULL;
Packit b099d7
/****************/
Packit b099d7
Packit b099d7
    if(    l_string    )
Packit b099d7
	{
Packit b099d7
	    XtSetArg( al[ac], XmNlabelString, l_string) ; ac++ ;
Packit b099d7
        }
Packit b099d7
    else
Packit b099d7
	{
Packit b099d7
	    default_label_string_loc = XmStringCreate(GetLabelString(l_loc),
Packit b099d7
						      XmFONTLIST_DEFAULT_TAG);
Packit b099d7
	    XtSetArg( al[ac], XmNlabelString, default_label_string_loc); ac++;
Packit b099d7
	}
Packit b099d7
Packit b099d7
    XtSetArg( al[ac], XmNstringDirection, BB_StringDirection( bb)) ; ac++ ;
Packit b099d7
    XtSetArg( al[ac], XmNhighlightThickness, 0) ; ac++ ;
Packit b099d7
    XtSetArg( al[ac], XmNtraversalOn, False) ; ac++ ;
Packit b099d7
    XtSetArg( al[ac], XmNalignment, XmALIGNMENT_BEGINNING) ; ac++ ;
Packit b099d7
Packit b099d7
    label = XmCreateLabelGadget( bb, name, al, ac);
Packit b099d7
Packit b099d7
    if (default_label_string_loc)
Packit b099d7
	XmStringFree(default_label_string_loc);
Packit b099d7
Packit b099d7
    return( label ) ;
Packit b099d7
	
Packit b099d7
}
Packit b099d7