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

Packit b099d7
/* $XConsortium: CommScrTxt1.c /main/6 1995/07/15 21:10:33 drk $ */
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
Widget BBoard1;
Packit b099d7
Widget Text1, Text2;
Packit b099d7
Widget EditLabel, ToggleB1;
Packit b099d7
Arg args[MAX_ARGS];
Packit b099d7
int n;
Packit b099d7
Packit b099d7
static char new_string1[] = "\
Packit b099d7
As I was going to St. Ives\n\
Packit b099d7
I met a man with seven wives\n\
Packit b099d7
Each wife had seven sacks,\n\
Packit b099d7
Each sack had seven cats,\n\
Packit b099d7
Each cat had seven kits\n\
Packit b099d7
Kits, cats, sacks, and wives,\n\
Packit b099d7
How many were going to St. Ives?";
Packit b099d7
Packit b099d7
static char new_string2[] = "\
Packit b099d7
Jack Sprat could eat no fat\n\
Packit b099d7
His wife could eat no lean\n\
Packit b099d7
And so between them both\n\
Packit b099d7
They licked the platter clean";
Packit b099d7
Packit b099d7
static char new_string3[] = "\
Packit b099d7
john said, jack, enjoy the job";
Packit b099d7
Packit b099d7
int     EditMode;
Packit b099d7
Packit b099d7
static char font_name1[] = "8x13bold"; 
Packit b099d7
static char font_name2[] = "variable"; 
Packit b099d7
Packit b099d7
static char render_tag[] = "Render1";
Packit b099d7
Packit b099d7
static void HelpCB(Widget w, XtPointer client_data,
Packit b099d7
                                XtPointer call_data)
Packit b099d7
{
Packit b099d7
        Widget info_box = NULL;
Packit b099d7
        XmString helpString, titleString, okString;
Packit b099d7
Packit b099d7
        helpString = XmStringGenerate ("Help has arrived!",
Packit b099d7
                XmFONTLIST_DEFAULT_TAG,  XmCHARSET_TEXT, NULL );
Packit b099d7
        titleString = XmStringCreateLtoR ("Info box",
Packit b099d7
                XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        okString = XmStringCreateLtoR ("Dismiss",
Packit b099d7
                XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg (args[n], XmNmessageString, helpString); n++;
Packit b099d7
        XtSetArg (args[n], XmNokLabelString, okString); n++;
Packit b099d7
        XtSetArg (args[n], XmNdialogTitle, titleString); n++;
Packit b099d7
        info_box = XmCreateInformationDialog (Shell1, "info_box", args, n);
Packit b099d7
        XtManageChild (info_box);
Packit b099d7
Packit b099d7
        XmStringFree (helpString);
Packit b099d7
        XmStringFree (titleString);
Packit b099d7
        XmStringFree (okString);
Packit b099d7
}
Packit b099d7
Packit b099d7
static void ChangeString(Widget w, XtPointer client_data,
Packit b099d7
                                XtPointer call_data)
Packit b099d7
{
Packit b099d7
        int file_length;
Packit b099d7
        unsigned char *file_string;
Packit b099d7
        XmString string;
Packit b099d7
Packit b099d7
        static int swtch = 0;
Packit b099d7
Packit b099d7
	XmTextSetString( Text1, " " );
Packit b099d7
Packit b099d7
        if( swtch++ % 2 )
Packit b099d7
        {
Packit b099d7
	  XmTextSetString( Text1, new_string2 );
Packit b099d7
        }
Packit b099d7
        else
Packit b099d7
        {
Packit b099d7
          n = 0;
Packit b099d7
	  XtSetArg( args[n], XmNvalue, new_string1 ); n++;
Packit b099d7
          XtSetValues( Text1, args, n );
Packit b099d7
        }
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void ChangeEditMode(Widget w, XtPointer client_data,
Packit b099d7
                                XtPointer call_data)
Packit b099d7
{
Packit b099d7
        XmString        tcs;
Packit b099d7
        int     rows;
Packit b099d7
Packit b099d7
        EditMode = XmMULTI_LINE_EDIT + XmSINGLE_LINE_EDIT - EditMode;
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNeditMode, EditMode); n++;
Packit b099d7
        XtSetArg(args[n], XmNrows, 3); n++;
Packit b099d7
        XtSetValues(Text2, args, n);
Packit b099d7
Packit b099d7
        if (EditMode == XmSINGLE_LINE_EDIT)
Packit b099d7
                tcs = XmStringCreateLtoR("XmSINGLE_LINE_EDIT",
Packit b099d7
                        XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        else
Packit b099d7
                tcs = XmStringCreateLtoR("XmMULTI_LINE_EDIT",
Packit b099d7
                        XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
        XtSetValues(w, args, n);
Packit b099d7
        XmStringFree(tcs);
Packit b099d7
}
Packit b099d7
Packit b099d7
void
Packit b099d7
main_scrtext1(int argc, char **argv)
Packit b099d7
{
Packit b099d7
        XtTranslations table1;
Packit b099d7
        static String trans_string1 = "Shift<Key>osfPageDown: activate()";
Packit b099d7
        XmString        tcs, string;
Packit b099d7
        XmRendition     rendition;
Packit b099d7
        XmRenderTable   renderTab = NULL;
Packit b099d7
Packit b099d7
        /*  initialize toolkit  */
Packit b099d7
        CommonTestInit(argc, argv);
Packit b099d7
Packit b099d7
        table1 = XtParseTranslationTable (trans_string1);
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        BBoard1 = XmCreateBulletinBoard (Shell1, "BBoard1", args, n);
Packit b099d7
        XtManageChild (BBoard1);
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNrows, 10);  n++;
Packit b099d7
        XtSetArg(args[n], XmNscrollVertical, True);  n++;
Packit b099d7
        XtSetArg(args[n], XmNscrollHorizontal, True);  n++;
Packit b099d7
        XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, new_string2); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, CommonGetFontList(font_name1));  n++;
Packit b099d7
        Text1 = XmCreateScrolledText(BBoard1, "Text1", args, n);
Packit b099d7
Packit b099d7
        XtAddCallback(Text1, XmNactivateCallback, ChangeString, NULL);
Packit b099d7
        XtOverrideTranslations (Text1, table1);
Packit b099d7
        XtManageChild(Text1);
Packit b099d7
Packit b099d7
        XtRealizeWidget(Shell1);
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
Packit b099d7
        XtAddCallback(Text1, XmNhelpCallback, HelpCB, NULL);
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
Packit b099d7
        /* test case for PIR 2574, see .dat */
Packit b099d7
        CommonPause();
Packit b099d7
        /* end of test case for PIR 2574 */
Packit b099d7
Packit b099d7
        /* test case for PIR 2127 */
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNfontList, CommonGetFontList(font_name2));  n++;
Packit b099d7
        XtSetArg(args[n], XmNvalue, new_string3);  n++;
Packit b099d7
        XtSetValues(Text1, args, n);
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
        /* end of test case for PIR 2127 */
Packit b099d7
Packit b099d7
        /* test case for PIR 4120 */
Packit b099d7
        XtUnmanageChild(Text1);
Packit b099d7
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNeditable, True); n++;
Packit b099d7
        XtSetArg(args[n], XmNeditMode, XmSINGLE_LINE_EDIT); n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, new_string1); n++;
