home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / linkedit / linkedit.lha / link-edit / LinkEdit / Box / box_mn.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-03-13  |  2.0 KB  |  90 lines

  1. /* The main module for box */
  2.  
  3. #include <stdio.h>
  4. #include <X11/Xlib.h>
  5. #include "box_types.h"
  6.  
  7. Display *dpy;
  8. double xppmm,yppmm;  /* x and y pixels per millimeter */
  9. double WidthMM,HeightMM;
  10.  
  11. BoxStatus box_status;
  12. BoxData box_data;
  13.  
  14. main(argc,argv)
  15.  
  16. int argc;
  17. char *argv[];
  18.  
  19. {
  20.   Window top;
  21.   XWindowAttributes xwa;
  22.   XEvent event;
  23.  
  24.   /* Open up the connection to the X Server */
  25.  
  26.   if((dpy = XOpenDisplay(NULL)) == NULL) {
  27.     fprintf(stderr,"Could not open server.\n");
  28.     exit(1);
  29.    }
  30.  
  31.   /* Get some basic information */
  32.  
  33.   WidthMM = (double) DisplayWidthMM(dpy,DefaultScreen(dpy));
  34.   HeightMM = (double) DisplayHeightMM(dpy,DefaultScreen(dpy));
  35.   xppmm = (double) DisplayWidth(dpy,DefaultScreen(dpy))/WidthMM;
  36.   yppmm = (double) DisplayHeight(dpy,DefaultScreen(dpy))/HeightMM;
  37.  
  38.  
  39.   /* initialize client */
  40.   BoxSetUp(&box_data);
  41.   BoxInitialize(&box_status,&box_data);
  42.  
  43.   while(1){
  44.  
  45.      XNextEvent(dpy,&event);
  46.      top = event.xany.window;
  47.      if(top == box_status.TopWindow ||
  48.           top == box_status.MessageWindow ||
  49.           top == box_status.TitleWindow) {
  50.  
  51.         BoxEvent(&box_status,&event);
  52.  
  53.         /* Check it out */
  54.         if(BoxStateChange((VOID *) (&box_status))) {
  55.            int choice[10],num;
  56.            num = ExtractBoxSelection((VOID *) (&box_status),
  57.                                          choice);
  58.            /* Normally a client's menu handler will go here. */
  59.            /* e.g. *MenuChoice(gnrc,num,choice) */
  60.           }
  61.         continue;
  62.        }
  63.     }
  64. }
  65.  
  66. BoxSetUp(data)
  67. BoxData *data;
  68.  
  69. {
  70.  
  71.   data->root = DefaultRootWindow(dpy);
  72.   data->x =  BOX_X_OFFSET * WidthMM;
  73.   data->y = BOX_Y_OFFSET * HeightMM;
  74.   data->width = 252.21; 
  75.   data->height = 235.37; 
  76.   data->border = BOX_BORDER;
  77.  
  78.   data->title_present = BOX_NO;
  79.   data->message_present = BOX_NO;
  80.   data->urgent_present = BOX_NO;
  81.   data->do_not_map = BOX_NO;
  82.  
  83.   strcpy(data->title,"Wave Editor");
  84.   strcpy(data->message,"Let's make waves.");
  85.   strcpy(data->font,"9x15");
  86.  
  87.   data->arg = (VOID *) NULL;
  88.  
  89. }
  90.