home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / util / cdity / colorsaver / src / gadgets.c < prev    next >
C/C++ Source or Header  |  1994-11-28  |  7KB  |  240 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V1.4
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #include <exec/types.h>
  7. #include <intuition/intuition.h>
  8. #include <intuition/classes.h>
  9. #include <intuition/classusr.h>
  10. #include <intuition/imageclass.h>
  11. #include <intuition/gadgetclass.h>
  12. #include <libraries/gadtools.h>
  13. #include <graphics/displayinfo.h>
  14. #include <graphics/gfxbase.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/intuition_protos.h>
  17. #include <clib/gadtools_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <clib/utility_protos.h>
  20. #include <string.h>
  21. #include <clib/diskfont_protos.h>
  22.  
  23. #include "gadgets.h"
  24.  
  25. extern struct Screen  *Scr;
  26. UBYTE                 *PubScreenName = NULL;
  27. APTR                   VisualInfo = NULL;
  28. struct Window         *ColorSaverWnd = NULL;
  29. struct Gadget         *ColorSaverGList = NULL;
  30. struct TextFont       *Font       = NULL;
  31. struct Gadget         *ColorSaverGadgets[25];
  32. extern UWORD           ColorSaverLeft;
  33. extern UWORD           ColorSaverTop;
  34. UWORD                  ColorSaverWidth = 319;
  35. UWORD                  ColorSaverHeight = 102;
  36. UBYTE                 *ColorSaverWdt;
  37.  
  38. UBYTE *CYCLE_GAD0Labels[] = {
  39.     (UBYTE *)"-------",
  40.     NULL };
  41.  
  42. UBYTE *RGBHSV_GAD0Labels[] = {
  43.     (UBYTE *)"RGB",
  44.     (UBYTE *)"HSV",
  45.     NULL };
  46.  
  47. struct TextAttr topaz8 = {
  48.     ( STRPTR )"topaz.font", 8, 0x00, 0x00 };
  49.  
  50. UWORD ColorSaverGTypes[] = {
  51.     PALETTE_KIND,
  52.     BUTTON_KIND,
  53.     BUTTON_KIND,
  54.     BUTTON_KIND,
  55.     BUTTON_KIND,
  56.     BUTTON_KIND,
  57.     BUTTON_KIND,
  58.     BUTTON_KIND,
  59.     BUTTON_KIND,
  60.     CYCLE_KIND,
  61.     BUTTON_KIND,
  62.     SLIDER_KIND,
  63.     SLIDER_KIND,
  64.     SLIDER_KIND,
  65.     MX_KIND,
  66.     BUTTON_KIND,
  67.     BUTTON_KIND,
  68.     BUTTON_KIND,
  69.     BUTTON_KIND,
  70.     BUTTON_KIND,
  71.     TEXT_KIND,
  72.     BUTTON_KIND,
  73.     TEXT_KIND,
  74.     TEXT_KIND,
  75.     TEXT_KIND
  76. };
  77.  
  78. struct NewGadget ColorSaverNGad[] = {
  79.     177, 2, 132, 37, NULL, NULL, GD_PALETTE_GAD, 0, NULL, NULL,
  80.     156, 40, 49, 13, (UBYTE *)"Copy", NULL, GD_COPY_GAD, PLACETEXT_IN, NULL, NULL,
  81.     207, 40, 49, 13, (UBYTE *)"Swap", NULL, GD_SWAP_GAD, PLACETEXT_IN, NULL, NULL,
  82.     205, 85, 45, 13, (UBYTE *)"_UnDO", NULL, GD_RESET_GAD, PLACETEXT_IN, NULL, NULL,
  83.     2, 40, 46, 13, (UBYTE *)"_Load", NULL, GD_LOAD_GAD, PLACETEXT_IN, NULL, NULL,
  84.     50, 40, 46, 13, (UBYTE *)"_Save", NULL, GD_SAVE_GAD, PLACETEXT_IN, NULL, NULL,
  85.     2, 85, 57, 13, (UBYTE *)"_Okay", NULL, GD_OKAY_GAD, PLACETEXT_IN, NULL, NULL,
  86.     252, 85, 57, 13, (UBYTE *)"_Cancel", NULL, GD_CANCEL_GAD, PLACETEXT_IN, NULL, NULL,
  87.     2, 55, 104, 13, (UBYTE *)"Scan Binary", NULL, GD_SCAN_GAD, PLACETEXT_IN, NULL, NULL,
  88.     2, 70, 104, 13, (UBYTE *)" ", NULL, GD_CYCLE_GAD, PLACETEXT_LEFT, NULL, NULL,
  89.     98, 40, 55, 13, (UBYTE *)"Write", NULL, GD_WRITE_GAD, PLACETEXT_IN, NULL, NULL,
  90.     13, 2, 131, 11, NULL, NULL, GD_RED_GAD, 0, NULL, NULL,
  91.     13, 15, 131, 11, NULL, NULL, GD_GREEN_GAD, 0, NULL, NULL,
  92.     13, 28, 131, 11, NULL, NULL, GD_BLUE_GAD, 0, NULL, NULL,
  93.     164, 75, 17, 9, NULL, NULL, GD_RGBHSV_GAD, PLACETEXT_LEFT, NULL, NULL,
  94.     61, 85, 45, 13, (UBYTE *)"DO", NULL, GD_DO_GAD, PLACETEXT_IN, NULL, NULL,
  95.     156, 55, 41, 13, (UBYTE *)"««·", NULL, GD_SLEFT_GAD, PLACETEXT_IN, NULL, NULL,
  96.     268, 55, 41, 13, (UBYTE *)"·»»", NULL, GD_SRIGHT_GAD, PLACETEXT_IN, NULL, NULL,
  97.     205, 70, 104, 13, (UBYTE *)"Complement", NULL, GD_COMP_GAD, PLACETEXT_IN, NULL, NULL,
  98.     109, 55, 44, 13, (UBYTE *)"©", NULL, GD_EXTRA_GAD, PLACETEXT_IN, NULL, NULL,
  99.     200, 55, 64, 13, NULL, NULL, GD_SHIFT_GAD, 0, NULL, NULL,
  100.     258, 40, 51, 13, (UBYTE *)"Range", NULL, GD_RANGE_GAD, PLACETEXT_IN, NULL, NULL,
  101.     2, 15, 16, 11, NULL, NULL, GD_RGBG_GAD, 0, NULL, NULL,
  102.     2, 28, 16, 11, NULL, NULL, GD_RGBB_GAD, 0, NULL, NULL,
  103.     2, 2, 16, 11, NULL, NULL, GD_RGBR_GAD, 0, NULL, NULL
  104. };
  105.  
  106. ULONG ColorSaverGTags[] = {
  107.     (GTPA_Depth), 2, (GTPA_IndicatorWidth), 20, (TAG_DONE),
  108.     (TAG_DONE),
  109.     (TAG_DONE),
  110.     (GT_Underscore), '_', (TAG_DONE),
  111.     (GT_Underscore), '_', (TAG_DONE),
  112.     (GT_Underscore), '_', (TAG_DONE),
  113.     (GT_Underscore), '_', (TAG_DONE),
  114.     (GT_Underscore), '_', (TAG_DONE),
  115.     (TAG_DONE),
  116.     (GTCY_Labels), (ULONG)&CYCLE_GAD0Labels[ 0 ],(GA_Disabled), TRUE, (TAG_DONE),
  117.     (GA_Disabled), TRUE, (TAG_DONE),
  118.     (GTSL_MaxLevelLen), 5, (GTSL_LevelFormat), (ULONG)"%03ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  119.     (GTSL_MaxLevelLen), 5, (GTSL_LevelFormat), (ULONG)"%03ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  120.     (GTSL_MaxLevelLen), 5, (GTSL_LevelFormat), (ULONG)"%03ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
  121.     (GTMX_Labels), (ULONG)&RGBHSV_GAD0Labels[ 0 ], (TAG_DONE),
  122.     (TAG_DONE),
  123.     (TAG_DONE),
  124.     (TAG_DONE),
  125.     (TAG_DONE),
  126.     (TAG_DONE),
  127.     (GTTX_Text), (ULONG)" Shift", (GTTX_Border), TRUE, (TAG_DONE),
  128.     (TAG_DONE),
  129.     (GTTX_Text), (ULONG)"G", (TAG_DONE),
  130.     (GTTX_Text), (ULONG)"B", (TAG_DONE),
  131.     (GTTX_Text), (ULONG)"R", (TAG_DONE)
  132. };
  133.  
  134. int SetupScreen( void )
  135. {
  136.     if ( ! ( Font = OpenDiskFont( &topaz8 )))
  137.         return( 5L );
  138.  
  139. /*    if ( ! ( Scr = LockPubScreen( PubScreenName )))
  140.         return( 1L );*/
  141.  
  142.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  143.         return( 2L );
  144.  
  145.     return( 0L );
  146. }
  147.  
  148. void CloseDownScreen( void )
  149. {
  150.     if ( VisualInfo ) {
  151.         FreeVisualInfo( VisualInfo );
  152.         VisualInfo = NULL;
  153.     }
  154.  
  155.     if ( Scr        ) {
  156.     /*    UnlockPubScreen( NULL, Scr ); */
  157.         Scr = NULL;
  158.     }
  159.  
  160.     if ( Font       ) {
  161.         CloseFont( Font );
  162.         Font = NULL;
  163.     }
  164. }
  165.  
  166. void ColorSaverRender( void )
  167. {
  168.     UWORD        offx, offy;
  169.  
  170.     offx = ColorSaverWnd->BorderLeft;
  171.     offy = ColorSaverWnd->BorderTop;
  172.  
  173.  
  174.     DrawBevelBox( ColorSaverWnd->RPort, offx + 109, offy + 70, 93, 28, GT_VisualInfo, VisualInfo, TAG_DONE );
  175. }
  176.  
  177. int OpenColorSaverWindow( void )
  178. {
  179.     struct NewGadget    ng;
  180.     struct Gadget    *g;
  181.     UWORD        lc, tc;
  182.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  183.  
  184.     ColorSaverGTags[1] = Scr->BitMap.Depth;
  185.  
  186.     if ( ! ( g = CreateContext( &ColorSaverGList )))
  187.         return( 1L );
  188.  
  189.     for( lc = 0, tc = 0; lc < ColorSaver_CNT; lc++ ) {
  190.  
  191.         CopyMem((char * )&ColorSaverNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  192.  
  193.         ng.ng_VisualInfo = VisualInfo;
  194.         ng.ng_TextAttr   = &topaz8;
  195.         ng.ng_LeftEdge  += offx;
  196.         ng.ng_TopEdge   += offy;
  197.  
  198.         ColorSaverGadgets[ lc ] = g = CreateGadgetA((ULONG)ColorSaverGTypes[ lc ], g, &ng, ( struct TagItem * )&ColorSaverGTags[ tc ] );
  199.  
  200.         while( ColorSaverGTags[ tc ] ) tc += 2;
  201.         tc++;
  202.  
  203.         if ( NOT g )
  204.             return( 2L );
  205.     }
  206.  
  207.     if ( ! ( ColorSaverWnd = OpenWindowTags( NULL,
  208.                 WA_Left,    ColorSaverLeft,
  209.                 WA_Top,        ColorSaverTop,
  210.                 WA_Width,    ColorSaverWidth,
  211.                 WA_Height,    ColorSaverHeight + offy,
  212.                 WA_IDCMP,    PALETTEIDCMP|BUTTONIDCMP|CYCLEIDCMP|SLIDERIDCMP|MXIDCMP|TEXTIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_CHANGEWINDOW|IDCMP_REFRESHWINDOW,
  213.                 WA_Flags,    WFLG_DRAGBAR|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH,
  214.                 WA_Gadgets,    ColorSaverGList,
  215.                 WA_Title,    ColorSaverWdt,
  216.                 WA_ScreenTitle,    "ColorSaver © 1993 by Dan Fish",
  217.                 WA_PubScreen,    Scr,
  218.                 TAG_DONE )))
  219.     return( 4L );
  220.  
  221.     GT_RefreshWindow( ColorSaverWnd, NULL );
  222.  
  223.     ColorSaverRender();
  224.  
  225.     return( 0L );
  226. }
  227.  
  228. void CloseColorSaverWindow( void )
  229. {
  230.     if ( ColorSaverWnd        ) {
  231.         CloseWindow( ColorSaverWnd );
  232.         ColorSaverWnd = NULL;
  233.     }
  234.  
  235.     if ( ColorSaverGList      ) {
  236.         FreeGadgets( ColorSaverGList );
  237.         ColorSaverGList = NULL;
  238.     }
  239. }
  240.