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

  1. /* $Revision Header * Header built automatically - do not edit! *************
  2.  *
  3.  *    (C) Copyright 1990 by Olaf 'Olsen' Barthel & MXM
  4.  *
  5.  *    Name .....: UploadPanel.c
  6.  *    Created ..: Friday 03-May-91 17:43
  7.  *    Revision .: 0
  8.  *
  9.  *    Date            Author          Comment
  10.  *    =========       ========        ====================
  11.  *    03-May-91       Olsen           Created this file!
  12.  *
  13.  * $Revision Header ********************************************************/
  14.  
  15. #include "TermGlobal.h"
  16.  
  17. STATIC struct NewMenu UploadMenu[] =
  18. {
  19.     { NM_TITLE, "Project",         0 , 0, 0, (APTR)0},
  20.     {  NM_ITEM, "Text Upload",    "T", 0, 0, (APTR)1},
  21.     {  NM_ITEM, "Binary Upload",    "B", 0, 0, (APTR)2},
  22.     { NM_END, 0,             0 , 0, 0, (APTR)0}
  23. };
  24.  
  25. #define WIDTH        (236)
  26. #define HEIGHT        (53)
  27.  
  28. STATIC struct Gadget *
  29. CreateAllGadgets(struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
  30. {
  31.     struct Gadget        *Gadget;
  32.     struct NewGadget     NewGadget;
  33.     UWORD             Counter = 0;
  34.  
  35.     if(Gadget = CreateContext(GadgetList))
  36.     {
  37.         NewGadget . ng_Width        = 216;
  38.         NewGadget . ng_Height        = 12;
  39.         NewGadget . ng_GadgetText    = NULL;
  40.         NewGadget . ng_TextAttr        = &DefaultFont;
  41.         NewGadget . ng_VisualInfo    = VisualInfo;
  42.         NewGadget . ng_GadgetID        = Counter;
  43.         NewGadget . ng_Flags        = NG_HIGHLABEL;
  44.         NewGadget . ng_LeftEdge        = 10;
  45.         NewGadget . ng_TopEdge        = 1 + TopEdge;
  46.  
  47.         GadgetArray[Counter++] = Gadget = CreateGadget(TEXT_KIND,Gadget,&NewGadget,
  48.             GTTX_Text,        "Select ZModem Upload Type:",
  49.             GTTX_Border,        TRUE,
  50.         TAG_DONE);
  51.  
  52.         NewGadget . ng_GadgetText    = "_Text Upload";
  53.         NewGadget . ng_GadgetID        = Counter;
  54.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 1;
  55.  
  56.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  57.             GT_Underscore,    '_',
  58.         TAG_DONE);
  59.  
  60.         NewGadget . ng_GadgetText    = "_Binary Upload";
  61.         NewGadget . ng_GadgetID        = Counter;
  62.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 1;
  63.  
  64.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  65.             GT_Underscore,    '_',
  66.         TAG_DONE);
  67.     }
  68.  
  69.     return(Gadget);
  70. }
  71.  
  72. BYTE
  73. UploadPanel()
  74. {
  75.     struct Window    *PanelWindow;
  76.     struct Menu    *PanelMenu;
  77.     struct Gadget    *GadgetList;
  78.     struct Gadget    *GadgetArray[3];
  79.     BYTE         Selection;
  80.  
  81.     if(CreateAllGadgets(&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
  82.     {
  83.         if(PanelMenu = CreateMenus(UploadMenu,
  84.             GTMN_FrontPen, 0,
  85.         TAG_DONE))
  86.         {
  87.             if(LayoutMenus(PanelMenu,VisualInfo,
  88.                 GTMN_TextAttr,&DefaultFont,
  89.             TAG_DONE))
  90.             {
  91.                 if(PanelWindow = OpenWindowTags(NULL,
  92.                     WA_Left,    (Screen -> Width - WIDTH) >> 1,
  93.                     WA_Top,        (Screen -> Height - HEIGHT) >> 1,
  94.                     WA_Width,    WIDTH,
  95.                     WA_Height,    HEIGHT,
  96.  
  97.                     WA_Activate,    TRUE,
  98.                     WA_DragBar,    TRUE,
  99.                     WA_DepthGadget,    TRUE,
  100.                     WA_RMBTrap,    TRUE,
  101.                     WA_DepthGadget,    TRUE,
  102.                     WA_CustomScreen,Screen,
  103.  
  104.                     WA_IDCMP,    IDCMP_MENUPICK | BUTTONIDCMP,
  105.  
  106.                     WA_Title, "Upload Type",
  107.                 TAG_DONE))
  108.                 {
  109.                     struct IntuiMessage    *Massage;
  110.                     ULONG             Class,Code;
  111.                     struct Gadget        *Gadget;
  112.                     BYTE             Terminated = FALSE;
  113.  
  114.                     PushWindow(PanelWindow);
  115.  
  116.                     AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
  117.                     RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
  118.                     GT_RefreshWindow(PanelWindow,NULL);
  119.  
  120.                     SetMenuStrip(PanelWindow,PanelMenu);
  121.  
  122.                     PanelWindow -> Flags &= ~WFLG_RMBTRAP;
  123.  
  124.                     while(!Terminated)
  125.                     {
  126.                         WaitPort(PanelWindow -> UserPort);
  127.  
  128.                         while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
  129.                         {
  130.                             Class    = Massage -> Class;
  131.                             Code    = Massage -> Code;
  132.                             Gadget    = (struct Gadget *)Massage -> IAddress;
  133.  
  134.                             GT_ReplyIMsg(Massage);
  135.  
  136.                             if(Class == IDCMP_MENUPICK)
  137.                             {
  138.                                 struct MenuItem *MenuItem;
  139.  
  140.                                 while(Code != MENUNULL)
  141.                                 {
  142.                                     MenuItem = ItemAddress(PanelMenu,Code);
  143.  
  144.                                     Selection = (ULONG)MENU_USERDATA(MenuItem);
  145.  
  146.                                     Terminated = TRUE;
  147.  
  148.                                     Code = MenuItem -> NextSelect;
  149.                                 }
  150.                             }
  151.  
  152.                             if(Class == IDCMP_GADGETUP)
  153.                             {
  154.                                 Selection = Gadget -> GadgetID;
  155.  
  156.                                 Terminated = TRUE;
  157.                             }
  158.                         }
  159.                     }
  160.  
  161.                     PanelWindow -> Flags |= WFLG_RMBTRAP;
  162.  
  163.                     ClearMenuStrip(PanelWindow);
  164.  
  165.                     RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
  166.  
  167.                     PopWindow();
  168.  
  169.                     CloseWindow(PanelWindow);
  170.                 }
  171.             }
  172.  
  173.             FreeMenus(PanelMenu);
  174.         }
  175.  
  176.         FreeGadgets(GadgetList);
  177.     }
  178.  
  179.     return(Selection);
  180. }
  181.