home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / sys / kowin14s.lzh / corlib / GposSetClear2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-24  |  1017 b   |  44 lines

  1. /* Copyright 1994-1995 H.Ogasawara(COR.) */
  2.  
  3. #include    <sys_doslib.h>
  4. #include    <corlib.h>
  5. #include    <HS_wlib.h>
  6.  
  7. #define        GH    512
  8. #define        GV    512
  9.  
  10. GposSetClear2( wp, dp, c1, c2 )
  11. WindowID    wp;
  12. DrawBuf        *dp;
  13. {
  14.     int    mode= WindowGetGraphicMode();
  15.     if( mode != WindowAttrGraphic16 ){
  16.         int    ax, ay, rx, ry, rx2, ry2;
  17.         int    gv= 512;
  18.         if( mode == WindowAttrGraphic256 )
  19.             gv= 1024;
  20.         WindowGetScreenPosition( wp, &rx, &ry );
  21.         WindowGetGraphicOffset( &ax, &ay );
  22.         rx2= rx+HS_WindowGetViewSizeX(wp);
  23.         ry2= ry+HS_WindowGetViewSizeY(wp);
  24.         if( !(ax <= rx && ax+GH >= rx2 && ay <= ry && ay+gv >= ry2) ){
  25.             int    x, y, x2, y2;
  26.             x= ax > rx ? ax-rx : 0;
  27.             y= ay > ry ? ay-ry : 0;
  28.             x2= ax+GH > rx2 ? rx2-rx : ax+GH-rx;
  29.             y2= ay+gv > ry2 ? ry2-ry : ay+gv-ry;
  30.             if( x < x2 && y < y2 ){
  31.                 DrawSetClear( dp, c2 );
  32.                 DrawSetLine( dp+1, x, y, x2-1, y2-1, c1,
  33.                             OptionFill );
  34.                 return    2;
  35.             }
  36.             DrawSetClear( dp, c2 );
  37.             return    1;
  38.         }
  39.     }
  40.     DrawSetClear( dp, c1 );
  41.     return    1;
  42. }
  43.  
  44.