home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / datafiles / text / c_manual / intuition / screens / example4.c < prev    next >
C/C++ Source or Header  |  1995-02-27  |  5KB  |  141 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:    Example4.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.                                        */
  23.  
  24.  
  25.  
  26. /* If your program is using Intuition you should include intuition.h: */
  27. #include <intuition/intuition.h>
  28.  
  29.  
  30.  
  31. struct IntuitionBase *IntuitionBase;
  32.  
  33.  
  34.  
  35. /* Declare two pointer to a Screen structure: */ 
  36. struct Screen *my_screen1;
  37. struct Screen *my_screen2;
  38.  
  39. /* Declare and initialize your NewScreen structure for screen 1: */
  40. struct NewScreen my_new_screen1=
  41. {
  42.   0,            /* LeftEdge  Should always be 0. */
  43.   0,            /* TopEdge   Top of the display.*/
  44.   320,          /* Width     We are using a low-resolution screen. */
  45.   100,          /* Height    */
  46.   5,            /* Depth     32 colours. */
  47.   0,            /* DetailPen Text should be drawn with colour reg. 0 */
  48.   1,            /* BlockPen  Blocks should be drawn with colour reg. 1 */
  49.   NULL,         /* ViewModes No special modes. (Low-res, Non-Interlaced) */
  50.   CUSTOMSCREEN, /* Type      Your own customized screen. */
  51.   NULL,         /* Font      Default font. */
  52.   "MY SCREEN1", /* Title     The screen' title. */
  53.   NULL,         /* Gadget    Must for the moment be NULL. */
  54.   NULL          /* BitMap    No special CustomBitMap. */
  55. };
  56.  
  57. /* Declare and initialize your NewScreen structure for screen 2: */
  58. struct NewScreen my_new_screen2=
  59. {
  60.   0,            /* LeftEdge  Should always be 0. */
  61.   105,          /* TopEdge   Top of the display.*/
  62.   640,          /* Width     We are using a high-resolution screen. */
  63.   95,           /* Height    */
  64.   4,            /* Depth     16 colours. */
  65.   0,            /* DetailPen Text should be drawn with colour reg. 0 */
  66.   1,            /* BlockPen  Blocks should be drawn with colour reg. 1 */
  67.   HIRES,        /* ViewModes High-resolution, Non-Interlaced */
  68.   CUSTOMSCREEN, /* Type      Your own customized screen. */
  69.   NULL,         /* Font      Default font. */
  70.   "MY SCREEN2", /* Title     The screen' title. */
  71.   NULL,         /* Gadget    Must for the moment be NULL. */
  72.   NULL          /* BitMap    No special CustomBitMap. */
  73. };
  74.  
  75.  
  76.  
  77. main()
  78. {
  79.   /* Open the Intuition Library: */
  80.   IntuitionBase = (struct IntuitionBase *)
  81.     OpenLibrary( "intuition.library", 0 );
  82.   
  83.   if( IntuitionBase == NULL )
  84.     exit(); /* Could NOT open the Intuition Library! */
  85.   
  86.  
  87.  
  88.   /* We will now try to open the first screen: */
  89.   my_screen1 = (struct Screen *) OpenScreen( &my_new_screen1 );
  90.   
  91.   /* Have we opened screen1 succesfully? */
  92.   if(my_screen1 == NULL)
  93.   {
  94.     /* Could NOT open the Screen1! */
  95.     
  96.     /* Close the Intuition Library since we have opened it: */
  97.     CloseLibrary( IntuitionBase );
  98.  
  99.     exit();  
  100.   }
  101.  
  102.  
  103.  
  104.   /* We will now try to open the second screen: */
  105.   my_screen2 = (struct Screen *) OpenScreen( &my_new_screen2 );
  106.   
  107.   /* Have we opened screen2 succesfully? */
  108.   if(my_screen2 == NULL)
  109.   {
  110.     /* Could NOT open Screen2! */
  111.     
  112.     /* Close Screen1 before we leave since we have opened it: */
  113.     CloseScreen( my_screen1 );
  114.     
  115.     /* Close the Intuition Library since we have opened it: */
  116.     CloseLibrary( IntuitionBase );
  117.  
  118.     exit();  
  119.   }
  120.  
  121.  
  122.  
  123.   /* We have opened the screens, and everything seems to be OK. */
  124.   /* Wait for 30 seconds: */
  125.   Delay( 50 * 30);
  126.  
  127.  
  128.  
  129.   /* We should always close the screens we have opened before we leave: */
  130.   CloseScreen( my_screen2 );
  131.   CloseScreen( my_screen1 );
  132.  
  133.  
  134.   
  135.   /* Close the Intuition Library since we have opened it: */
  136.   CloseLibrary( IntuitionBase );
  137.   
  138.   /* THE END */
  139. }
  140.  
  141.