home *** CD-ROM | disk | FTP | other *** search
/ Kyūkyoku!! X68000 Emulator / X68000Book.dat / mac / OLS / X68000 / Ko-Window / kow142s.lzh / corlib / GposSetFill.c < prev    next >
C/C++ Source or Header  |  1995-03-15  |  1KB  |  43 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. GposSetFill( wp, dp, c1, c2, x1, y1, x2, y2 )
  11. WindowID    wp;
  12. DrawBuf        *dp;
  13. {
  14.     if( WindowGetGraphicMode() != WindowAttrGraphic16 ){
  15.         int    ax, ay, rx, ry, rx2, ry2, sx, sy;
  16.         WindowGetScreenPosition( wp, &sx, &sy );
  17.         WindowGetGraphicOffset( &ax, &ay );
  18.         rx= sx+ x1;
  19.         ry= sy+ y1;
  20.         rx2= sx+ x2+1;
  21.         ry2= sy+ y2+1;
  22.         if( !(ax <= rx && ax+GH >= rx2 && ay <= ry && ay+GV >= ry2) ){
  23.             int    x, y, xx2, yy2;
  24.             x= ax > rx ? ax-sx : x1;
  25.             y= ay > ry ? ay-sy : y1;
  26.             xx2= ax+GH > rx2 ? x2+1 : ax+GH-sx;
  27.             yy2= ay+GV > ry2 ? y2+1 : ay+GV-sy;
  28.             if( x < xx2 && y < yy2 ){
  29.                 DrawSetLine( dp, x1, y1, x2, y2, c2,
  30.                                 OptionFill );
  31.                 DrawSetLine( dp+1, x, y, xx2-1, yy2-1, c1,
  32.                             OptionFill );
  33.                 return    2;
  34.             }
  35.             DrawSetLine( dp, x1, y1, x2, y2, c2, OptionFill );
  36.             return    1;
  37.         }
  38.     }
  39.     DrawSetLine( dp, x1, y1, x2, y2, c1, OptionFill );
  40.     return    1;
  41. }
  42.  
  43.