[alt.sources.patches] [comp.windows.x] Patches to get tec program running with XView

baur@venice.SEDD.TRW.COM (Steven L. Baur) (03/02/90)

Original-posting-by: baur@venice.SEDD.TRW.COM (Steven L. Baur)
Original-subject: Patches to get tec program running with XView
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)

[This is a patch to  from comp.windows.x.]


I converted the continental drift simulator recently posted to
comp.sources.misc to XView.

Apply this patch to sun.c, and then compile it with
cc -c -I/usr/include/X11 sun.c

Then link with -L/usr/lib/X11 -lxview -lX11.
--------------------Cut Here------------------------------------------------
*** ../tec/sun.c	Thu Mar  1 13:15:20 1990
--- sun.c	Thu Mar  1 13:43:16 1990
***************
*** 8,19 ****
  /* This file contains code to run tec under Un*x and Sunview.  The
     random number code is the same as that contained in unix.c; the
     graphics code was inspired by the example code from Sun contained
!    in /usr/share/src/sun/suntool/examples/coloredit.c and in the
     Sunview Programmer's Guide.  I don't claim to understand it.  The
     code in draw() is similar to that in ami.c. */
  
! #include <suntool/sunview.h>
! #include <suntool/canvas.h>
  #include <sys/types.h>
  #include <sys/timeb.h>
  #include "const.h"
--- 8,20 ----
  /* This file contains code to run tec under Un*x and Sunview.  The
     random number code is the same as that contained in unix.c; the
     graphics code was inspired by the example code from Sun contained
!    in /usr/share/src/sun/xview/examples/coloredit.c and in the
     Sunview Programmer's Guide.  I don't claim to understand it.  The
     code in draw() is similar to that in ami.c. */
+ /* baur@venice.sedd.trw.com:  Converted to XView */
  
! #include <xview/xview.h>
! #include <xview/canvas.h>
  #include <sys/types.h>
  #include <sys/timeb.h>
  #include "const.h"
***************
*** 52,73 ****
     struct timeb t;
     Frame  base_frame;
     Canvas canvas;
!    char   cmsname[CMS_NAMESIZE];
  
     /* Initialize random number generator */
     ftime (&t); srandom ((int) ((t.time % 100000) + t.millitm));
  
     /* Suntools-specific graphics setup */
!    base_frame = window_create (NULL, FRAME, FRAME_LABEL, "suntec", 
!       WIN_WIDTH, MAXX * 6, WIN_HEIGHT, MAXY*6, 0);
!    canvas = window_create (base_frame, CANVAS, WIN_WIDTH, 
!       MAXX * 6, WIN_HEIGHT, MAXY * 6, 0);
     pw = (Pixwin *) canvas_pixwin (canvas);
     sprintf (cmsname, "suntec%D", getpid());
     pw_setcmsname (pw, cmsname);
!    pw_putcolormap (pw, 0, 32, red, green, blue);
     notify_interpose_destroy_func (base_frame, tecdestroy);
!    window_set (base_frame, WIN_SHOW, TRUE, 0);
  
     /* Run the program, checking with Sunview after each step */
     init (*++argv);
--- 53,75 ----
     struct timeb t;
     Frame  base_frame;
     Canvas canvas;
!    char cmsname[50];
  
     /* Initialize random number generator */
     ftime (&t); srandom ((int) ((t.time % 100000) + t.millitm));
  
     /* Suntools-specific graphics setup */
!    base_frame = xv_create (NULL, FRAME, XV_LABEL, "suntec", 
!       XV_WIDTH, MAXX * 6, XV_HEIGHT, MAXY*6, 
! 	WIN_DYNAMIC_VISUAL, TRUE, 0);
!    canvas = xv_create (base_frame, CANVAS, XV_WIDTH, 
!       MAXX * 6, XV_HEIGHT, MAXY * 6, 0);
     pw = (Pixwin *) canvas_pixwin (canvas);
     sprintf (cmsname, "suntec%D", getpid());
     pw_setcmsname (pw, cmsname);
!    /* XView CONVERSION - Need to set WIN_DYNAMIC_VISUAL on window, see Sect 4.3 */pw_putcolormap (pw, 0, 32, red, green, blue);
     notify_interpose_destroy_func (base_frame, tecdestroy);
!    xv_set (base_frame, WIN_SHOW, TRUE, 0);
  
     /* Run the program, checking with Sunview after each step */
     init (*++argv);


--
steve	baur@venice.SEDD.TRW.COM
A computer which cannot run GNU emacs is not worth using.