home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / util / blank / gblanker / source / blankers / fade / prefs.c < prev    next >
C/C++ Source or Header  |  1994-09-06  |  3KB  |  147 lines

  1. #include <exec/types.h>
  2. #include <exec/memory.h>
  3.  
  4. #include <intuition/intuition.h>
  5. #include <intuition/screens.h>
  6.  
  7. #include <libraries/gadtools.h>
  8.  
  9. #include <clib/exec_protos.h>
  10. #include <clib/intuition_protos.h>
  11. #include <clib/gadtools_protos.h>
  12.  
  13. #include "Fade.h"
  14. #include "Fade_rev.h"
  15. #include "/main.h"
  16. #include "//defs.h"
  17.  
  18. struct fPrefObject
  19. {
  20.     LONG Delay;
  21.     LONG Percent;
  22.     LONG TopScr;
  23. };
  24.  
  25. struct fPrefObject nP;
  26. VOID *OldPrefs = 0L;
  27. STATIC const UBYTE VersTag[] = VERSTAG;
  28.  
  29. int BT_SAVEClicked( VOID )
  30. {
  31.     if( OldPrefs )
  32.     {
  33.         CopyMem( &nP, OldPrefs, sizeof( struct fPrefObject ));
  34.         SavePrefs( OldPrefs );
  35.         OldPrefs = 0L;
  36.     }
  37.     
  38.     return QUIT;
  39. }
  40.  
  41. int BT_TESTClicked( VOID )
  42. {
  43.     MessageServer( BM_SENDBLANK );
  44.  
  45.     return OK;
  46. }
  47.  
  48. int BT_CANCELClicked( VOID )
  49. {
  50.     OldPrefs = 0L;
  51.     
  52.     return QUIT;
  53. }
  54.  
  55. int SL_DELAYClicked( VOID )
  56. {
  57.     nP.Delay = FadeMsg.Code;
  58.     
  59.     return OK;
  60. }
  61.  
  62. int SL_PERCENTClicked( VOID )
  63. {
  64.     nP.Percent = FadeMsg.Code;
  65.     
  66.     return OK;
  67. }
  68.  
  69. int CY_TOPSCRClicked( VOID )
  70. {
  71.     nP.TopScr = FadeMsg.Code;
  72.  
  73.     return OK;
  74. }
  75.  
  76. #define BL_SetGadgetAttrs( Gad, Tag, Val ) GT_SetGadgetAttrs( FadeGadgets[Gad], FadeWnd, 0L, Tag, Val, TAG_END )
  77.  
  78. int FadeVanillaKey( VOID )
  79. {
  80.     switch( FadeMsg.Code ) {
  81.     case 's':
  82.         return BT_SAVEClicked();
  83.     case 't':
  84.         return BT_TESTClicked();
  85.     case 'c':
  86.         return QUIT;
  87.     case 'd':
  88.         BL_SetGadgetAttrs( GD_SL_DELAY, GTSL_Level, Inc( nP.Delay, 1, 59 ));
  89.         return OK;
  90.     case 'D':
  91.         BL_SetGadgetAttrs( GD_SL_DELAY, GTSL_Level, Dec( nP.Delay, 1, 0 ));
  92.         return OK;
  93.     case 'p':
  94.         BL_SetGadgetAttrs( GD_SL_PERCENT, GTSL_Level,
  95.                           Inc( nP.Percent, 1, 100 ));
  96.         return OK;
  97.     case 'P':
  98.         BL_SetGadgetAttrs( GD_SL_PERCENT, GTSL_Level,
  99.                           Dec( nP.Percent, 1, 10 ));
  100.         return OK;
  101.     default:
  102.         return OK;
  103.     }
  104. }
  105.  
  106. VOID DoPrefs( LONG command, VOID *Prefs )
  107. {
  108.     switch( command )
  109.     {
  110.     case STARTUP:
  111.         OldPrefs = Prefs;
  112.         CopyMem( Prefs, &nP, sizeof( struct fPrefObject ));
  113.         if( !SetupScreen())
  114.         {
  115.             FadeLeft = ( Scr->Width - ComputeX( FadeWidth ))/2;
  116.             FadeTop = ( Scr->Height - ComputeY( FadeHeight ) -
  117.                        Font->ta_YSize )/2;
  118.             if( !OpenFadeWindow())
  119.             {
  120.                 BL_SetGadgetAttrs( GD_SL_DELAY, GTSL_Level, nP.Delay );
  121.                 BL_SetGadgetAttrs( GD_SL_PERCENT, GTSL_Level, nP.Percent );
  122.                 BL_SetGadgetAttrs( GD_CY_TOPSCR, GTCY_Active, nP.TopScr );
  123.             }
  124.             CloseDownScreen();
  125.         }
  126.         break;
  127.     case IDCMP:
  128.         if( HandleFadeIDCMP() != QUIT )
  129.             break;
  130.     case KILL:
  131.         CloseFadeWindow();
  132.         break;
  133.     }
  134. }
  135.  
  136. LONG WndSignal( VOID )
  137. {
  138.     return FadeWnd ? 1L << FadeWnd->UserPort->mp_SigBit : 0L;
  139. }
  140.  
  141. VOID FillDefaults( VOID *Prefs )
  142. {
  143.     struct fPrefObject fPO = { 4L, 75L, 0L };
  144.  
  145.     CopyMem( &fPO, Prefs, sizeof( struct fPrefObject ));
  146. }
  147.