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

Packit b099d7
/* $TOG: CommText6.c /main/7 1997/10/02 16:23:51 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
Packit b099d7
/*
Packit b099d7
 *  Global variables.
Packit b099d7
 */
Packit b099d7
Arg args[MAX_ARGS];
Packit b099d7
int n;
Packit b099d7
Packit b099d7
static char string1[] = "Sample Text";
Packit b099d7
static char string2[] = "Sample Text2";
Packit b099d7
static char string3[] =  "The <Return> key was pressed.";
Packit b099d7
static char string4[] = "Changed the string.";
Packit b099d7
Packit b099d7
static char font_name1[] = "8x13";
Packit b099d7
static char font_name2[] = "8x13bold";
Packit b099d7
Packit b099d7
static char render_tag[] = "render1";
Packit b099d7
Packit b099d7
Packit b099d7
static void ChangeString(Widget w, XtPointer client_data,
Packit b099d7
                                XtPointer call_data)
Packit b099d7
{
Packit b099d7
    XmString  tcs = (XmString)0;
Packit b099d7
Packit b099d7
Packit b099d7
      n = 0;
Packit b099d7
    XtSetArg(args[n], XmNvalue, string3 );  n++;
Packit b099d7
      XtSetValues(w, args, n);
Packit b099d7
Packit b099d7
      if ( tcs ) XmStringFree( tcs );
Packit b099d7
      
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void ChangeString2(Widget w, XtPointer client_data,
Packit b099d7
                                XtPointer call_data)
Packit b099d7
{
Packit b099d7
    XmString  tcs = (XmString)0;
Packit b099d7
Packit b099d7
      n = 0;
Packit b099d7
    XtSetArg(args[n], XmNvalue, string4);  n++;
Packit b099d7
      XtSetValues(w, args, n);
Packit b099d7
     
Packit b099d7
      if (tcs) XmStringFree(tcs);
Packit b099d7
}
Packit b099d7
Packit b099d7
void SetStringCB(w, client_data, call_data)
Packit b099d7
     Widget w;
Packit b099d7
     XtPointer client_data;
Packit b099d7
     XtPointer call_data;
Packit b099d7
{
Packit b099d7
     XmString  string;
Packit b099d7
     static char new_string[] = "New\nset\nvalue";
Packit b099d7
       
Packit b099d7
     XmTextSetString((Widget)client_data, new_string);
Packit b099d7
}
Packit b099d7
Packit b099d7
void InsertStringCB(w, client_data, call_data)
Packit b099d7
     Widget w;
Packit b099d7
     XtPointer client_data;
Packit b099d7
     XtPointer call_data;
Packit b099d7
{
Packit b099d7
     XmString  string;
Packit b099d7
     static char new_string[] = "+123+";
Packit b099d7
       
Packit b099d7
     XmTextInsert((Widget)client_data, 3, new_string);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
void main_text6 (argc, argv)
Packit b099d7
     int argc;
Packit b099d7
     char **argv;
Packit b099d7
{
Packit b099d7
	Widget PanedWindow;
Packit b099d7
	Widget Text1;
Packit b099d7
	Widget Text2;
Packit b099d7
        Widget BBoard1;
Packit b099d7
	XtTranslations new_table;
Packit b099d7
	static String new_translation = "Ctrl<Key>r: activate()";
Packit b099d7
        XmString tcs;
Packit b099d7
        void *ret_val;
Packit b099d7
        Widget SetStringPB = NULL;
Packit b099d7
        Widget InsertStringPB = NULL;
Packit b099d7
        XmString string;
Packit b099d7
	char temp_string[100], *text2_return;
Packit b099d7
        XmStringContext *context;
Packit b099d7
        XmStringCharSet tag;
Packit b099d7
        XmStringDirection direction;
Packit b099d7
        XmStringComponentType unknown_tag;
Packit b099d7
        unsigned short        unknown_length;
Packit b099d7
        unsigned char         unknown_value;
Packit b099d7
Packit b099d7
	/*  initialize toolkit  */
Packit b099d7
	CommonTestInit(argc, argv);
Packit b099d7
	
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNwidth, 400);  n++;
Packit b099d7
	XtSetArg(args[n], XmNheight, 300);  n++;
Packit b099d7
	XtSetValues(Shell1, args, n);
Packit b099d7
	
Packit b099d7
	/* test case for PIR 3677 - realized here, not after children mngd */
Packit b099d7
	XtRealizeWidget(Shell1);
Packit b099d7
	/* end of test case for PIR 3677 */
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	PanedWindow = XmCreatePanedWindow(Shell1, "PanedWindow", args, n);
Packit b099d7
	XtManageChild(PanedWindow);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvalue, string1);  n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, CommonGetFontList(font_name1));  n++;
Packit b099d7
	Text1 = XmCreateText(PanedWindow, "Text1", args, n);
Packit b099d7
	XtManageChild (Text1);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNfontList, CommonGetFontList(font_name2));  n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, string2);  n++;
Packit b099d7
	XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
