Blame tests/Toolkit/Text/lib/CommText10.c

Packit b099d7
/* $TOG: CommText10.c /main/8 1997/10/02 15:59:09 csn $ */
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
 * HISTORY
Packit b099d7
 */
Packit b099d7
#include <testlib.h>
Packit b099d7
Packit b099d7
#define	TB_COUNT	9
Packit b099d7
#define	NUM_COLUMNS	20
Packit b099d7
Packit b099d7
typedef struct _FontCBData {
Packit b099d7
  Widget	widget;
Packit b099d7
  char        	*fontname;
Packit b099d7
} FontCBData;
Packit b099d7
  
Packit b099d7
/*
Packit b099d7
 *  Global variables.
Packit b099d7
 */
Packit b099d7
static char new_string2[] = "\
Packit b099d7
123456789012345678901234567890\n\
Packit b099d7
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm\n\
Packit b099d7
000000000000000000000000000000";
Packit b099d7
Packit b099d7
static char new_string3[] = "012345";
Packit b099d7
Packit b099d7
static char render_tag[] = "render1";
Packit b099d7
Packit b099d7
Widget RowCol1, Label1; 
Packit b099d7
Widget Text1, Text2;
Packit b099d7
Widget fonttitle1;
Packit b099d7
XFontStruct  *fontStruct0, *fontStruct1, *fontStruct2;
Packit b099d7
Packit b099d7
void printvalues();
Packit b099d7
Packit b099d7
static void fontTBCB1(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	Arg args[MAX_ARGS];
Packit b099d7
	int n;
Packit b099d7
        XmRendition   rendition;
Packit b099d7
        XmRenderTable renderTab = NULL;
Packit b099d7
        FontCBData    *fontCBData = (FontCBData *)client_data; 
Packit b099d7
        Widget	      widget;
Packit b099d7
	char	      *fontname;
Packit b099d7
Packit b099d7
	widget = fontCBData->widget;
Packit b099d7
        fontname = fontCBData->fontname;
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNfontList, CommonGetFontList(fontname));  n++;
Packit b099d7
	XtSetValues(Text1, args, n);
Packit b099d7
	printvalues("after Text1 ->");
Packit b099d7
	XtSetValues(Text2, args, n);
Packit b099d7
	printvalues("after Text2 ->");
Packit b099d7
Packit b099d7
        XmRenderTableFree( renderTab );
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
static void fontTBCB2(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	Arg args[MAX_ARGS];
Packit b099d7
	int n;
Packit b099d7
        XmRendition   rendition;
Packit b099d7
        XmRenderTable renderTab = NULL;
Packit b099d7
        FontCBData    *fontCBData = (FontCBData *)client_data; 
Packit b099d7
        Widget	      widget;
Packit b099d7
	char	      *fontname;
Packit b099d7
	unsigned int  em_space;
Packit b099d7
	char          buffer[25];
Packit b099d7
	XmToggleButtonCallbackStruct *toggle_data =
Packit b099d7
	  (XmToggleButtonCallbackStruct *)call_data;
Packit b099d7
Packit b099d7
	/* Don't do anything if this toggle is being turned off */
Packit b099d7
	if (!toggle_data->set) return;
Packit b099d7
Packit b099d7
	widget = fontCBData->widget;
Packit b099d7
        fontname = fontCBData->fontname;
Packit b099d7
Packit b099d7
        fontStruct2 = XLoadQueryFont( display, fontname ); 
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNfont, (XtPointer)fontStruct2);  n++;
Packit b099d7
        XtSetArg(args[n], XmNfontType, XmFONT_IS_FONT );  n++;
Packit b099d7
        XtSetArg(args[n], XmNloadModel, XmLOAD_IMMEDIATE );  n++;
Packit b099d7
        rendition = XmRenditionCreate( Text1, render_tag, args, n );
Packit b099d7
Packit b099d7
        renderTab = XmRenderTableAddRenditions( renderTab, &rendition, 1,
Packit b099d7
                      XmMERGE_REPLACE );
Packit b099d7
Packit b099d7
        XmRenditionFree( rendition ); 
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNrenderTable, renderTab);  n++;
Packit b099d7
	XtSetValues(Text1, args, n);
Packit b099d7
Packit b099d7
	XmRenderTableFree( renderTab );
Packit b099d7
}
Packit b099d7
Packit b099d7
void printvalues(char *tag)
Packit b099d7
{
Packit b099d7
	Arg args[MAX_ARGS];
Packit b099d7
	int n;
Packit b099d7
	short	cols;
Packit b099d7
	Dimension    width;
Packit b099d7
Packit b099d7
	printf("%s:\n", tag);
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNwidth, &width); n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, &cols;; n++;
Packit b099d7
Packit b099d7
	XtGetValues(Text1, args, n);
Packit b099d7
	printf("  Text1  width %d  columns %d\n", width, cols);
Packit b099d7
	XtGetValues(Text2, args, n);
