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