xsample.c

/*
 * Include files required by all Xt (X Toolkit Intrinsics) applications
 */
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>

/*
 * Include files for widgets used by this program
 */
#include <X11/Xaw/Command.h>
#include <X11/Xaw/Toggle.h>
#include <X11/Xaw/Box.h>


/* Global because subroutines depend on it */
XtAppContext appcontext;

/*
 * ARGSUSED comment keeps lint from complaining...
 */
/* ARGSUSED */
void Quit( Widget w,			/* widget triggering callback	*/ 
           XtPointer client_data,	/* last arg of XtAddCallback()	*/ 
	   XtPointer call_data )	/* data passed by widget	*/
{
  exit( 0 );
}

/* ARGSUSED */
void Change( Widget w, XtPointer client_data, XtPointer call_data )
{
  Arg arglist[] = { XtNwidth, 180,
		    XtNbackground, (XtArgVal)"red",
		    XtNlabel, (XtArgVal)"HardCoded Resource" };

  XtSetValues( (Widget)client_data, arglist, XtNumber( arglist ) );
}


int main( int argc, char *argv[] )
{
  Widget topwidget, container, quitButton, changeButton;
  static String fallbackResources[] = {
    ".xsample.*font: lucidasans-bold-12",
    NULL };

  /* Initialize the toolkit */
  topwidget = XtVaAppInitialize(
    &appcontext,			/* application context		*/
    "XSample",				/* application class		*/
    NULL, 0,				/* command line option list 	*/
    &argc, argv,			/* command line arguments   	*/
    fallbackResources,			/* fallback resource settings 	*/
    NULL );				/* terminate varags list 	*/

  /* Create widget */
  container = XtVaCreateManagedWidget(
    "container",			/* widget name 			*/
    boxWidgetClass,			/* widget class			*/
    topwidget,				/* widget parent		*/
    NULL );				/* terminate varags list	*/

  /* Create widget */
  quitButton = XtVaCreateManagedWidget(
    "quitButton",
    commandWidgetClass,
    container,
    XtNwidth, 180,			/* hard coded X resource	*/
    NULL );

  /* Create widget */
  changeButton = XtVaCreateManagedWidget(
    "changeButton",
    commandWidgetClass,
    container,
    NULL );


  /* Add quitButton callback functions */
  XtAddCallback( quitButton, XtNcallback, Quit, NULL );

  /* Add changeButton callback functions */
  XtAddCallback( changeButton, XtNcallback, Change, quitButton );

  /* Map windows to the screen */
  XtRealizeWidget( topwidget );

  /* Loop for events */
  XtAppMainLoop( appcontext );
}

 


Last Modified: 13 June 1997

St. Louis Unix Users Group - Linux SIG