Blame tests/Toolkit/Text/TextField1.c

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
#ifdef REV_INFO
Packit b099d7
#ifndef lint
Packit b099d7
static char rcsid[] = "$XConsortium: TextField1.c /main/9 1995/07/13 19:33:54 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */
Packit b099d7
#include <testlib.h>
Packit b099d7
#include "TextField1.h"
Packit b099d7
Packit b099d7
int	n;
Packit b099d7
Arg	args[MAX_ARGS];
Packit b099d7
Packit b099d7
void main (argc, argv)
Packit b099d7
int	argc;
Packit b099d7
char	**argv;
Packit b099d7
{
Packit b099d7
	XmString	tcs, ItemList[NITEMS];
Packit b099d7
	XmFontList 	newfontlist;
Packit b099d7
Packit b099d7
	CommonTestInit(argc, argv);
Packit b099d7
Packit b099d7
	newfontlist = CommonGetFontList("variable");
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNmarginHeight, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNmarginWidth, 15); n++;
Packit b099d7
	Form = XmCreateForm(Shell1, "Form", args, n);
Packit b099d7
	XtManageChild (Form);
Packit b099d7
Packit b099d7
	/* build the list of Functions Label and List */
Packit b099d7
	tcs = XmStringCreateLtoR("Functions:", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	Label1 = XmCreateLabel(Form, "Label1", args, n);
Packit b099d7
	XtManageChild(Label1);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	/* convert the plain strings to Xstrings */
Packit b099d7
	for (n = 0; n < NITEMS; n++)
Packit b099d7
	ItemList[n] = XmStringLtoRCreate(Istrings[n],
Packit b099d7
			XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Label1); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNresizable, True); n++;
Packit b099d7
	XtSetArg(args[n], XmNselectionPolicy, XmBROWSE_SELECT); n++;
Packit b099d7
	XtSetArg(args[n], XmNhighlightOnEnter, False); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNitems, ItemList); n++;
Packit b099d7
	XtSetArg(args[n], XmNitemCount, NITEMS); n++;
Packit b099d7
	XtSetArg(args[n], XmNforeground, CommonGetColor("white")); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkorchid")); n++;
Packit b099d7
	List1 = XmCreateScrolledList(Form, "List1", args, n);
Packit b099d7
	XtManageChild(List1);
Packit b099d7
Packit b099d7
	XtAddCallback(List1, XmNbrowseSelectionCallback, SSelCB_List1, NULL);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Action Label and Text */
Packit b099d7
	tcs = XmStringCreateLtoR("Action TextField:", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	Label3 = XmCreateLabel(Form, "Label3", args, n);
Packit b099d7
	XtManageChild(Label3);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Label3); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNhighlightThickness, 2); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, 32); n++;
Packit b099d7
	XtSetArg(args[n], XmNvalue, starting_string_text); n++;
Packit b099d7
	XtSetArg(args[n], XmNmaxLength, strlen(starting_string_text)); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("wheat")); n++;
Packit b099d7
	TextF1 = XmCreateTextField(Form, "TextF1", args, n);
Packit b099d7
	XtManageChild(TextF1);
Packit b099d7
Packit b099d7
	/* build the Control Panel Label */
Packit b099d7
	tcs = XmStringCreateLtoR("Control Panel:", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, TextF1); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 25); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	Label5 = XmCreateLabel(Form, "Label5", args, n);
Packit b099d7
	XtManageChild(Label5);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Call Function pushbutton */
Packit b099d7
	tcs = XmStringCreateLtoR("Call Function", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Label5); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	ApplyB = XmCreatePushButton(Form, "ApplyB", args, n);
Packit b099d7
	XtManageChild(ApplyB);
Packit b099d7
Packit b099d7
	XtAddCallback(ApplyB, XmNactivateCallback, ApplyCB, NULL);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Clear Args pushbutton */
Packit b099d7
	tcs = XmStringCreateLtoR("Clear Args", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, ApplyB); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Label5); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	ClearB = XmCreatePushButton(Form, "ClearB", args, n);
Packit b099d7
	XtManageChild(ClearB);
Packit b099d7
Packit b099d7
	XtAddCallback(ClearB, XmNactivateCallback, ClearCB, NULL);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Num Arg 1 Scale */
Packit b099d7
	tcs = XmStringLtoRCreate("Num Arg 1", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, ApplyB); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++;
Packit b099d7
	XtSetArg(args[n], XmNprocessingDirection, XmMAX_ON_RIGHT); n++;
Packit b099d7
	XtSetArg(args[n], XmNtitleString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNshowValue, True); n++;
Packit b099d7
	XtSetArg(args[n], XmNmaximum, 40); n++;
Packit b099d7
	Scale1 = XmCreateScale(Form, "Scale1", args, n);
Packit b099d7
	XtManageChild(Scale1);
Packit b099d7
Packit b099d7
	XtAddCallback(Scale1, XmNvalueChangedCallback, Scale1CB, NULL);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Num Arg 2 Scale */
Packit b099d7
	tcs = XmStringLtoRCreate("Num Arg 2", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Scale1); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++;
