home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 12 / MA_Cover_12.iso / libs / bgui / examples / source / images.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  6.0 KB  |  218 lines

  1. /*
  2.  * @(#) $Header: /cvsroot/bgui/examples/Attic/Images.c,v 1.1.2.1 1998/02/28 17:45:23 mlemos Exp $
  3.  *
  4.  * Images.c
  5.  *
  6.  * (C) Copyright 1998 Manuel Lemos.
  7.  * (C) Copyright 1995 Jaba Development.
  8.  * (C) Copyright 1995 Jan van den Baard.
  9.  * All Rights Reserved.
  10.  *
  11.  * $Log: Images.c,v $
  12.  * Revision 1.1.2.1  1998/02/28 17:45:23  mlemos
  13.  * Ian sources
  14.  *
  15.  *
  16.  */
  17.  
  18. /* Execute me to compile with DICE V3.0
  19. dcc Images.c -proto -mi -ms -mRR -lbgui
  20. quit
  21. */
  22.  
  23. #include "DemoCode.h"
  24.  
  25. /*
  26. **    Generated with IconEdit.
  27. **/
  28. CHIP( UWORD ) HelpI1Data[] =
  29. {
  30. /* Plane 0 */
  31.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0143,0xE020,
  32.     0x0000,0x0A8F,0xF820,0x0000,0x051C,0x7C3F,0xE000,0x0038,
  33.     0x3E00,0x0000,0x0038,0x3E00,0x0800,0x00FF,0xBFFF,0x0800,
  34.     0x003C,0x3E00,0x0800,0x07FF,0xFF3F,0x0800,0x0000,0x7C00,
  35.     0x0800,0x06FF,0x7FFD,0x0800,0x0000,0x7000,0x0800,0x07F7,
  36.     0xFAE7,0x0800,0x0000,0xE000,0x0800,0x07DE,0xFBFD,0x0800,
  37.     0x0000,0xC000,0x0800,0x06FD,0xF7EF,0x0800,0x0001,0xC000,
  38.     0x0800,0x0003,0xE000,0x0800,0x0003,0xE1B7,0x0800,0x0003,
  39.     0xE000,0x0800,0x0001,0xC000,0x0800,0x0000,0x0000,0x0800,
  40.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  41. /* Plane 1 */
  42.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5C,0x1FDF,
  43.     0x0000,0xE0B0,0x27DF,0xC000,0xF06B,0x9BC0,0x0000,0xFFD7,
  44.     0xDDFF,0xF000,0xFFD7,0xDDFF,0xF000,0xFF18,0x5C00,0xF000,
  45.     0xFFDB,0xDDFF,0xF000,0xF800,0x18C0,0xF000,0xFFFF,0xBBFF,
  46.     0xF000,0xF900,0xB002,0xF000,0xFFFF,0xAFFF,0xF000,0xF808,
  47.     0x2518,0xF000,0xFFFF,0x5FFF,0xF000,0xF821,0x4402,0xF000,
  48.     0xFFFF,0x3FFF,0xF000,0xF902,0x8810,0xF000,0xFFFE,0xBFFF,
  49.     0xF000,0xFFFD,0xDFFF,0xF000,0xFFFD,0xDE48,0xF000,0xFFFD,
  50.     0xDFFF,0xF000,0xFFFE,0x3FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  51.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  52. };
  53.  
  54. struct Image HelpI1 =
  55. {
  56.     0, 0,            /* Upper left corner */
  57.     37, 26, 2,            /* Width, Height, Depth */
  58.     HelpI1Data,                 /* Image data */
  59.     0x0003, 0x0000,        /* PlanePick, PlaneOnOff */
  60.     NULL            /* Next image */
  61. };
  62.  
  63. CHIP( UWORD ) HelpI2Data[] =
  64. {
  65. /* Plane 0 */
  66.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0140,0xE020,
  67.     0x0000,0x0A81,0xF020,0x0000,0x0501,0xF03F,0xE000,0x0001,
  68.     0xF000,0x0000,0x0001,0xF000,0x0800,0x00FF,0xF7FF,0x0800,
  69.     0x0000,0xE000,0x0800,0x07FB,0xFF3F,0x0800,0x0000,0xE000,
  70.     0x0800,0x06FF,0xFFFD,0x0800,0x0000,0xE000,0x0800,0x07F7,
  71.     0xFAE7,0x0800,0x0000,0x4000,0x0800,0x07DE,0xFBFD,0x0800,
  72.     0x0000,0x4000,0x0800,0x06FD,0xF7EF,0x0800,0x0000,0xE000,
  73.     0x0800,0x0001,0xF000,0x0800,0x0001,0xF1B7,0x0800,0x0001,
  74.     0xF000,0x0800,0x0000,0xE000,0x0800,0x0000,0x0000,0x0800,
  75.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  76. /* Plane 1 */
  77.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5F,0x1FDF,
  78.     0x0000,0xE0BE,0xEFDF,0xC000,0xF07E,0xEFC0,0x0000,0xFFFE,
  79.     0xEFFF,0xF000,0xFFFE,0xEFFF,0xF000,0xFF00,0x4800,0xF000,
  80.     0xFFFF,0x5FFF,0xF000,0xF804,0x40C0,0xF000,0xFFFF,0x5FFF,
  81.     0xF000,0xF900,0x4002,0xF000,0xFFFF,0x5FFF,0xF000,0xF808,
  82.     0x0518,0xF000,0xFFFF,0xBFFF,0xF000,0xF821,0x0402,0xF000,
  83.     0xFFFF,0xBFFF,0xF000,0xF902,0x0810,0xF000,0xFFFF,0x5FFF,
  84.     0xF000,0xFFFE,0xEFFF,0xF000,0xFFFE,0xEE48,0xF000,0xFFFE,
  85.     0xEFFF,0xF000,0xFFFF,0x1FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  86.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  87. };
  88.  
  89. struct Image HelpI2 =
  90. {
  91.     0, 0,            /* Upper left corner */
  92.     37, 26, 2,            /* Width, Height, Depth */
  93.     HelpI2Data,                 /* Image data */
  94.     0x0003, 0x0000,        /* PlanePick, PlaneOnOff */
  95.     NULL            /* Next image */
  96. };
  97.  
  98. /*
  99. **    Put up a simple requester.
  100. **/
  101. ULONG Req( struct Window *win, UBYTE *gadgets, UBYTE *body, ... )
  102. {
  103.     struct bguiRequest    req = { NULL };
  104.  
  105.     req.br_GadgetFormat    = gadgets;
  106.     req.br_TextFormat    = body;
  107.     req.br_Flags        = BREQF_CENTERWINDOW | BREQF_LOCKWINDOW;
  108.     req.br_Underscore    = '_';
  109.  
  110.     return( BGUI_RequestA( win, &req, ( ULONG * )( &body + 1 )));
  111. }
  112.  
  113. /*
  114. **    Object ID's.
  115. **/
  116. #define ID_QUIT                 1
  117. #define ID_HELP                 2
  118.  
  119. VOID StartDemo( void )
  120. {
  121.     struct Window        *window;
  122.     Object            *WO_Window, *GO_Quit, *GO_Help;
  123.     ULONG             signal = 0, rc, tmp = 0;
  124.     BOOL             running = TRUE;
  125.  
  126.     /*
  127.     **    Create the window object.
  128.     **/
  129.     WO_Window = WindowObject,
  130.         WINDOW_Title,        "Image Demo",
  131.         WINDOW_AutoAspect,    TRUE,
  132.         WINDOW_MasterGroup,
  133.             VGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  134.                 StartMember,
  135.                     GO_Help = ButtonObject,
  136.                         BUTTON_Image,        &HelpI1,
  137.                         BUTTON_SelectedImage,    &HelpI2,
  138.                         LAB_Label,        "_Help",
  139.                         LAB_Underscore,         '_',
  140.                         LAB_Place,        PLACE_LEFT,
  141.                         FRM_Type,        FRTYPE_BUTTON,
  142.                         FRM_EdgesOnly,        TRUE,
  143.                         GA_ID,            ID_HELP,
  144.                     EndObject,
  145.                 EndMember,
  146.                 StartMember,
  147.                     HGroupObject,
  148.                         VarSpace( 50 ),
  149.                         StartMember, GO_Quit  = KeyButton( "_Quit",  ID_QUIT  ), EndMember,
  150.                         VarSpace( 50 ),
  151.                     EndObject, FixMinHeight,
  152.                 EndMember,
  153.             EndObject,
  154.     EndObject;
  155.  
  156.     /*
  157.     **    Object created OK?
  158.     **/
  159.     if ( WO_Window ) {
  160.         /*
  161.         **    Assign the keys to the buttons.
  162.         **/
  163.         tmp  = GadgetKey( WO_Window, GO_Quit,  "q" );
  164.         tmp += GadgetKey( WO_Window, GO_Help,  "h" );
  165.         /*
  166.         **    OK?
  167.         **/
  168.         if ( tmp == 2 ) {
  169.             /*
  170.             **    try to open the window.
  171.             **/
  172.             if ( window = WindowOpen( WO_Window )) {
  173.                 /*
  174.                 **    Obtain it's wait mask.
  175.                 **/
  176.                 GetAttr( WINDOW_SigMask, WO_Window, &signal );
  177.                 /*
  178.                 **    Event loop...
  179.                 **/
  180.                 do {
  181.                     Wait( signal );
  182.                     /*
  183.                     **    Handle events.
  184.                     **/
  185.                     while (( rc = HandleEvent( WO_Window )) != WMHI_NOMORE ) {
  186.                         /*
  187.                         **    Evaluate return code.
  188.                         **/
  189.                         switch ( rc ) {
  190.  
  191.                             case    WMHI_CLOSEWINDOW:
  192.                             case    ID_QUIT:
  193.                                 running = FALSE;
  194.                                 break;
  195.  
  196.                             case    ID_HELP:
  197.                                 Req( window, "_Continue", ISEQ_C "This small demo shows you how to use\n"
  198.                                               "standard intuition images in button objects." );
  199.                                 break;
  200.  
  201.                         }
  202.                     }
  203.                 } while ( running );
  204.             } else
  205.                 Tell( "Could not open the window\n" );
  206.         } else
  207.             Tell( "Could not assign gadget keys\n" );
  208.         /*
  209.         **    Disposing of the window object will
  210.         **    also close the window if it is
  211.         **    already opened and it will dispose of
  212.         **    all objects attached to it.
  213.         **/
  214.         DisposeObject( WO_Window );
  215.     } else
  216.         Tell( "Could not create the window object\n" );
  217. }
  218.