home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / dev / gui / guicreator / demos / sound.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-04  |  24.8 KB  |  530 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6.  
  7. #include "Sound_Includes.h"
  8. #include "Sound.h"
  9.  
  10. /*************************************************************************/
  11. /*                                                                       */
  12. /*   Variables and Structures                                            */
  13. /*                                                                       */
  14. /*************************************************************************/
  15.  
  16. extern struct IntuitionBase   *IntuitionBase;
  17. extern struct GfxBase         *GfxBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. /*************************************************************************/
  24. /*                                                                       */
  25. /*   Defines                                                             */
  26. /*                                                                       */
  27. /*************************************************************************/
  28.  
  29. #define RASTERX (GfxBase->DefaultFont->tf_XSize)
  30. #define RASTERY (GfxBase->DefaultFont->tf_YSize/2+4)
  31.  
  32. #define XSIZE(x)  ((x)*RASTERX)
  33. #define YSIZE(x)  ((x)*RASTERY)
  34.  
  35. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  36. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  37.  
  38. #define ERROR_NO_WINDOW_OPENED      1001L
  39. #define ERROR_NO_PUBSCREEN_LOCKED   1002L
  40. #define ERROR_NO_GADGETS_CREATED    1003L
  41. #define ERROR_NO_VISUALINFO         1004L
  42. #define ERROR_NO_PICTURE_LOADED     1005L
  43. #define ERROR_NO_GADGETLIST_CREATED 1006L
  44. #define ERROR_NO_WINDOW_MENU        1007L
  45.  
  46. /// struct SoundPrefsWindowData
  47. struct SoundPrefsWindowData
  48.     {
  49.     BOOL    gd_Disabled_Gadget10;
  50.     BOOL    gd_Checked_Gadget10;
  51.     BOOL    gd_Disabled_Gadget11;
  52.     BOOL    gd_Checked_Gadget11;
  53.     BOOL    gd_Disabled_Gadget12;
  54.     UWORD   gd_Active_Gadget12;
  55.     STRPTR *gd_Labels_Gadget12;
  56.     BOOL    gd_Disabled_Gadget14;
  57.     UWORD   gd_Level_Gadget14;
  58.     UWORD   gd_Max_Gadget14;
  59.     UWORD   gd_Min_Gadget14;
  60.     BOOL    gd_Disabled_Gadget15;
  61.     UWORD   gd_Level_Gadget15;
  62.     UWORD   gd_Max_Gadget15;
  63.     UWORD   gd_Min_Gadget15;
  64.     BOOL    gd_Disabled_Gadget1;
  65.     UWORD   gd_Level_Gadget1;
  66.     UWORD   gd_Max_Gadget1;
  67.     UWORD   gd_Min_Gadget1;
  68.     BOOL    gd_Disabled_Gadget4;
  69.     char    gd_String_Gadget4[256];
  70.     BOOL    gd_Disabled_Gadget3;
  71.     BOOL    gd_Disabled_Gadget5;
  72.     BOOL    gd_Disabled_Gadget6;
  73.     BOOL    gd_Disabled_Gadget8;
  74.     BOOL    gd_Disabled_Gadget9;
  75.     };
  76.  
  77. ///
  78.  
  79. /*************************************************************************/
  80. /*                                                                       */
  81. /*   Routines to handle gadgets                                          */
  82. /*                                                                       */
  83. /*************************************************************************/
  84.  
  85. /// HandleGadgetsSoundPrefsWindow()
  86.  
  87. void HandleGadgetsSoundPrefsWindow(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct SoundPrefsWindowData *gadgetdata,APTR userdata)
  88. {
  89.     switch(gadgetid)
  90.         {
  91.         case CBID_Gadget10:
  92.             Gadget10Clicked(win,wingads,gadgetid,messagecode,userdata);
  93.             break;
  94.         case CBID_Gadget11:
  95.             Gadget11Clicked(win,wingads,gadgetid,messagecode,userdata);
  96.             break;
  97.         case CYID_Gadget12:
  98.             Gadget12Clicked(win,wingads,gadgetid,messagecode,userdata);
  99.             break;
  100.         case SLID_Gadget14:
  101.             Gadget14Clicked(win,wingads,gadgetid,messagecode,userdata);
  102.             break;
  103.         case SLID_Gadget15:
  104.             Gadget15Clicked(win,wingads,gadgetid,messagecode,userdata);
  105.             break;
  106.         case SLID_Gadget1:
  107.             Gadget1Clicked(win,wingads,gadgetid,messagecode,userdata);
  108.             break;
  109.         case STID_Gadget4:
  110.             Gadget4Clicked(win,wingads,gadgetid,messagecode,userdata);
  111.             break;
  112.         case BTID_Gadget3:
  113.             Gadget3Clicked(win,wingads,gadgetid,messagecode,userdata);
  114.             break;
  115.         case BTID_Gadget5:
  116.             Gadget5Clicked(win,wingads,gadgetid,messagecode,userdata);
  117.             break;
  118.         case BTID_Gadget6:
  119.             Gadget6Clicked(win,wingads,gadgetid,messagecode,userdata);
  120.             break;
  121.         case BTID_Gadget8:
  122.             Gadget8Clicked(win,wingads,gadgetid,messagecode,userdata);
  123.             break;
  124.         case BTID_Gadget9:
  125.             Gadget9Clicked(win,wingads,gadgetid,messagecode,userdata);
  126.             break;
  127.         };
  128. }
  129. ///
  130.  
  131.  
  132. /*************************************************************************/
  133. /*                                                                       */
  134. /*   Routines to create gadgets                                          */
  135. /*                                                                       */
  136. /*************************************************************************/
  137.  
  138. /// CreateGadgetsSoundPrefsWindow()
  139. struct Gadget *CreateGadgetsSoundPrefsWindow(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct SoundPrefsWindowData *gadgetdata)
  140. {
  141.     struct Gadget *gadget=CreateContext(gadgetlist);
  142.     if (gadget)
  143.         {
  144.         wingads[LAID_Gadget1]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget1],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  145.         wingads[LAID_Gadget2]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget2],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  146.         wingads[LAID_Gadget3]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget3],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  147.         wingads[LAID_Gadget4]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget4],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  148.         wingads[LAID_Gadget6]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget6],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  149.         wingads[LAID_Gadget8]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget8],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  150.         wingads[LAID_Gadget9]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget9],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  151.         wingads[CBID_Gadget10]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget10],GA_Disabled,gadgetdata->gd_Disabled_Gadget10,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget10,TAG_END);
  152.         wingads[CBID_Gadget11]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget11],GA_Disabled,gadgetdata->gd_Disabled_Gadget11,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget11,TAG_END);
  153.         wingads[CYID_Gadget12]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget12],GA_Disabled,gadgetdata->gd_Disabled_Gadget12,GTCY_Labels,gadgetdata->gd_Labels_Gadget12,GTCY_Active,gadgetdata->gd_Active_Gadget12,TAG_END);
  154.         wingads[SLID_Gadget14]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget14],GA_Disabled,gadgetdata->gd_Disabled_Gadget14,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget14,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget14,GTSL_Min,gadgetdata->gd_Min_Gadget14,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  155.         wingads[SLID_Gadget15]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget15],GA_Disabled,gadgetdata->gd_Disabled_Gadget15,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget15,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget15,GTSL_Min,gadgetdata->gd_Min_Gadget15,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  156.         wingads[SLID_Gadget1]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget1],GA_Disabled,gadgetdata->gd_Disabled_Gadget1,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget1,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget1,GTSL_Min,gadgetdata->gd_Min_Gadget1,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  157.         wingads[STID_Gadget4]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[STID_Gadget4],GA_Disabled,gadgetdata->gd_Disabled_Gadget4,GA_TabCycle,TRUE,GTST_MaxChars,256,GTST_String,gadgetdata->gd_String_Gadget4,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
  158.         wingads[BTID_Gadget3]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget3],GA_Disabled,gadgetdata->gd_Disabled_Gadget3,GT_Underscore,'_',TAG_END);
  159.         wingads[BTID_Gadget5]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget5],GA_Disabled,gadgetdata->gd_Disabled_Gadget5,GT_Underscore,'_',TAG_END);
  160.         wingads[BTID_Gadget6]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget6],GA_Disabled,gadgetdata->gd_Disabled_Gadget6,GT_Underscore,'_',TAG_END);
  161.         wingads[BTID_Gadget8]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget8],GA_Disabled,gadgetdata->gd_Disabled_Gadget8,GT_Underscore,'_',TAG_END);
  162.         wingads[BTID_Gadget9]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget9],GA_Disabled,gadgetdata->gd_Disabled_Gadget9,GT_Underscore,'_',TAG_END);
  163.         return gadget;
  164.         }
  165.     else return NULL;
  166. }
  167. ///
  168.  
  169.  
  170. /*************************************************************************/
  171. /*                                                                       */
  172. /*   Routines to handle windows                                          */
  173. /*                                                                       */
  174. /*************************************************************************/
  175.  
  176.  
  177. /// HandleSoundPrefsWindow()
  178. void HandleSoundPrefsWindow(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
  179. {
  180.     APTR visualinfo=GetVisualInfo(customscreen,TAG_DONE);
  181.     if (visualinfo)
  182.         {
  183.         struct Gadget  *gadgetlist = NULL;
  184.         struct Menu    *menustrip  = NULL;
  185.         ULONG height=22,width=42,maxheight=1024,maxwidth=1280;
  186.         ULONG bevelcount  = 1;
  187.  
  188.         struct Gadget *wingads[19];
  189.  
  190.         STRPTR title                  = "Sound Preferences";
  191.         struct Window     *win        = NULL;
  192.  
  193.         struct TextAttr   textattr    = { GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name,GfxBase->DefaultFont->tf_YSize,FS_NORMAL,FPF_DISKFONT };
  194.  
  195.         struct NewGadget  newgad[]    = {
  196.                                                      XPOS(2),YPOS(2),XSIZE(15),YSIZE(2),"_Flash Display:",&textattr,LAID_Gadget1,PLACETEXT_IN,visualinfo,NULL,
  197.                                                      XPOS(25),YPOS(2),XSIZE(12),YSIZE(2),"_Make Sound:",&textattr,LAID_Gadget2,PLACETEXT_IN,visualinfo,NULL,
  198.                                                      XPOS(2),YPOS(4),XSIZE(15),YSIZE(2),"Sound _Type   :",&textattr,LAID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  199.                                                      XPOS(2),YPOS(6),XSIZE(15),YSIZE(2),"Sound _Volume :",&textattr,LAID_Gadget4,PLACETEXT_IN,visualinfo,NULL,
  200.                                                      XPOS(2),YPOS(8),XSIZE(15),YSIZE(2),"Sound _Pitch  :",&textattr,LAID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  201.                                                      XPOS(2),YPOS(10),XSIZE(15),YSIZE(2),"_Beep Length  :",&textattr,LAID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  202.                                                      XPOS(2),YPOS(12),XSIZE(15),YSIZE(2),"Sample _Name  :",&textattr,LAID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  203.                                                      XPOS(17),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr,CBID_Gadget10,PLACETEXT_ABOVE,visualinfo,NULL,
  204.                                                      XPOS(37),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr,CBID_Gadget11,PLACETEXT_ABOVE,visualinfo,NULL,
  205.                                                      XPOS(17),YPOS(4),XSIZE(23),YSIZE(2),NULL,&textattr,CYID_Gadget12,PLACETEXT_ABOVE,visualinfo,NULL,
  206.                                                      XPOS(17),YPOS(6),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget14,PLACETEXT_LEFT,visualinfo,NULL,
  207.                                                      XPOS(17),YPOS(8),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget15,PLACETEXT_LEFT,visualinfo,NULL,
  208.                                                      XPOS(17),YPOS(10),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget1,PLACETEXT_LEFT,visualinfo,NULL,
  209.                                                      XPOS(17),YPOS(12),XSIZE(21),YSIZE(2),NULL,&textattr,STID_Gadget4,PLACETEXT_LEFT,visualinfo,NULL,
  210.                                                      XPOS(38),YPOS(12),XSIZE(2),YSIZE(2),"«",&textattr,BTID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  211.                                                      XPOS(2),YPOS(15),XSIZE(38),YSIZE(2),"Test S_ound",&textattr,BTID_Gadget5,PLACETEXT_IN,visualinfo,NULL,
  212.                                                      XPOS(1),YPOS(19),XSIZE(12),YSIZE(2),"_Save",&textattr,BTID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  213.                                                      XPOS(15),YPOS(19),XSIZE(12),YSIZE(2),"_Use",&textattr,BTID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  214.                                                      XPOS(29),YPOS(19),XSIZE(12),YSIZE(2),"_Cancel",&textattr,BTID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  215.                                                   };
  216.         STRPTR            LA_Gadget12[]  = { "Beep","Sampled Sound",NULL };
  217.  
  218.  
  219.         struct SoundPrefsWindowData gadgetdata = {
  220.                                                      /* belongs to a checkbox gadget */
  221.                                                      FALSE,
  222.                                                      TRUE,
  223.                                                      /* belongs to a checkbox gadget */
  224.                                                      FALSE,
  225.                                                      TRUE,
  226.                                                      /* belongs to a cycle gadget */
  227.                                                      FALSE,
  228.                                                      1,
  229.                                                      (STRPTR *)&LA_Gadget12[0],
  230.                                                      /* belongs to a slider gadget */
  231.                                                      FALSE,
  232.                                                      32,
  233.                                                      64,
  234.                                                      0,
  235.                                                      /* belongs to a slider gadget */
  236.                                                      FALSE,
  237.                                                      1500,
  238.                                                      3000,
  239.                                                      1,
  240.                                                      /* belongs to a slider gadget */
  241.                                                      TRUE,
  242.                                                      50,
  243.                                                      100,
  244.                                                      1,
  245.                                                      /* belongs to a string gadget */
  246.                                                      FALSE,
  247.                                                      "SYS:Prefs/Beep.IFF",
  248.                                                      /* belongs to a button */
  249.                                                      FALSE,
  250.                                                      /* belongs to a button */
  251.                                                      FALSE,
  252.                                                      /* belongs to a button */
  253.                                                      FALSE,
  254.                                                      /* belongs to a button */
  255.                                                      FALSE,
  256.                                                      /* belongs to a button */
  257.                                                      FALSE,
  258.                                                   };
  259.  
  260.  
  261.         struct BevelFrame bevels[]    = {
  262.                                                      XPOS(1),YPOS(1),XSIZE(40),YSIZE(17),"Sound Preferences",2,
  263.                                                   };
  264.  
  265.  
  266.         struct NewMenu    menu[]      = { NM_TITLE, "Program"    , 0 ,0,0,0,
  267.                                                      NM_ITEM , "About"      ,"A",0,0,0,
  268.                                                      NM_END  , NULL         , 0 ,0,0,0 };
  269.  
  270.         height= YSIZE(height);
  271.         width = XSIZE(width) ;
  272.         if (left == -1) left  = (customscreen->Width-width)/2;
  273.         if (top  == -1) top   = (customscreen->Height-height)/2;
  274.  
  275.         if (CreateGadgetsSoundPrefsWindow(&gadgetlist,newgad,wingads,&gadgetdata) != NULL)
  276.             {
  277.             if (height>customscreen->Height || width>customscreen->Width) GUICreatorErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
  278.             win=OpenWindowTags(NULL,WA_Activate,         TRUE,
  279.                                             WA_CloseGadget,      TRUE,
  280.                                             WA_DepthGadget,      TRUE,
  281.                                             WA_SizeGadget,       FALSE,
  282.                                             WA_DragBar,          TRUE,
  283.                                             WA_Gadgets,          gadgetlist,
  284.                                             WA_InnerHeight,      height,
  285.                                             WA_InnerWidth,       width,
  286.                                             WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_MENUPICK|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|BUTTONIDCMP|STRINGIDCMP|CHECKBOXIDCMP|CYCLEIDCMP|SLIDERIDCMP,
  287.                                             WA_Left,             left,
  288.                                             WA_Top,              top,
  289.                                             WA_MaxHeight,        maxheight,
  290.                                             WA_MinHeight,        height,
  291.                                             WA_MaxWidth,         maxwidth,
  292.                                             WA_MinWidth,         width,
  293.                                             WA_SizeBRight,       FALSE,
  294.                                             WA_SizeBBottom,      FALSE,
  295.                                             WA_SmartRefresh,     TRUE,
  296.                                             WA_CustomScreen,     customscreen,
  297.                                             WA_Title,            title,
  298.                                             WA_NewLookMenus,     TRUE,
  299.                                             TAG_END);
  300.             if (win)
  301.                 {
  302.                 menustrip=CreateMenus(menu,GTMN_NewLookMenus,TRUE,TAG_END);
  303.                 if (menustrip)
  304.                     {
  305.                     if (LayoutMenus(menustrip,visualinfo,GTMN_NewLookMenus,TRUE,TAG_END))
  306.                         {
  307.                         if (SetMenuStrip(win,menustrip))
  308.                             {
  309.                             struct IntuiMessage  *imessage   = NULL;
  310.                             struct Gadget        *idcmpgad   = NULL;
  311.                             ULONG  idcmpclass                = 0;
  312.                             UWORD  messagecode               = 0;
  313.                             BOOL   running                   = TRUE;
  314.                             ULONG  signal                    = 0;
  315.                             ULONG  longpointer1              = 0;
  316.                             ULONG  longpointer2              = 0;
  317.  
  318.                             SetFont(win->RPort,GfxBase->DefaultFont);
  319.                             CreateBevelFrames(win,visualinfo,bevelcount,bevels);
  320.  
  321.                             GT_RefreshWindow(win,NULL);
  322.  
  323.                             do
  324.                                 {
  325.                                 if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
  326.                                 if (signal & SIGBREAKF_CTRL_C) running=FALSE;
  327.                                 while (running && (imessage=GT_GetIMsg(win->UserPort)))
  328.                                     {
  329.                                     idcmpgad=(struct Gadget *)imessage->IAddress;
  330.                                     idcmpclass=imessage->Class;
  331.                                     messagecode =imessage->Code;
  332.  
  333.                                     GT_ReplyIMsg(imessage);
  334.  
  335.                                     switch(idcmpclass)
  336.                                         {
  337.                                         case IDCMP_REFRESHWINDOW:
  338.                                             GT_BeginRefresh(win);
  339.                                             GT_EndRefresh(win,TRUE);
  340.                                             break;
  341.                                         case IDCMP_MENUPICK:
  342.                                             switch(MENUNUM(messagecode))
  343.                                                 {
  344.                                                 case 0:
  345.                                                     switch (ITEMNUM(messagecode))
  346.                                                         {
  347.                                                         case 0:
  348.                                                             About(win);
  349.                                                             break;
  350.                                                         }
  351.                                                     /* end-switch */
  352.                                                     break;
  353.                                                 }
  354.                                             /* end-switch */
  355.                                             break;
  356.                                         case IDCMP_VANILLAKEY:
  357.                                             switch(messagecode)
  358.                                                 {
  359.                                                 case 'f':
  360.                                                     GT_GetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GA_Disabled,&longpointer2,GTCB_Checked,&longpointer1,TAG_END);
  361.                                                     if (longpointer2 == 0)
  362.                                                         {
  363.                                                         GT_SetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GTCB_Checked,(longpointer1 == 0)?TRUE:FALSE,TAG_END);
  364.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget10,(longpointer1 == 0)?1:0,&gadgetdata,userdata);
  365.                                                         }
  366.                                                     break;
  367.                                                 case 'm':
  368.                                                     GT_GetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GA_Disabled,&longpointer2,GTCB_Checked,&longpointer1,TAG_END);
  369.                                                     if (longpointer2 == 0)
  370.                                                         {
  371.                                                         GT_SetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GTCB_Checked,(longpointer1 == 0)?TRUE:FALSE,TAG_END);
  372.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget11,(longpointer1 == 0)?1:0,&gadgetdata,userdata);
  373.                                                         }
  374.                                                     break;
  375.                                                 case 't':
  376.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  377.                                                     if (longpointer1 == 0)
  378.                                                         {
  379.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  380.                                                         if (++longpointer1 == 2) longpointer1=0;
  381.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  382.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  383.                                                         }
  384.                                                     break;
  385.                                                 case 'T':
  386.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  387.                                                     if (longpointer1 == 0)
  388.                                                         {
  389.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  390.                                                         if (longpointer1 == 0) longpointer1=2;
  391.                                                     longpointer1--;
  392.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  393.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  394.                                                         }
  395.                                                     break;
  396.                                                 case 'v':
  397.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  398.                                                     if (longpointer1 == 0)
  399.                                                         {
  400.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  401.                                                         if (longpointer2<longpointer1)
  402.                                                             {
  403.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  404.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  405.                                                             }
  406.                                                         }
  407.                                                     break;
  408.                                                 case 'V':
  409.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  410.                                                     if (longpointer1 == 0)
  411.                                                         {
  412.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  413.                                                         if (longpointer2>longpointer1)
  414.                                                             {
  415.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  416.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  417.                                                             }
  418.                                                         }
  419.                                                     break;
  420.                                                 case 'p':
  421.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  422.                                                     if (longpointer1 == 0)
  423.                                                         {
  424.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  425.                                                         if (longpointer2<longpointer1)
  426.                                                             {
  427.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  428.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  429.                                                             }
  430.                                                         }
  431.                                                     break;
  432.                                                 case 'P':
  433.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  434.                                                     if (longpointer1 == 0)
  435.                                                         {
  436.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  437.                                                         if (longpointer2>longpointer1)
  438.                                                             {
  439.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  440.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  441.                                                             }
  442.                                                         }
  443.                                                     break;
  444.                                                 case 'b':
  445.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  446.                                                     if (longpointer1 == 0)
  447.                                                         {
  448.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  449.                                                         if (longpointer2<longpointer1)
  450.                                                             {
  451.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  452.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  453.                                                             }
  454.                                                         }
  455.                                                     break;
  456.                                                 case 'B':
  457.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  458.                                                     if (longpointer1 == 0)
  459.                                                         {
  460.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  461.                                                         if (longpointer2>longpointer1)
  462.                                                             {
  463.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  464.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  465.                                                             }
  466.                                                         }
  467.                                                     break;
  468.                                                 case 'n':
  469.                                                     GT_GetGadgetAttrs(wingads[STID_Gadget4],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  470.                                                     if (longpointer1 == 0) ActivateGadget(wingads[STID_Gadget4],win,NULL);
  471.                                                     break;
  472.                                                 case 'N':
  473.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget3],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  474.                                                     if (longpointer1 == 0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget3,messagecode,&gadgetdata,userdata);
  475.                                                     break;
  476.                                                 case 'o':
  477.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget5],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  478.                                                     if (longpointer1 == 0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget5,messagecode,&gadgetdata,userdata);
  479.                                                     break;
  480.                                                 case 's':
  481.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget6],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  482.                                                     if (longpointer1 == 0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget6,messagecode,&gadgetdata,userdata);
  483.                                                     break;
  484.                                                 case 'u':
  485.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget8],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  486.                                                     if (longpointer1 == 0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget8,messagecode,&gadgetdata,userdata);
  487.                                                     break;
  488.                                                 case 'c':
  489.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget9],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  490.                                                     if (longpointer1 == 0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget9,messagecode,&gadgetdata,userdata);
  491.                                                     break;
  492.                                                 case 27:
  493.                                                     running=FALSE;
  494.                                                     break;
  495.                                                 }
  496.                                             break;
  497.                                         case IDCMP_CLOSEWINDOW:
  498.                                             running=FALSE;
  499.                                             break;
  500.                                         case IDCMP_GADGETUP:
  501.                                         case MXIDCMP:
  502.                                             HandleGadgetsSoundPrefsWindow(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,userdata);
  503.                                             break;
  504.                                         }
  505.                                     /* end-switch */
  506.                                     }
  507.                                 /* end-while */
  508.                                 }
  509.                             while (running);
  510.                             ClearMenuStrip(win);
  511.                             }
  512.                         else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  513.                         }
  514.                     else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  515.                     FreeMenus(menustrip);
  516.                     }
  517.                 else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  518.                 if (win) CloseWindow(win);
  519.                 }
  520.             else GUICreatorErrorReport(win,ERROR_NO_WINDOW_OPENED);
  521.             if (gadgetlist) FreeGadgets(gadgetlist);
  522.             }
  523.         else GUICreatorErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
  524.         if (visualinfo) FreeVisualInfo(visualinfo);
  525.         }
  526.     else GUICreatorErrorReport(NULL,ERROR_NO_VISUALINFO);
  527. }
  528. ///
  529.  
  530.