Packit b099d7
	XtSetArg(args[n], XmNprocessingDirection, XmMAX_ON_RIGHT); n++;
Packit b099d7
	XtSetArg(args[n], XmNtitleString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNshowValue, True); n++;
Packit b099d7
	XtSetArg(args[n], XmNmaximum, 40); n++;
Packit b099d7
	Scale2 = XmCreateScale(Form, "Scale2", args, n);
Packit b099d7
	XtManageChild(Scale2);
Packit b099d7
Packit b099d7
	XtAddCallback(Scale2, XmNvalueChangedCallback, Scale2CB, NULL);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the True/False Label and ToggleButton */
Packit b099d7
	tcs = XmStringCreateLtoR("True", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Scale2); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNselectColor, CommonGetColor("darkorchid")); n++;
Packit b099d7
	XtSetArg(args[n], XmNset, True); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	ToggleB = XmCreateToggleButton(Form, "ToggleB", args, n);
Packit b099d7
	XtManageChild(ToggleB);
Packit b099d7
Packit b099d7
	XtAddCallback(ToggleB, XmNvalueChangedCallback, TorFCB, NULL);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	tcs = XmStringCreateLtoR("True/False Arg", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, ToggleB); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 0); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	Label2 = XmCreateLabel(Form, "Label2", args, n);
Packit b099d7
	XtManageChild(Label2);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
Packit b099d7
	/* build the Status/Input Label and Text */
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Label2); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNcolumns, 20); n++;
Packit b099d7
	XtSetArg(args[n], XmNrows, 1); n++;
Packit b099d7
	XtSetArg(args[n], XmNeditMode, XmSINGLE_LINE_EDIT); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("yellow")); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	StatText = XmCreateText(Form, "StatText", args, n);
Packit b099d7
	XtManageChild(StatText);
Packit b099d7
Packit b099d7
	tcs = XmStringCreateLtoR("Status/Input", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftWidget, List1); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, StatText); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 0); n++;
Packit b099d7
	XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNbottomOffset, 15); n++;
Packit b099d7
	XtSetArg(args[n], XmNfontList, newfontlist); n++;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	Label4 = XmCreateLabel(Form, "Label4", args, n);
Packit b099d7
	XtManageChild(Label4);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
	XtRealizeWidget(Shell1);
Packit b099d7
Packit b099d7
	/* test of:
Packit b099d7
		XmTextFieldGetEditable()
Packit b099d7
		XmTextFieldSetEditable()
Packit b099d7
	*/
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvisibleItemCount, 2); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopItemPosition, 1); n++;
Packit b099d7
	XtSetValues(List1, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	/* test of:
Packit b099d7
		XmTextFieldGetMaxLength()
Packit b099d7
		XmTextFieldSetMaxLength()
Packit b099d7
		XmTextFieldGetLastPosition()
Packit b099d7
	*/
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvisibleItemCount, 3); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopItemPosition, 3); n++;
Packit b099d7
	XtSetValues(List1, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	/* test of:
Packit b099d7
		XmTextFieldSetInsertionPosition()
Packit b099d7
	*/
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvisibleItemCount, 1); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopItemPosition, 6); n++;
Packit b099d7
	XtSetValues(List1, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	/* test of:
Packit b099d7
		XmTextFieldGetBaseline()
Packit b099d7
		XmTextFieldXYToPos()
Packit b099d7
		XmTextFieldPosToXY()
Packit b099d7
	*/
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvisibleItemCount, 3); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopItemPosition, 7); n++;
Packit b099d7
	XtSetValues(List1, args, n);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	XtAppMainLoop(app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void Scale1CB(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	scale1_val = ((XmScaleCallbackStruct*)call_data)->value;
Packit b099d7
}
Packit b099d7
Packit b099d7
static void Scale2CB(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	scale2_val = ((XmScaleCallbackStruct*)call_data)->value;
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void SSelCB_List1(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	function = ((XmListCallbackStruct*)call_data)->item_position;
Packit b099d7
Packit b099d7
	switch (function) {
Packit b099d7
	/* these don't use any controls */
Packit b099d7
	case GetEditable:
Packit b099d7
	case GetMaxLength:
Packit b099d7
	case GetLastPosition:
Packit b099d7
	case GetBaseline:
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, False); n++;
Packit b099d7
		XtSetValues(Scale1, args, n);
Packit b099d7
		XtSetValues(Scale2, args, n);
Packit b099d7
		XtSetValues(ToggleB, args, n);
Packit b099d7
Packit b099d7
		break;
Packit b099d7
Packit b099d7
	/* these use only the Scale1 control */
Packit b099d7
	case SetMaxLength:
Packit b099d7
	case PosToXY:
Packit b099d7
	case SetInsertionPosition:
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, True); n++;
Packit b099d7
		XtSetValues(Scale1, args, n);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, False); n++;
Packit b099d7
		XtSetValues(Scale2, args, n);
Packit b099d7
		XtSetValues(ToggleB, args, n);
Packit b099d7
Packit b099d7
		break;
Packit b099d7
Packit b099d7
	/* these use the Scale1 and Scale2 controls */
Packit b099d7
	case XYToPos:
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, True); n++;
Packit b099d7
		XtSetValues(Scale1, args, n);
