|
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: PanedWin13.c /main/4 1995/07/13 19:06:32 drk $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Create 2 push buttons in a form. SetValues on the constraints to
|
|
Packit |
b099d7 |
* try out the difference attachment types. Also type some invalid
|
|
Packit |
b099d7 |
* conditions.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <signal.h>
|
|
Packit |
b099d7 |
#include <X11/StringDefs.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <testlib.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget form;
|
|
Packit |
b099d7 |
Widget scale1;
|
|
Packit |
b099d7 |
Widget push1;
|
|
Packit |
b099d7 |
Widget push2;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void CreateBBPopup();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Forward declarations */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void doIt (w, client_data, call_data)
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
XtPointer client_data, call_data;
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
int whichButton, scaleValue;
|
|
Packit |
b099d7 |
static int toggleIsOn = 1;
|
|
Packit |
b099d7 |
Dimension howBig;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
whichButton = (int)(long) client_data;
|
|
Packit |
b099d7 |
printf ("doIt called with client_data %d\n", (int)(long) client_data);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg (args[0], XmNvalue, &scaleValue);
|
|
Packit |
b099d7 |
XtGetValues (scale1, args, 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (whichButton)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case 1 : XtSetArg(args[0], XmNwidth, scaleValue);
|
|
Packit |
b099d7 |
XtSetValues (push1, args, 1);
|
|
Packit |
b099d7 |
/* check to see how wide the child thinks it is */
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNwidth, &howBig);
|
|
Packit |
b099d7 |
XtGetValues(push1, args, 1);
|
|
Packit |
b099d7 |
printf("I wanna be %d, I am %d\n", scaleValue, howBig);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case 2 : XtSetArg(args[0], XmNwidth, scaleValue);
|
|
Packit |
b099d7 |
XtSetValues (push2, args, 1);
|
|
Packit |
b099d7 |
/* check to see how wide the child thinks it is */
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNwidth, &howBig);
|
|
Packit |
b099d7 |
XtGetValues(push2, args, 1);
|
|
Packit |
b099d7 |
printf("I wanna be %d, I am %d\n", scaleValue, howBig);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case 3 : /* if the toggle's on, set Shell allowResize: False */
|
|
Packit |
b099d7 |
if (toggleIsOn)
|
|
Packit |
b099d7 |
{ XtSetArg (args[0], XmNallowShellResize, False);
|
|
Packit |
b099d7 |
XtSetValues (Shell1, args, 1);
|
|
Packit |
b099d7 |
toggleIsOn = 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else /* toggleOn is false, so we making resizable */
|
|
Packit |
b099d7 |
{ XtSetArg (args[0], XmNallowShellResize, True);
|
|
Packit |
b099d7 |
XtSetValues (Shell1, args, 1);
|
|
Packit |
b099d7 |
toggleIsOn = 1;
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case 4: XtSetArg(args[0], XmNwidth, scaleValue);
|
|
Packit |
b099d7 |
XtSetValues (form, args, 1);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
default: printf ("How did I get here?\n");
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* main */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void main (argc, argv)
|
|
Packit |
b099d7 |
unsigned int argc;
|
|
Packit |
b099d7 |
char **argv;
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[10];
|
|
Packit |
b099d7 |
int n;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* initialize toolkit */
|
|
Packit |
b099d7 |
CommonTestInit(argc, argv);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* The form creation. Contained in an outer frame. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
form = XmCreatePanedWindow (Shell1, "form", args, n);
|
|
Packit |
b099d7 |
XtManageChild (form);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Arguments to the first frame. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNallowResize, True); n++;
|
|
Packit |
b099d7 |
push1 = XmCreatePushButton (form, "push1", args, n);
|
|
Packit |
b099d7 |
XtManageChild (push1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNallowResize, True); n++;
|
|
Packit |
b099d7 |
push2 = XmCreatePushButton (form, "push2", args, n);
|
|
Packit |
b099d7 |
XtManageChild (push2);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtRealizeWidget (Shell1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CreateBBPopup();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAppMainLoop(app_context);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void CreateBBPopup()
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget BBD;
|
|
Packit |
b099d7 |
Widget pb1, pb2, pb3, tb1;
|
|
Packit |
b099d7 |
Widget label1;
|
|
Packit |
b099d7 |
Arg args[MAX_ARGS];
|
|
Packit |
b099d7 |
register int n;
|
|
Packit |
b099d7 |
char *startString;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNdefaultPosition, False); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 500); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNheight, 400); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNwidth, 500); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNautoUnmanage, False); n++;
|
|
Packit |
b099d7 |
BBD = XmCreateBulletinBoardDialog(Shell1, "BBD", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNorientation, XmHORIZONTAL); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNprocessingDirection, XmMAX_ON_RIGHT); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNshowValue, True); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNminimum, 1); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNmaximum, 600); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNvalue, 200); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNwidth, 200); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 10); n++;
|
|
Packit |
b099d7 |
scale1 = XmCreateScale (BBD, "scale1", args, n);
|
|
Packit |
b099d7 |
XtManageChild (scale1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 100); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNlabelString,
|
|
Packit |
b099d7 |
XmStringCreateLtoR ("Resize PB1", XmSTRING_DEFAULT_CHARSET)); n++;
|
|
Packit |
b099d7 |
pb1 = XmCreatePushButton (BBD, "pb1", args, n);
|
|
Packit |
b099d7 |
XtAddCallback (pb1, XmNactivateCallback, doIt, (XtPointer) 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 100); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 100); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNlabelString,
|
|
Packit |
b099d7 |
XmStringCreateLtoR ("Resize PB2", XmSTRING_DEFAULT_CHARSET)); n++;
|
|
Packit |
b099d7 |
pb2 = XmCreatePushButton (BBD, "pb2", args, n);
|
|
Packit |
b099d7 |
XtAddCallback (pb2, XmNactivateCallback, doIt, (XtPointer) 2);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 200); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 100); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNset, True); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNlabelString,
|
|
Packit |
b099d7 |
XmStringCreateLtoR ("Shell Resizable", XmSTRING_DEFAULT_CHARSET)); n++;
|
|
Packit |
b099d7 |
tb1 = XmCreateToggleButton (BBD, "tb1", args, n);
|
|
Packit |
b099d7 |
XtAddCallback (tb1, XmNvalueChangedCallback, doIt, (XtPointer) 3);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 150); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNlabelString,
|
|
Packit |
b099d7 |
XmStringCreateLtoR ("Resize Paned Window", XmSTRING_DEFAULT_CHARSET)); n++;
|
|
Packit |
b099d7 |
pb3 = XmCreatePushButton (BBD, "pb3", args, n);
|
|
Packit |
b099d7 |
XtAddCallback (pb3, XmNactivateCallback, doIt, (XtPointer) 4);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
startString = "Set the scale to desired width and use the\npushbuttons to apply that width to the client's\nbuttons. Toggle XmNallowShellResize with the Shell\nResize toggle button. It is True by default.";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNx, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNy, 200); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNeditable, False); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNvalue, startString); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNrows, 4); n++;
|
|
Packit |
b099d7 |
XtSetArg (args[n], XmNcolumns, 50); n++;
|
|
Packit |
b099d7 |
label1 = XmCreateText (BBD, "label1", args, n);
|
|
Packit |
b099d7 |
XtManageChild (label1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild (pb1);
|
|
Packit |
b099d7 |
XtManageChild (pb2);
|
|
Packit |
b099d7 |
XtManageChild (pb3);
|
|
Packit |
b099d7 |
XtManageChild (tb1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild (BBD);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|