home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / datafiles / text / c_manual / intuition / screens / example5.c < prev    next >
C/C++ Source or Header  |  1995-02-27  |  5KB  |  160 lines

  1. /***********************************************************/
  2. /*                                                         */
  3. /* Amiga C Encyclopedia (ACE) V3.0      Amiga C Club (ACC) */
  4. /* -------------------------------      ------------------ */
  5. /*                                                         */
  6. /* Book:    ACM Intuition               Amiga C Club       */
  7. /* Chapter: Screens                     Tulevagen 22       */
  8. /* File:    Example5.c                  181 41  LIDINGO    */
  9. /* Author:  Anders Bjerin               SWEDEN             */
  10. /* Date:    92-05-01                                       */
  11. /* Version: 1.10                                           */
  12. /*                                                         */
  13. /*   Copyright 1992, Anders Bjerin - Amiga C Club (ACC)    */
  14. /*                                                         */
  15. /* Registered members may use this program freely in their */
  16. /*     own commercial/noncommercial programs/articles.     */
  17. /*                                                         */
  18. /***********************************************************/
  19.  
  20. /* This program will open two screens, one (low-resolution 32 colours) */
  21. /* at the top of the display, and the other one (high-resolution 16    */
  22. /* colours) a bit further down. After 10 seconds the low-resolution    */
  23. /* screen will move down 75 lines. After another 10 seconds it will be */
  24. /* put in front of all other screens. 10 seconds later it will move    */
  25. /* down another 75 lines. The program will wait 10 seconds before the  */
  26. /* screens are closed and the program exits.                           */
  27.  
  28.  
  29. /* If your program is using Intuition you should include intuition.h: */
  30. #include <intuition/intuition.h>
  31.  
  32.  
  33.  
  34. struct IntuitionBase *IntuitionBase;
  35.  
  36.  
  37.  
  38. /* Declare two pointer to a Screen structure: */ 
  39. struct Screen *my_screen1;
  40. struct Screen *my_screen2;
  41.  
  42. /* Declare and initialize your NewScreen structure for screen 1: */
  43. struct NewScreen my_new_screen1=
  44. {
  45.   0,            /* LeftEdge  Should always be 0. */
  46.   0,            /* TopEdge   Top of the display.*/
  47.   320,          /* Width     We are using a low-resolution screen. */
  48.   100,          /* Height    */
  49.   5,            /* Depth     32 colours. */
  50.   0,            /* DetailPen Text should be drawn with colour reg. 0 */
  51.   1,            /* BlockPen  Blocks should be drawn with colour reg. 1 */
  52.   NULL,         /* ViewModes No special modes. (Low-res, Non-Interlaced) */
  53.   CUSTOMSCREEN, /* Type      Your own customized screen. */
  54.   NULL,         /* Font      Default font. */
  55.   "MY SCREEN1", /* Title     The screen' title. */
  56.   NULL,         /* Gadget    Must for the moment be NULL. */
  57.   NULL          /* BitMap    No special CustomBitMap. */
  58. };
  59.  
  60. /* Declare and initialize your NewScreen structure for screen 2: */
  61. struct NewScreen my_new_screen2=
  62. {
  63.   0,            /* LeftEdge  Should always be 0. */
  64.   105,          /* TopEdge   Top of the display.*/
  65.   640,          /* Width     We are using a low-resolution screen. */
  66.   95,           /* Height    */
  67.   4,            /* Depth     16 colours. */
  68.   0,            /* DetailPen Text should be drawn with colour reg. 0 */
  69.   1,            /* BlockPen  Blocks should be drawn with colour reg. 1 */
  70.   HIRES,        /* ViewModes High-resolution, Non-Interlaced */
  71.   CUSTOMSCREEN, /* Type      Your own customized screen. */
  72.   NULL,         /* Font      Default font. */
  73.   "MY SCREEN2", /* Title     The screen' title. */
  74.   NULL,         /* Gadget    Must for the moment be NULL. */
  75.   NULL          /* BitMap    No special CustomBitMap. */
  76. };
  77.  
  78.  
  79.  
  80. main()
  81. {
  82.   /* Open the Intuition Library: */
  83.   IntuitionBase = (struct IntuitionBase *)
  84.     OpenLibrary( "intuition.library", 0 );
  85.   
  86.   if( IntuitionBase == NULL )
  87.     exit(); /* Could NOT open the Intuition Library! */
  88.   
  89.  
  90.  
  91.   /* We will now try to open the first screen: */
  92.   my_screen1 = (struct Screen *) OpenScreen( &my_new_screen1 );
  93.   
  94.   /* Have we opened screen1 succesfully? */
  95.   if(my_screen1 == NULL)
  96.   {
  97.     /* Could NOT open the Screen1! */
  98.     
  99.     /* Close the Intuition Library since we have opened it: */
  100.     CloseLibrary( IntuitionBase );
  101.  
  102.     exit();  
  103.   }
  104.  
  105.  
  106.  
  107.   /* We will now try to open the second screen: */
  108.   my_screen2 = (struct Screen *) OpenScreen( &my_new_screen2 );
  109.   
  110.   /* Have we opened screen2 succesfully? */
  111.   if(my_screen2 == NULL)
  112.   {
  113.     /* Could NOT open Screen2! */
  114.     
  115.     /* Close Screen1 before we leave since we have opened it: */
  116.     CloseScreen( my_screen1 );
  117.     
  118.     /* Close the Intuition Library since we have opened it: */
  119.     CloseLibrary( IntuitionBase );
  120.  
  121.     exit();  
  122.   }
  123.  
  124.  
  125.  
  126.   /* We have opened the screens, and everything seems to be OK. */
  127.  
  128.   /* Wait for 10 seconds: */
  129.   Delay( 50 * 10);
  130.  
  131.   /* Move the low-resolution screen down 75 lines: */
  132.   MoveScreen( my_screen1, 0, 75 );
  133.  
  134.   /* Wait for 10 seconds: */
  135.   Delay( 50 * 10);
  136.  
  137.   /* Put the low-resolution screen in front of all other screens: */
  138.   ScreenToFront( my_screen1 );
  139.  
  140.   /* Wait for 10 seconds: */
  141.   Delay( 50 * 10);
  142.  
  143.   /* Move the low-resolution screen down another 75 lines: */
  144.   MoveScreen( my_screen1, 0, 75 );
  145.  
  146.   /* Wait for 10 seconds: */
  147.   Delay( 50 * 10);
  148.  
  149.  
  150.   /* We should always close the screens we have opened before we leave: */
  151.   CloseScreen( my_screen2 );
  152.   CloseScreen( my_screen1 );
  153.  
  154.  
  155.   
  156.   /* Close the Intuition Library since we have opened it: */
  157.   CloseLibrary( IntuitionBase );
  158.   
  159.   /* THE END */
  160. }