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

  1. /*
  2.  *    Copyright (c) 1993 Michael D. Bayne.
  3.  *    All rights reserved.
  4.  *
  5.  *    Please see the documentation accompanying the distribution for distribution and disclaimer information.
  6.  */
  7.  
  8. #include <libraries/gadtools.h>
  9.  
  10. #include <clib/exec_protos.h>
  11. #include <clib/intuition_protos.h>
  12. #include <clib/gadtools_protos.h>
  13.  
  14. #include "/Garshnelib/Garshnelib_protos.h"
  15. #include "/Garshnelib/Garshnelib_pragmas.h"
  16.  
  17. #include "Fireworks.h"
  18. #include "Fireworks_rev.h"
  19. #include "/main.h"
  20. #include "//defs.h"
  21.  
  22. #define    MAX_FIRE 200
  23. #define    MAX_ECLAT 25
  24. #define    MAX_NB    51
  25.  
  26. struct ModulePrefs {
  27.     LONG Mode;
  28.     LONG Depth;
  29.     LONG Number;
  30.     LONG Power;
  31.     LONG Radius;
  32. };
  33.  
  34. struct ModulePrefs nP;
  35. VOID *OldPrefs = 0L;
  36. STATIC const UBYTE VersTag[] = VERSTAG;
  37.  
  38. int BT_SAVEClicked( VOID )
  39. {
  40.     if( OldPrefs )
  41.     {
  42.         CopyMem( &nP, OldPrefs, sizeof( struct ModulePrefs ));
  43.         SavePrefs( OldPrefs );
  44.         OldPrefs = 0L;
  45.     }
  46.     
  47.     return QUIT;
  48. }
  49.  
  50. int BT_TESTClicked( VOID )
  51. {
  52.     MessageServer( BM_SENDBLANK );
  53.  
  54.     return OK;
  55. }
  56.  
  57. int BT_SCREENClicked( VOID )
  58. {
  59.     ScreenModeRequest( FireworksWnd, &nP.Mode, &nP.Depth );
  60.     
  61.     return OK;
  62. }
  63.  
  64. int BT_CANCELClicked( VOID )
  65. {
  66.     OldPrefs = 0L;
  67.     
  68.     return QUIT;
  69. }
  70.  
  71. int SL_NUMBERClicked( VOID )
  72. {
  73.     nP.Number = FireworksMsg.Code;
  74.  
  75.     return OK;
  76. }
  77.  
  78. int SL_RADIUSClicked( VOID )
  79. {
  80.     nP.Radius = FireworksMsg.Code;
  81.  
  82.     return OK;
  83. }
  84.  
  85. int SL_POWERClicked( VOID )
  86. {
  87.     nP.Power = FireworksMsg.Code;
  88.  
  89.     return OK;
  90. }
  91.  
  92. #define BL_SetGadgetAttrs( Gad, Tag, Val ) GT_SetGadgetAttrs( FireworksGadgets[Gad], FireworksWnd, 0L, Tag, Val, TAG_END )
  93.  
  94. int FireworksVanillaKey( VOID )
  95. {
  96.     switch( FireworksMsg.Code ) {
  97.     case 's':
  98.         return BT_SAVEClicked();
  99.     case 't':
  100.         return BT_TESTClicked();
  101.     case 'd':
  102.         return BT_SCREENClicked();
  103.     case 'c':
  104.         return QUIT;
  105.     case 'n':
  106.         BL_SetGadgetAttrs( GD_SL_NUMBER, GTSL_Level, Inc( nP.Number, 1, 25 ));
  107.         return OK;
  108.     case 'N':
  109.         BL_SetGadgetAttrs( GD_SL_NUMBER, GTSL_Level, Dec( nP.Number, 1, 1 ));
  110.         return OK;
  111.     case 'r':
  112.         BL_SetGadgetAttrs( GD_SL_RADIUS, GTSL_Level, Inc( nP.Radius, 1, 10 ));
  113.         return OK;
  114.     case 'R':
  115.         BL_SetGadgetAttrs( GD_SL_RADIUS, GTSL_Level, Dec( nP.Radius, 1, 4 ));
  116.         return OK;
  117.     case 'p':
  118.         BL_SetGadgetAttrs( GD_SL_POWER, GTSL_Level, Inc( nP.Power, 1, 10 ));
  119.         return OK;
  120.     case 'P':
  121.         BL_SetGadgetAttrs( GD_SL_POWER, GTSL_Level, Dec( nP.Power, 1, 1 ));
  122.         return OK;
  123.     default:
  124.         return OK;
  125.     }
  126. }
  127.  
  128. VOID DoPrefs( LONG command, VOID *Prefs )
  129. {
  130.     switch( command )
  131.     {
  132.     case STARTUP:
  133.         OldPrefs = Prefs;
  134.         CopyMem( Prefs, &nP, sizeof( struct ModulePrefs ));
  135.         if( !SetupScreen())
  136.         {
  137.             FireworksLeft = ( Scr->Width - ComputeX( FireworksWidth ))/2 - Scr->WBorRight;
  138.             FireworksTop = ( Scr->Height - ComputeY( FireworksHeight ) - Font->ta_YSize )/2 - Scr->WBorBottom;
  139.             if( !OpenFireworksWindow())
  140.             {
  141.                 BL_SetGadgetAttrs( GD_SL_NUMBER, GTSL_Level, nP.Number );
  142.                 BL_SetGadgetAttrs( GD_SL_RADIUS, GTSL_Level, nP.Radius );
  143.                 BL_SetGadgetAttrs( GD_SL_POWER, GTSL_Level, nP.Power );
  144.             }
  145.             CloseDownScreen();
  146.         }
  147.         break;
  148.     case IDCMP:
  149.         if( HandleFireworksIDCMP() != QUIT )
  150.             break;
  151.     case KILL:
  152.         CloseFireworksWindow();
  153.         break;
  154.     }
  155. }
  156.  
  157. LONG WndSignal( VOID )
  158. {
  159.     return FireworksWnd ? 1L << FireworksWnd->UserPort->mp_SigBit : 0L;
  160. }
  161.  
  162. VOID FillDefaults( VOID *Prefs )
  163. {
  164.     struct ModulePrefs mPO = { 0L, 2L, 20L, 5L, 5L };
  165.  
  166.     mPO.Mode = getTopScreenMode();
  167.     CopyMem( &mPO, Prefs, sizeof( struct ModulePrefs ));
  168. }
  169.