Packit b099d7
        XtSetArg(args[n], XmNcolumns, 50); n++;
Packit b099d7
        XtSetArg(args[n], XmNrows, 3); n++;
Packit b099d7
        XtSetArg(args[n], XmNscrollHorizontal, True); n++;
Packit b099d7
        XtSetArg(args[n], XmNscrollVertical, True); n++;
Packit b099d7
        Text2 = XmCreateScrolledText(BBoard1, "Text2", args, n);
Packit b099d7
        XtManageChild (Text2);
Packit b099d7
Packit b099d7
Packit b099d7
        /* EditMode togglebutton & label */
Packit b099d7
        EditMode = XmSINGLE_LINE_EDIT;
Packit b099d7
Packit b099d7
        tcs = XmStringCreateLtoR("Current EditMode: ",
Packit b099d7
                XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNy, 95);  n++;
Packit b099d7
        XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
        EditLabel = XmCreateLabel(BBoard1, "EditLabel", args, n);
Packit b099d7
        XtManageChild(EditLabel);
Packit b099d7
        XmStringFree(tcs);
Packit b099d7
Packit b099d7
        tcs = XmStringCreateLtoR("XmSINGLE_LINE_EDIT",
Packit b099d7
                XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg(args[n], XmNy, 115);  n++;
Packit b099d7
        XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
        XtSetArg(args[n], XmNset, True); n++;
Packit b099d7
        ToggleB1 = XmCreateToggleButton(BBoard1, "ToggleB1", args, n);
Packit b099d7
        XtManageChild(ToggleB1);
Packit b099d7
        XtAddCallback(ToggleB1, XmNvalueChangedCallback,
Packit b099d7
                ChangeEditMode, NULL);
Packit b099d7
        XmStringFree(tcs);
Packit b099d7
Packit b099d7
        CommonPause();
Packit b099d7
        /* end of test case for PIR 4120 */
Packit b099d7
Packit b099d7
        XtAppMainLoop(app_context);
Packit b099d7
}