home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_09_12 / 9n12096a < prev    next >
Text File  |  1991-03-04  |  2KB  |  128 lines

  1.  
  2. /*
  3.  *    motif1.c
  4.  *    Sample Motif program.
  5.  *
  6.  *    Remember xset bc for pane sashes
  7.  *
  8.  *    Written for C Users Journal
  9.  *
  10.  *    4 March 91
  11.  *    28 January 91
  12.  *    28 November 90
  13.  */
  14.  
  15.  
  16. #include <stdio.h>
  17.  
  18. /*
  19.  *    X Toolkit include files
  20.  */
  21. #include  <X11/Intrinsic.h>
  22. #include  <X11/StringDefs.h>
  23.  
  24. /*
  25.  *    Motif include files
  26.  */
  27. #include  <Xm/Xm.h>
  28. #include  <Xm/Label.h>
  29. #include  <Xm/PanedW.h>
  30. #include  <Xm/PushB.h>
  31.  
  32.  
  33. void quit_callback( widget, client_data, call_data )
  34.  
  35. Widget  widget;
  36. caddr_t client_data;
  37. caddr_t call_data;
  38.  
  39. /*
  40.  *      Callback function to quit program.
  41.  *      We could close the connection to
  42.  *      the X server here, or just call exit().
  43.  */
  44.  
  45. {       /* quit_callback */
  46.  
  47.         exit( 0 );
  48.  
  49. }       /* quit_callback */
  50.  
  51.  
  52.  
  53. main( argc, argv )
  54.  
  55. int    argc;
  56. char    *argv[];
  57.  
  58. {    /* main */
  59.     Widget        parent;
  60.     Arg        args[10];
  61.     int        n;
  62.     Widget        pane_widget, quit_widget; 
  63.     Widget        label_widget;
  64.     XmString    motif_string;
  65.  
  66.  
  67.         parent = XtInitialize( argv[0],
  68.                         "Motif1", NULL,
  69.                         0, &argc, argv );
  70.  
  71.     /*
  72.      * Create a paned window widget
  73.      */
  74.         n = 0;
  75.         XtSetArg( args[n], XmNseparatorOn, True ); n++;
  76.         XtSetArg( args[n], XmNallowResize, True ); n++;
  77.  
  78.         pane_widget = XtCreateManagedWidget( "pane",
  79.                         xmPanedWindowWidgetClass,
  80.                         parent, args, n );
  81.  
  82.     /*
  83.      * Create a push button widget 
  84.      * to quit the program.
  85.      */
  86.     n = 0;
  87.     quit_widget = XtCreateManagedWidget( "quit",
  88.             xmPushButtonWidgetClass,
  89.             pane_widget, args, n );
  90.  
  91.         /*
  92.          * Set up a callback function
  93.          * to be called whenever
  94.          * the push button is
  95.          * "activated".
  96.          */
  97.         XtAddCallback( quit_widget, XmNactivateCallback,
  98.                 quit_callback, (caddr_t) NULL );
  99.  
  100.  
  101.     /*
  102.      * Set up XmString fot label widget
  103.      */
  104.         motif_string = XmStringCreateLtoR( "This is a label",
  105.                                 XmSTRING_DEFAULT_CHARSET );
  106.  
  107.         n = 0;
  108.         XtSetArg( args[n], XmNlabelString, motif_string ); n++;
  109.  
  110.     /*
  111.      * Create a label widget
  112.      */
  113.         label_widget = XtCreateManagedWidget( "label", 
  114.             xmLabelWidgetClass,
  115.             pane_widget, args, n );
  116.  
  117.     XmStringFree( motif_string );
  118.  
  119.         XtRealizeWidget( parent );
  120.         XtMainLoop();
  121.  
  122. }    /* main */
  123.  
  124. /*
  125.  *    end of file
  126.  */
  127.  
  128.