[comp.windows.x] dialog widget miscellany

warner%s3snorkel@SCUBED.ARPA (Ken Warner) (05/01/88)

On page 31 of X Toolkit Widgets there is documented a function called
XtDialogCreate()...there is no such animal in libX11.a or libXaw.a.

There is no font resource for the Dialog Widget or for buttons; am I correct?
Will there be?

Does anyone have any spiffy buttons.  Buttons with round ends or radio buttons?

Lastly, I noticed that when resizing a widget that contained other widgets and
labels that the bitmap representing the label became distorted.  At first I
thought that the font had somehow been changed but then found there is no font
resource.  I think there is a counting error during resizing that affects the
bitmap, thereby distorting the label.

Below is the program I was foolin' around with. Compile in the usual way and
resize it a few times.  Did the appearance of the labels change for you?

--------------------------------------------------------------------------------

#include <X11/Intrinsic.h>
#include <X11/Atoms.h>
#include <X11/Form.h>
#include <X11/Label.h>
#include <X11/Dialog.h>
#include <X11/Command.h>

void Callback(widget,clientData,callData)
Widget widget;
caddr_t clientData,callData;
{
	(void)printf("Goodbye, cruel world\n");
	exit();
}
void SecondCallback(widget,clientData,callData)
Widget widget;
caddr_t clientData,callData;
{
	(void)printf("Big Button\n");
	exit();
}
void ThirdCallback(widget,clientData,callData)
Widget widget;
caddr_t clientData,callData;
{
	(void)printf("Little Button\n");
	exit();
}

int main(argc,argv)
int argc;
char **argv;
{
	Widget toplevel,box,dialog_box,dialog,label,command;
	Widget XtDialogCreate(),Xtinitialize(),XtCreateManagedWidget();
	Arg arg[25];
	unsigned int n;

	toplevel = XtInitialize("goodbye","Goodby",NULL,0,&argc,argv);

    box = XtCreateManagedWidget("box",formWidgetClass,toplevel,(Arg *)NULL,0);
	
    /*XtDialogCreate(dialog_box,"dialog_box","foo-bar",(Arg *)NULL,0);*/

	n = 0;
	XtSetArg(arg[n],XtNx,10);	n++;
	XtSetArg(arg[n],XtNy,10);	n++;
	XtSetArg(arg[n],XtNlabel,"Goodby, world");	n++;
	label = XtCreateManagedWidget("label",labelWidgetClass,box,arg,n);

	n = 0;
	XtSetArg(arg[n],XtNx,10);	n++;
	XtSetArg(arg[n],XtNy,40);	n++;
	XtSetArg(arg[n],XtNfromVert,label);	n++;
	XtSetArg(arg[n],XtNvertDistance,10);	n++;
	XtSetArg(arg[n],XtNlabel,"Click and die");	n++;
	command = XtCreateManagedWidget("command",commandWidgetClass,box,arg,n);
	XtAddCallback(command,XtNcallback,Callback,NULL);

	n = 0;
	XtSetArg(arg[n],XtNx,10);	n++;
	XtSetArg(arg[n],XtNy,110);	n++;
	XtSetArg(arg[n],XtNlabel,"Dialog Box");		n++;
	XtSetArg(arg[n],XtNwidth,50);			n++;
	XtSetArg(arg[n],XtNfromVert,command);	n++;
	XtSetArg(arg[n],XtNvertDistance,10);	n++;
	XtSetArg(arg[n],XtNvalue,"Some Value");		n++;
    dialog = XtCreateManagedWidget("dialog",dialogWidgetClass,box,arg,n);
	XtDialogAddButton(dialog,"Big Button",SecondCallback,NULL);
	XtDialogAddButton(dialog,"Little Button",ThirdCallback,NULL);

	XtRealizeWidget(toplevel);
	XtMainLoop();
}

swick@ATHENA.MIT.EDU (Ralph R. Swick) (05/14/88)

     Date:  Sat, 30 Apr 88 19:11:57 PDT
     From:  warner%s3snorkel@scubed.ARPA (Ken Warner)

     On page 31 of X Toolkit Widgets there is documented a function called
     XtDialogCreate()...there is no such animal in libX11.a or libXaw.a.

Documentation bug.  Use XtCreateWidget().

     There is no font resource for the Dialog Widget or for buttons; am I correct?
     Will there be?

Dialog is a composite widget that uses Label, Text and Command.  All three
of the components have font resources and a specification of the form
'*Dialog*Font' will allow you to specify them as a group.