Packit b099d7
	printf("  Text2  width %d  columns %d\n\n", width, cols);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
main_text10 (argc, argv)
Packit b099d7
     int argc;
Packit b099d7
     char **argv;
Packit b099d7
{
Packit b099d7
	Widget	fontTB1[TB_COUNT], fontRB1;
Packit b099d7
	char	*fontname[TB_COUNT];
Packit b099d7
	int	i;
Packit b099d7
	Arg	args[MAX_ARGS];
Packit b099d7
	int	n;
Packit b099d7
        XmString tmp_string;
Packit b099d7
        FontCBData  fontCB1, fontCB2, fontCB3[TB_COUNT];
Packit b099d7
Packit b099d7
	/*  initialize toolkit  */
Packit b099d7
	CommonTestInit(argc, argv);
Packit b099d7
    
Packit b099d7
	/* create main rowcolumn */
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNadjustLast, False);  n++; 
Packit b099d7
	/* fix for PIR 3317 */
Packit b099d7
	XtSetArg(args[n], XmNpacking, XmPACK_NONE);n++;  
Packit b099d7
	/* end of fix for PIR 3317 */
Packit b099d7
	RowCol1 = XmCreateRowColumn(Shell1, "RowCol1", args, n);
Packit b099d7
	XtManageChild(RowCol1);
Packit b099d7
Packit b099d7
#ifdef	MOTIF1_1
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNwidth, 350); n++;
Packit b099d7
	XtSetArg(args[n], XmNheight, 375); n++;
Packit b099d7
	XtSetValues(Shell1, args, n);
Packit b099d7
#endif /* MOTIF1_1 */
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNrows, 1);  n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, NUM_COLUMNS);  n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, new_string3); n++;
Packit b099d7
	Text1 = XmCreateText(RowCol1, "Text1", args, n);
Packit b099d7
	XtManageChild(Text1);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNy, 40);  n++;
Packit b099d7
	XtSetArg(args[n], XmNrows, 1);  n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, NUM_COLUMNS);  n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, new_string3); n++;
Packit b099d7
	Text2 = XmCreateText(RowCol1, "Text2", args, n);
Packit b099d7
	XtManageChild(Text2);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("text font", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNy, 80);  n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fonttitle1 = XmCreateLabel(RowCol1, "fonttitle", args, n);
Packit b099d7
	XtManageChild(fonttitle1);
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNy, 105);  n++;
Packit b099d7
	XtSetArg(args[n], XmNborderWidth, 2); n++;
Packit b099d7
	XtSetArg(args[n], XmNisHomogeneous, False); n++;
