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

  1. /* Author:   $Author: jan $
  2.  * File:     $Source: /usr/usrs/jan/desktop/X_Book.boo/programs/RCS/realform.c,v $
  3.  * Date:     $Date: 1992/09/09 00:10:07 $
  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/Label.h>
  14. #include <Xm/Text.h> 
  15. #include <Xm/Form.h> 
  16.  
  17. /*------------------------------------------------------------- 
  18. **     Forward Declarations 
  19. */ 
  20.  
  21. void main ();            /*  main logic for application    */ 
  22.  
  23. void CreateApplication ();    /*  create main window        */ 
  24. void QuitCB ();            /*  callback for quit button    */ 
  25.  
  26. /*------------------------------------------------------------- 
  27. **    Global Variables 
  28. */ 
  29.  
  30. #define MAX_ARGS 20 
  31. #define Class_name "FourButtons" 
  32.  
  33. static XmStringCharSet    charset = (XmStringCharSet) XmSTRING_DEFAULT_CHARSET; 
  34. /*------------------------------------------------------------- 
  35. **    main        - main logic for application 
  36. */ 
  37. void main (argc,argv)  
  38.     unsigned int    argc; 
  39.      char         **argv; 
  40.      Widget        app_shell;    /*  ApplicationShell    */ 
  41.  
  42.      /*    Initialize toolkit, open the display and create the toplevel widget. */ 
  43.      app_shell = XtInitialize(argv[0], /* application name */    
  44.                Class_name,     /* class name */    
  45.                NULL,         /* options */    
  46.                0,        /* number of options */    
  47.                &argc, argv);    
  48.   
  49.      /* set up all the sub-widgets */ 
  50.      CreateApplication(app_shell);
  51.      XtRealizeWidget (app_shell); 
  52.  
  53.      /*    Get and dispatch events. 
  54.      */ 
  55.      XtMainLoop (); 
  56.  
  57. /*------------------------------------------------------------- 
  58. **     CreateApplication    - create main window 
  59. **          This must be customised for each application.
  60. */ 
  61. void CreateApplication (parent)  
  62. Widget        parent;        /*  parent widget    */ 
  63.     Widget        form;    /*  Form        */ 
  64.     Widget        label[3], text[3];
  65.  
  66.      Arg        args[MAX_ARGS];    /*  arg list        */ 
  67.      register int    n;        /*  arg count        */ 
  68.  
  69.      /*    Create Form Window. 
  70.      */ 
  71.      n = 0; 
  72.      form = XmCreateForm (parent, "aForm", args, n);    
  73.      XtManageChild (form);     
  74.  
  75.      n = 0; 
  76.      label[0] = XmCreateLabel (form, "Name", args, n); 
  77.      
  78.      n = 0; 
  79.      label[1] = XmCreateLabel (form, "Address", args, n); 
  80.  
  81.      n = 0; 
  82.      label[2] = XmCreateLabel (form, "Telephone", args, n); 
  83.  
  84.      n = 0; 
  85.      text[0] = XmCreateText (form, "Widget 4", args, n); 
  86.      n = 0; 
  87.      text[1] = XmCreateText (form, "Widget 4", args, n); 
  88.      n = 0; 
  89.      text[2] = XmCreateText (form, "Widget 4", args, n); 
  90.  
  91.         /* geometry for label 2
  92.         */
  93.         n = 0;
  94.         XtSetArg (args[n], XmNalignment, XmALIGNMENT_END); n++;
  95.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  96.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  97.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  98.         XtSetArg (args[n], XmNtopPosition, 66); n++;
  99.         XtSetValues (label[2], args, n);
  100.  
  101.         /* geometry for label 1
  102.         */
  103.         n = 0;
  104.         XtSetArg (args[n], XmNalignment, XmALIGNMENT_END); n++;
  105.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  106.         XtSetArg (args[n], XmNbottomPosition, 66); n++;
  107.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  108.         XtSetArg (args[n], XmNtopPosition, 33); n++;
  109.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  110.         XtSetArg (args[n], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
  111.         XtSetArg (args[n], XmNrightWidget, label[2]); n++;
  112.         XtSetValues (label[1], args, n);
  113.  
  114.         /* geometry for label 0
  115.         */
  116.         n = 0;
  117.         XtSetArg (args[n], XmNalignment, XmALIGNMENT_END); n++;
  118.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  119.         XtSetArg (args[n], XmNbottomPosition, 33); n++;
  120.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  121.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  122.         XtSetArg (args[n], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
  123.         XtSetArg (args[n], XmNrightWidget, label[1]); n++;
  124.         XtSetValues (label[0], args, n);
  125.  
  126.         /* geometry for text 0
  127.         */
  128.         n = 0;
  129.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  130.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  131.         XtSetArg (args[n], XmNbottomPosition, 33); n++;
  132.         XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  133.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
  134.         XtSetArg (args[n], XmNleftWidget, label[0]); n++;
  135.         XtSetValues (text[0], args, n);
  136.  
  137.         /* geometry for text 1
  138.         */
  139.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  140.         XtSetArg (args[n], XmNtopPosition, 33); n++;
  141.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_POSITION); n++;
  142.         XtSetArg (args[n], XmNbottomPosition, 66); n++;
  143.         XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  144.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
  145.         XtSetArg (args[n], XmNleftWidget, label[1]); n++;
  146.         XtSetValues (text[1], args, n);
  147.  
  148.         /* geometry for text 2
  149.         */
  150.         XtSetArg (args[n], XmNtopAttachment, XmATTACH_POSITION); n++;
  151.         XtSetArg (args[n], XmNtopPosition, 66); n++;
  152.         XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  153.         XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
  154.         XtSetArg (args[n], XmNleftWidget, label[2]); n++;
  155.         XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  156.         XtSetValues (text[2], args, n);
  157.      XtManageChild (label[0]); 
  158.      XtManageChild (label[1]); 
  159.      XtManageChild (label[2]); 
  160.      XtManageChild (text[0]);    
  161.      XtManageChild (text[1]);    
  162.      XtManageChild (text[2]);    
  163.  
  164. /*------------------------------------------------------------- 
  165. **     QuitCB            - callback for quit button 
  166. */ 
  167. void QuitCB (w, client_data, call_data)  
  168. Widget        w;        /*  widget id        */ 
  169. caddr_t        client_data;    /*  data from application   */ 
  170. caddr_t        call_data;    /*  data from widget class  */ 
  171.  
  172.      /*    Terminate the application. 
  173.      */ 
  174.      printf("button was pressed\n");
  175.      exit (0); 
  176.