home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 328_02 / whide.c < prev    next >
C/C++ Source or Header  |  1991-03-17  |  1KB  |  75 lines

  1. /* whide.c
  2.  *    contains whide() and wshow()
  3.  *
  4.  *     These routines cover up the current window with the prior screen
  5.  *    and then restore it, without releasing the window
  6.  *
  7.  *    They must be called in pairs, whide() first, then wshow()
  8.  *        without an intermediate call to wopen() or similar functions
  9.  *
  10.  *    PARAMETERS:      whide()-- none.
  11.  *            wshow()-- takes the pointer returned by whide.
  12.  *
  13.  *    RETURNS:    whide()-- a void far *, to pass to wshow later.
  14.  *            wshow()-- none.
  15.  */
  16. #include "wsys.h"
  17.  
  18.  
  19.  
  20. WHEAP  *whide (void)
  21.     {
  22.     WHEAP  *oldimage;
  23.     WHEAP  *newimage;
  24.  
  25.     /* can't hide if no old save area
  26.      */
  27.     if ( NULL ==  (oldimage = w0->winsave) )
  28.         {
  29.         return (NULL);
  30.         }
  31.  
  32.     w0->winsave = NULL;
  33.     wsave ();        /* get current image */
  34.  
  35.     newimage = w0->winsave;
  36.  
  37.     w0->winsave = oldimage;
  38.  
  39.  
  40.     wrestore ();
  41.  
  42.     return (newimage);    /* whide */
  43.     }
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. void wshow ( WHEAP  *newimage )
  52.     {
  53.     WHEAP *oldimage;
  54.  
  55.  
  56.     if ( NULL == (oldimage = w0->winsave) )
  57.         {
  58.         return;
  59.         }
  60.  
  61.  
  62.     w0->winsave = newimage;
  63.     wrestore ();
  64.  
  65.  
  66.     w0->winsave = oldimage;
  67.  
  68.     if ( newimage )
  69.         {
  70.         wheap_free ( newimage );
  71.         }
  72.  
  73.  
  74.     return;        /* wshow */
  75.     }