home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / n / newmarch.zip / FORM2A.C < prev    next >
C/C++ Source or Header  |  1992-09-08  |  5KB  |  150 lines

  1. /* Author:   $Author: jan $
  2.  * File:     $Source: /usr/usrs/jan/desktop/X_Book.boo/programs/RCS/form2a.c,v $
  3.  * Date:     $Date: 1992/09/09 00:09:56 $
  4.  * Revision: $Revision: 1.1 $
  5.  */
  6.  
  7. #include "copyright.h"
  8.  
  9. #include <stdio.h> 
  10.  
  11. #include <X11/Intrinsic.h> 
  12. #include <Xm/Xm.h> 
  13. #include <Xm/PushB.h> 
  14. #include <Xm/Form.h> 
  15.  
  16. /*------------------------------------------------------------- 
  17. **     Forward Declarations 
  18. */ 
  19.  
  20. void main ();            /*  main logic for application    */ 
  21.  
  22. void CreateApplication ();    /*  create main window        */ 
  23. void QuitCB ();            /*  callback for quit button    */ 
  24.  
  25. /*------------------------------------------------------------- 
  26. **    Global Variables 
  27. */ 
  28.  
  29. #define MAX_ARGS 20 
  30. #define Class_name "FourButtons" 
  31.  
  32. static XmStringCharSet    charset = (XmStringCharSet) XmSTRING_DEFAULT_CHARSET; 
  33. /*------------------------------------------------------------- 
  34. **    main        - main logic for application 
  35. */ 
  36. void main (argc,argv)  
  37.     unsigned int    argc; 
  38.      char         **argv; 
  39.      Widget        app_shell;    /*  ApplicationShell    */ 
  40.  
  41.      /*    Initialize toolkit, open the display and create the toplevel widget. */ 
  42.      app_shell = XtInitialize(argv[0], /* application name */    
  43.                Class_name,     /* class name */    
  44.                NULL,         /* options */    
  45.                0,        /* number of options */    
  46.                &argc, argv);    
  47.   
  48.      /* set up all the sub-widgets */ 
  49.      CreateApplication(app_shell);
  50.      XtRealizeWidget (app_shell); 
  51.  
  52.      /*    Get and dispatch events. 
  53.      */ 
  54.      XtMainLoop (); 
  55.  
  56. /*------------------------------------------------------------- 
  57. **     CreateApplication    - create main window 
  58. **          This must be customised for each application.
  59. */ 
  60. void CreateApplication (parent)  
  61. Widget        parent;        /*  parent widget    */ 
  62.     Widget        row_column;    /*  RowColumn        */ 
  63.     Widget        widget1, widget2, widget3, widget4;
  64.  
  65.      Arg        args[MAX_ARGS];    /*  arg list        */ 
  66.      register int    n;        /*  arg count        */ 
  67.  
  68.      /*    Create RowColumn Window. 
  69.      */ 
  70.      n = 0; 
  71.      row_column = XmCreateForm (parent, "rowColumn", args, n);    
  72.      XtManageChild (row_column);     
  73.  
  74.      n = 0; 
  75.      widget1 = XmCreatePushButton (row_column, "Widget 1", args, n); 
  76.      XtAddCallback (widget1, XmNactivateCallback, QuitCB, NULL); 
  77.      
  78.      n = 0; 
  79.      widget2 = XmCreatePushButton (row_column, "Long Widget 2", args, n); 
  80.      XtAddCallback (widget2, XmNactivateCallback, QuitCB, NULL); 
  81.  
  82.      n = 0; 
  83.      widget3 = XmCreatePushButton (row_column, "Widget 3", args, n); 
  84.      XtAddCallback (widget3, XmNactivateCallback, QuitCB, NULL); 
  85.  
  86.      n = 0; 
  87.      widget4 = XmCreatePushButton (row_column, "Long Widget 4", args, n); 
  88.      XtAddCallback (widget4, XmNactivateCallback, QuitCB, NULL);     
  89.  
  90. n = 0;
  91. XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  92. XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  93. XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
  94. XtSetArg (args[n], XmNrightPosition, 50); n++;
  95. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  96. XtSetArg (args[n], XmNbottomPosition, 50); n++;
  97. XtSetValues (widget1, args, n);
  98.  
  99. n = 0;
  100. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  101. XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  102. XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
  103. XtSetArg (args[n], XmNrightPosition, 50); n++;
  104. XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  105. XtSetArg (args[n], XmNtopPosition, 50); n++;
  106. XtSetValues (widget2, args, n);
  107.  
  108. n = 0;
  109. XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  110. XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  111. XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
  112. XtSetArg (args[n], XmNleftPosition, 50); n++;
  113. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  114. XtSetArg (args[n], XmNbottomPosition, 50); n++;
  115. XtSetValues (widget3, args, n);
  116.  
  117. n = 0;
  118. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  119. XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  120. XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
  121. XtSetArg (args[n], XmNleftPosition, 50); n++;
  122. XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  123. XtSetArg (args[n], XmNtopPosition, 50); n++;
  124. XtSetValues (widget4, args, n);
  125.  
  126.  
  127.      XtManageChild (widget1); 
  128.      XtManageChild (widget2);    
  129.      XtManageChild (widget3); 
  130.      XtManageChild (widget4); 
  131.  
  132. /*------------------------------------------------------------- 
  133. **     QuitCB            - callback for quit button 
  134. */ 
  135. void QuitCB (w, client_data, call_data)  
  136. Widget        w;        /*  widget id        */ 
  137. caddr_t        client_data;    /*  data from application   */ 
  138. caddr_t        call_data;    /*  data from widget class  */ 
  139.  
  140.      /*    Terminate the application. 
  141.      */ 
  142.      printf("button was pressed\n");
  143.      exit (0); 
  144.