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

  1. #include <libraries/gadtools.h>
  2.  
  3. #include <clib/exec_protos.h>
  4. #include <clib/intuition_protos.h>
  5. #include <clib/gadtools_protos.h>
  6.  
  7. #include "/Garshnelib/Garshnelib_protos.h"
  8. #include "/Garshnelib/Garshnelib_pragmas.h"
  9.  
  10. #include "Interference.h"
  11. #include "Interference_rev.h"
  12. #include "/main.h"
  13. #include "//defs.h"
  14.  
  15. struct ModulePrefs
  16. {
  17.     LONG Mode;
  18.     LONG Depth;
  19.     LONG ExtendPal;
  20. };
  21.  
  22. struct ModulePrefs nP;
  23. VOID *OldPrefs = 0L;
  24. STATIC const UBYTE VersTag[] = VERSTAG;
  25.  
  26. int BT_SAVEClicked( VOID )
  27. {
  28.     if( OldPrefs )
  29.     {
  30.         CopyMem( &nP, OldPrefs, sizeof( struct ModulePrefs ));
  31.         SavePrefs( OldPrefs );
  32.         OldPrefs = 0L;
  33.     }
  34.     
  35.     return QUIT;
  36. }
  37.  
  38. int BT_TESTClicked( VOID )
  39. {
  40.     MessageServer( BM_SENDBLANK );
  41.  
  42.     return OK;
  43. }
  44.  
  45. int BT_SCREENClicked( VOID )
  46. {
  47.     ScreenModeRequest( InterferenceWnd, &nP.Mode, &nP.Depth );
  48.  
  49.     return OK;
  50. }
  51.  
  52. int BT_CANCELClicked( VOID )
  53. {
  54.     OldPrefs = 0L;
  55.     
  56.     return QUIT;
  57. }
  58.  
  59. int SL_EXTPALClicked( VOID )
  60. {
  61.     nP.ExtendPal = InterferenceMsg.Code;
  62.  
  63.     return OK;
  64. }
  65.  
  66. #define BL_SetGadgetAttrs( Gad, Tag, Val ) GT_SetGadgetAttrs( InterferenceGadgets[Gad], InterferenceWnd, 0L, Tag, Val, TAG_END )
  67.  
  68. int InterferenceVanillaKey( VOID )
  69. {
  70.     switch( InterferenceMsg.Code ) {
  71.     case 's':
  72.         return BT_SAVEClicked();
  73.     case 't':
  74.         return BT_TESTClicked();
  75.     case 'd':
  76.         return BT_SCREENClicked();
  77.     case 'c':
  78.         return QUIT;
  79.     case 'p':
  80.         BL_SetGadgetAttrs( GD_SL_EXTPAL, GTSL_Level, Inc( nP.ExtendPal, 1, 4 ));
  81.         return OK;
  82.     case 'P':
  83.         BL_SetGadgetAttrs( GD_SL_EXTPAL, GTSL_Level, Dec( nP.ExtendPal, 1, 0 ));
  84.         return OK;
  85.     default:
  86.         return OK;
  87.     }
  88. }
  89.  
  90. VOID DoPrefs( LONG command, VOID *Prefs )
  91. {
  92.     switch( command )
  93.     {
  94.     case STARTUP:
  95.         OldPrefs = Prefs;
  96.         CopyMem( Prefs, &nP, sizeof( struct ModulePrefs ));
  97.         if( !SetupScreen())
  98.         {
  99.             InterferenceLeft = ( Scr->Width - ComputeX( InterferenceWidth ))/2 - Scr->WBorRight;
  100.             InterferenceTop = ( Scr->Height - ComputeY( InterferenceHeight ) - Font->ta_YSize )/2 -
  101.                 Scr->WBorBottom;
  102.             if( !OpenInterferenceWindow())
  103.                 BL_SetGadgetAttrs( GD_SL_EXTPAL, GTSL_Level, nP.ExtendPal );
  104.             CloseDownScreen();
  105.         }
  106.         break;
  107.     case IDCMP:
  108.         if( HandleInterferenceIDCMP() != QUIT )
  109.             break;
  110.     case KILL:
  111.         CloseInterferenceWindow();
  112.         break;
  113.     }
  114. }
  115.  
  116. LONG WndSignal( VOID )
  117. {
  118.     return InterferenceWnd ? 1L << InterferenceWnd->UserPort->mp_SigBit : 0L;
  119. }
  120.  
  121. VOID FillDefaults( VOID *Prefs )
  122. {
  123.     struct ModulePrefs mPO = { 0L, 4L, 2L };
  124.  
  125.     mPO.Mode = getTopScreenMode();
  126.     CopyMem( &mPO, Prefs, sizeof( struct ModulePrefs ));
  127. }
  128.