home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / datafiles / text / c_manual / intuition / requesters / example3.c < prev    next >
C/C++ Source or Header  |  1995-02-27  |  6KB  |  137 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: Requesters                  Tulevagen 22       */
  8. /* File:    Example3.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 example opens a Simple requester by calling the function        */
  21. /* AutoRequest. It displays a message "Insert a disk in any drive!",    */
  22. /* and allows the user to choose between "Yes" and "No". The program    */
  23. /* will continue to open the requester until the user has chosen "Yes", */
  24. /* or the user has inserted a disk.                                     */
  25.  
  26.  
  27.  
  28. #include <intuition/intuition.h>
  29.  
  30.  
  31.  
  32. struct IntuitionBase *IntuitionBase;
  33.  
  34.  
  35.  
  36. /* The "body" text for the requester: */
  37. struct IntuiText my_body_text=
  38. {
  39.   0,       /* FrontPen, colour 0 (blue). */
  40.   0,       /* BackPen, not used since JAM1. */
  41.   JAM1,    /* DrawMode, do not change the background. */
  42.   15,      /* LedtEdge, 15 pixels out. */
  43.   5,       /* TopEdge, 5 lines down. */
  44.   NULL,    /* ITextFont, default font. */
  45.   "Insert a disk in any drive!", /* IText, the body text. */
  46.   NULL,    /* NextText, no more IntuiText structures link. */
  47. };
  48.  
  49. /* The positive text: */
  50. /* (Printed inside the left gadget) */
  51. struct IntuiText my_positive_text=
  52. {
  53.   0,       /* FrontPen, colour 0 (blue). */
  54.   0,       /* BackPen, not used since JAM1. */
  55.   JAM1,    /* DrawMode, do not change the background. */
  56.   6,       /* LedtEdge, 6 pixels out. */
  57.   3,       /* TopEdge, 3 lines down. */
  58.   NULL,    /* ITextFont, default font. */
  59.   "Yes",   /* IText, the text that will be printed. */
  60.   NULL,    /* NextText, no more IntuiText structures link. */
  61. };
  62.  
  63. /* The negative text: */
  64. /* (Printed inside the right gadget) */
  65. struct IntuiText my_negative_text=
  66. {
  67.   0,       /* FrontPen, colour 0 (blue). */
  68.   0,       /* BackPen, not used since JAM1. */
  69.   JAM1,    /* DrawMode, do not change the background. */
  70.   6,       /* LedtEdge, 6 pixels out. */
  71.   3,       /* TopEdge, 3 lines down. */
  72.   NULL,    /* ITextFont, default font. */
  73.   "No",    /* IText, the text that will be printed. */
  74.   NULL,    /* NextText, no more IntuiText structures link. */
  75. };
  76.  
  77.  
  78.  
  79. main()
  80. {
  81.   /* Before we can use Intuition we need to open the Intuition Library: */
  82.   IntuitionBase = (struct IntuitionBase *)
  83.     OpenLibrary( "intuition.library", 0 );
  84.   
  85.   if( IntuitionBase == NULL )
  86.     exit(); /* Could NOT open the Intuition Library! */
  87.  
  88.  
  89.  
  90.   while( !AutoRequest( NULL, &my_body_text, &my_positive_text,
  91.                        &my_negative_text, DISKINSERTED, NULL, 320, 72) );
  92.  
  93.   /***********************************************************************/
  94.   /* NULL,              no pointer to a window structure.                */
  95.   /* &my_body_text,     pointer to a IntuiText str. cont. the body text  */
  96.   /* &my_positive_text, pointer to a IntuiText str. cont. the pos. text  */
  97.   /* &my_negative_text, pointer to a IntuiText str. cont. the neg. text  */
  98.   /* DISKINSERTED,      IDCMP flags which will satisfy the positive gad. */
  99.   /* NULL,              IDCMP flags which will satisfy the negative gad. */
  100.   /* 320,               Width, 320 pixels wide.                          */
  101.   /* 72,                Height, 72 lines high.                           */
  102.   /*                                                                     */
  103.   /* Intuition will automatically set the IDCMP flag RELVERIFY for both  */
  104.   /* of the gadgets, so we do not need to set the DISKINSERTED flag for  */
  105.   /* the "positive" gadget.                                              */
  106.   /*                                                                     */
  107.   /* while( !AutoRequest(...) );                                         */
  108.   /* Since AutoRequest returns TRUE ("Yes") or FALSE ("No") we neggate   */
  109.   /* it (!), and can then use the statement in a while loop. As long as  */
  110.   /* the user selects the "No" gadget AutoRequest returns FALSE which    */
  111.   /* is changed into TRUE, and we stay in the while loop. When the user, */
  112.   /* on the other hand, selects the "Yes" gadget, or inserts a disk,     */
  113.   /* AutoRequest() returns TRUE, changed into FALSE, and we leave the    */
  114.   /* while loop.                                                         */
  115.   /*                                                                     */
  116.   /* The requester will look like this:                                  */
  117.   /*                                                                     */
  118.   /* ---------------------------------------                             */
  119.   /* | System Request ================[*][*]                             */
  120.   /* ---------------------------------------                             */
  121.   /* | Insert a disk in any drive!      |  |                             */
  122.   /* |                                  |  |                             */
  123.   /* |                                  |  |                             */
  124.   /* | -------                   ------ |  |                             */
  125.   /* | | Yes |                   | No | |  |                             */
  126.   /* | -------                   ------ |  |                             */
  127.   /* ------------------------------------[*]                             */
  128.   /*                                                                     */
  129.   /***********************************************************************/
  130.  
  131.  
  132.  
  133.   /* Close the Intuition Library since we have opened it: */
  134.   CloseLibrary( IntuitionBase );
  135.   
  136.   /* THE END */
  137. }