An Xt outline program

/*********   Simple Popup.h     ******/

#include  < X11/Intrinsic.h >

#include  < X11/StringDefs.h >

#include   <  X11/Shell.h >


#ifdef X11R3

#include    < X11/Box.h >

#include    < X11/Command.h >

#include   < X11/Form.h >

#include   < X11/Label.h >

#else

#include    < X11/Xaw/Box.h >

#include    < X11/Xaw/Command.h >

#include    < X11/Xaw/Form.h >

#include   < X11/Xaw/Label.h >


#endif

#include  < stdio.h >

/*
Functions
*/
void main(), create_main_widtes, create_popup_widgets();
void ActivatePopup(); DeactivatePopup(0, Quit();

/*
Private Widgets
*/

static Widget topLevel, buttonBoxMain, buttonPopup, buttonQuit;
static Widget popupShell, popupLabel, popupBx,
	popupButton1, popupButton2;

/*
main()  delegates everything
*/

void main(argc, argv)
int argc,
char * argv[];
{
	topLevel = XtInitialize(argv[0], "TestPopUp, NULL, 0,
		&argc, argv);
	create_main_widgets();
	create_popup_widgets();
	XtRealizeWidget(toplevel);
	XtMainLoop();
}	/*  main() */

/*
create_main_widgets()
*/

void create_main_widgets()
{
	Arg args[5]
	int i;

	buttonBoxMain = XtCreateManagedWidget("buttonBoxMain",
			boxWidgetClass, toplevel, NULL, 0);
	i = 0;
	XtSetArg(args[i], XtNlabel, (XtArgval) "Quit"); i++;
	buttonQuit = XtCreateManagedWidget("buttonQuit",
		commandWidgetClass,buttonBoxMain, args, i);
	XtAddCallback(buttonQuit, XtNcallback, Quit, NULL);
	i = 0;
	XtSetArg(args[i], XtNlabel, (XtArgval) "Test Popup"); i++;
	buttonPopup = XtCreateManagedWidget("buttonPopup",
		commandWidgetClass,buttonBoxMain, args, i);
	XtAddCallback(buttonPopup, XtNcallback, ActivatePopup, NULL);
}  /*  create_main_widgets */

/*
create_popup_widgets() ommitted.
*/


/*
Call backs:
*/

void Quit(w, client_data, call_data)
Widget w;
caddr_t client_data;
caddr_t call_data;
{
	printf("You pressed quit button\n");
	exit(0);
}  /* Quit */


void ActivatePopup(w, client_data, call_data)
Widget w;
caddr_t client_data;
caddr_t call_data;
{
	XtPopup(popupShell, XtGrabNone);
}   /* ActivatePopup */

/*
void  DeactivatePopup() is ommitted. (Invoked from popped up
buttons.

*/


Return to GUI home page

Last Changed: 2 July 1995