home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / util / cdity / colorsaver / src / pointer.c < prev    next >
C/C++ Source or Header  |  1994-12-05  |  2KB  |  68 lines

  1. #include <intuition/intuition.h>
  2. #include <clib/intuition_protos.h>
  3. #include <clib/graphics_protos.h>
  4.  
  5. #include "defs.h"
  6. #include "pointer.h"
  7. #include "gadgets.h"
  8.  
  9. extern struct Screen     *Scr;            /* screen we open up on            */
  10.  
  11. /*=============================================================================
  12.  * Implement a custom window pointer, this may involve changing the colors 
  13.  * for Sprite 0.
  14.  *===========================================================================*/
  15.  
  16. void SetOurPointer(SHORT pointer_num, BOOL GetResetColors)
  17. {
  18.   int i;  
  19.  
  20.  /*
  21.   * GetResetColors should only be TRUE the first time you call
  22.   * SetOurPointer(),  This gets and stores the current value of the
  23.   * pointer registers so we can  reset them when we're done.
  24.   */
  25.  
  26.   if(GetResetColors)
  27.     for(i=0; i< 4; i++)
  28.      {
  29.       PointerColor[i].reset = GetRGB4(Scr->ViewPort.ColorMap,
  30.                                           POINTER_REGISTER+i);
  31.      } 
  32.  
  33.   for(i=0; i< 4; i++)
  34.      {
  35.     SetRGB4(&Scr->ViewPort,POINTER_REGISTER+i,
  36.                        PointerColor[i].red,
  37.                        PointerColor[i].green,
  38.                        PointerColor[i].blue );
  39.      }
  40.  
  41.   if(pointer_num == MAIN_POINTER)
  42.     SetPointer( ColorSaverWnd, CSPointer, CS_PTR_HEIGHT, CS_PTR_WIDTH,
  43.                  CS_PTR_XOFF , CS_PTR_YOFF);
  44.  
  45.   if(pointer_num == TO_POINTER)
  46.     SetPointer( ColorSaverWnd, CSToPointer, CSTO_PTR_HEIGHT, CSTO_PTR_WIDTH,
  47.                  CSTO_PTR_XOFF , CSTO_PTR_YOFF);
  48.  
  49. }
  50.  
  51. /*=============================================================================
  52.  * Reset the Sprite 0 (pointer) colors to the values they had before we 
  53.  * messed with them in SetOurPointer();
  54.  *===========================================================================*/
  55.  
  56. void ResetPointerColors( void )
  57. {
  58.   int i;
  59.  
  60.   for(i=0; i< 4; i++)
  61.      {
  62.     SetRGB4(&Scr->ViewPort,POINTER_REGISTER+i,
  63.           (PointerColor[i].reset >> 8) & 0x0F,
  64.           (PointerColor[i].reset >> 4) & 0x0F,
  65.           (PointerColor[i].reset     ) & 0x0F);
  66.      }
  67. }
  68.