home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d534 / term.lha / Term / Source.LZH / PathPanel.c < prev    next >
C/C++ Source or Header  |  1991-07-06  |  17KB  |  514 lines

  1. /* $Revision Header * Header built automatically - do not edit! *************
  2.  *
  3.  *    (C) Copyright 1990 by Olaf 'Olsen' Barthel & MXM
  4.  *
  5.  *    Name .....: PathPanel.c
  6.  *    Created ..: Sunday 24-Mar-91 10:17
  7.  *    Revision .: 0
  8.  *
  9.  *    Date            Author          Comment
  10.  *    =========       ========        ====================
  11.  *    24-Mar-91       Olsen           Created this file!
  12.  *
  13.  * $Revision Header ********************************************************/
  14.  
  15. #include "TermGlobal.h"
  16.  
  17. enum    {    GAD_CONFIGSTORE,GAD_SELECT1,GAD_TUPLOAD,GAD_SELECT2,GAD_TDOWNLOAD,
  18.         GAD_SELECT3,GAD_AUPLOAD,GAD_SELECT4,GAD_ADOWNLOAD,GAD_SELECT5,
  19.         GAD_BUPLOAD,GAD_SELECT6,GAD_BDOWNLOAD,GAD_SELECT7,GAD_CAPTURE,
  20.         GAD_SELECT8,GAD_LOG,GAD_SELECT9,GAD_EDITOR,GAD_SELECT10,GAD_BEEP,
  21.         GAD_SELECT11,GAD_USE,GAD_CANCEL };
  22.  
  23. #define WIDTH    594
  24. #define HEIGHT    171
  25.  
  26. enum    {    MEN_USE,MEN_CANCEL,MEN_QUITPANEL };
  27.  
  28. STATIC struct NewMenu PathMenu[] =
  29. {
  30.     { NM_TITLE, "Project",             0 , 0, 0, (APTR)0},
  31.     {  NM_ITEM, "Use",            "U", 0, 0, (APTR)MEN_USE},
  32.     {  NM_ITEM, "Cancel",            "C", 0, 0, (APTR)MEN_CANCEL},
  33.     {  NM_ITEM, NM_BARLABEL,         0 , 0, 0, (APTR)0},
  34.     {  NM_ITEM, "Quit",            "Q", 0, 0, (APTR)MEN_QUITPANEL},
  35.     { NM_END, 0,                 0 , 0, 0, (APTR)0}
  36. };
  37.  
  38. STATIC UBYTE *SelectText[] =
  39. {
  40.     "Select Config Storage Directory...",
  41.     "Select Default Text Upload Path...",
  42.     "Select Default Text Download Path...",
  43.     "Select Default ASCII Upload Path...",
  44.     "Select Default ASCII Download Path...",
  45.     "Select Default Binary Upload Path...",
  46.     "Select Default Binary Download Path...",
  47.     "Select Default Capture Path...",
  48.     "Select Default Log File...",
  49.     "Select Default Text Editor...",
  50.     "Select Terminal `Beep' Sound..."
  51. };
  52.  
  53. STATIC struct Gadget *
  54. CreateAllGadgets(struct Configuration *Config,struct Gadget *GadgetArray[],struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
  55. {
  56.     struct Gadget        *Gadget;
  57.     struct NewGadget     NewGadget;
  58.     UWORD             Counter = 0;
  59.  
  60.     if(Gadget = CreateContext(GadgetList))
  61.     {
  62.         NewGadget . ng_Width        = 264;
  63.         NewGadget . ng_Height        = 12;
  64.         NewGadget . ng_GadgetText    = "Configuration Storage Directory";
  65.         NewGadget . ng_TextAttr        = &DefaultFont;
  66.         NewGadget . ng_VisualInfo    = VisualInfo;
  67.         NewGadget . ng_GadgetID        = Counter;
  68.         NewGadget . ng_Flags        = NG_HIGHLABEL;
  69.         NewGadget . ng_LeftEdge        = 266;
  70.         NewGadget . ng_TopEdge        = 1 + TopEdge;
  71.  
  72.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  73.             GTST_MaxChars,    256,
  74.             GTST_String,    Config -> DefaultStorage,
  75.         TAG_DONE);
  76.  
  77.         NewGadget . ng_GadgetText    = "Select";
  78.         NewGadget . ng_Width        = 52;
  79.         NewGadget . ng_GadgetID        = Counter;
  80.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  81.  
  82.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  83.             TAG_DONE);
  84.  
  85.         NewGadget . ng_GadgetText    = "Default Text Upload Path";
  86.         NewGadget . ng_Width        = 264;
  87.         NewGadget . ng_GadgetID        = Counter;
  88.         NewGadget . ng_LeftEdge        = 266;
  89.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 2;
  90.  
  91.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  92.             GTST_MaxChars,    256,
  93.             GTST_String,    Config -> TextUploadPath,
  94.         TAG_DONE);
  95.  
  96.         NewGadget . ng_GadgetText    = "Select";
  97.         NewGadget . ng_Width        = 52;
  98.         NewGadget . ng_GadgetID        = Counter;
  99.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  100.  
  101.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  102.             TAG_DONE);
  103.  
  104.         NewGadget . ng_GadgetText    = "Default Text Download Path";
  105.         NewGadget . ng_Width        = 264;
  106.         NewGadget . ng_GadgetID        = Counter;
  107.         NewGadget . ng_LeftEdge        = 266;
  108.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  109.  
  110.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  111.             GTST_MaxChars,    256,
  112.             GTST_String,    Config -> TextDownloadPath,
  113.         TAG_DONE);
  114.  
  115.         NewGadget . ng_GadgetText    = "Select";
  116.         NewGadget . ng_Width        = 52;
  117.         NewGadget . ng_GadgetID        = Counter;
  118.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  119.  
  120.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  121.             TAG_DONE);
  122.  
  123.         NewGadget . ng_GadgetText    = "Default ASCII Upload Path";
  124.         NewGadget . ng_Width        = 264;
  125.         NewGadget . ng_GadgetID        = Counter;
  126.         NewGadget . ng_LeftEdge        = 266;
  127.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 2;
  128.  
  129.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  130.             GTST_MaxChars,    256,
  131.             GTST_String,    Config -> ASCIIUploadPath,
  132.         TAG_DONE);
  133.  
  134.         NewGadget . ng_GadgetText    = "Select";
  135.         NewGadget . ng_Width        = 52;
  136.         NewGadget . ng_GadgetID        = Counter;
  137.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  138.  
  139.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  140.             TAG_DONE);
  141.  
  142.         NewGadget . ng_GadgetText    = "Default ASCII Download Path";
  143.         NewGadget . ng_Width        = 264;
  144.         NewGadget . ng_GadgetID        = Counter;
  145.         NewGadget . ng_LeftEdge        = 266;
  146.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  147.  
  148.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  149.             GTST_MaxChars,    256,
  150.             GTST_String,    Config -> ASCIIDownloadPath,
  151.         TAG_DONE);
  152.  
  153.         NewGadget . ng_GadgetText    = "Select";
  154.         NewGadget . ng_Width        = 52;
  155.         NewGadget . ng_GadgetID        = Counter;
  156.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  157.  
  158.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  159.             TAG_DONE);
  160.  
  161.         NewGadget . ng_GadgetText    = "Default Binary Upload Path";
  162.         NewGadget . ng_Width        = 264;
  163.         NewGadget . ng_GadgetID        = Counter;
  164.         NewGadget . ng_LeftEdge        = 266;
  165.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 2;
  166.  
  167.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  168.             GTST_MaxChars,    256,
  169.             GTST_String,    Config -> BinaryUploadPath,
  170.         TAG_DONE);
  171.  
  172.         NewGadget . ng_GadgetText    = "Select";
  173.         NewGadget . ng_Width        = 52;
  174.         NewGadget . ng_GadgetID        = Counter;
  175.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  176.  
  177.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  178.             TAG_DONE);
  179.  
  180.         NewGadget . ng_GadgetText    = "Default Binary Download Path";
  181.         NewGadget . ng_Width        = 264;
  182.         NewGadget . ng_GadgetID        = Counter;
  183.         NewGadget . ng_LeftEdge        = 266;
  184.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  185.  
  186.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  187.             GTST_MaxChars,    256,
  188.             GTST_String,    Config -> BinaryDownloadPath,
  189.         TAG_DONE);
  190.  
  191.         NewGadget . ng_GadgetText    = "Select";
  192.         NewGadget . ng_Width        = 52;
  193.         NewGadget . ng_GadgetID        = Counter;
  194.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  195.  
  196.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  197.             TAG_DONE);
  198.  
  199.         NewGadget . ng_GadgetText    = "Default Capture Path";
  200.         NewGadget . ng_Width        = 264;
  201.         NewGadget . ng_GadgetID        = Counter;
  202.         NewGadget . ng_LeftEdge        = 266;
  203.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 2;
  204.  
  205.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  206.             GTST_MaxChars,    256,
  207.             GTST_String,    Config -> CapturePath,
  208.         TAG_DONE);
  209.  
  210.         NewGadget . ng_GadgetText    = "Select";
  211.         NewGadget . ng_Width        = 52;
  212.         NewGadget . ng_GadgetID        = Counter;
  213.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  214.  
  215.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  216.             TAG_DONE);
  217.  
  218.         NewGadget . ng_GadgetText    = "Default Log File";
  219.         NewGadget . ng_Width        = 264;
  220.         NewGadget . ng_GadgetID        = Counter;
  221.         NewGadget . ng_LeftEdge        = 266;
  222.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  223.  
  224.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  225.             GTST_MaxChars,    256,
  226.             GTST_String,    Config -> LogFile,
  227.         TAG_DONE);
  228.  
  229.         NewGadget . ng_GadgetText    = "Select";
  230.         NewGadget . ng_Width        = 52;
  231.         NewGadget . ng_GadgetID        = Counter;
  232.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  233.  
  234.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  235.             TAG_DONE);
  236.  
  237.         NewGadget . ng_GadgetText    = "Default Text Editor";
  238.         NewGadget . ng_Width        = 264;
  239.         NewGadget . ng_GadgetID        = Counter;
  240.         NewGadget . ng_LeftEdge        = 266;
  241.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  242.  
  243.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  244.             GTST_MaxChars,    256,
  245.             GTST_String,    Config -> Editor,
  246.         TAG_DONE);
  247.  
  248.         NewGadget . ng_GadgetText    = "Select";
  249.         NewGadget . ng_Width        = 52;
  250.         NewGadget . ng_GadgetID        = Counter;
  251.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  252.  
  253.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  254.             TAG_DONE);
  255.  
  256.         NewGadget . ng_GadgetText    = "Terminal `Beep' Sound";
  257.         NewGadget . ng_Width        = 264;
  258.         NewGadget . ng_GadgetID        = Counter;
  259.         NewGadget . ng_LeftEdge        = 266;
  260.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 2;
  261.  
  262.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  263.             GTST_MaxChars,    256,
  264.             GTST_String,    Config -> BeepSound,
  265.         TAG_DONE);
  266.  
  267.         NewGadget . ng_GadgetText    = "Select";
  268.         NewGadget . ng_Width        = 52;
  269.         NewGadget . ng_GadgetID        = Counter;
  270.         NewGadget . ng_LeftEdge        = Gadget -> LeftEdge + Gadget -> Width + 8;
  271.  
  272.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  273.             TAG_DONE);
  274.  
  275.         NewGadget . ng_Width        = 52;
  276.         NewGadget . ng_Height        = 12;
  277.         NewGadget . ng_GadgetText    = "_Use";
  278.         NewGadget . ng_GadgetID        = Counter;
  279.         NewGadget . ng_Flags        = 0;
  280.         NewGadget . ng_LeftEdge        = 10;
  281.         NewGadget . ng_TopEdge        = HEIGHT - 3 - NewGadget . ng_Height;
  282.  
  283.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  284.             GT_Underscore,    '_',
  285.         TAG_DONE);
  286.  
  287.         NewGadget . ng_GadgetText    = "_Cancel";
  288.         NewGadget . ng_GadgetID        = Counter;
  289.         NewGadget . ng_LeftEdge        = WIDTH - 10 - NewGadget . ng_Width;
  290.  
  291.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  292.             GT_Underscore,    '_',
  293.         TAG_DONE);
  294.     }
  295.  
  296.     DubGadList(GadgetArray[0]);
  297.  
  298.     return(Gadget);
  299. }
  300.  
  301. BYTE
  302. PathPanel(struct Configuration *Config)
  303. {
  304.     struct Window    *PanelWindow;
  305.     struct Menu    *PanelMenu;
  306.     struct Gadget    *GadgetList;
  307.     struct Gadget    *GadgetArray[GAD_CANCEL + 1];
  308.  
  309.     CopyMem(Config,&PrivateConfig,sizeof(struct Configuration));
  310.  
  311.     if(CreateAllGadgets(Config,&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
  312.     {
  313.         if(PanelMenu = CreateMenus(PathMenu,
  314.             GTMN_FrontPen, 0,
  315.         TAG_DONE))
  316.         {
  317.             if(LayoutMenus(PanelMenu,VisualInfo,
  318.                 GTMN_TextAttr,&DefaultFont,
  319.             TAG_DONE))
  320.             {
  321.                 if(PanelWindow = OpenWindowTags(NULL,
  322.                     WA_Left,    (Screen -> Width - WIDTH) >> 1,
  323.                     WA_Top,        (Screen -> Height - HEIGHT) >> 1,
  324.                     WA_Width,    WIDTH,
  325.                     WA_Height,    HEIGHT,
  326.  
  327.                     WA_Activate,    TRUE,
  328.                     WA_DragBar,    TRUE,
  329.                     WA_DepthGadget,    TRUE,
  330.                     WA_RMBTrap,    TRUE,
  331.                     WA_DepthGadget,    TRUE,
  332.                     WA_CloseGadget,    TRUE,
  333.                     WA_CustomScreen,Screen,
  334.  
  335.                     WA_IDCMP,    IDCMP_GADGETDOWN | IDCMP_ACTIVEWINDOW | IDCMP_CLOSEWINDOW | SLIDERIDCMP | CHECKBOXIDCMP | LISTVIEWIDCMP | IDCMP_MENUPICK | IDCMP_RAWKEY,
  336.  
  337.                     WA_Title,    "Path Preferences",
  338.                 TAG_DONE))
  339.                 {
  340.                     struct IntuiMessage    *Massage;
  341.                     ULONG             Class,Code;
  342.                     struct Gadget        *Gadget;
  343.                     BYTE             Terminated = FALSE;
  344.  
  345.                     PushWindow(PanelWindow);
  346.  
  347.                     AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
  348.                     RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
  349.                     GT_RefreshWindow(PanelWindow,NULL);
  350.  
  351.                     SetMenuStrip(PanelWindow,PanelMenu);
  352.  
  353.                     PanelWindow -> Flags &= ~WFLG_RMBTRAP;
  354.  
  355.                     ActivateGadget(GadgetArray[GAD_CONFIGSTORE],PanelWindow,NULL);
  356.                     ActiveGadget = GadgetArray[GAD_CONFIGSTORE];
  357.  
  358.                     while(!Terminated)
  359.                     {
  360.                         WaitPort(PanelWindow -> UserPort);
  361.  
  362.                         while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
  363.                         {
  364.                             Class    = Massage -> Class;
  365.                             Code    = Massage -> Code;
  366.                             Gadget    = (struct Gadget *)Massage -> IAddress;
  367.  
  368.                             GT_ReplyIMsg(Massage);
  369.  
  370.                             if(Class == IDCMP_ACTIVEWINDOW && ActiveGadget)
  371.                                 ActivateGadget(ActiveGadget,PanelWindow,NULL);
  372.  
  373.                             if(Class == IDCMP_RAWKEY)
  374.                             {
  375.                                 if(Code == IECODE_UP_PREFIX|103 && CommandWindow == PanelWindow)
  376.                                     ActivateGadget(CommandGadget,PanelWindow,NULL);
  377.                             }
  378.  
  379.                             if(Class == IDCMP_GADGETDOWN)
  380.                             {
  381.                                 if((Gadget -> GadgetType & GTYP_GTYPEMASK) == GTYP_STRGADGET)
  382.                                     ActiveGadget = Gadget;
  383.                             }
  384.  
  385.                             if(Class == IDCMP_MENUPICK)
  386.                             {
  387.                                 struct MenuItem *MenuItem;
  388.  
  389.                                 while(Code != MENUNULL)
  390.                                 {
  391.                                     MenuItem = ItemAddress(PanelMenu,Code);
  392.  
  393.                                     switch((ULONG)MENU_USERDATA(MenuItem))
  394.                                     {
  395.                                         case MEN_QUITPANEL:    Class = IDCMP_CLOSEWINDOW;
  396.                                                     break;
  397.  
  398.                                         case MEN_USE:        Class = IDCMP_GADGETUP;
  399.                                                     Gadget = GadgetArray[GAD_USE];
  400.                                                     break;
  401.  
  402.                                         case MEN_CANCEL:    Class = IDCMP_GADGETUP;
  403.                                                     Gadget = GadgetArray[GAD_CANCEL];
  404.                                                     break;
  405.  
  406.                                         default:        break;
  407.                                     }
  408.  
  409.                                     Code = MenuItem -> NextSelect;
  410.                                 }
  411.                             }
  412.  
  413.                             if(Class == IDCMP_CLOSEWINDOW)
  414.                                 Terminated = TRUE;
  415.  
  416. GadCheck:                        if(Class == IDCMP_GADGETUP)
  417.                             {
  418.                                 switch(Gadget -> GadgetID)
  419.                                 {
  420.                                     case GAD_USE:        Terminated = TRUE;
  421.  
  422.                                                 strcpy(Config -> DefaultStorage,((struct StringInfo *)GadgetArray[GAD_CONFIGSTORE] -> SpecialInfo) -> Buffer);
  423.  
  424.                                                 strcpy(Config -> TextUploadPath,((struct StringInfo *)GadgetArray[GAD_TUPLOAD] -> SpecialInfo) -> Buffer);
  425.                                                 strcpy(Config -> TextDownloadPath,((struct StringInfo *)GadgetArray[GAD_TDOWNLOAD] -> SpecialInfo) -> Buffer);
  426.  
  427.                                                 strcpy(Config -> ASCIIUploadPath,((struct StringInfo *)GadgetArray[GAD_AUPLOAD] -> SpecialInfo) -> Buffer);
  428.                                                 strcpy(Config -> ASCIIDownloadPath,((struct StringInfo *)GadgetArray[GAD_ADOWNLOAD] -> SpecialInfo) -> Buffer);
  429.  
  430.                                                 strcpy(Config -> BinaryUploadPath,((struct StringInfo *)GadgetArray[GAD_BUPLOAD] -> SpecialInfo) -> Buffer);
  431.                                                 strcpy(Config -> BinaryDownloadPath,((struct StringInfo *)GadgetArray[GAD_BDOWNLOAD] -> SpecialInfo) -> Buffer);
  432.  
  433.                                                 strcpy(Config -> CapturePath,((struct StringInfo *)GadgetArray[GAD_CAPTURE] -> SpecialInfo) -> Buffer);
  434.                                                 strcpy(Config -> LogFile,((struct StringInfo *)GadgetArray[GAD_LOG] -> SpecialInfo) -> Buffer);
  435.                                                 strcpy(Config -> Editor,((struct StringInfo *)GadgetArray[GAD_EDITOR] -> SpecialInfo) -> Buffer);
  436.                                                 strcpy(Config -> BeepSound,((struct StringInfo *)GadgetArray[GAD_BEEP] -> SpecialInfo) -> Buffer);
  437.  
  438.                                                 break;
  439.  
  440.                                     case GAD_CANCEL:    Terminated = TRUE;
  441.  
  442.                                                 CopyMem(&PrivateConfig,Config,sizeof(struct Configuration));
  443.  
  444.                                                 break;
  445.  
  446.                                     default:                if(Gadget -> GadgetID & 1)
  447.                                                 {
  448.                                                     UBYTE DummyBuffer[256],*DummyChar;
  449.                                                     struct FileRequester *FileRequest;
  450.                                                     LONG Selection = (Gadget -> GadgetID - 1);
  451.  
  452.                                                     SetWait(PanelWindow);
  453.  
  454.                                                     PanelWindow -> Flags |= WFLG_RMBTRAP;
  455.  
  456.                                                     strcpy(DummyBuffer,((struct StringInfo *)GadgetArray[Selection] -> SpecialInfo) -> Buffer);
  457.  
  458.                                                     if(Gadget -> GadgetID >= GAD_SELECT9)
  459.                                                     {
  460.                                                         if(DummyBuffer[0])
  461.                                                         {
  462.                                                             DummyChar = FilePart(DummyBuffer);
  463.  
  464.                                                             *DummyChar = 0;
  465.  
  466.                                                             DummyChar = FilePart(((struct StringInfo *)GadgetArray[Selection] -> SpecialInfo) -> Buffer);
  467.                                                         }
  468.                                                         else
  469.                                                             DummyChar = "";
  470.                                                     }
  471.                                                     else
  472.                                                         DummyChar = "";
  473.  
  474.                                                     if(FileRequest = GetFile(SelectText[Selection >> 1],DummyBuffer,DummyChar,DummyBuffer,NULL,FALSE,FALSE))
  475.                                                     {
  476.                                                         GT_SetGadgetAttrs(GadgetArray[Selection],PanelWindow,NULL,
  477.                                                             GTST_String,(Gadget -> GadgetID < GAD_SELECT9 ? FileRequest -> rf_Dir : DummyBuffer),
  478.                                                         TAG_DONE);
  479.  
  480.                                                         FreeAslRequest(FileRequest);
  481.                                                     }
  482.  
  483.                                                     ClearPointer(PanelWindow);
  484.  
  485.                                                     PanelWindow -> Flags &= ~WFLG_RMBTRAP;
  486.                                                 }
  487.  
  488.                                                 break;
  489.                                 }
  490.                             }
  491.                         }
  492.                     }
  493.  
  494.                     PanelWindow -> Flags |= WFLG_RMBTRAP;
  495.  
  496.                     ClearMenuStrip(PanelWindow);
  497.  
  498.                     RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
  499.  
  500.                     PopWindow();
  501.  
  502.                     CloseWindow(PanelWindow);
  503.                 }
  504.             }
  505.  
  506.             FreeMenus(PanelMenu);
  507.         }
  508.  
  509.         FreeGadgets(GadgetList);
  510.     }
  511.  
  512.     return((BYTE)strcmp(Config -> BeepSound,PrivateConfig . BeepSound));
  513. }
  514.