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

  1. /* $Revision Header * Header built automatically - do not edit! *************
  2.  *
  3.  *    (C) Copyright 1990 by Olaf 'Olsen' Barthel & MXM
  4.  *
  5.  *    Name .....: TransferPanel.c
  6.  *    Created ..: Monday 21-Jan-91 20:12
  7.  *    Revision .: 0
  8.  *
  9.  *    Date            Author          Comment
  10.  *    =========       ========        ====================
  11.  *    21-Jan-91       Olsen           Created this file!
  12.  *
  13.  * $Revision Header ********************************************************/
  14.  
  15. #include "TermGlobal.h"
  16.  
  17. STATIC struct Gadget    *GadgetList;
  18. STATIC struct Gadget    *GadgetArray[3];
  19. STATIC BYTE         LastStatus = -1;
  20. STATIC struct Menu    *TransferMenu;
  21.  
  22. STATIC SHORT         PositionX = -1,PositionY = -1;
  23.  
  24. #define WIDTH        (70*8+20)
  25. #define HEIGHT        (16*8+24+13)
  26.  
  27. #define ORIGIN_X    10
  28. #define ORIGIN_Y    12
  29.  
  30. enum    {    MEN_ABORT=1,MEN_SKIP,MEN_QUITPANEL };
  31.  
  32. STATIC struct NewMenu NewTransferMenu[] =
  33. {
  34.     { NM_TITLE, "Project",             0 , 0, 0, (APTR)0},
  35.     {  NM_ITEM, "Abort Entire Transfer",    "A", 0, 0, (APTR)MEN_ABORT},
  36.     {  NM_ITEM, "Skip Current File",    "S", 0, 0, (APTR)MEN_SKIP},
  37.     {  NM_ITEM, NM_BARLABEL,         0 , 0, 0, (APTR)0},
  38.     {  NM_ITEM, "Quit",            "Q", 0, 0, (APTR)MEN_QUITPANEL},
  39.     { NM_END, 0,                 0 , 0, 0, (APTR)0}
  40. };
  41.  
  42. STATIC struct Gadget *
  43. CreateAllGadgets(struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
  44. {
  45.     struct Gadget        *Gadget;
  46.     struct NewGadget     NewGadget;
  47.     UWORD             Counter = 0;
  48.  
  49.     if(Gadget = CreateContext(GadgetList))
  50.     {
  51.         NewGadget . ng_TextAttr        = &DefaultFont;
  52.         NewGadget . ng_VisualInfo    = VisualInfo;
  53.  
  54.         NewGadget . ng_Width        = 208;
  55.         NewGadget . ng_Height        = 12;
  56.         NewGadget . ng_GadgetText    = "_Abort Entire Transfer";
  57.         NewGadget . ng_GadgetID        = Counter;
  58.         NewGadget . ng_Flags        = 0;
  59.         NewGadget . ng_LeftEdge        = 10;
  60.         NewGadget . ng_TopEdge        = HEIGHT - 3 - NewGadget . ng_Height;
  61.  
  62.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  63.             GT_Underscore,    '_',
  64.         TAG_DONE);
  65.  
  66.         NewGadget . ng_GadgetText    = "_Skip Current File";
  67.         NewGadget . ng_GadgetID        = Counter;
  68.         NewGadget . ng_LeftEdge        = WIDTH - 10 - NewGadget . ng_Width;
  69.  
  70.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  71.             GT_Underscore,    '_',
  72.         TAG_DONE);
  73.     }
  74.  
  75.     return(Gadget);
  76. }
  77.  
  78. VOID
  79. TransferInfo(SHORT X,SHORT Y,BYTE *String,...)
  80. {
  81.     if(String && TransferWindow)
  82.     {
  83.         va_list    VarArgs;
  84.  
  85.         va_start(VarArgs,String);
  86.         VSPrintf(SharedBuffer,String,VarArgs);
  87.         va_end(VarArgs);
  88.  
  89.         if(String[0] == '%' && String[2] == 'd')
  90.         {
  91.             strcat(SharedBuffer,"              ");
  92.             SharedBuffer[14] = 0;
  93.         }
  94.  
  95.         Move(TransferWindow -> RPort,ORIGIN_X + X * 8,ORIGIN_Y + 6 + Y * 8);
  96.         Text(TransferWindow -> RPort,SharedBuffer,strlen(SharedBuffer));
  97.     }
  98. }
  99.  
  100. BYTE
  101. TransferPanel(UBYTE *Title)
  102. {
  103.     if(Status != STATUS_DOWNLOAD && Status != STATUS_UPLOAD)
  104.     {
  105.         LastStatus = Status;
  106.  
  107.         Status = STATUS_DOWNLOAD;
  108.     }
  109.     else
  110.         LastStatus = -1;
  111.  
  112.     if(CreateAllGadgets(&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
  113.     {
  114.         if(TransferMenu = CreateMenus(NewTransferMenu,
  115.             GTMN_FrontPen, 0,
  116.         TAG_DONE))
  117.         {
  118.             if(LayoutMenus(TransferMenu,VisualInfo,
  119.                 GTMN_TextAttr,&DefaultFont,
  120.             TAG_DONE))
  121.             {
  122.                 if(PositionX == -1)
  123.                     PositionX = (Screen -> Width - WIDTH) >> 1;
  124.  
  125.                 if(PositionY == -1)
  126.                     PositionY = (Screen -> Height - HEIGHT) >> 1;
  127.  
  128.                 if(TransferWindow = OpenWindowTags(NULL,
  129.                     WA_Width,    WIDTH,
  130.                     WA_Height,    HEIGHT,
  131.  
  132.                     WA_Left,    PositionX,
  133.                     WA_Top,        PositionY,
  134.  
  135.                     WA_Activate,    TRUE,
  136.                     WA_DragBar,    TRUE,
  137.                     WA_DepthGadget,    TRUE,
  138.                     WA_CloseGadget,    TRUE,
  139.                     WA_RMBTrap,    TRUE,
  140.  
  141.                     WA_CustomScreen,Screen,
  142.  
  143.                     WA_IDCMP,    IDCMP_CLOSEWINDOW | BUTTONIDCMP | IDCMP_MENUPICK,
  144.  
  145.                     WA_Title,    Title,
  146.                 TAG_DONE))
  147.                 {
  148.                     BYTE Pen1,Pen2;
  149.  
  150.                     switch(Config . ColourMode)
  151.                     {
  152.                         case COLOUR_AMIGA:    Pen1 = 1;
  153.                                     Pen2 = 3;
  154.                                     break;
  155.  
  156.                         case COLOUR_EIGHT:    Pen1 = 4;
  157.                                     Pen2 = 7;
  158.                                     break;
  159.  
  160.                         case COLOUR_SIXTEEN:    Pen1 = 15;
  161.                                     Pen2 = 8;
  162.                                     break;
  163.  
  164.                         case COLOUR_MONO:    Pen1 = Pen2 = 1;
  165.                                     break;
  166.                     }
  167.  
  168.                     PushWindow(TransferWindow);
  169.  
  170.                     AddGList(TransferWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
  171.                     RefreshGList(GadgetList,TransferWindow,NULL,(UWORD)-1);
  172.                     GT_RefreshWindow(TransferWindow,NULL);
  173.  
  174.                     SetMenuStrip(TransferWindow,TransferMenu);
  175.  
  176.                     TransferWindow -> Flags &= ~WFLG_RMBTRAP;
  177.  
  178.                     SetAPen(TransferWindow -> RPort,Pen1);
  179.                     SetBPen(TransferWindow -> RPort,0);
  180.                     SetDrMd(TransferWindow -> RPort,JAM2);
  181.  
  182.                     TransferInfo(0, 0,"Protocol..........:");
  183.  
  184.                     TransferInfo(0, 2,"File..............:");
  185.                     TransferInfo(0, 3,"Size..............:");
  186.  
  187.                     TransferInfo(0, 5,"Bytes Transferred.:                Blocks Transferred:");
  188.                     TransferInfo(0, 6,"Block Check Type..:                Block Size........:");
  189.  
  190.                     TransferInfo(0, 8,"Estimated Time....:                Elapsed Time......:");
  191.  
  192.                     TransferInfo(0,10,"Message...........:");
  193.                     TransferInfo(0,11,"Last Error........:");
  194.  
  195.                     TransferInfo(0,13,"Number Of Errors..:                Number Of Timeouts:");
  196.  
  197.                     TransferInfo(0,15,"Packet Type.......:                Packet Delay......:");
  198.                     TransferInfo(0,16,"Characters/Second.:                Character Delay...:");
  199.  
  200.                     SetAPen(TransferWindow -> RPort,Pen2);
  201.  
  202.                     TransferInfo(20, 0,"Unknown");
  203.  
  204.                     TransferInfo(20, 2,"-");
  205.                     TransferInfo(20, 3,"-");
  206.  
  207.                     TransferInfo(20, 5,"-");
  208.                     TransferInfo(55, 5,"-");
  209.  
  210.                     TransferInfo(20, 6,"-");
  211.                     TransferInfo(55, 6,"-");
  212.  
  213.                     TransferInfo(20, 8,"-");
  214.                     TransferInfo(55, 8,"-");
  215.  
  216.                     TransferInfo(20,10,"-- None --");
  217.                     TransferInfo(20,11,"-- None --");
  218.  
  219.                     TransferInfo(20,13,"-");
  220.                     TransferInfo(55,13,"-");
  221.  
  222.                     TransferInfo(20,15,"-");
  223.                     TransferInfo(55,15,"-");
  224.  
  225.                     TransferInfo(20,16,"-");
  226.                     TransferInfo(55,16,"-");
  227.  
  228.                     return(TRUE);
  229.                 }
  230.             }
  231.         }
  232.     }
  233.  
  234.     return(FALSE);
  235. }
  236.  
  237. VOID
  238. DeleteTransferPanel()
  239. {
  240.     if(FileMatch)
  241.         MatchEnd(FileAnchor);
  242.  
  243.     if(LastStatus != -1)
  244.         Status = LastStatus;
  245.  
  246.     LastStatus = -1;
  247.  
  248.     if(TransferWindow)
  249.     {
  250.         PositionX    = TransferWindow -> LeftEdge;
  251.         PositionY    = TransferWindow -> TopEdge;
  252.  
  253.         TransferWindow -> Flags |= WFLG_RMBTRAP;
  254.  
  255.         ClearMenuStrip(TransferWindow);
  256.  
  257.         if(GadgetList)
  258.             RemoveGList(TransferWindow,GadgetList,(UWORD)-1);
  259.  
  260.         PopWindow();
  261.  
  262.         CloseWindow(TransferWindow);
  263.  
  264.         TransferWindow = NULL;
  265.     }
  266.  
  267.     if(TransferMenu)
  268.         FreeMenus(TransferMenu);
  269.  
  270.     TransferMenu = NULL;
  271.  
  272.     if(GadgetList)
  273.         FreeGadgets(GadgetList);
  274.  
  275.     GadgetList = NULL;
  276. }
  277.