home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / term43-source.lha / Extras / Source / gtlayout-Source.lha / LTP_BlinkButton.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-01  |  1.3 KB  |  49 lines

  1. /*  GadTools layout toolkit
  2. **
  3. **  Copyright © 1993-1994 by Olaf `Olsen' Barthel
  4. **  Freely distributable.
  5. */
  6.  
  7. #include "gtlayout_global.h"
  8.  
  9. VOID __regargs
  10. LTP_BlinkButton(LayoutHandle *handle,struct Gadget *gadget)
  11. {
  12.     if((gadget -> Flags & (GFLG_GADGIMAGE | GFLG_GADGHIMAGE)) == (GFLG_GADGIMAGE | GFLG_GADGHIMAGE) && gadget -> GadgetRender && gadget -> SelectRender)
  13.     {
  14.         struct MsgPort        __aligned TimePort;
  15.         struct timerequest    __aligned TimeRequest;
  16.  
  17.         memset(&TimePort,0,sizeof(TimePort));
  18.  
  19.         NewList(&TimePort . mp_MsgList);
  20.  
  21.         TimePort . mp_Flags    = PA_SIGNAL;
  22.         TimePort . mp_SigBit    = SIGB_SINGLE;
  23.         TimePort . mp_SigTask    = SysBase -> ThisTask;
  24.  
  25.         memset(&TimeRequest,0,sizeof(TimeRequest));
  26.  
  27.         TimeRequest . tr_node . io_Message . mn_ReplyPort = &TimePort;
  28.  
  29.         if(!OpenDevice(TIMERNAME,UNIT_VBLANK,&TimeRequest,NULL))
  30.         {
  31.             TimeRequest . tr_node . io_Command    = TR_ADDREQUEST;
  32.             TimeRequest . tr_time . tv_secs     = 0;
  33.             TimeRequest . tr_time . tv_micro    = 80000;
  34.  
  35.             DrawImageState(&handle -> RPort,gadget -> SelectRender,gadget -> LeftEdge,gadget -> TopEdge,IDS_SELECTED,handle -> DrawInfo);
  36.  
  37.             Forbid();
  38.             SetSignal(0,SIGF_SINGLE);
  39.             SendIO(&TimeRequest);
  40.             WaitIO(&TimeRequest);
  41.             Permit();
  42.  
  43.             DrawImageState(&handle -> RPort,gadget -> GadgetRender,gadget -> LeftEdge,gadget -> TopEdge,IDS_NORMAL,handle -> DrawInfo);
  44.  
  45.             CloseDevice(&TimeRequest);
  46.         }
  47.     }
  48. }
  49.