home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / applications / misc / upsey.lha / UPSey / src / UPS.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-27  |  6.9 KB  |  274 lines

  1. /* This file pre-processed with  'sed -f etc/FixGTX_c.sed <file>' */
  2. /*
  3.  *  Source machine generated by GadToolsBox V2.0b
  4.  *  which is (c) Copyright 1991-1993 Jaba Development
  5.  *
  6.  *  GUI Designed by : -- Unnamed --
  7.  */
  8.  
  9. #include <exec/types.h>
  10. #include <intuition/intuition.h>
  11. #include <intuition/classes.h>
  12. #include <intuition/classusr.h>
  13. #include <intuition/imageclass.h>
  14. #include <intuition/gadgetclass.h>
  15. #include <libraries/gadtools.h>
  16. #include <graphics/displayinfo.h>
  17. #include <graphics/gfxbase.h>
  18. #include <clib/exec_protos.h>
  19. #include <clib/intuition_protos.h>
  20. #include <clib/gadtools_protos.h>
  21. #include <clib/graphics_protos.h>
  22. #include <clib/utility_protos.h>
  23. #include <string.h>
  24. #include <functions.h>
  25.  
  26. #include "UPS.h"
  27.  
  28. struct Screen *Scr = NULL;
  29. UBYTE *PubScreenName = NULL;
  30. APTR VisualInfo = NULL;
  31. struct Window *Project0Wnd = NULL;
  32. struct Gadget *Project0GList = NULL;
  33. struct Menu *Project0Menus = NULL;
  34. struct IntuiMessage Project0Msg;
  35. UWORD Project0Zoom[4];
  36. struct Gadget *Project0Gadgets[8];
  37. UWORD Project0Left = 83;
  38. UWORD Project0Top = 26;
  39. UWORD Project0Width = 261;
  40. UWORD Project0Height = 88;
  41. UBYTE *Project0Wdt = (UBYTE *) "UPSey © BOTH Software ";
  42.  
  43. struct TextAttr topaz8 =
  44. {
  45.   (STRPTR) "topaz.font", 8, 0x00, 0x01};
  46.  
  47. struct NewMenu Project0NewMenu[] =
  48. {
  49.   NM_TITLE, (STRPTR) "Project", NULL, 0, NULL, NULL,
  50.   NM_ITEM, (STRPTR) "Hide", (STRPTR) "H", 0, 0L, (APTR) Project0Item0,
  51.   NM_ITEM, (STRPTR) NM_BARLABEL, NULL, 0, 0L, NULL,
  52.   NM_ITEM, (STRPTR) "About ...", NULL, 0, 0L, (APTR) Project0Item1,
  53.   NM_ITEM, (STRPTR) NM_BARLABEL, NULL, 0, 0L, NULL,
  54.   NM_ITEM, (STRPTR) "Quit", (STRPTR) "Q", 0, 0L, (APTR) Project0Item2,
  55.   NM_END, NULL, NULL, 0, 0L, NULL};
  56.  
  57. UWORD Project0GTypes[] =
  58. {
  59.   TEXT_KIND,
  60.   TEXT_KIND,
  61.   TEXT_KIND,
  62.   TEXT_KIND,
  63.   TEXT_KIND,
  64.   TEXT_KIND,
  65.   LISTVIEW_KIND,
  66.   TEXT_KIND
  67. };
  68.  
  69. struct NewGadget Project0NGad[] =
  70. {
  71.   121, 60, 127, 11, NULL, NULL, GD_Gadget00, 0, NULL, NULL,
  72.   121, 73, 127, 11, NULL, NULL, GD_Gadget10, 0, NULL, NULL,
  73.   129, 4, 27, 12, (UBYTE *) "GROUND", NULL, GD_Gadget20, PLACETEXT_RIGHT, NULL, NULL,
  74.   129, 17, 27, 12, (UBYTE *) "3 DAY", NULL, GD_Gadget30, PLACETEXT_RIGHT, NULL, NULL,
  75.   129, 30, 27, 12, (UBYTE *) "2 DAY", NULL, GD_Gadget40, PLACETEXT_RIGHT, NULL, NULL,
  76.   129, 43, 27, 12, (UBYTE *) "NEXT DAY", NULL, GD_Gadget50, PLACETEXT_RIGHT, NULL, NULL,
  77.   13, 4, 95, 64, NULL, NULL, GD_Gadget60, 0, NULL, (APTR) Gadget60Clicked,
  78.   14, 70, 71, 11, NULL, NULL, GD_Gadget70, 0, NULL, NULL
  79. };
  80.  
  81. ULONG *Project0GTags[] =
  82. {
  83.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  84.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  85.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  86.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  87.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  88.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  89.   (ULONG *) (GTLV_ScrollWidth), (ULONG *) 26, (ULONG *) (TAG_DONE),
  90.   (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE)
  91. };
  92.  
  93. int 
  94. SetupScreen (void)
  95. {
  96.   if (!(Scr = LockPubScreen (PubScreenName)))
  97.     return (1L);
  98.  
  99.   if (!(VisualInfo = GetVisualInfo (Scr, TAG_DONE)))
  100.     return (2L);
  101.  
  102.   return (0L);
  103. }
  104.  
  105. void 
  106. CloseDownScreen (void)
  107. {
  108.   if (VisualInfo)
  109.     {
  110.       FreeVisualInfo (VisualInfo);
  111.       VisualInfo = NULL;
  112.     }
  113.  
  114.   if (Scr)
  115.     {
  116.       UnlockPubScreen (NULL, Scr);
  117.       Scr = NULL;
  118.     }
  119. }
  120.  
  121. void 
  122. Project0Render (void)
  123. {
  124.   UWORD offx, offy;
  125.  
  126.   offx = Project0Wnd->BorderLeft;
  127.   offy = Project0Wnd->BorderTop;
  128.  
  129.  
  130.   DrawBevelBox (Project0Wnd->RPort, offx + 119, offy + 2, 130, 56, GT_VisualInfo, VisualInfo, TAG_DONE);
  131.   DrawBevelBox (Project0Wnd->RPort, offx + 6, offy + 2, 108, 65, GT_VisualInfo, VisualInfo, TAG_DONE);
  132. }
  133.  
  134. int 
  135. HandleProject0IDCMP (void)
  136. {
  137.   struct IntuiMessage *m, *mymsg;
  138.   struct MenuItem *n;
  139.   int (*func) ();
  140.   BOOL running = TRUE;
  141.  
  142.   while (Project0Wnd && (m = GT_GetIMsg (Project0Wnd->UserPort)))
  143.     {
  144.  
  145.       CopyMem ((char *) m, (char *) (mymsg = &Project0Msg), (long) sizeof (struct IntuiMessage));
  146.  
  147.       GT_ReplyIMsg (m);
  148.  
  149.       switch (Project0Msg.Class)
  150.     {
  151.  
  152.     case IDCMP_REFRESHWINDOW:
  153.       GT_BeginRefresh (Project0Wnd);
  154.       Project0Render ();
  155.       GT_EndRefresh (Project0Wnd, TRUE);
  156.       break;
  157.  
  158.     case IDCMP_CLOSEWINDOW:
  159.       running = Project0CloseWindow (mymsg);
  160.       break;
  161.  
  162.     case IDCMP_GADGETUP:
  163.     case IDCMP_GADGETDOWN:
  164.       func = (void *) ((struct Gadget *) Project0Msg.IAddress)->UserData;
  165.       running = func (mymsg);
  166.       break;
  167.  
  168.     case IDCMP_MENUPICK:
  169.       while (Project0Msg.Code != MENUNULL)
  170.         {
  171.           n = ItemAddress (Project0Menus, Project0Msg.Code);
  172.           func = (void *) (GTMENUITEM_USERDATA (n));
  173.           running = func (Project0Menus, &Project0Msg);
  174.  
  175.           if (Project0Wnd == NULL)
  176.         Project0Msg.Code = MENUNULL;
  177.           else
  178.         Project0Msg.Code = n->NextSelect;
  179.         }
  180.       break;
  181.     }
  182.     }
  183.   return (running);
  184. }
  185.  
  186. int 
  187. OpenProject0Window (void)
  188. {
  189.   struct NewGadget ng;
  190.   struct Gadget *g;
  191.   UWORD lc, tc;
  192.   UWORD offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  193.  
  194.   if (!(g = CreateContext (&Project0GList)))
  195.     return (1L);
  196.  
  197.   for (lc = 0, tc = 0; lc < Project0_CNT; lc++)
  198.     {
  199.  
  200.       CopyMem ((char *) &Project0NGad[lc], (char *) &ng, (long) sizeof (struct NewGadget));
  201.  
  202.       ng.ng_VisualInfo = VisualInfo;
  203.       ng.ng_TextAttr = &topaz8;
  204.       ng.ng_LeftEdge += offx;
  205.       ng.ng_TopEdge += offy;
  206.  
  207.       Project0Gadgets[lc] = g = CreateGadgetA ((ULONG) Project0GTypes[lc], g, &ng, (struct TagItem *) &Project0GTags[tc]);
  208.  
  209.       while (Project0GTags[tc])
  210.     tc += 2;
  211.       tc++;
  212.  
  213.       if (NOT g)
  214.     return (2L);
  215.     }
  216.  
  217.   if (!(Project0Menus = CreateMenus (Project0NewMenu, GTMN_FrontPen, 0L, TAG_DONE)))
  218.     return (3L);
  219.  
  220.   LayoutMenus (Project0Menus, VisualInfo, GTMN_TextAttr, &topaz8, TAG_DONE);
  221.  
  222.   Project0Zoom[0] = Project0Zoom[1] = 0;
  223.   if (Project0Wdt)
  224.     Project0Zoom[2] = TextLength (&Scr->RastPort, (UBYTE *) Project0Wdt, strlen ((char *) Project0Wdt)) + 80;
  225.   else
  226.     Project0Zoom[2] = 80L;
  227.   Project0Zoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  228.  
  229.   if (!(Project0Wnd = OpenWindowTags (NULL,
  230.                       WA_Left, Project0Left,
  231.                       WA_Top, Project0Top,
  232.                       WA_Width, Project0Width,
  233.                       WA_Height, Project0Height + offy,
  234.                       WA_IDCMP, TEXTIDCMP | LISTVIEWIDCMP | IDCMP_MENUPICK | IDCMP_CLOSEWINDOW | IDCMP_REFRESHWINDOW,
  235.                       WA_Flags, WFLG_DRAGBAR | WFLG_DEPTHGADGET | WFLG_CLOSEGADGET | WFLG_SMART_REFRESH | WFLG_ACTIVATE,
  236.                       WA_Gadgets, Project0GList,
  237.                       WA_Title, Project0Wdt,
  238.                       WA_PubScreen, Scr,
  239.                       WA_Zoom, Project0Zoom,
  240.                       TAG_DONE)))
  241.     return (4L);
  242.  
  243.   SetMenuStrip (Project0Wnd, Project0Menus);
  244.   GT_RefreshWindow (Project0Wnd, NULL);
  245.  
  246.   Project0Render ();
  247.  
  248.   return (0L);
  249. }
  250.  
  251. void 
  252. CloseProject0Window (void)
  253. {
  254.   if (Project0Menus)
  255.     {
  256.       ClearMenuStrip (Project0Wnd);
  257.       FreeMenus (Project0Menus);
  258.       Project0Menus = NULL;
  259.     }
  260.  
  261.  
  262.   if (Project0Wnd)
  263.     {
  264.       CloseWindow (Project0Wnd);
  265.       Project0Wnd = NULL;
  266.     }
  267.  
  268.   if (Project0GList)
  269.     {
  270.       FreeGadgets (Project0GList);
  271.       Project0GList = NULL;
  272.     }
  273. }
  274.