home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / communication / bbs / termv4.6 / extras / source / term-source.lha / LibPanel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-18  |  27.7 KB  |  1,100 lines

  1. /*
  2. **    LibPanel.c
  3. **
  4. **    Editing panel for transfer library configuration
  5. **
  6. **    Copyright © 1990-1996 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. */
  9.  
  10. #ifndef _GLOBAL_H
  11. #include "Global.h"
  12. #endif
  13.  
  14. enum    {    GAD_DEFAULT_TYPE=1000,
  15.         GAD_DEFAULT_NAME,
  16.         GAD_DEFAULT_SENDSIGNATURE,
  17.         GAD_DEFAULT_PREFS,
  18.  
  19.         GAD_ASCII_UPLOAD_TYPE,
  20.         GAD_ASCII_UPLOAD_NAME,
  21.         GAD_ASCII_UPLOAD_SIGNATURE,
  22.         GAD_ASCII_UPLOAD_PREFS,
  23.         GAD_ASCII_DOWNLOAD_TYPE,
  24.         GAD_ASCII_DOWNLOAD_NAME,
  25.         GAD_ASCII_DOWNLOAD_SIGNATURE,
  26.         GAD_ASCII_DOWNLOAD_PREFS,
  27.  
  28.         GAD_TEXT_UPLOAD_TYPE,
  29.         GAD_TEXT_UPLOAD_NAME,
  30.         GAD_TEXT_UPLOAD_SIGNATURE,
  31.         GAD_TEXT_UPLOAD_PREFS,
  32.         GAD_TEXT_DOWNLOAD_TYPE,
  33.         GAD_TEXT_DOWNLOAD_NAME,
  34.         GAD_TEXT_DOWNLOAD_SIGNATURE,
  35.         GAD_TEXT_DOWNLOAD_PREFS,
  36.  
  37.         GAD_BINARY_UPLOAD_TYPE,
  38.         GAD_BINARY_UPLOAD_NAME,
  39.         GAD_BINARY_UPLOAD_SIGNATURE,
  40.         GAD_BINARY_UPLOAD_PREFS,
  41.         GAD_BINARY_DOWNLOAD_TYPE,
  42.         GAD_BINARY_DOWNLOAD_NAME,
  43.         GAD_BINARY_DOWNLOAD_SIGNATURE,
  44.         GAD_BINARY_DOWNLOAD_PREFS,
  45.  
  46.         GAD_DEFAULT_RECEIVESIGNATURE,
  47.  
  48.         GAD_MANGLE,GAD_PAGE,GAD_PAGEGROUP,
  49.         GAD_NOTIFY_AFTER_N_ERRORS,GAD_NOTIFY_WHEN,
  50.         GAD_USE,GAD_CANCEL,
  51.  
  52.         GAD_PROTOCOLTYPE,GAD_PAGER
  53.     };
  54.  
  55. BOOL
  56. SignaturePanel(struct Window *Parent,STRPTR String,LONG ReceiveMode)
  57. {
  58.     STATIC STRPTR SendProtocols[] =
  59.     {
  60.         "Z-Modem",
  61.         NULL
  62.     };
  63.  
  64.     STATIC STRPTR SendSignatureTypes[] =
  65.     {
  66.         "*^XB01",
  67.         NULL
  68.     };
  69.  
  70.     STATIC STRPTR ReceiveProtocols[] =
  71.     {
  72.         "Z-Modem",
  73.         "Hydra",
  74.         "QuickB",
  75.         NULL
  76.     };
  77.  
  78.     STATIC STRPTR ReceiveSignatureTypes[] =
  79.     {
  80.         "*^XB00",
  81.         "^XcA\\\\f5\\\\a3^Xa",
  82.         "\\*ENQ",
  83.         NULL
  84.     };
  85.  
  86.     struct LayoutHandle    *Handle;
  87.     BOOL             Ok = FALSE;
  88.     STRPTR            *SignatureTypes,
  89.                 *Protocols;
  90.  
  91.     if(ReceiveMode)
  92.     {
  93.         SignatureTypes    = ReceiveSignatureTypes;
  94.         Protocols    = ReceiveProtocols;
  95.     }
  96.     else
  97.     {
  98.         SignatureTypes    = SendSignatureTypes;
  99.         Protocols    = SendProtocols;
  100.     }
  101.  
  102.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  103.         LH_LocaleHook,    &LocaleHook,
  104.     TAG_DONE))
  105.     {
  106.         struct Window    *PanelWindow;
  107.         BYTE         Index = 0;
  108.  
  109.         LT_New(Handle,
  110.             LA_Type,    VERTICAL_KIND,
  111.         TAG_DONE);
  112.         {
  113.             LT_New(Handle,
  114.                 LA_Type,    VERTICAL_KIND,
  115.             TAG_DONE);
  116.             {
  117.                 LT_New(Handle,
  118.                     LA_Type,    LISTVIEW_KIND,
  119.                     LA_LabelID,    MSG_XFER_SELECT_SIGNATURE_TXT,
  120.                     LALV_Labels,    Protocols,
  121.                     LALV_Link,    NIL_LINK,
  122.                     LALV_CursorKey,    TRUE,
  123.                     LALV_MaxGrowY,    5,
  124.                     LA_BYTE,    &Index,
  125.                     LA_ID,        GAD_PROTOCOLTYPE,
  126.                     LA_Chars,    30,
  127.                 TAG_DONE);
  128.  
  129.                 LT_EndGroup(Handle);
  130.             }
  131.  
  132.             LT_New(Handle,
  133.                 LA_Type,VERTICAL_KIND,
  134.             TAG_DONE);
  135.             {
  136.                 LT_New(Handle,
  137.                     LA_Type,    XBAR_KIND,
  138.                     LAXB_FullSize,    TRUE,
  139.                 TAG_DONE);
  140.  
  141.                 LT_EndGroup(Handle);
  142.             }
  143.  
  144.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  145.                 LAGR_SameSize,    TRUE,
  146.                 LAGR_Spread,    TRUE,
  147.             TAG_DONE);
  148.             {
  149.                 LT_New(Handle,
  150.                     LA_Type,    BUTTON_KIND,
  151.                     LA_LabelID,    MSG_GLOBAL_USE_GAD,
  152.                     LA_ID,        GAD_USE,
  153.                     LABT_ReturnKey,    TRUE,
  154.                     LABT_ExtraFat,    TRUE,
  155.                 TAG_DONE);
  156.  
  157.                 LT_New(Handle,
  158.                     LA_Type,    BUTTON_KIND,
  159.                     LA_LabelID,    MSG_GLOBAL_CANCEL_GAD,
  160.                     LA_ID,        GAD_CANCEL,
  161.                     LABT_EscKey,    TRUE,
  162.                     LABT_ExtraFat,    TRUE,
  163.                 TAG_DONE);
  164.  
  165.                 LT_EndGroup(Handle);
  166.             }
  167.  
  168.             LT_EndGroup(Handle);
  169.         }
  170.  
  171.         if(PanelWindow = LT_Build(Handle,
  172.             LAWN_TitleID,        MSG_XFER_SIGNATURE_TXT,
  173.             LAWN_IDCMP,        IDCMP_CLOSEWINDOW,
  174.             LAWN_HelpHook,        &GuideHook,
  175.             LAWN_Parent,        Parent,
  176.             WA_DepthGadget,        TRUE,
  177.             WA_CloseGadget,        TRUE,
  178.             WA_DragBar,        TRUE,
  179.             WA_RMBTrap,        TRUE,
  180.             WA_Activate,        TRUE,
  181.             WA_SimpleRefresh,    TRUE,
  182.         TAG_DONE))
  183.         {
  184.             struct IntuiMessage    *Message;
  185.             BOOL             Done = FALSE;
  186.             ULONG             MsgClass;
  187.             struct Gadget        *MsgGadget;
  188.  
  189.             GuideContext(CONTEXT_SIGNATURE);
  190.  
  191.             PushWindow(PanelWindow);
  192.  
  193.             LT_ShowWindow(Handle,TRUE);
  194.  
  195.             do
  196.             {
  197.                 if(Wait(PORTMASK(PanelWindow -> UserPort) | SIG_BREAK) & SIG_BREAK)
  198.                     break;
  199.  
  200.                 while(Message = (struct IntuiMessage *)LT_GetIMsg(Handle))
  201.                 {
  202.                     MsgClass    = Message -> Class;
  203.                     MsgGadget    = (struct Gadget *)Message -> IAddress;
  204.  
  205.                     LT_ReplyIMsg(Message);
  206.  
  207.                     if(MsgClass == IDCMP_CLOSEWINDOW)
  208.                         Done = TRUE;
  209.  
  210.                     if(MsgClass == IDCMP_GADGETUP)
  211.                     {
  212.                         switch(MsgGadget -> GadgetID)
  213.                         {
  214.                             case GAD_USE:
  215.  
  216.                                 strcpy(String,SignatureTypes[Index]);
  217.  
  218.                                 Ok = Done = TRUE;
  219.                                 break;
  220.  
  221.                             case GAD_CANCEL:
  222.  
  223.                                 Done = TRUE;
  224.                                 break;
  225.                         }
  226.                     }
  227.  
  228.                     if(MsgClass == IDCMP_IDCMPUPDATE)
  229.                     {
  230.                         strcpy(String,SignatureTypes[Index]);
  231.  
  232.                         Ok = Done = TRUE;
  233.  
  234.                         LT_PressButton(Handle,GAD_USE);
  235.                     }
  236.                 }
  237.             }
  238.             while(!Done);
  239.  
  240.             PopWindow();
  241.         }
  242.  
  243.         LT_DeleteHandle(Handle);
  244.     }
  245.  
  246.     return(Ok);
  247. }
  248.  
  249. BOOL
  250. LibPanel(struct Window *Parent,struct Configuration *LocalConfig)
  251. {
  252.     STATIC LONG PageTitleID[6] =
  253.     {
  254.         MSG_XFER_GENERAL_OPTIONS_TXT,
  255.         MSG_XFER_PAGE1_TXT,
  256.         MSG_XFER_PAGE4_TXT,
  257.         MSG_XFER_PAGE3_TXT,
  258.         MSG_XFER_PAGE2_TXT,
  259.         -1
  260.     };
  261.  
  262.     STATIC BYTE         InitialPage = 0;
  263.  
  264.     struct LayoutHandle    *Handle;
  265.     BOOL             UseIt = FALSE;
  266.     STRPTR             Signatures[TRANSFERSIG_BINARYDOWNLOAD + 1];
  267.     LONG             i;
  268.  
  269.     if(!(Signatures[0] = AllocVecPooled(40 * (TRANSFERSIG_BINARYDOWNLOAD + 1),MEMF_ANY)))
  270.         return(FALSE);
  271.  
  272.     SaveConfig(LocalConfig,PrivateConfig);
  273.  
  274.     for(i = 1 ; i <= TRANSFERSIG_BINARYDOWNLOAD ; i++)
  275.         Signatures[i] = Signatures[i - 1] + 40;
  276.  
  277.     for(i = 0 ; i <= TRANSFERSIG_BINARYDOWNLOAD ; i++)
  278.     {
  279.         if(PrivateConfig -> TransferConfig -> Signatures[i] . Length)
  280.             TranslateBack(PrivateConfig -> TransferConfig -> Signatures[i] . Signature,PrivateConfig -> TransferConfig -> Signatures[i] . Length,Signatures[i]);
  281.         else
  282.             Signatures[i][0] = 0;
  283.     }
  284.  
  285.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  286.         LH_LocaleHook,    &LocaleHook,
  287.         LH_ExitFlush,    FALSE,
  288.     TAG_DONE))
  289.     {
  290.         struct Window *PanelWindow;
  291.  
  292.         LT_New(Handle,
  293.             LA_Type,    VERTICAL_KIND,
  294.         TAG_DONE);
  295.         {
  296.             LT_New(Handle,
  297.                 LA_Type,    VERTICAL_KIND,
  298.             TAG_DONE);
  299.             {
  300.                 LT_New(Handle,
  301.                     LA_Type,        TAB_KIND,
  302.                     LA_LabelID,        MSG_XFER_PAGE_TXT,
  303.                     LACY_LabelTable,    PageTitleID,
  304.                     LACY_AutoPageID,    GAD_PAGEGROUP,
  305.                     LACY_TabKey,        TRUE,
  306.                     LA_BYTE,        &InitialPage,
  307.                     LATB_FullWidth,        TRUE,
  308.                     LA_ID,            GAD_PAGER,
  309.                 TAG_DONE);
  310.  
  311.                 LT_EndGroup(Handle);
  312.             }
  313.  
  314.             LT_New(Handle,
  315.                 LA_Type,    VERTICAL_KIND,
  316.                 LA_ID,        GAD_PAGEGROUP,
  317.                 LAGR_ActivePage,InitialPage,
  318.             TAG_DONE);
  319.             {
  320.                 LT_New(Handle,
  321.                     LA_Type,    VERTICAL_KIND,
  322.                 TAG_DONE);
  323.                 {
  324.                     LT_New(Handle,
  325.                         LA_Type,    HORIZONTAL_KIND,
  326.                     TAG_DONE);
  327.                     {
  328.                         LT_New(Handle,
  329.                             LA_Type,    VERTICAL_KIND,
  330.                         TAG_DONE);
  331.                         {
  332.                             LT_New(Handle,
  333.                                 LA_Type,    CHECKBOX_KIND,
  334.                                 LA_LabelID,    MSG_MISCPANEL_OVERRIDE_TRANSFER_PATH_GAD,
  335.                                 LA_BYTE,    &PrivateConfig -> TransferConfig -> OverridePath,
  336.                             TAG_DONE);
  337.  
  338.                             LT_New(Handle,
  339.                                 LA_Type,    CHECKBOX_KIND,
  340.                                 LA_LabelID,    MSG_MISCPANEL_SET_ARCHIVED_BIT_GAD,
  341.                                 LA_BYTE,    &PrivateConfig -> TransferConfig -> SetArchivedBit,
  342.                             TAG_DONE);
  343.  
  344.                             LT_New(Handle,
  345.                                 LA_Type,    CHECKBOX_KIND,
  346.                                 LA_LabelID,    MSG_MISCPANEL_TRANSFER_ICONS_GAD,
  347.                                 LA_BYTE,    &PrivateConfig -> TransferConfig -> TransferIcons,
  348.                             TAG_DONE);
  349.  
  350.                             LT_EndGroup(Handle);
  351.                         }
  352.  
  353.                         LT_New(Handle,
  354.                             LA_Type,    VERTICAL_KIND,
  355.                         TAG_DONE);
  356.                         {
  357.                             LT_New(Handle,
  358.                                 LA_Type,    CHECKBOX_KIND,
  359.                                 LA_LabelID,    MSG_MANGLE_UPLOAD_FILENAMES_TXT,
  360.                                 LA_BYTE,    &PrivateConfig -> TransferConfig -> MangleFileNames,
  361.                                 LA_ID,        GAD_MANGLE,
  362.                             TAG_DONE);
  363.  
  364.                             LT_New(Handle,
  365.                                 LA_Type,    CHECKBOX_KIND,
  366.                                 LA_LabelID,    MSG_MISCPANEL_HIDE_UPLOAD_ICON_GAD,
  367.                                 LA_BYTE,    &PrivateConfig -> TransferConfig -> HideUploadIcon,
  368.                             TAG_DONE);
  369.  
  370.                             LT_EndGroup(Handle);
  371.                         }
  372.  
  373.                         LT_EndGroup(Handle);
  374.                     }
  375.  
  376.                     LT_New(Handle,
  377.                         LA_Type,    VERTICAL_KIND,
  378.                     TAG_DONE);
  379.                     {
  380.                         LT_New(Handle,
  381.                             LA_Type,    XBAR_KIND,
  382.                         TAG_DONE);
  383.  
  384.                         LT_New(Handle,
  385.                             LA_Type,        INTEGER_KIND,
  386.                             LA_LabelID,        MSG_NOTIFY_USER_AFTER_N_ERRORS_HAVE_OCCURED_TXT,
  387.                             LA_UWORD,        &PrivateConfig -> TransferConfig -> ErrorNotification,
  388.                             LA_ID,            GAD_NOTIFY_AFTER_N_ERRORS,
  389.                             LA_Chars,        8,
  390.                             LAIN_Min,        0,
  391.                             LAIN_Max,        65535,
  392.                             LAIN_UseIncrementers,    TRUE,
  393.                         TAG_DONE);
  394.  
  395.                         LT_EndGroup(Handle);
  396.                     }
  397.  
  398.                     LT_New(Handle,
  399.                         LA_Type,    VERTICAL_KIND,
  400.                     TAG_DONE);
  401.                     {
  402.                         LT_New(Handle,
  403.                             LA_Type,        CYCLE_KIND,
  404.                             LA_LabelID,        MSG_NOTIFY_USER_TXT,
  405.                             LA_BYTE,        &PrivateConfig -> TransferConfig -> TransferNotification,
  406.                             LA_ID,            GAD_NOTIFY_WHEN,
  407.                             LACY_FirstLabel,    MSG_NOTIFY_USER_MODE1_TXT,
  408.                             LACY_LastLabel,        MSG_NOTIFY_USER_MODE4_TXT,
  409.                         TAG_DONE);
  410.  
  411.                         LT_New(Handle,
  412.                             LA_Type,        CYCLE_KIND,
  413.                             LA_LabelID,        MSG_MISCPANEL_IDENTIFY_FILES_GAD,
  414.                             LACY_FirstLabel,    MSG_MISCPANEL_IDENTIFY_IGNORE_TXT,
  415.                             LACY_LastLabel,        MSG_MISCPANEL_IDENTIFY_SOURCE_TXT,
  416.                             LA_BYTE,        &PrivateConfig -> TransferConfig -> IdentifyFiles,
  417.                         TAG_DONE);
  418.  
  419.                         LT_EndGroup(Handle);
  420.                     }
  421.  
  422.                     LT_EndGroup(Handle);
  423.                 }
  424.  
  425.                 LT_New(Handle,
  426.                     LA_Type,    VERTICAL_KIND,
  427.                 TAG_DONE);
  428.                 {
  429.                     LT_New(Handle,
  430.                         LA_Type,    CYCLE_KIND,
  431.                         LA_ID,        GAD_DEFAULT_TYPE,
  432.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> DefaultType,
  433.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  434.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  435.                         LACY_LastLabel,    MSG_XFER_TYPE2_TXT,
  436.                         LA_Chars,    40,
  437.                     TAG_DONE);
  438.  
  439.                     LT_New(Handle,
  440.                         LA_Type,    STRING_KIND,
  441.                         LA_ID,        GAD_DEFAULT_NAME,
  442.                         LA_LabelID,    MSG_XFER_NAME_TXT,
  443.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> DefaultLibrary,
  444.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  445.                         LAST_Picker,    TRUE,
  446.                     TAG_DONE);
  447.  
  448.                     LT_New(Handle,
  449.                         LA_Type,    STRING_KIND,
  450.                         LA_ID,        GAD_DEFAULT_SENDSIGNATURE,
  451.                         LA_LabelID,    MSG_XFER_SEND_SIGNATURE_TXT,
  452.                         LA_STRPTR,    Signatures[TRANSFERSIG_DEFAULTUPLOAD],
  453.                         GTST_MaxChars,    40,
  454.                         LAST_Picker,    TRUE,
  455.                     TAG_DONE);
  456.  
  457.                     LT_New(Handle,
  458.                         LA_Type,    STRING_KIND,
  459.                         LA_ID,        GAD_DEFAULT_RECEIVESIGNATURE,
  460.                         LA_LabelID,    MSG_XFER_RECEIVE_SIGNATURE_TXT,
  461.                         LA_STRPTR,    Signatures[TRANSFERSIG_DEFAULTDOWNLOAD],
  462.                         GTST_MaxChars,    40,
  463.                         LAST_Picker,    TRUE,
  464.                     TAG_DONE);
  465.  
  466.                     LT_New(Handle,
  467.                         LA_Type,    BUTTON_KIND,
  468.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  469.                         LA_ID,        GAD_DEFAULT_PREFS,
  470.                     TAG_DONE);
  471.  
  472.                     LT_EndGroup(Handle);
  473.                 }
  474.  
  475.                 LT_New(Handle,
  476.                     LA_Type,    VERTICAL_KIND,
  477.                 TAG_DONE);
  478.                 {
  479.                     LT_New(Handle,
  480.                         LA_Type,    CYCLE_KIND,
  481.                         LA_ID,        GAD_BINARY_UPLOAD_TYPE,
  482.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> BinaryUploadType,
  483.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  484.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  485.                         LACY_LastLabel,    MSG_XFER_TYPE3_TXT,
  486.                         LA_Chars,    40,
  487.                     TAG_DONE);
  488.  
  489.                     LT_New(Handle,
  490.                         LA_Type,    STRING_KIND,
  491.                         LA_ID,        GAD_BINARY_UPLOAD_NAME,
  492.                         LA_LabelID,    MSG_XFER_SEND_TXT,
  493.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> BinaryUploadLibrary,
  494.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  495.                         LAST_Picker,    TRUE,
  496.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryUploadType == XFER_DEFAULT,
  497.                     TAG_DONE);
  498.  
  499.                     LT_New(Handle,
  500.                         LA_Type,    STRING_KIND,
  501.                         LA_ID,        GAD_BINARY_UPLOAD_SIGNATURE,
  502.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  503.                         LA_STRPTR,    Signatures[TRANSFERSIG_BINARYUPLOAD],
  504.                         GTST_MaxChars,    40,
  505.                         LAST_Picker,    TRUE,
  506.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryUploadType == XFER_DEFAULT,
  507.                     TAG_DONE);
  508.  
  509.                     LT_New(Handle,
  510.                         LA_Type,    BUTTON_KIND,
  511.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  512.                         LA_ID,        GAD_BINARY_UPLOAD_PREFS,
  513.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryUploadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> BinaryUploadType == XFER_EXTERNALPROGRAM,
  514.                     TAG_DONE);
  515.  
  516.                     LT_New(Handle,
  517.                         LA_Type,    XBAR_KIND,
  518.                     TAG_DONE);
  519.  
  520.                     LT_New(Handle,
  521.                         LA_Type,    CYCLE_KIND,
  522.                         LA_ID,        GAD_BINARY_DOWNLOAD_TYPE,
  523.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> BinaryDownloadType,
  524.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  525.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  526.                         LACY_LastLabel,    MSG_XFER_TYPE3_TXT,
  527.                     TAG_DONE);
  528.  
  529.                     LT_New(Handle,
  530.                         LA_Type,    STRING_KIND,
  531.                         LA_ID,        GAD_BINARY_DOWNLOAD_NAME,
  532.                         LA_LabelID,    MSG_XFER_RECEIVE_TXT,
  533.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> BinaryDownloadLibrary,
  534.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  535.                         LAST_Picker,    TRUE,
  536.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryDownloadType == XFER_DEFAULT,
  537.                     TAG_DONE);
  538.  
  539.                     LT_New(Handle,
  540.                         LA_Type,    STRING_KIND,
  541.                         LA_ID,        GAD_BINARY_DOWNLOAD_SIGNATURE,
  542.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  543.                         LA_STRPTR,    Signatures[TRANSFERSIG_BINARYDOWNLOAD],
  544.                         GTST_MaxChars,    40,
  545.                         LAST_Picker,    TRUE,
  546.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryDownloadType == XFER_DEFAULT,
  547.                     TAG_DONE);
  548.  
  549.                     LT_New(Handle,
  550.                         LA_Type,    BUTTON_KIND,
  551.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  552.                         LA_ID,        GAD_BINARY_DOWNLOAD_PREFS,
  553.                         GA_Disabled,    PrivateConfig -> TransferConfig -> BinaryDownloadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> BinaryDownloadType == XFER_EXTERNALPROGRAM,
  554.                     TAG_DONE);
  555.  
  556.                     LT_EndGroup(Handle);
  557.                 }
  558.  
  559.                 LT_New(Handle,
  560.                     LA_Type,    VERTICAL_KIND,
  561.                 TAG_DONE);
  562.                 {
  563.                     LT_New(Handle,
  564.                         LA_Type,    CYCLE_KIND,
  565.                         LA_ID,        GAD_TEXT_UPLOAD_TYPE,
  566.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> TextUploadType,
  567.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  568.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  569.                         LACY_LastLabel,    MSG_XFER_TYPE3_TXT,
  570.                         LA_Chars,    40,
  571.                     TAG_DONE);
  572.  
  573.                     LT_New(Handle,
  574.                         LA_Type,    STRING_KIND,
  575.                         LA_ID,        GAD_TEXT_UPLOAD_NAME,
  576.                         LA_LabelID,    MSG_XFER_SEND_TXT,
  577.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> TextUploadLibrary,
  578.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  579.                         LAST_Picker,    TRUE,
  580.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextUploadType == XFER_DEFAULT,
  581.                     TAG_DONE);
  582.  
  583.                     LT_New(Handle,
  584.                         LA_Type,    STRING_KIND,
  585.                         LA_ID,        GAD_TEXT_UPLOAD_SIGNATURE,
  586.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  587.                         LA_STRPTR,    Signatures[TRANSFERSIG_TEXTUPLOAD],
  588.                         GTST_MaxChars,    40,
  589.                         LAST_Picker,    TRUE,
  590.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextUploadType == XFER_DEFAULT,
  591.                     TAG_DONE);
  592.  
  593.                     LT_New(Handle,
  594.                         LA_Type,    BUTTON_KIND,
  595.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  596.                         LA_ID,        GAD_TEXT_UPLOAD_PREFS,
  597.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextUploadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> TextUploadType == XFER_EXTERNALPROGRAM,
  598.                     TAG_DONE);
  599.  
  600.                     LT_New(Handle,
  601.                         LA_Type,    XBAR_KIND,
  602.                     TAG_DONE);
  603.  
  604.                     LT_New(Handle,
  605.                         LA_Type,    CYCLE_KIND,
  606.                         LA_ID,        GAD_TEXT_DOWNLOAD_TYPE,
  607.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> TextDownloadType,
  608.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  609.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  610.                         LACY_LastLabel,    MSG_XFER_TYPE3_TXT,
  611.                     TAG_DONE);
  612.  
  613.                     LT_New(Handle,
  614.                         LA_Type,    STRING_KIND,
  615.                         LA_ID,        GAD_TEXT_DOWNLOAD_NAME,
  616.                         LA_LabelID,    MSG_XFER_RECEIVE_TXT,
  617.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> TextDownloadLibrary,
  618.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  619.                         LAST_Picker,    TRUE,
  620.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextDownloadType == XFER_DEFAULT,
  621.                     TAG_DONE);
  622.  
  623.                     LT_New(Handle,
  624.                         LA_Type,    STRING_KIND,
  625.                         LA_ID,        GAD_TEXT_DOWNLOAD_SIGNATURE,
  626.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  627.                         LA_STRPTR,    Signatures[TRANSFERSIG_TEXTDOWNLOAD],
  628.                         GTST_MaxChars,    40,
  629.                         LAST_Picker,    TRUE,
  630.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextDownloadType == XFER_DEFAULT,
  631.                     TAG_DONE);
  632.  
  633.                     LT_New(Handle,
  634.                         LA_Type,    BUTTON_KIND,
  635.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  636.                         LA_ID,        GAD_TEXT_DOWNLOAD_PREFS,
  637.                         GA_Disabled,    PrivateConfig -> TransferConfig -> TextDownloadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> TextDownloadType == XFER_EXTERNALPROGRAM,
  638.                     TAG_DONE);
  639.  
  640.                     LT_EndGroup(Handle);
  641.                 }
  642.  
  643.                 LT_New(Handle,
  644.                     LA_Type,    VERTICAL_KIND,
  645.                 TAG_DONE);
  646.                 {
  647.                     LT_New(Handle,
  648.                         LA_Type,    CYCLE_KIND,
  649.                         LA_ID,        GAD_ASCII_UPLOAD_TYPE,
  650.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> ASCIIUploadType,
  651.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  652.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  653.                         LACY_LastLabel,    MSG_XFER_TYPE4_TXT,
  654.                         LA_Chars,    40,
  655.                     TAG_DONE);
  656.  
  657.                     LT_New(Handle,
  658.                         LA_Type,    STRING_KIND,
  659.                         LA_ID,        GAD_ASCII_UPLOAD_NAME,
  660.                         LA_LabelID,    MSG_XFER_SEND_TXT,
  661.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> ASCIIUploadLibrary,
  662.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  663.                         LAST_Picker,    TRUE,
  664.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_INTERNAL,
  665.                     TAG_DONE);
  666.  
  667.                     LT_New(Handle,
  668.                         LA_Type,    STRING_KIND,
  669.                         LA_ID,        GAD_ASCII_UPLOAD_SIGNATURE,
  670.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  671.                         LA_STRPTR,    Signatures[TRANSFERSIG_ASCIIUPLOAD],
  672.                         GTST_MaxChars,    40,
  673.                         LAST_Picker,    TRUE,
  674.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_INTERNAL,
  675.                     TAG_DONE);
  676.  
  677.                     LT_New(Handle,
  678.                         LA_Type,    BUTTON_KIND,
  679.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  680.                         LA_ID,        GAD_ASCII_UPLOAD_PREFS,
  681.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIUploadType == XFER_EXTERNALPROGRAM,
  682.                     TAG_DONE);
  683.  
  684.                     LT_New(Handle,
  685.                         LA_Type,    XBAR_KIND,
  686.                     TAG_DONE);
  687.  
  688.                     LT_New(Handle,
  689.                         LA_Type,    CYCLE_KIND,
  690.                         LA_ID,        GAD_ASCII_DOWNLOAD_TYPE,
  691.                         LA_BYTE,    &PrivateConfig -> TransferConfig -> ASCIIDownloadType,
  692.                         LA_LabelID,    MSG_XFER_TYPE_TXT,
  693.                         LACY_FirstLabel,MSG_XFER_TYPE1_TXT,
  694.                         LACY_LastLabel,    MSG_XFER_TYPE4_TXT,
  695.                     TAG_DONE);
  696.  
  697.                     LT_New(Handle,
  698.                         LA_Type,    STRING_KIND,
  699.                         LA_ID,        GAD_ASCII_DOWNLOAD_NAME,
  700.                         LA_LabelID,    MSG_XFER_RECEIVE_TXT,
  701.                         LA_STRPTR,    PrivateConfig -> TransferConfig -> ASCIIDownloadLibrary,
  702.                         GTST_MaxChars,    MAX_FILENAME_LENGTH,
  703.                         LAST_Picker,    TRUE,
  704.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_INTERNAL,
  705.                     TAG_DONE);
  706.  
  707.                     LT_New(Handle,
  708.                         LA_Type,    STRING_KIND,
  709.                         LA_ID,        GAD_ASCII_DOWNLOAD_SIGNATURE,
  710.                         LA_LabelID,    MSG_XFER_SIGNATURE_TXT,
  711.                         LA_STRPTR,    Signatures[TRANSFERSIG_ASCIIDOWNLOAD],
  712.                         GTST_MaxChars,    40,
  713.                         LAST_Picker,    TRUE,
  714.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_INTERNAL,
  715.                     TAG_DONE);
  716.  
  717.                     LT_New(Handle,
  718.                         LA_Type,    BUTTON_KIND,
  719.                         LA_LabelID,    MSG_XFER_SETTINGS_TXT,
  720.                         LA_ID,        GAD_ASCII_DOWNLOAD_PREFS,
  721.                         GA_Disabled,    PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_DEFAULT || PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_EXTERNALPROGRAM,
  722.                     TAG_DONE);
  723.  
  724.                     LT_EndGroup(Handle);
  725.                 }
  726.  
  727.                 LT_EndGroup(Handle);
  728.             }
  729.  
  730.             LT_New(Handle,
  731.                 LA_Type,VERTICAL_KIND,
  732.             TAG_DONE);
  733.             {
  734.                 LT_New(Handle,
  735.                     LA_Type,    XBAR_KIND,
  736.                     LAXB_FullSize,    TRUE,
  737.                 TAG_DONE);
  738.  
  739.                 LT_EndGroup(Handle);
  740.             }
  741.  
  742.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  743.                 LAGR_SameSize,    TRUE,
  744.                 LAGR_Spread,    TRUE,
  745.             TAG_DONE);
  746.             {
  747.                 LT_New(Handle,
  748.                     LA_Type,    BUTTON_KIND,
  749.                     LA_LabelID,    MSG_GLOBAL_USE_GAD,
  750.                     LA_ID,        GAD_USE,
  751.                     LABT_ReturnKey,    TRUE,
  752.                     LABT_ExtraFat,    TRUE,
  753.                 TAG_DONE);
  754.  
  755.                 LT_New(Handle,
  756.                     LA_Type,    BUTTON_KIND,
  757.                     LA_LabelID,    MSG_GLOBAL_CANCEL_GAD,
  758.                     LA_ID,        GAD_CANCEL,
  759.                     LABT_EscKey,    TRUE,
  760.                     LABT_ExtraFat,    TRUE,
  761.                 TAG_DONE);
  762.  
  763.                 LT_EndGroup(Handle);
  764.             }
  765.  
  766.             LT_EndGroup(Handle);
  767.         }
  768.  
  769.         if(PanelWindow = LT_Build(Handle,
  770.             LAWN_TitleID,        MSG_LIBPANEL_LIBRARY_PREFERENCES_TXT,
  771.             LAWN_IDCMP,        IDCMP_CLOSEWINDOW,
  772.             LAWN_HelpHook,        &GuideHook,
  773.             LAWN_Parent,        Parent,
  774.             WA_DepthGadget,        TRUE,
  775.             WA_CloseGadget,        TRUE,
  776.             WA_DragBar,        TRUE,
  777.             WA_RMBTrap,        TRUE,
  778.             WA_Activate,        TRUE,
  779.             WA_SimpleRefresh,    TRUE,
  780.         TAG_DONE))
  781.         {
  782.             struct IntuiMessage    *Message;
  783.             BOOL             Done = FALSE;
  784.             ULONG             MsgClass;
  785.             struct Gadget        *MsgGadget;
  786.             UWORD             MsgCode;
  787.             LONG             Type;
  788.             STRPTR             Contents;
  789.  
  790.             GuideContext(CONTEXT_LIBS);
  791.  
  792.             PushWindow(PanelWindow);
  793.  
  794.             LT_ShowWindow(Handle,TRUE);
  795.  
  796.             do
  797.             {
  798.                 if(Wait(PORTMASK(PanelWindow -> UserPort) | SIG_BREAK) & SIG_BREAK)
  799.                     break;
  800.  
  801.                 while(Message = (struct IntuiMessage *)LT_GetIMsg(Handle))
  802.                 {
  803.                     MsgClass    = Message -> Class;
  804.                     MsgCode        = Message -> Code;
  805.                     MsgGadget    = (struct Gadget *)Message -> IAddress;
  806.  
  807.                     LT_ReplyIMsg(Message);
  808.  
  809.                     if(MsgClass == IDCMP_CLOSEWINDOW)
  810.                         Done = TRUE;
  811.  
  812.                     if(MsgClass == IDCMP_GADGETUP)
  813.                     {
  814.                         switch(MsgGadget -> GadgetID)
  815.                         {
  816.                             case GAD_USE:
  817.  
  818.                                 LT_UpdateStrings(Handle);
  819.  
  820.                                 for(i = 0 ; i <= TRANSFERSIG_BINARYDOWNLOAD ; i++)
  821.                                     PrivateConfig -> TransferConfig -> Signatures[i] . Length = TranslateString(Signatures[i],PrivateConfig -> TransferConfig -> Signatures[i] . Signature);
  822.  
  823.                                 UseIt = Done = TRUE;
  824.  
  825.                                 break;
  826.  
  827.                             case GAD_CANCEL:
  828.  
  829.                                 Done = TRUE;
  830.  
  831.                                 break;
  832.  
  833.                             case GAD_DEFAULT_NAME:
  834.                             case GAD_ASCII_UPLOAD_NAME:
  835.                             case GAD_ASCII_DOWNLOAD_NAME:
  836.                             case GAD_TEXT_UPLOAD_NAME:
  837.                             case GAD_TEXT_DOWNLOAD_NAME:
  838.                             case GAD_BINARY_UPLOAD_NAME:
  839.                             case GAD_BINARY_DOWNLOAD_NAME:
  840.  
  841.                                 switch(LT_GetAttributes(Handle,MsgGadget -> GadgetID - 1,TAG_DONE))
  842.                                 {
  843.                                     case XFER_XPR:
  844.  
  845.                                         FindLibDev(PanelWindow,LT_GetString(Handle,MsgGadget -> GadgetID),NT_LIBRARY,NULL);
  846.  
  847.                                         break;
  848.  
  849.                                     case XFER_EXTERNALPROGRAM:
  850.  
  851.                                         FindProgram(PanelWindow,LT_GetString(Handle,MsgGadget -> GadgetID),NULL);
  852.  
  853.                                         break;
  854.                                 }
  855.  
  856.                                 break;
  857.  
  858.                             case GAD_DEFAULT_TYPE:
  859.                             case GAD_ASCII_UPLOAD_TYPE:
  860.                             case GAD_ASCII_DOWNLOAD_TYPE:
  861.                             case GAD_TEXT_UPLOAD_TYPE:
  862.                             case GAD_TEXT_DOWNLOAD_TYPE:
  863.                             case GAD_BINARY_UPLOAD_TYPE:
  864.                             case GAD_BINARY_DOWNLOAD_TYPE:
  865.  
  866.                                 LT_SetAttributes(Handle,MsgGadget -> GadgetID + 1,
  867.                                     GA_Disabled,    MsgCode == XFER_DEFAULT || MsgCode == XFER_INTERNAL,
  868.                                 TAG_DONE);
  869.  
  870.                                 LT_SetAttributes(Handle,MsgGadget -> GadgetID + 2,
  871.                                     GA_Disabled,    MsgCode == XFER_DEFAULT || MsgCode == XFER_INTERNAL,
  872.                                 TAG_DONE);
  873.  
  874.                                 LT_SetAttributes(Handle,MsgGadget -> GadgetID + 3,
  875.                                     GA_Disabled,    MsgCode == XFER_DEFAULT || MsgCode == XFER_EXTERNALPROGRAM,
  876.                                 TAG_DONE);
  877.  
  878.                                 break;
  879.  
  880.                             case GAD_DEFAULT_PREFS:
  881.                             case GAD_ASCII_UPLOAD_PREFS:
  882.                             case GAD_ASCII_DOWNLOAD_PREFS:
  883.                             case GAD_TEXT_UPLOAD_PREFS:
  884.                             case GAD_TEXT_DOWNLOAD_PREFS:
  885.                             case GAD_BINARY_UPLOAD_PREFS:
  886.                             case GAD_BINARY_DOWNLOAD_PREFS:
  887.  
  888.                                 Type        = LT_GetAttributes(Handle,MsgGadget -> GadgetID - 3,TAG_DONE);
  889.                                 Contents    = LT_GetString(Handle,MsgGadget -> GadgetID - 2);
  890.  
  891.                                 if(Type == XFER_XPR)
  892.                                 {
  893.                                     if(Contents[0])
  894.                                     {
  895.                                         LT_LockWindow(PanelWindow);
  896.  
  897.                                         if(ChangeProtocol(Contents,Type))
  898.                                         {
  899.                                             if(XProtocolBase)
  900.                                             {
  901.                                                 XprIO -> xpr_filename = NULL;
  902.  
  903.                                                 XPRCommandSelected = FALSE;
  904.  
  905.                                                 ClearSerial();
  906.  
  907.                                                 NewOptions = FALSE;
  908.  
  909.                                                 TransferBits = XProtocolSetup(XprIO);
  910.  
  911.                                                 RestartSerial();
  912.  
  913.                                                 DeleteTransferPanel(TRUE);
  914.  
  915.                                                     /* Successful? */
  916.  
  917.                                                 if(!(TransferBits & XPRS_SUCCESS))
  918.                                                 {
  919.                                                     ShowRequest(PanelWindow,LocaleString(MSG_GLOBAL_FAILED_TO_SET_UP_PROTOCOL_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT),LastXprLibrary);
  920.  
  921.                                                     CloseLibrary(XProtocolBase);
  922.  
  923.                                                     XProtocolBase = NULL;
  924.  
  925.                                                     LastXprLibrary[0] = 0;
  926.  
  927.                                                     TransferBits = 0;
  928.  
  929.                                                     SetTransferMenu(TRUE);
  930.                                                 }
  931.                                                 else
  932.                                                     SaveProtocolOpts();
  933.                                             }
  934.                                         }
  935.  
  936.                                         ResetProtocol();
  937.  
  938.                                         LT_UnlockWindow(PanelWindow);
  939.                                     }
  940.                                 }
  941.  
  942.                                 if(Type == XFER_INTERNAL)
  943.                                 {
  944.                                     LT_LockWindow(PanelWindow);
  945.  
  946.                                     ASCIITransferPanel(PanelWindow,PrivateConfig);
  947.  
  948.                                     LT_UnlockWindow(PanelWindow);
  949.  
  950.                                     LT_ShowWindow(Handle,TRUE);
  951.                                 }
  952.  
  953.                                 break;
  954.                         }
  955.                     }
  956.  
  957.                     if(MsgClass == IDCMP_IDCMPUPDATE)
  958.                     {
  959.                         switch(MsgGadget -> GadgetID)
  960.                         {
  961.                             case GAD_DEFAULT_SENDSIGNATURE:
  962.                             case GAD_ASCII_UPLOAD_SIGNATURE:
  963.                             case GAD_TEXT_UPLOAD_SIGNATURE:
  964.                             case GAD_BINARY_UPLOAD_SIGNATURE:
  965.  
  966.                                 LT_LockWindow(PanelWindow);
  967.  
  968.                                 if(SignaturePanel(PanelWindow,SharedBuffer,FALSE))
  969.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,GTST_String,SharedBuffer,TAG_DONE);
  970.  
  971.                                 LT_UnlockWindow(PanelWindow);
  972.  
  973.                                 LT_ShowWindow(Handle,TRUE);
  974.                                 break;
  975.  
  976.                             case GAD_DEFAULT_RECEIVESIGNATURE:
  977.                             case GAD_ASCII_DOWNLOAD_SIGNATURE:
  978.                             case GAD_TEXT_DOWNLOAD_SIGNATURE:
  979.                             case GAD_BINARY_DOWNLOAD_SIGNATURE:
  980.  
  981.                                 LT_LockWindow(PanelWindow);
  982.  
  983.                                 if(SignaturePanel(PanelWindow,SharedBuffer,TRUE))
  984.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,GTST_String,SharedBuffer,TAG_DONE);
  985.  
  986.                                 LT_UnlockWindow(PanelWindow);
  987.  
  988.                                 LT_ShowWindow(Handle,TRUE);
  989.                                 break;
  990.  
  991.                             default:
  992.  
  993.                                 Type = LT_GetAttributes(Handle,MsgGadget -> GadgetID - 1,TAG_DONE);
  994.  
  995.                                 if(Type == XFER_XPR)
  996.                                 {
  997.                                     LT_LockWindow(PanelWindow);
  998.  
  999.                                     strcpy(SharedBuffer,(STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  1000.  
  1001.                                     if(PickFile(PanelWindow,"Libs:","xpr#?.library",LocaleString(MSG_LIBPANEL_SELECT_DEFAULT_TRANSFER_LIBRARY_TXT + (MsgGadget -> GadgetID - GAD_DEFAULT_TYPE) / 4),SharedBuffer,NT_LIBRARY))
  1002.                                     {
  1003.                                         FindLibDev(PanelWindow,SharedBuffer,NT_LIBRARY,NULL);
  1004.  
  1005.                                         LT_SetAttributes(Handle,MsgGadget -> GadgetID,GTST_String,SharedBuffer,TAG_DONE);
  1006.                                     }
  1007.  
  1008.                                     LT_UnlockWindow(PanelWindow);
  1009.  
  1010.                                     LT_ShowWindow(Handle,TRUE);
  1011.                                 }
  1012.  
  1013.                                 if(Type == XFER_EXTERNALPROGRAM)
  1014.                                 {
  1015.                                     LT_LockWindow(PanelWindow);
  1016.  
  1017.                                     Contents = LT_GetString(Handle,MsgGadget -> GadgetID);
  1018.  
  1019.                                     if(ExternalCommandPanel(PanelWindow,Contents))
  1020.                                     {
  1021.                                         FindProgram(PanelWindow,Contents,NULL);
  1022.  
  1023.                                         LT_SetAttributes(Handle,MsgGadget -> GadgetID,GTST_String,Contents,TAG_DONE);
  1024.                                     }
  1025.  
  1026.                                     LT_UnlockWindow(PanelWindow);
  1027.  
  1028.                                     LT_ShowWindow(Handle,TRUE);
  1029.                                 }
  1030.  
  1031.                                 break;
  1032.                         }
  1033.                     }
  1034.                 }
  1035.             }
  1036.             while(!Done);
  1037.  
  1038.             PopWindow();
  1039.         }
  1040.  
  1041.         LT_DeleteHandle(Handle);
  1042.     }
  1043.  
  1044.     FreeVecPooled(Signatures[0]);
  1045.  
  1046.     if(UseIt)
  1047.     {
  1048.         if(Config -> MiscConfig -> ProtectiveMode && !PrivateConfig -> TransferConfig -> OverridePath)
  1049.         {
  1050.             STRPTR    Library    = NULL,
  1051.                 Path    = NULL;
  1052.  
  1053.             if(PrivateConfig -> TransferConfig -> DefaultType == XFER_XPR && PrivateConfig -> TransferConfig -> DefaultLibrary[0])
  1054.             {
  1055.                 Library    = PrivateConfig -> TransferConfig -> DefaultLibrary;
  1056.                 Path    = PrivateConfig -> PathConfig -> BinaryDownloadPath;
  1057.             }
  1058.  
  1059.             if(PrivateConfig -> TransferConfig -> ASCIIDownloadType == XFER_XPR && PrivateConfig -> TransferConfig -> ASCIIDownloadLibrary[0])
  1060.             {
  1061.                 Library    = PrivateConfig -> TransferConfig -> ASCIIDownloadLibrary;
  1062.                 Path    = PrivateConfig -> PathConfig -> ASCIIDownloadPath;
  1063.             }
  1064.  
  1065.             if(PrivateConfig -> TransferConfig -> TextDownloadType == XFER_XPR && PrivateConfig -> TransferConfig -> TextDownloadLibrary[0])
  1066.             {
  1067.                 Library    = PrivateConfig -> TransferConfig -> TextDownloadLibrary;
  1068.                 Path    = PrivateConfig -> PathConfig -> TextDownloadPath;
  1069.             }
  1070.  
  1071.             if(PrivateConfig -> TransferConfig -> BinaryDownloadType == XFER_XPR && PrivateConfig -> TransferConfig -> BinaryDownloadLibrary[0])
  1072.             {
  1073.                 Library    = PrivateConfig -> TransferConfig -> BinaryDownloadLibrary;
  1074.                 Path    = PrivateConfig -> PathConfig -> BinaryDownloadPath;
  1075.             }
  1076.  
  1077.             if(Library && Path)
  1078.             {
  1079.                 UBYTE LocalBuffer[MAX_FILENAME_LENGTH];
  1080.  
  1081.                 if(*Path == 0)
  1082.                 {
  1083.                     if(GetCurrentDirName(LocalBuffer,MAX_FILENAME_LENGTH))
  1084.                         Path = LocalBuffer;
  1085.                 }
  1086.  
  1087.                 if(ShowRequest(Window,LocaleString(MSG_XPR_PATH_TXT),LocaleString(MSG_GLOBAL_YES_NO_TXT),Library,Path))
  1088.                     PrivateConfig -> TransferConfig -> OverridePath = TRUE;
  1089.             }
  1090.         }
  1091.     }
  1092.  
  1093.     if(UseIt)
  1094.         SwapConfig(LocalConfig,PrivateConfig);
  1095.     else
  1096.         SaveConfig(LocalConfig,PrivateConfig);
  1097.  
  1098.     return(UseIt);
  1099. }
  1100.