home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / source / gblanker3.5.src.lha / GSource / Blankers / Moire / prefs.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-08  |  3.6 KB  |  192 lines

  1. /*
  2.  *  Copyright (c) 1994 Michael D. Bayne.
  3.  *  All rights reserved.
  4.  *
  5.  *  Please see the documentation accompanying the distribution for distribution
  6.  *  and disclaimer information.
  7.  */
  8.  
  9. #include <libraries/gadtools.h>
  10.  
  11. #include <clib/exec_protos.h>
  12. #include <clib/intuition_protos.h>
  13. #include <clib/gadtools_protos.h>
  14.  
  15. #include "/Garshnelib/Garshnelib_protos.h"
  16. #include "/Garshnelib/Garshnelib_pragmas.h"
  17.  
  18. #include "Moire.h"
  19. #include "Moiré_rev.h"
  20. #include "/main.h"
  21. #include "//defs.h"
  22.  
  23. struct ModulePrefs
  24. {
  25.     LONG Mode;
  26.     LONG Depth;
  27.     LONG xSpeed;
  28.     LONG ySpeed;
  29.     LONG Trail;
  30.     LONG Lines;
  31.     LONG Cycle;
  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( MoireWnd, &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_TRAILClicked( VOID )
  72. {
  73.     nP.Trail = MoireMsg.Code;
  74.  
  75.     return OK;
  76. }
  77.  
  78. int SL_XSPEEDClicked( VOID )
  79. {
  80.     nP.xSpeed = MoireMsg.Code;
  81.  
  82.     return OK;
  83. }
  84.  
  85. int SL_YSPEEDClicked( VOID )
  86. {
  87.     nP.ySpeed = MoireMsg.Code;
  88.  
  89.     return OK;
  90. }
  91.  
  92. int SL_LINESClicked( VOID )
  93. {
  94.     nP.Lines = MoireMsg.Code;
  95.  
  96.     return OK;
  97. }
  98.  
  99. int CY_CYCLEClicked( VOID )
  100. {
  101.     nP.Cycle = MoireMsg.Code;
  102.  
  103.     return OK;
  104. }
  105.  
  106. #define BL_SetGadgetAttrs( Gad, Tag, Val ) GT_SetGadgetAttrs( MoireGadgets[Gad], MoireWnd, 0L, Tag, Val, TAG_END )
  107.  
  108. int MoireVanillaKey( VOID )
  109. {
  110.     switch( MoireMsg.Code ) {
  111.     case 's':
  112.         return BT_SAVEClicked();
  113.     case 't':
  114.         return BT_TESTClicked();
  115.     case 'd':
  116.         return BT_SCREENClicked();
  117.     case 'c':
  118.         return QUIT;
  119.     case 'r':
  120.         BL_SetGadgetAttrs( GD_SL_TRAIL, GTSL_Level, Inc( nP.Trail, 1, 256 ));
  121.         return OK;
  122.     case 'R':
  123.         BL_SetGadgetAttrs( GD_SL_TRAIL, GTSL_Level, Dec( nP.Trail, 1, 1 ));
  124.         return OK;
  125.     case 'x':
  126.         BL_SetGadgetAttrs( GD_SL_XSPEED, GTSL_Level, Inc( nP.xSpeed, 1, 64 ));
  127.         return OK;
  128.     case 'X':
  129.         BL_SetGadgetAttrs( GD_SL_XSPEED, GTSL_Level, Dec( nP.xSpeed, 1, 1 ));
  130.         return OK;
  131.     case 'y':
  132.         BL_SetGadgetAttrs( GD_SL_YSPEED, GTSL_Level, Inc( nP.ySpeed, 1, 64 ));
  133.         return OK;
  134.     case 'Y':
  135.         BL_SetGadgetAttrs( GD_SL_YSPEED, GTSL_Level, Dec( nP.ySpeed, 1, 1 ));
  136.         return OK;
  137.     case 'l':
  138.         BL_SetGadgetAttrs( GD_SL_LINES, GTSL_Level, Inc( nP.Lines, 1, 32 ));
  139.         return OK;
  140.     case 'L':
  141.         BL_SetGadgetAttrs( GD_SL_LINES, GTSL_Level, Dec( nP.Lines, 1, 2 ));
  142.         return OK;
  143.     default:
  144.         return OK;
  145.     }
  146. }
  147.  
  148. VOID DoPrefs( LONG command, VOID *Prefs )
  149. {
  150.     switch( command )
  151.     {
  152.     case STARTUP:
  153.         OldPrefs = Prefs;
  154.         CopyMem( Prefs, &nP, sizeof( struct ModulePrefs ));
  155.         if( !SetupScreen())
  156.         {
  157.             MoireLeft = ( Scr->Width - ComputeX( MoireWidth ))/2 - Scr->WBorRight;
  158.             MoireTop = ( Scr->Height - ComputeY( MoireHeight ) - Font->ta_YSize )/2 -
  159.                 Scr->WBorBottom;
  160.             if( !OpenMoireWindow())
  161.             {
  162.                 BL_SetGadgetAttrs( GD_SL_TRAIL, GTSL_Level, nP.Trail );
  163.                 BL_SetGadgetAttrs( GD_SL_XSPEED, GTSL_Level, nP.xSpeed );
  164.                 BL_SetGadgetAttrs( GD_SL_YSPEED, GTSL_Level, nP.ySpeed );
  165.                 BL_SetGadgetAttrs( GD_SL_LINES, GTSL_Level, nP.Lines );
  166.                 BL_SetGadgetAttrs( GD_CY_CYCLE, GTCY_Active, nP.Cycle );
  167.             }
  168.             CloseDownScreen();
  169.         }
  170.         break;
  171.     case IDCMP:
  172.         if( HandleMoireIDCMP() != QUIT )
  173.             break;
  174.     case KILL:
  175.         CloseMoireWindow();
  176.         break;
  177.     }
  178. }
  179.  
  180. LONG WndSignal( VOID )
  181. {
  182.     return MoireWnd ? 1L << MoireWnd->UserPort->mp_SigBit : 0L;
  183. }
  184.  
  185. VOID FillDefaults( VOID *Prefs )
  186. {
  187.     struct ModulePrefs mPO = { 0L, 1L, 12L, 12L, 64L, 2L, 3L };
  188.  
  189.     mPO.Mode = getTopScreenMode();
  190.     CopyMem( &mPO, Prefs, sizeof( struct ModulePrefs ));
  191. }
  192.