Packit b099d7
	fontRB1 = XmCreateRadioBox(RowCol1, "fontRB1", args, n);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("helvetica1", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	XtSetArg(args[n], XmNset, True); n++;
Packit b099d7
	fontTB1[0] = XmCreateToggleButtonGadget(fontRB1, "RB1_helv1", args, n);
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("helvetica2", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[1] = XmCreateToggleButtonGadget(fontRB1, "RB1_helv2", args, n);
Packit b099d7
        XmStringFree(tmp_string);
Packit b099d7
Packit b099d7
	fontname[0] =
Packit b099d7
	"-adobe-helvetica-bold-r-normal--10-100-75-75-p-60-iso8859-1";
Packit b099d7
	fontname[1] =
Packit b099d7
	"-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1";
Packit b099d7
Packit b099d7
Packit b099d7
	/* test case for PIR 3317 */
Packit b099d7
Packit b099d7
        
Packit b099d7
        fontCB1.widget = Text1;
Packit b099d7
        fontCB1.fontname = fontname[0];
Packit b099d7
	XtAddCallback(fontTB1[0], XmNarmCallback,
Packit b099d7
		fontTBCB1, (XtPointer) &fontCB1);
Packit b099d7
Packit b099d7
        fontCB2.widget = Text1;
Packit b099d7
        fontCB2.fontname = fontname[1];
Packit b099d7
	XtAddCallback(fontTB1[1], XmNarmCallback,
Packit b099d7
		fontTBCB1, (XtPointer) &fontCB2);
Packit b099d7
Packit b099d7
Packit b099d7
	n = 0; /* set this as first font */
Packit b099d7
	XtSetArg(args[n], XmNfontList, CommonGetFontList(fontname[0])); n++;
Packit b099d7
	XtSetValues(Text1, args, n);
Packit b099d7
	XtSetValues(Text2, args, n);
Packit b099d7
Packit b099d7
Packit b099d7
	XtManageChild(fontRB1);
Packit b099d7
	XtManageChild(fontTB1[0]);
Packit b099d7
	XtManageChild(fontTB1[1]);
Packit b099d7
Packit b099d7
	XtRealizeWidget(Shell1);
Packit b099d7
	XSynchronize(XtDisplay(Shell1), True); 
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNwidth, 350); n++;
Packit b099d7
	XtSetArg(args[n], XmNheight, 375); n++;
Packit b099d7
	XtSetArg(args[n], XmNresizeHeight, False);n++;  
Packit b099d7
	XtSetArg(args[n], XmNresizeWidth, False);n++;  
Packit b099d7
	XtSetValues(RowCol1, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
	/* end of test case for PIR 3317 */
Packit b099d7
Packit b099d7
Packit b099d7
	/* start with a new text widget and font radiobox */
Packit b099d7
	XtDestroyWidget(Text1);
Packit b099d7
	XtDestroyWidget(Text2);
Packit b099d7
	XtUnmanageChild(fontTB1[0]);
Packit b099d7
	XtUnmanageChild(fontTB1[1]);
Packit b099d7
	XtUnmanageChild(fontRB1);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNpacking, XmPACK_NONE);n++;  
Packit b099d7
	XtSetValues(RowCol1, args, n);
Packit b099d7
Packit b099d7
	i = 2;
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("helvetica3", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
		 
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_helv3", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("6x12", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
		 
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_6x12", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("9x15", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_9x15", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("courier1", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_cour1", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("courier2", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_cour2", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("times1", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_times1", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
        tmp_string = XmStringCreate("times2", XmSTRING_DEFAULT_CHARSET); 
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tmp_string); n++;
Packit b099d7
	fontTB1[i] = XmCreateToggleButtonGadget(fontRB1, "RB1_times2", args, n);
Packit b099d7
	i++;
Packit b099d7
        XmStringFree (tmp_string);
Packit b099d7
Packit b099d7
	i = 0;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-helvetica-bold-r-normal--10-100-75-75-p-60-iso8859-1"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-helvetica-bold-r-normal--24-240-75-75-p-138-iso8859-1"; i++;
Packit b099d7
	fontname[i] = "6x12"; i++;
Packit b099d7
	fontname[i] = "9x15"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-courier-bold-r-normal--10-100-75-75-m-60-iso8859-1"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-times-medium-r-normal--12-120-75-75-p-64-iso8859-1"; i++;
Packit b099d7
	fontname[i] =
Packit b099d7
	"-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1"; i++;
Packit b099d7
Packit b099d7
	XtManageChild(fontRB1);
Packit b099d7
	XtManageChildren(fontTB1, TB_COUNT);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNwidth, 170); n++;
Packit b099d7
	XtSetArg(args[n], XmNheight, 375); n++;
Packit b099d7
	XtSetArg(args[n], XmNresizeHeight, True);n++;  
Packit b099d7
	XtSetArg(args[n], XmNresizeWidth, True);n++;  
Packit b099d7
	XtSetValues(RowCol1, args, n);
Packit b099d7
Packit b099d7
	/* create multi line text widget */
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvalue, new_string2); n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, NUM_COLUMNS);  n++;
Packit b099d7
	XtSetArg(args[n], XmNrows, 3);  n++;
Packit b099d7
	XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList,
Packit b099d7
		CommonGetFontList(fontname[0]));  n++;
Packit b099d7
	Text1 = XmCreateText(RowCol1, "Text1", args, n);
Packit b099d7
	XtManageChild(Text1);
Packit b099d7
Packit b099d7
	for (i=0; i
Packit b099d7
	{
Packit b099d7
		n = 0;
Packit b099d7
           if ( i == 0 )
Packit b099d7
           {
Packit b099d7
		XtSetArg(args[n], XmNset, True); n++;
Packit b099d7
           }
Packit b099d7
           else
Packit b099d7
           {
Packit b099d7
		XtSetArg(args[n], XmNset, False); n++;
Packit b099d7
           }
Packit b099d7
		XtSetValues(fontTB1[i], args, n);
Packit b099d7
		XtRemoveAllCallbacks(fontTB1[i], XmNarmCallback);
Packit b099d7
		/* test was using armCallback (PIR 3753), *
Packit b099d7
		 * which was operator error *
Packit b099d7
		XtAddCallback(fontTB1[i], XmNarmCallback,
Packit b099d7
		*/
Packit b099d7
                fontCB3[i].widget = Text1;
Packit b099d7
                fontCB3[i].fontname = fontname[i];
Packit b099d7
		XtAddCallback(fontTB1[i], XmNvalueChangedCallback,
Packit b099d7
			fontTBCB2, (XtPointer) &(fontCB3[i]));
Packit b099d7
	}
Packit b099d7
Packit b099d7
#ifdef	PIR_CLOSED
Packit b099d7
	/* test case for PIR 3753 */
Packit b099d7
	CommonPause();
Packit b099d7
	/* end of test case for PIR 3753 */
Packit b099d7
#endif /* PIR_CLOSED */
Packit b099d7
Packit b099d7
	/* test case for PIR 2648 */
Packit b099d7
	CommonPause();
Packit b099d7
	/* end of test case for PIR 2648 */
Packit b099d7
Packit b099d7
	XtAppMainLoop(app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7