home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / dev / visualarts-2.2.lha / VisualArts / Demos / Source / GraphicPattern / GraphicPattern.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-02  |  3.5 KB  |  165 lines

  1. /* ******************************************************************** */
  2. /* C code generated by:                            */
  3. /* Visual Arts Version 2.1                        */
  4. /* Copyright 1994-95 Danny Y. Wong  All rights reserved            */
  5. /* Calgary, Alberta (CANADA)                                    */
  6. /* Partial of the code is copyright by Jaba Development            */
  7. /* ******************************************************************** */
  8.  
  9. #include <VisualArts.h>
  10. #include <clib/VisualArts_protos.h>
  11.  
  12.  
  13. #include "GraphicPattern_func.c" 
  14.  
  15.  
  16. int GetPubScreen(void);
  17. void ClosePubScreen(void);
  18. int OpenGraPatWindow(char windtitle[]);
  19. void CloseGraPatWindow(void);
  20. int GraPatHandler(void);
  21. int GraPatMainHandler(void);
  22. void DrawGraPatObjs(void);
  23. int main(int argc, char *argv[]);
  24.  
  25. UBYTE                *PubScrName = "Workbench";
  26. struct DrawInfo            *ScrDrawInfo = NULL;
  27. APTR                 VisualInfo = NULL;
  28. struct Screen            *Scr = NULL;
  29. struct Window            *GraPatWnd = NULL;
  30. struct IntuiMessage         GraPatMsg;
  31. UWORD                 GraPatLeft = 60;
  32. UWORD                 GraPatTop = 54;
  33. UWORD                 GraPatWidth = 439;
  34. UWORD                 GraPatHeight = 97;
  35. struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
  36. struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
  37.  
  38.  
  39. int GetPubScreen(void)
  40. {
  41.   if (!(Scr = LockPubScreen(PubScrName)))
  42.     return(1L);
  43.  
  44.   if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
  45.     return(2L);
  46.  
  47.   if (!(ScrDrawInfo = GetScreenDrawInfo(Scr)))
  48.     return(3L);
  49.   return(0L);
  50. }
  51.  
  52. void ClosePubScreen(void)
  53. {
  54.   if (VisualInfo)
  55.     FreeVisualInfo(VisualInfo);
  56.   if (Scr)
  57.     UnlockPubScreen(NULL,  Scr);
  58.   if (ScrDrawInfo)
  59.     FreeScreenDrawInfo(Scr,  ScrDrawInfo);
  60. }
  61.  
  62. int OpenGraPatWindow(char windtitle[80])
  63. {
  64.   if (!(GraPatWnd = OpenWindowTags(NULL,
  65.       WA_Left,    GraPatLeft,
  66.       WA_Top,     GraPatTop,
  67.       WA_Width,    GraPatWidth,
  68.       WA_Height,    GraPatHeight + kWindowOffSetY,
  69.       WA_NewLookMenus, TRUE,
  70.       WA_IDCMP,    IDCMP_CLOSEWINDOW ,
  71.       WA_Flags,    WFLG_CLOSEGADGET  |  WFLG_SMART_REFRESH | 
  72.              WFLG_ACTIVATE |  WFLG_DRAGBAR ,
  73.       WA_Gadgets,    NULL,
  74.       WA_Title,    windtitle,
  75.       WA_ScreenTitle,    "Visual Arts V2.2 Copyright 1994-95 Danny Y. Wong  All Rights Reserved.",
  76.       WA_PubScreen,    Scr,
  77.       WA_MinWidth,    160,
  78.       WA_MinHeight,    50,
  79.       WA_MaxWidth,    640,
  80.       WA_MaxHeight,    200,
  81.       TAG_DONE)))
  82.           return(3L);
  83.  
  84.   InitTempArea();
  85.   GraPatWnd->RPort->TmpRas=&Temprast;
  86.   GraPatWnd->RPort->AreaInfo=&areaInfo;
  87.   DrawGraPatObjs();
  88.   GT_RefreshWindow(GraPatWnd, NULL);
  89.   return(0L);
  90. }
  91.  
  92. void CloseGraPatWindow(void)
  93. {
  94.   if (GraPatWnd)
  95.     CloseWindow(GraPatWnd);
  96. }
  97.  
  98. int GraPatHandler(void)
  99. {
  100.   struct IntuiMessage    *msg;
  101.   struct VAobject    VAObject;
  102.   int running    = 1;
  103.   ULONG class;
  104.   UWORD code;
  105.  
  106.   while (msg=GT_GetIMsg(GraPatWnd->UserPort))
  107.   {
  108.     CopyMem((char *)msg, (char *)&GraPatMsg, (long)sizeof(struct IntuiMessage));
  109.     class = msg->Class;
  110.     code  = msg->Code;
  111.  
  112.     GT_ReplyIMsg(msg);
  113.     switch(class)
  114.     {
  115.  
  116.       case IDCMP_CLOSEWINDOW:
  117.          return(0);
  118.          break;
  119.     }
  120.   }
  121.   return(running);
  122. }
  123.  
  124. void DrawGraPatObjs(void)
  125. {
  126.   GraPatDrawRects(GraPatWnd);
  127.   GraPatDrawCircles(GraPatWnd);
  128.   GraPatDrawLine(GraPatWnd);
  129.  
  130. }
  131.  
  132. int GraPatMainHandler(void)
  133. {
  134.   int running = 1;
  135.   ULONG windsig, signals;
  136.  
  137.   windsig = 1L << GraPatWnd->UserPort->mp_SigBit;
  138.  
  139.   while (running == 1)
  140.   {
  141.     signals = Wait( windsig );
  142.     if (signals & windsig)
  143.     {
  144.       running = GraPatHandler();
  145.     }
  146.   }
  147.   return(running);
  148. }
  149.  
  150. int main(int argc, char *argv[])
  151. {
  152.   int rc;
  153.  
  154.   if (!(GetPubScreen()))
  155.   {
  156.     if (!(OpenGraPatWindow("Graphic and Pattern Demo")))
  157.     {
  158.       rc = GraPatMainHandler();
  159.       CloseGraPatWindow();
  160.     }
  161.     ClosePubScreen();
  162.   }
  163.   return(0L);
  164. }
  165.