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

  1. /* Author:   $Author: jan $
  2.  * File:     $Source: /usr/usrs/jan/desktop/X_Book.boo/programs/RCS/menu.c,v $
  3.  * Date:     $Date: 1992/09/09 00:10:04 $
  4.  * Revision: $Revision: 1.1 $
  5.  */
  6.  
  7. #include "copyright.h"
  8.  
  9. #include <Xm/CascadeB.h> 
  10. #include <Xm/PushB.h> 
  11. #include <Xm/RowColumn.h>     
  12.  
  13. /*----------------------------------------------------- 
  14. **    Forward Declarations 
  15. */ 
  16.  
  17. void main ();     /*  main logic for application  */ 
  18.  
  19. void CreateApplication (); /* create main window     */
  20.  
  21. /*-----------------------------------------------------
  22. **      Global Variables 
  23. */ 
  24.  
  25. #define MAX_ARGS 20 
  26. #define Class_name "SampleMenu" 
  27.  
  28. /*-----------------------------------------------------
  29. **      main      - main logic for application 
  30. */ 
  31. void
  32. main (argc,argv)  
  33.     int        argc; 
  34.     char    **argv; 
  35.     Widget    app_shell;   
  36.  
  37.     app_shell = XtInitialize (NULL,     /* application
  38.                                            name */    
  39.                          Class_name,    /* class name */
  40.                          NULL,          /* options */   
  41.                          0,             /* number of
  42.                                            options */ 
  43.                          &argc, argv);  
  44.           
  45.     /* Create and realize main 
  46.        application window. 
  47.     */ 
  48.     CreateApplication (app_shell); 
  49.     XtRealizeWidget (app_shell); 
  50.  
  51.     /*      Get and dispatch events. 
  52.     */ 
  53.     XtMainLoop (); 
  54.  
  55. /*------------------------------------------------------
  56. **       CreateApplication       - create main window 
  57. */ 
  58. void CreateApplication (parent)  
  59.     Widget    parent;    /*  parent widget    */ 
  60.     Widget    menu_bar;  /*  MenuBar  */ 
  61.     Widget    menu_pane; /*  MenuPane */ 
  62.     Widget    cascade;   /*  CascadeButton */ 
  63.     Widget    button;    /*  PushButton    */ 
  64.  
  65.     Arg        args[MAX_ARGS]; /* arg list  */ 
  66.     int        n;              /*  arg count */ 
  67.  
  68.     /* Create MenuBar in parent
  69.     */ 
  70.     n = 0; 
  71.     menu_bar = XmCreateMenuBar (parent, "menu_bar",
  72.                                args, n);  
  73.     XtManageChild (menu_bar); 
  74.  
  75.     /* Create "File" PulldownMenu. 
  76.     */ 
  77.     /* Create the file pane
  78.     */
  79.     n = 0; 
  80.     menu_pane = XmCreatePulldownMenu (menu_bar,
  81.                              "file_pane", args, n);
  82.  
  83.  /* The Save button
  84.     */
  85.     n = 0; 
  86.     button = XmCreatePushButton (menu_pane,
  87.                              "Save", args, n); 
  88.     XtManageChild (button); 
  89.  
  90.     /* The Exit button
  91.     */
  92.     n = 0; 
  93.     button = XmCreatePushButton (menu_pane, 
  94.                               "Exit", args, n); 
  95.     XtManageChild (button); 
  96.  
  97.     /* Create the cascade button for the menu bar.
  98.    Link the menu pane and cascade button by
  99.    subMenuId resource
  100.     */
  101.     n = 0; 
  102.     XtSetArg (args[n], XmNsubMenuId, 
  103.                   menu_pane);  n++; 
  104.     cascade = XmCreateCascadeButton (menu_bar,
  105.                               "File", args, n); 
  106.     XtManageChild (cascade); 
  107.  
  108.     /* Create "Help" menu in a similar way.
  109.     */ 
  110.  
  111.     n = 0; 
  112.     menu_pane = XmCreatePulldownMenu (menu_bar,
  113.                             "help_pane", args, n);    
  114.  
  115.      n = 0; 
  116.     button = XmCreatePushButton (menu_pane,
  117.                    "About", args, n); 
  118.     XtManageChild (button); 
  119.  
  120.     n = 0; 
  121.     button = XmCreatePushButton (menu_pane,
  122.                             "Application", args, n); 
  123.     XtManageChild (button); 
  124.  
  125.     n = 0; 
  126.     XtSetArg (args[n], XmNsubMenuId,
  127.                   menu_pane);  n++; 
  128.     cascade = XmCreateCascadeButton (menu_bar,
  129.                             "Help", args, n); 
  130.     XtManageChild (cascade);
  131.  
  132.  
  133.     /* tell the menu bar which is the help button
  134.     */
  135.     n = 0; 
  136.     XtSetArg (args[n], XmNmenuHelpWidget,
  137.                   cascade);  n++; 
  138.     XtSetValues (menu_bar, args, n); 
  139.