Packit b099d7
		XtSetValues(Scale2, args, n);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, False); n++;
Packit b099d7
		XtSetValues(ToggleB, args, n);
Packit b099d7
Packit b099d7
		break;
Packit b099d7
Packit b099d7
	/* these use only the ToggleB control */
Packit b099d7
	case SetEditable:
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, True); n++;
Packit b099d7
		XtSetValues(ToggleB, args, n);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNsensitive, False); n++;
Packit b099d7
		XtSetValues(Scale1, args, n);
Packit b099d7
		XtSetValues(Scale2, args, n);
Packit b099d7
Packit b099d7
		break;
Packit b099d7
Packit b099d7
	default:
Packit b099d7
		printf("Not a valid function\n");
Packit b099d7
	}
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void ClearCB(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	XmString	tcs;
Packit b099d7
Packit b099d7
	XmListDeselectAllItems(List1);
Packit b099d7
	function = -1;
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNvalue, 0); n++;
Packit b099d7
	XtSetValues(Scale1, args, n);
Packit b099d7
	XtSetValues(Scale2, args, n);
Packit b099d7
Packit b099d7
	tcs = XmStringCreateLtoR("True", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNset, True); n++;
Packit b099d7
	XtSetValues(ToggleB, args, n);
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	torf = True;
Packit b099d7
Packit b099d7
	XmTextSetString(StatText, "");
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void ApplyCB(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	char	stat_str[25];
Packit b099d7
	int	left, right;
Packit b099d7
	Position	x, y;
Packit b099d7
	char	*tmp_str;
Packit b099d7
	XmAnyCallbackStruct *c_d;
Packit b099d7
Packit b099d7
	c_d = (XmAnyCallbackStruct *) call_data;
Packit b099d7
Packit b099d7
	switch (function) {
Packit b099d7
	case GetEditable:
Packit b099d7
		if (XmTextFieldGetEditable(TextF1))
Packit b099d7
			XmTextSetString(StatText, "GetEditable: True");
Packit b099d7
		else
Packit b099d7
			XmTextSetString(StatText, "GetEditable: False");
Packit b099d7
		break;
Packit b099d7
	case SetEditable:
Packit b099d7
		XmTextFieldSetEditable(TextF1, torf);
Packit b099d7
		break;
Packit b099d7
	case GetMaxLength:
Packit b099d7
		sprintf(stat_str, "MaxLength = %d",
Packit b099d7
			XmTextFieldGetMaxLength(TextF1));
Packit b099d7
		XmTextSetString(StatText, stat_str);
Packit b099d7
		break;
Packit b099d7
	case SetMaxLength:
Packit b099d7
		XmTextFieldSetMaxLength(TextF1, scale1_val);
Packit b099d7
		break;
Packit b099d7
	case XYToPos:
Packit b099d7
		sprintf(stat_str, "Position = %d",
Packit b099d7
			XmTextFieldXYToPos(TextF1, scale1_val, scale2_val));
Packit b099d7
		XmTextSetString(StatText, stat_str);
Packit b099d7
		break;
Packit b099d7
	case PosToXY:
Packit b099d7
		if (XmTextFieldPosToXY(TextF1, (XmTextPosition)scale1_val,
Packit b099d7
			&x, &y))
Packit b099d7
			{
Packit b099d7
			sprintf(stat_str, "x = %d, y = %d", x, y);
Packit b099d7
			XmTextSetString(StatText, stat_str);
Packit b099d7
			}
Packit b099d7
		else
Packit b099d7
			XmTextSetString(StatText, "Position not found");
Packit b099d7
		break;
Packit b099d7
	case GetLastPosition:
Packit b099d7
		sprintf(stat_str, "last position = %d",
Packit b099d7
			XmTextFieldGetLastPosition(TextF1));
Packit b099d7
		XmTextSetString(StatText, stat_str);
Packit b099d7
		break;
Packit b099d7
	case SetInsertionPosition:
Packit b099d7
		XmTextFieldSetInsertionPosition(TextF1,
Packit b099d7
			(XmTextPosition)scale1_val);
Packit b099d7
		break;
Packit b099d7
	case GetBaseline:
Packit b099d7
		sprintf(stat_str, "baseline = %d",
Packit b099d7
			XmTextFieldGetBaseline(TextF1));
Packit b099d7
		XmTextSetString(StatText, stat_str);
Packit b099d7
		break;
Packit b099d7
	default:
Packit b099d7
		printf("Please select a valid function.\n");
Packit b099d7
	};
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void TorFCB(Widget w, XtPointer client_data,
Packit b099d7
				XtPointer call_data)
Packit b099d7
{
Packit b099d7
	XmString	tcs;
Packit b099d7
Packit b099d7
	torf = ((XmToggleButtonCallbackStruct*)call_data)->set;
Packit b099d7
	if (torf)
Packit b099d7
		tcs = XmStringCreateLtoR("True", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
	else
Packit b099d7
		tcs = XmStringCreateLtoR("False", 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
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
}