home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / misc / prog_bar.lha / prog_bar / C / Demo / Demo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-12  |  18.5 KB  |  617 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0b
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : Allan Savage
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <clib/diskfont_protos.h>
  10. #include <clib/asl_protos.h>
  11. #include <intuition/intuition.h>
  12. #include <intuition/classes.h>
  13. #include <intuition/classusr.h>
  14. #include <intuition/imageclass.h>
  15. #include <intuition/gadgetclass.h>
  16. #include <libraries/gadtools.h>
  17. #include <graphics/displayinfo.h>
  18. #include <graphics/gfxbase.h>
  19. #include <clib/exec_protos.h>
  20. #include <clib/intuition_protos.h>
  21. #include <clib/gadtools_protos.h>
  22. #include <clib/graphics_protos.h>
  23. #include <clib/utility_protos.h>
  24. #include <string.h>
  25.  
  26. #include <library/prog_bar.h>
  27.  
  28.  
  29. #define GetString( g )      ((( struct StringInfo * )g->SpecialInfo )->Buffer  )
  30. #define GetNumber( g )      ((( struct StringInfo * )g->SpecialInfo )->LongInt )
  31.  
  32. #define GD_Border                              0
  33. #define GD_Direction                           1
  34. #define GD_T_Mode                              2
  35. #define GD_T_Pos                               3
  36. #define GD_Size                                4
  37. #define GD_Width                               5
  38. #define GD_Height                              6
  39. #define GD_Delta                               7
  40. #define GD_Top                                 8
  41. #define GD_Left                                9
  42. #define GD_T_Colour                            10
  43. #define GD_TB_Colour                           11
  44. #define GD_B_Colour                            12
  45. #define GD_BB_Colour                           13
  46. #define GD_Font                                14
  47.  
  48. #define PB_Demo_CNT 15
  49.  
  50.  
  51. #define START_SIZE   100
  52. #define START_WIDTH  320
  53. #define START_HEIGHT 25
  54. #define START_DELTA  1
  55. #define START_TOP    190
  56. #define START_LEFT   160
  57.  
  58. void wbmain( void );
  59. void main( void );
  60.  
  61. UBYTE AllocateFontReq ( void );
  62. void FreeFontReq (void);
  63.  
  64. int BorderClicked( void );
  65. int DirectionClicked( void );
  66. int T_ModeClicked( void );
  67. int T_PosClicked( void );
  68. int SizeClicked( void );
  69. int WidthClicked( void );
  70. int HeightClicked( void );
  71. int DeltaClicked( void );
  72. int TopClicked( void );
  73. int LeftClicked( void );
  74. int T_ColourClicked( void );
  75. int TB_ColourClicked( void );
  76. int B_ColourClicked( void );
  77. int BB_ColourClicked( void );
  78. int FontClicked( void );
  79. int PB_DemoQuit( void );
  80.  
  81. int SetupScreen( void );
  82. void CloseDownScreen( void );
  83. void PB_DemoRender( void );
  84. int HandlePB_DemoIDCMP( void );
  85. int OpenPB_DemoWindow( void );
  86. void ClosePB_DemoWindow( void );
  87.  
  88.  
  89.  
  90. extern struct IntuitionBase *IntuitionBase;
  91. extern struct Library       *GadToolsBase;
  92.  
  93. struct Screen         *Scr = NULL;
  94. APTR                   VisualInfo = NULL;
  95. struct Window         *PB_DemoWnd = NULL;
  96. struct Gadget         *PB_DemoGList = NULL;
  97. struct Menu           *PB_DemoMenus = NULL;
  98. struct IntuiMessage    PB_DemoMsg;
  99. struct Gadget         *PB_DemoGadgets[15];
  100. UWORD                  PB_DemoLeft = 0;
  101. UWORD                  PB_DemoTop = 0;
  102. UWORD                  PB_DemoWidth = 640;
  103. UWORD                  PB_DemoHeight = 245;
  104. UBYTE                 *PB_DemoWdt = (UBYTE *)"Progress Bar Demonstration";
  105. struct FontRequester  *FontReq = NULL;
  106. PBAR                  *PBar_Ptr = NULL;
  107.  
  108. struct TextFont       *P_TFont = NULL;
  109. struct TextAttr        P_TAttr;
  110. int                    P_Value;
  111. int                    P_Delta;
  112. int                    P_Size;
  113.  
  114. UBYTE *Border0Labels[] = {
  115.    (UBYTE *)"None",
  116.    (UBYTE *)"Plain",
  117.    (UBYTE *)"Recessed",
  118.    (UBYTE *)"Raised",
  119.    (UBYTE *)"Ridge",
  120.    NULL };
  121.  
  122. UBYTE *Direction0Labels[] = {
  123.    (UBYTE *)"Right",
  124.    (UBYTE *)"Left",
  125.    (UBYTE *)"Up",
  126.    (UBYTE *)"Down",
  127.    NULL };
  128.  
  129. UBYTE *T_Mode0Labels[] = {
  130.    (UBYTE *)"None",
  131.    (UBYTE *)"Percent",
  132.    (UBYTE *)"Value",
  133.    NULL };
  134.  
  135. UBYTE *T_Pos0Labels[] = {
  136.    (UBYTE *)"Below",
  137.    (UBYTE *)"Above",
  138.    (UBYTE *)"Left",
  139.    (UBYTE *)"Right",
  140.    (UBYTE *)"Centre",
  141.    NULL };
  142.  
  143. struct TextAttr topaz8 = {
  144.    ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
  145.  
  146. struct NewMenu PB_DemoNewMenu[] = {
  147.    NM_TITLE, (STRPTR)"Prog_Bar Demo", NULL, 0, NULL, NULL,
  148.    NM_ITEM, (STRPTR)"About", NULL, 0, NULL, NULL,
  149.    NM_SUB, (STRPTR)"Prog_Bar Demo Program", NULL, 0, 0L, NULL,
  150.    NM_SUB, (STRPTR)"     Written By", NULL, 0, 0L, NULL,
  151.    NM_SUB, (STRPTR)"    Allan Savage", NULL, 0, 0L, NULL,
  152.    NM_SUB, (STRPTR)"       © 1996", NULL, 0, 0L, NULL,
  153.    NM_SUB, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  154.    NM_SUB, (STRPTR)"  Interface created", NULL, 0, 0L, NULL,
  155.    NM_SUB, (STRPTR)"  using GadToolsBox", NULL, 0, 0L, NULL,
  156.    NM_SUB, (STRPTR)"       v37.300", NULL, 0, 0L, NULL,
  157.    NM_SUB, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  158.    NM_SUB, (STRPTR)" Code compiled using", NULL, 0, 0L, NULL,
  159.    NM_SUB, (STRPTR)"  Dice C v2.07.56 R", NULL, 0, 0L, NULL,
  160.    NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  161.    NM_ITEM, (STRPTR)"Quit", NULL, 0, 0L, (APTR)PB_DemoQuit,
  162.    NM_END, NULL, NULL, 0, 0L, NULL };
  163.  
  164. UWORD PB_DemoGTypes[] = {
  165.    CYCLE_KIND,
  166.    CYCLE_KIND,
  167.    CYCLE_KIND,
  168.    CYCLE_KIND,
  169.    SLIDER_KIND,
  170.    SLIDER_KIND,
  171.    SLIDER_KIND,
  172.    SLIDER_KIND,
  173.    SLIDER_KIND,
  174.    SLIDER_KIND,
  175.    PALETTE_KIND,
  176.    PALETTE_KIND,
  177.    PALETTE_KIND,
  178.    PALETTE_KIND,
  179.    BUTTON_KIND
  180. };
  181.  
  182. struct NewGadget PB_DemoNGad[] = {
  183.    125, 7, 121, 13, (UBYTE *)"Border", NULL, GD_Border, PLACETEXT_LEFT, NULL, (APTR)BorderClicked,
  184.    125, 24, 121, 13, (UBYTE *)"Direction", NULL, GD_Direction, PLACETEXT_LEFT, NULL, (APTR)DirectionClicked,
  185.    125, 41, 121, 13, (UBYTE *)"Text Mode", NULL, GD_T_Mode, PLACETEXT_LEFT, NULL, (APTR)T_ModeClicked,
  186.    125, 58, 121, 13, (UBYTE *)"Text Position", NULL, GD_T_Pos, PLACETEXT_LEFT, NULL, (APTR)T_PosClicked,
  187.    354, 7, 223, 11, (UBYTE *)"Size", NULL, GD_Size, PLACETEXT_LEFT, NULL, (APTR)SizeClicked,
  188.    354, 63, 223, 11, (UBYTE *)"Width", NULL, GD_Width, PLACETEXT_LEFT, NULL, (APTR)WidthClicked,
  189.    354, 79, 223, 11, (UBYTE *)"Height", NULL, GD_Height, PLACETEXT_LEFT, NULL, (APTR)HeightClicked,
  190.    354, 21, 223, 11, (UBYTE *)"Change By", NULL, GD_Delta, PLACETEXT_LEFT, NULL, (APTR)DeltaClicked,
  191.    354, 35, 223, 11, (UBYTE *)"TopEdge", NULL, GD_Top, PLACETEXT_LEFT, NULL, (APTR)TopClicked,
  192.    354, 49, 223, 11, (UBYTE *)"LeftEdge", NULL, GD_Left, PLACETEXT_LEFT, NULL, (APTR)LeftClicked,
  193.    0, 110, 145, 30, (UBYTE *)"Text Colour", NULL, GD_T_Colour, PLACETEXT_ABOVE, NULL, (APTR)T_ColourClicked,
  194.    165, 110, 145, 30, (UBYTE *)"Text Back Colour", NULL, GD_TB_Colour, PLACETEXT_ABOVE, NULL, (APTR)TB_ColourClicked,
  195.    330, 110, 145, 30, (UBYTE *)"Bar Colour", NULL, GD_B_Colour, PLACETEXT_ABOVE, NULL, (APTR)B_ColourClicked,
  196.    495, 110, 145, 30, (UBYTE *)"Bar Back Colour", NULL, GD_BB_Colour, PLACETEXT_ABOVE, NULL, (APTR)BB_ColourClicked,
  197.    125, 77, 121, 13, (UBYTE *)"Select Font", NULL, GD_Font, PLACETEXT_IN, NULL, (APTR)FontClicked
  198. };
  199.  
  200. ULONG PB_DemoGTags[] = {
  201.    (GTCY_Labels), (ULONG)&Border0Labels[ 0 ], (GTCY_Active), 1, (TAG_DONE),
  202.    (GTCY_Labels), (ULONG)&Direction0Labels[ 0 ], (TAG_DONE),
  203.    (GTCY_Labels), (ULONG)&T_Mode0Labels[ 0 ], (TAG_DONE),
  204.    (GTCY_Labels), (ULONG)&T_Pos0Labels[ 0 ], (TAG_DONE),
  205.    (GTSL_Min), 20, (GTSL_Max), 500, (GTSL_Level), START_SIZE, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  206.    (GTSL_Min), 15, (GTSL_Max), 320, (GTSL_Level), START_WIDTH, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  207.    (GTSL_Min), 10, (GTSL_Max), 70, (GTSL_Level), START_HEIGHT, (GTSL_MaxLevelLen), 2, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  208.    (GTSL_Min), 1, (GTSL_Max), 50, (GTSL_Level), START_DELTA, (GTSL_MaxLevelLen), 2, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  209.    (GTSL_Min), 170, (GTSL_Max), 240, (GTSL_Level), START_TOP, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  210.    (GTSL_Min), 30, (GTSL_Max), 300, (GTSL_Level), START_LEFT, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  211.    (GTPA_Depth), 3, (GTPA_IndicatorHeight), 10, (GTPA_Color), 1, (GTPA_ColorOffset), 0, (TAG_DONE),
  212.    (GTPA_Depth), 3, (GTPA_IndicatorHeight), 10, (GTPA_Color), 0, (GTPA_ColorOffset), 0, (TAG_DONE),
  213.    (GTPA_Depth), 3, (GTPA_IndicatorHeight), 10, (GTPA_Color), 3, (GTPA_ColorOffset), 0, (TAG_DONE),
  214.    (GTPA_Depth), 3, (GTPA_IndicatorHeight), 10, (GTPA_Color), 0, (GTPA_ColorOffset), 0, (TAG_DONE),
  215.    (TAG_DONE)
  216. };
  217.  
  218. struct ColorSpec ScreenColors[] = {
  219.     0, 0x0A, 0x0A, 0x0A,
  220.     1, 0x00, 0x00, 0x00,
  221.     2, 0x0F, 0x0F, 0x0F,
  222.     3, 0x06, 0x08, 0x0B,
  223.     4, 0x0F, 0x00, 0x00,
  224.     5, 0x00, 0x0F, 0x00,
  225.     6, 0x00, 0x00, 0x0F,
  226.     7, 0x0F, 0x0F, 0x00,
  227.    ~0, 0x00, 0x00, 0x00 };
  228.  
  229. UWORD DriPens[] = {
  230.    ~0 };
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238. void wbmain( void )
  239. {
  240.    main ();
  241. }
  242.  
  243. void main( void )
  244. {
  245.    int GoFlag = TRUE;
  246.  
  247.    if (!SetupScreen()) {
  248.       if ( AllocateFontReq () ) {
  249.          if (!OpenPB_DemoWindow()) {
  250.             PBar_Ptr = CreateProgBar ( PB_DemoWnd,
  251.                                        START_LEFT,
  252.                                        START_TOP,
  253.                                        START_WIDTH,
  254.                                        START_HEIGHT,
  255.                                        START_SIZE,
  256.                                        TAG_DONE );
  257.             if ( PBar_Ptr ) {
  258.                P_Delta = START_DELTA;
  259.                P_Value = 0;
  260.                P_Size = START_SIZE;
  261.  
  262.                do {
  263.                   Wait(1L << PB_DemoWnd->UserPort->mp_SigBit);
  264.                   GoFlag = HandlePB_DemoIDCMP();
  265.                } while (GoFlag);
  266.  
  267.                FreeProgBar ( PBar_Ptr );
  268.             }
  269.             ClosePB_DemoWindow();
  270.          }
  271.          FreeFontReq ();
  272.       }
  273.       CloseDownScreen();
  274.    }
  275. }
  276.  
  277. UBYTE AllocateFontReq ( void )
  278. {
  279.    FontReq = AllocAslRequestTags(ASL_FontRequest,
  280.                                  ASL_LeftEdge, 170,
  281.                                  ASL_Width, 300,
  282.                                  ASL_TopEdge, 30,
  283.                                  ASL_Height, 200,
  284.                                  TAG_DONE);
  285.    if(FontReq == NULL) {
  286.       return FALSE;
  287.    }
  288.    return TRUE;
  289. }
  290.  
  291. void FreeFontReq (void)
  292. {
  293.    if (FontReq) {
  294.       FreeAslRequest(FontReq);
  295.       FontReq = NULL;
  296.    }
  297. }
  298.  
  299. int SetupScreen( void )
  300. {
  301.    if ( ! ( Scr = OpenScreenTags( NULL, SA_Left,   0,
  302.                SA_Top,     0,
  303.                SA_Width,   640,
  304.                SA_Height,  256,
  305.                SA_Depth,   3,
  306.                SA_Colors,  &ScreenColors[0],
  307.                SA_Font, &topaz8,
  308.                SA_Type, CUSTOMSCREEN,
  309.                SA_DisplayID,  PAL_MONITOR_ID|HIRES_KEY,
  310.                SA_AutoScroll, TRUE,
  311.                SA_Overscan,   OSCAN_TEXT,
  312.                SA_Pens, &DriPens[0],
  313.                SA_Title,   "Progress Bar Demonstration",
  314.                TAG_DONE )))
  315.       return( 1L );
  316.  
  317.    if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  318.       return( 2L );
  319.  
  320.    return( 0L );
  321. }
  322.  
  323.  
  324. void CloseDownScreen( void )
  325. {
  326.    if ( VisualInfo ) {
  327.       FreeVisualInfo( VisualInfo );
  328.       VisualInfo = NULL;
  329.    }
  330.  
  331.    if ( Scr        ) {
  332.       CloseScreen( Scr );
  333.       Scr = NULL;
  334.    }
  335. }
  336.  
  337. void PB_DemoRender( void )
  338. {
  339.    UWORD    offx, offy;
  340.  
  341.    offx = 0;
  342.    offy = Scr->WBorTop + Scr->Font->ta_YSize + 1;
  343.  
  344.  
  345.    DrawBevelBox( PB_DemoWnd->RPort, offx + 0, offy + 143, 640, 102, GT_VisualInfo, VisualInfo, TAG_DONE );
  346.    DrawBevelBox( PB_DemoWnd->RPort, offx + 4, offy + 145, 632, 98, GT_VisualInfo, VisualInfo, GTBB_Recessed, TRUE, TAG_DONE );
  347. }
  348.  
  349. int HandlePB_DemoIDCMP( void )
  350. {
  351.    struct IntuiMessage  *m;
  352.    struct MenuItem      *n;
  353.    int         (*func)( void );
  354.    BOOL        running = TRUE;
  355.  
  356.    PB_DemoRender();
  357.    while( m = GT_GetIMsg( PB_DemoWnd->UserPort )) {
  358.  
  359.       CopyMem(( char * )m, ( char * )&PB_DemoMsg, (long)sizeof( struct IntuiMessage ));
  360.  
  361.       GT_ReplyIMsg( m );
  362.  
  363.       switch ( PB_DemoMsg.Class ) {
  364.  
  365.          case  IDCMP_REFRESHWINDOW:
  366.             GT_BeginRefresh( PB_DemoWnd );
  367.             PB_DemoRender();
  368.             RefreshProgBar ( PBar_Ptr );
  369.             GT_EndRefresh( PB_DemoWnd, TRUE );
  370.             break;
  371.  
  372.          case  IDCMP_GADGETUP:
  373.          case  IDCMP_GADGETDOWN:
  374.             func = ( void * )(( struct Gadget * )PB_DemoMsg.IAddress )->UserData;
  375.             if ( func ) running = func();
  376.             break;
  377.  
  378.          case  IDCMP_MENUPICK:
  379.             while( PB_DemoMsg.Code != MENUNULL ) {
  380.                n = ItemAddress( PB_DemoMenus, PB_DemoMsg.Code );
  381.                func = (void *)(GTMENUITEM_USERDATA( n ));
  382.                if ( func ) running = func();
  383.                PB_DemoMsg.Code = n->NextSelect;
  384.             }
  385.             break;
  386.  
  387.          case IDCMP_INTUITICKS:
  388.             if ( P_Value == 0 ) {
  389.                ClearText ( PBar_Ptr );
  390.             }
  391.             UpdateProgBar( PBar_Ptr, P_Value );
  392.             P_Value += P_Delta;
  393.             if ( P_Value > P_Size ) {
  394.                P_Value = 0;
  395.             }
  396.             break;
  397.       }
  398.    }
  399.    return( running );
  400. }
  401.  
  402. int OpenPB_DemoWindow( void )
  403. {
  404.    struct NewGadget  ng;
  405.    struct Gadget  *g;
  406.    UWORD    lc, tc;
  407.    UWORD    offx = 0, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  408.  
  409.    if ( ! ( g = CreateContext( &PB_DemoGList )))
  410.       return( 1L );
  411.  
  412.    for( lc = 0, tc = 0; lc < PB_Demo_CNT; lc++ ) {
  413.  
  414.       CopyMem((char * )&PB_DemoNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  415.  
  416.       ng.ng_VisualInfo = VisualInfo;
  417.       ng.ng_TextAttr   = &topaz8;
  418.       ng.ng_LeftEdge  += offx;
  419.       ng.ng_TopEdge   += offy;
  420.  
  421.       PB_DemoGadgets[ lc ] = g = CreateGadgetA((ULONG)PB_DemoGTypes[ lc ], g, &ng, ( struct TagItem * )&PB_DemoGTags[ tc ] );
  422.  
  423.       while( PB_DemoGTags[ tc ] ) tc += 2;
  424.       tc++;
  425.  
  426.       if ( NOT g )
  427.          return( 2L );
  428.    }
  429.  
  430.    if ( ! ( PB_DemoMenus = CreateMenus( PB_DemoNewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
  431.       return( 3L );
  432.  
  433.    LayoutMenus( PB_DemoMenus, VisualInfo, GTMN_TextAttr, &topaz8, TAG_DONE );
  434.  
  435.    if ( ! ( PB_DemoWnd = OpenWindowTags( NULL,
  436.             WA_Left, PB_DemoLeft,
  437.             WA_Top,     PB_DemoTop,
  438.             WA_Width,   PB_DemoWidth,
  439.             WA_Height,  PB_DemoHeight + offy,
  440.             WA_IDCMP,   CYCLEIDCMP|SLIDERIDCMP|PALETTEIDCMP|BUTTONIDCMP|
  441.                         IDCMP_MENUPICK|IDCMP_REFRESHWINDOW|IDCMP_INTUITICKS,
  442.             WA_Flags,   WFLG_SMART_REFRESH|WFLG_BACKDROP|WFLG_BORDERLESS|
  443.                         WFLG_ACTIVATE,
  444.             WA_Gadgets, PB_DemoGList,
  445.             WA_ScreenTitle,   "Progress Bar Demonstration",
  446.             WA_CustomScreen,  Scr,
  447.             TAG_DONE )))
  448.    return( 4L );
  449.  
  450.    SetMenuStrip( PB_DemoWnd, PB_DemoMenus );
  451.    GT_RefreshWindow( PB_DemoWnd, NULL );
  452.  
  453.    PB_DemoRender();
  454.  
  455.    return( 0L );
  456. }
  457.  
  458. void ClosePB_DemoWindow( void )
  459. {
  460.    if ( PB_DemoMenus      ) {
  461.       ClearMenuStrip( PB_DemoWnd );
  462.       FreeMenus( PB_DemoMenus );
  463.       PB_DemoMenus = NULL; }
  464.  
  465.    if ( PB_DemoWnd        ) {
  466.       CloseWindow( PB_DemoWnd );
  467.       PB_DemoWnd = NULL;
  468.    }
  469.  
  470.    if ( PB_DemoGList      ) {
  471.       FreeGadgets( PB_DemoGList );
  472.       PB_DemoGList = NULL;
  473.    }
  474. }
  475.  
  476. int BorderClicked( void )
  477. {
  478.    /* routine when gadget "Border" is clicked. */
  479.    SetProgBarAttrs ( PBar_Ptr, PB_BorderType, PB_DemoMsg.Code + 10, TAG_DONE );
  480.    return TRUE;
  481. }
  482.  
  483. int DirectionClicked( void )
  484. {
  485.    /* routine when gadget "Direction" is clicked. */
  486.    SetProgBarAttrs ( PBar_Ptr, PB_Direction, PB_DemoMsg.Code, TAG_DONE );
  487.    return TRUE;
  488. }
  489.  
  490. int T_ModeClicked( void )
  491. {
  492.    /* routine when gadget "Text Mode" is clicked. */
  493.    ClearText ( PBar_Ptr );
  494.    SetProgBarAttrs ( PBar_Ptr, PB_TextMode, PB_DemoMsg.Code + 20, TAG_DONE );
  495.    return TRUE;
  496. }
  497.  
  498. int T_PosClicked( void )
  499. {
  500.    /* routine when gadget "Text Position" is clicked. */
  501.    ClearText ( PBar_Ptr );
  502.    SetProgBarAttrs ( PBar_Ptr, PB_TextPosition, PB_DemoMsg.Code + 30, TAG_DONE );
  503.    return TRUE;
  504. }
  505.  
  506.  
  507. int SizeClicked( void )
  508. {
  509.    /* routine when gadget "Size" is clicked. */
  510.    ClearText( PBar_Ptr );
  511.    P_Size = PB_DemoMsg.Code;
  512.    P_Value = 0;
  513.    SetProgBarAttrs ( PBar_Ptr, PB_BarSize, P_Size,
  514.                                PB_BarValue, 0,
  515.                                TAG_DONE );
  516.    return TRUE;
  517. }
  518.  
  519. int WidthClicked( void )
  520. {
  521.    /* routine when gadget "Width" is clicked. */
  522.    ClearProgBar ( PBar_Ptr );
  523.    SetProgBarAttrs ( PBar_Ptr, PB_Width, PB_DemoMsg.Code, TAG_DONE );
  524.    return TRUE;
  525. }
  526.  
  527. int HeightClicked( void )
  528. {
  529.    /* routine when gadget "Height" is clicked. */
  530.    ClearProgBar ( PBar_Ptr );
  531.    SetProgBarAttrs ( PBar_Ptr, PB_Height, PB_DemoMsg.Code, TAG_DONE );
  532.    return TRUE;
  533. }
  534.  
  535. int DeltaClicked( void )
  536. {
  537.    /* routine when gadget "Change By" is clicked. */
  538.    P_Delta = PB_DemoMsg.Code;
  539.    return TRUE;
  540. }
  541.  
  542. int TopClicked( void )
  543. {
  544.    /* routine when gadget "TopEdge" is clicked. */
  545.    ClearProgBar ( PBar_Ptr );
  546.    SetProgBarAttrs ( PBar_Ptr, PB_TopEdge, PB_DemoMsg.Code, TAG_DONE );
  547.    return TRUE;
  548. }
  549.  
  550. int LeftClicked( void )
  551. {
  552.    /* routine when gadget "LeftEdge" is clicked. */
  553.    ClearProgBar ( PBar_Ptr );
  554.    SetProgBarAttrs ( PBar_Ptr, PB_LeftEdge, PB_DemoMsg.Code, TAG_DONE );
  555.    return TRUE;
  556. }
  557.  
  558. int T_ColourClicked( void )
  559. {
  560.    /* routine when gadget "Text Colour" is clicked. */
  561.    SetProgBarAttrs ( PBar_Ptr, PB_TextColour, PB_DemoMsg.Code, TAG_DONE );
  562.    return TRUE;
  563. }
  564.  
  565. int TB_ColourClicked( void )
  566. {
  567.    /* routine when gadget "Text Back Colour" is clicked. */
  568.    SetProgBarAttrs ( PBar_Ptr, PB_TextBackColour, PB_DemoMsg.Code, TAG_DONE );
  569.    return TRUE;
  570. }
  571.  
  572. int B_ColourClicked( void )
  573. {
  574.    /* routine when gadget "Bar Colour" is clicked. */
  575.    SetProgBarAttrs ( PBar_Ptr, PB_BarColour, PB_DemoMsg.Code, TAG_DONE );
  576.    return TRUE;
  577. }
  578.  
  579. int BB_ColourClicked( void )
  580. {
  581.    /* routine when gadget "Bar Back Colour" is clicked. */
  582.    SetProgBarAttrs ( PBar_Ptr, PB_BarBackColour, PB_DemoMsg.Code, TAG_DONE );
  583.    return TRUE;
  584. }
  585.  
  586. int FontClicked( void )
  587. {
  588.    /* routine when gadget "Select Font" is clicked. */
  589.    BOOL Flag;
  590.  
  591.    Flag = AslRequestTags(FontReq,
  592.                          ASL_Window, PB_DemoWnd,
  593.                          ASL_FuncFlags, FILF_NEWIDCMP,
  594.                          TAG_DONE);
  595.    if ( Flag ) {
  596.       memcpy ( &P_TAttr, &FontReq->fo_Attr, sizeof ( P_TAttr ) );
  597.       if ( P_TFont ) {
  598.          CloseFont( P_TFont );
  599.          P_TFont = NULL;
  600.       }
  601.       if ( P_TFont = OpenDiskFont( &P_TAttr ) ) {
  602.          ClearText ( PBar_Ptr );
  603.          SetProgBarAttrs ( PBar_Ptr, PB_TextFont, &P_TAttr, TAG_DONE );
  604.       }
  605.    } else {
  606.          ClearText ( PBar_Ptr );
  607.          SetProgBarAttrs ( PBar_Ptr, PB_TextFont, NULL, TAG_DONE );
  608.    }
  609.    return TRUE;
  610. }
  611.  
  612. int PB_DemoQuit( void )
  613. {
  614.    /* routine when (sub)item "Quit" is selected. */
  615.    return FALSE;
  616. }
  617.