Packit b099d7
	Text2 = XmCreateText(PanedWindow, "Text2", args, n);
Packit b099d7
	XtManageChild (Text2);
Packit b099d7
Packit b099d7
	/* begin test for CR */
Packit b099d7
	CommonPause(); 
Packit b099d7
Packit b099d7
	/* The instructions ask the user to change Text1 in a way that
Packit b099d7
	   can mess up the focus, then modify Text2 by adding a "2" at
Packit b099d7
	   the end.
Packit b099d7
Packit b099d7
	   Check the contents of the strings and print out a warning if
Packit b099d7
	   the value of the second string is not now "Sample Text22" */
Packit b099d7
Packit b099d7
	ret_val = XmTextGetString(Text2);
Packit b099d7
Packit b099d7
	text2_return = (char *)ret_val;
Packit b099d7
Packit b099d7
	if (!strcmp(text2_return, "The Sample Text2") == 0) 
Packit b099d7
	   printf ("\n+++\n.Test FAILS. String in Text2 does not match expected value.\n+++\n");
Packit b099d7
	else printf ("+++\nTest PASSES. No error.\n");
Packit b099d7
	fflush(stdout);
Packit b099d7
Packit b099d7
	XtFree ((char *)ret_val);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	/* end test for CR */
Packit b099d7
Packit b099d7
	XtAddCallback(Text1, XmNactivateCallback, CommonGenericCB, NULL);
Packit b099d7
	XtAddCallback(Text1, XmNactivateCallback, ChangeString, NULL);
Packit b099d7
	XtAddCallback(Text2, XmNactivateCallback, ChangeString2, NULL);
Packit b099d7
Packit b099d7
	/* test case for PIR 3677 - this realize is commented out
Packit b099d7
	XtRealizeWidget (Shell1);
Packit b099d7
	*/
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	n=0;
Packit b099d7
	new_table = XtParseTranslationTable (new_translation);
Packit b099d7
	XtSetArg(args[n], XmNtranslations, new_table); n++;
Packit b099d7
	XtSetValues (Text2, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	/* test case for PIR 1772, PIR 1058 */
Packit b099d7
	XtAddCallback(Text1, XmNvalueChangedCallback, CommonGenericCB, NULL);
Packit b099d7
	XtAddCallback(Text1, XmNmodifyVerifyCallback, CommonGenericCB, NULL);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
	/* end of test case for PIR 1772, PIR 1058 */
Packit b099d7
Packit b099d7
        /*  Begin testing CR 6141 */
Packit b099d7
Packit b099d7
        XtDestroyWidget( PanedWindow );
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNallowShellResize, True); n++;
Packit b099d7
        XtSetValues( Shell1, args, n );
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNwidth, 200); n++;
Packit b099d7
        XtSetArg(args[n], XmNheight, 200); n++;
Packit b099d7
        BBoard1 = XmCreateBulletinBoard( Shell1, "BBoard1", args, n );
Packit b099d7
        XtManageChild( BBoard1 );
Packit b099d7
Packit b099d7
        string = XmStringCreate("", XmFONTLIST_DEFAULT_TAG );
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg( args[n], XmNx, 0 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNy, 0 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNrows, 5 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNcolumns, 40 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNeditMode, XmMULTI_LINE_EDIT ); n++;
Packit b099d7
	XtSetArg( args[n], XmNvalue, "" ); n++;
Packit b099d7
        Text1 = XmCreateText( BBoard1, "Text1", args, n );
Packit b099d7
        XtManageChild( Text1 );
Packit b099d7
Packit b099d7
        string = XmStringCreate("Set String", XmFONTLIST_DEFAULT_TAG );
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg( args[n], XmNx, 0 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNy, 100 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNwidth, 100 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNheight, 30 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNlabelString, string ); n++;
Packit b099d7
        SetStringPB = XmCreatePushButton(BBoard1, "SetStringPB", args, n);
Packit b099d7
        XtAddCallback(SetStringPB, XmNactivateCallback, SetStringCB, Text1);
Packit b099d7
        XtManageChild (SetStringPB);
Packit b099d7
Packit b099d7
        XmStringFree( string );
Packit b099d7
Packit b099d7
        string = XmStringCreate("Insert", XmFONTLIST_DEFAULT_TAG );
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg( args[n], XmNx, 110 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNy, 100 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNwidth, 90 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNheight, 30 ); n++;
Packit b099d7
        XtSetArg( args[n], XmNlabelString, string ); n++;
Packit b099d7
        InsertStringPB = XmCreatePushButton(BBoard1, "InsertStringPB", args, n);
Packit b099d7
        XtAddCallback(InsertStringPB, XmNactivateCallback,
Packit b099d7
                                      InsertStringCB, Text1);
Packit b099d7
        XtManageChild (InsertStringPB);
Packit b099d7
Packit b099d7
        XmStringFree( string );
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
       /*  End testing CR 6141 */
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
Packit b099d7
	XtAppMainLoop(app_context);
Packit b099d7
}