home *** CD-ROM | disk | FTP | other *** search
- /*
- * Source machine generated by GadToolsBox V2.0b
- * which is (c) Copyright 1991-1993 Jaba Development
- *
- * GUI Designed by : -- Unnamed --
- */
-
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <intuition/classes.h>
- #include <intuition/classusr.h>
- #include <intuition/imageclass.h>
- #include <intuition/gadgetclass.h>
- #include <libraries/gadtools.h>
- #include <graphics/displayinfo.h>
- #include <graphics/gfxbase.h>
- #include <clib/exec_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/gadtools_protos.h>
- #include <clib/graphics_protos.h>
- #include <clib/utility_protos.h>
- #include <string.h>
- #include "gad_eprommer.h"
-
- struct Screen *Scr = NULL;
- UBYTE *PubScreenName = NULL;
- APTR VisualInfo = NULL;
- struct Window *EprommerWnd = NULL;
- struct Window *OptionsWnd = NULL;
- struct Window *BusyWnd = NULL;
- struct Window *TestWnd = NULL;
- struct Gadget *EprommerGList = NULL;
- struct Gadget *OptionsGList = NULL;
- struct Gadget *BusyGList = NULL;
- struct Gadget *TestGList = NULL;
- struct IntuiMessage EprommerMsg;
- struct IntuiMessage OptionsMsg;
- struct IntuiMessage BusyMsg;
- struct IntuiMessage TestMsg;
- struct Gadget *EprommerGadgets[21];
- struct Gadget *OptionsGadgets[10];
- struct Gadget *BusyGadgets[1];
- struct Gadget *TestGadgets[4];
- extern Class *initGet( void );
- struct IClass *getClass = NULL;
- struct _Object *getImage = NULL;
- UWORD EprommerLeft = 26;
- UWORD EprommerTop = 34;
- UWORD EprommerWidth = 502;
- UWORD EprommerHeight = 182;
- UWORD OptionsLeft = 238;
- UWORD OptionsTop = 53;
- UWORD OptionsWidth = 223;
- UWORD OptionsHeight = 175;
- UWORD BusyLeft = 229;
- UWORD BusyTop = 129;
- UWORD BusyWidth = 177;
- UWORD BusyHeight = 46;
- UWORD TestLeft = 80;
- UWORD TestTop = 98;
- UWORD TestWidth = 204;
- UWORD TestHeight = 95;
- UBYTE *EprommerWdt = (UBYTE *)"-";
- UBYTE *OptionsWdt = (UBYTE *)"Options";
- UBYTE *BusyWdt = NULL;
- UBYTE *TestWdt = (UBYTE *)"Check Eprommer";
- struct TextAttr *Font, Attr;
- UWORD FontX, FontY;
- UWORD OffX, OffY;
-
- UBYTE *DataFormat0Labels[] = {
- (UBYTE *)"Binary",
- (UBYTE *)"IntelHex",
- NULL };
-
- UBYTE *ProgAlgo0Labels[] = {
- (UBYTE *)"50 msec",
- (UBYTE *)"IntEligent",
- (UBYTE *)"Eprommer",
- (UBYTE *)"No delay",
- NULL };
-
- UBYTE *EpromType0Labels[] = {
- (UBYTE *)"2716",
- (UBYTE *)"2732",
- (UBYTE *)"2732A",
- (UBYTE *)"2764",
- (UBYTE *)"2764A",
- (UBYTE *)"27128",
- (UBYTE *)"27256",
- (UBYTE *)"27512",
- (UBYTE *)"6216",
- (UBYTE *)"6264",
- (UBYTE *)"62256",
- NULL };
-
- UBYTE *NumericalBase1Labels[] = {
- (UBYTE *)"Only Decimal",
- (UBYTE *)"Dec. & Hex.",
- (UBYTE *)"Hexadecimal",
- NULL };
-
- UBYTE *SetVpp3Labels[] = {
- (UBYTE *)"12.5 V",
- (UBYTE *)"21 V",
- (UBYTE *)"25 V",
- NULL };
-
- UBYTE *T_CyAddress3Labels[] = {
- (UBYTE *)"0x5555",
- (UBYTE *)"0xAAAA",
- NULL };
-
- UBYTE *T_CyData3Labels[] = {
- (UBYTE *)"0x55",
- (UBYTE *)"0xAA",
- NULL };
-
- struct IntuiText EprommerIText[] = {
- 1, 0, JAM1,264, 11, NULL, (UBYTE *)"Address", NULL,
- 1, 0, JAM1,416, 11, NULL, (UBYTE *)"Eprom Type", NULL,
- 1, 0, JAM1,416, 127, NULL, (UBYTE *)"Algorythm", NULL,
- 1, 0, JAM1,100, 91, NULL, (UBYTE *)"Action", NULL };
-
- #define Eprommer_TNUM 4
-
- struct IntuiText BusyIText[] = {
- 2, 0, JAM1,52, 15, NULL, (UBYTE *)"Address:", NULL,
- 1, 0, JAM2,128, 15, NULL, (UBYTE *)"0x---- ", NULL };
-
- #define Busy_TNUM 2
-
- UWORD EprommerGTypes[] = {
- CYCLE_KIND,
- MX_KIND,
- MX_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- GENERIC_KIND,
- GENERIC_KIND,
- STRING_KIND,
- STRING_KIND,
- STRING_KIND,
- STRING_KIND,
- STRING_KIND,
- STRING_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- UWORD OptionsGTypes[] = {
- CYCLE_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- INTEGER_KIND
- };
-
- UWORD BusyGTypes[] = {
- BUTTON_KIND
- };
-
- UWORD TestGTypes[] = {
- CHECKBOX_KIND,
- CYCLE_KIND,
- CYCLE_KIND,
- CYCLE_KIND
- };
-
- struct NewGadget EprommerNGad[] = {
- 51, 19, 95, 11, (UBYTE *)"Data Format", NULL, GD_DataFormat, PLACETEXT_ABOVE, NULL, (APTR)DataFormatClicked,
- 373, 135, 17, 9, NULL, NULL, GD_ProgAlgo, PLACETEXT_RIGHT, NULL, (APTR)ProgAlgoClicked,
- 373, 19, 17, 9, NULL, NULL, GD_EpromType, PLACETEXT_RIGHT, NULL, (APTR)EpromTypeClicked,
- 220, 101, 132, 11, (UBYTE *)"Read Byte", NULL, GD_ReadByte, PLACETEXT_IN, NULL, (APTR)ReadByteClicked,
- 220, 116, 132, 11, (UBYTE *)"Write Byte", NULL, GD_WriteByte, PLACETEXT_IN, NULL, (APTR)WriteByteClicked,
- 11, 101, 88, 15, (UBYTE *)"Read", NULL, GD_ReadEprom, PLACETEXT_IN, NULL, (APTR)ReadEpromClicked,
- 11, 128, 88, 15, (UBYTE *)"Empty ?", NULL, GD_BlankTest, PLACETEXT_IN, NULL, (APTR)BlankTestClicked,
- 11, 155, 88, 15, (UBYTE *)"Compare", NULL, GD_CompareEprom, PLACETEXT_IN, NULL, (APTR)CompareEpromClicked,
- 111, 101, 88, 71, (UBYTE *)"Program", NULL, GD_ProgramEprom, PLACETEXT_IN, NULL, (APTR)ProgramEpromClicked,
- 11, 37, 20, 14, NULL, NULL, GD_LoadFileReq, 0, NULL, (APTR)LoadFileReqClicked,
- 11, 57, 20, 14, NULL, NULL, GD_SaveFileReq, 0, NULL, (APTR)SaveFileReqClicked,
- 34, 37, 117, 12, NULL, NULL, GD_LoadFile, 0, NULL, (APTR)LoadFileClicked,
- 34, 57, 117, 12, NULL, NULL, GD_SaveFile, 0, NULL, (APTR)SaveFileClicked,
- 220, 20, 80, 12, (UBYTE *)"Buffer", NULL, GD_RamAddress, PLACETEXT_RIGHT, NULL, (APTR)RamAddressClicked,
- 220, 37, 80, 12, (UBYTE *)"Eprom", NULL, GD_EpromAddress, PLACETEXT_RIGHT, NULL, (APTR)EpromAddressClicked,
- 220, 55, 80, 12, (UBYTE *)"Length", NULL, GD_Length, PLACETEXT_RIGHT, NULL, (APTR)LengthClicked,
- 220, 85, 46, 12, (UBYTE *)"RAM Value", NULL, GD_RamVal, PLACETEXT_RIGHT, NULL, (APTR)RamValClicked,
- 220, 144, 132, 11, (UBYTE *)"Options", NULL, GD_DoOptions, PLACETEXT_IN, NULL, (APTR)DoOptionsClicked,
- 153, 37, 49, 11, (UBYTE *)"LOAD", NULL, GD_LoadBt, PLACETEXT_IN, NULL, (APTR)LoadBtClicked,
- 153, 57, 49, 11, (UBYTE *)"SAVE", NULL, GD_SaveBt, PLACETEXT_IN, NULL, (APTR)SaveBtClicked,
- 220, 160, 132, 11, (UBYTE *)"Adjust Hardware", NULL, GD_TestHardware, PLACETEXT_IN, NULL, (APTR)TestHardwareClicked
- };
-
- struct NewGadget OptionsNGad[] = {
- 35, 18, 144, 12, (UBYTE *)"Numrical Base", NULL, GD_NumericalBase, PLACETEXT_ABOVE, NULL, (APTR)NumericalBaseClicked,
- 23, 41, 26, 11, (UBYTE *)"Buffer fragmented", NULL, GD_SetBufferFrag, PLACETEXT_RIGHT, NULL, (APTR)SetBufferFragClicked,
- 23, 55, 26, 11, (UBYTE *)"Clear Buffer (0xFF)", NULL, GD_SetClearBuffer, PLACETEXT_RIGHT, NULL, (APTR)SetClearBufferClicked,
- 24, 75, 26, 11, (UBYTE *)"Info Requester", NULL, GD_SetInfoReq, PLACETEXT_RIGHT, NULL, (APTR)SetInfoReqClicked,
- 7, 160, 56, 12, (UBYTE *)"Ok", NULL, GD_OptionsOk, PLACETEXT_IN, NULL, (APTR)OptionsOkClicked,
- 83, 160, 56, 12, (UBYTE *)"Save", NULL, GD_SavePrefs, PLACETEXT_IN, NULL, (APTR)SavePrefsClicked,
- 160, 160, 56, 11, (UBYTE *)"Cancel", NULL, GD_OptionsCancel, PLACETEXT_IN, NULL, (APTR)OptionsCancelClicked,
- 24, 111, 26, 11, (UBYTE *)"EProm default size", NULL, GD_setepsize, PLACETEXT_RIGHT, NULL, (APTR)setepsizeClicked,
- 24, 89, 26, 11, (UBYTE *)"Counting", NULL, GD_count, PLACETEXT_RIGHT, NULL, (APTR)countClicked,
- 23, 133, 28, 13, (UBYTE *)"CIA Delay", NULL, GD_CIADelay, PLACETEXT_RIGHT, NULL, (APTR)CIADelayClicked
- };
-
- struct NewGadget BusyNGad[] = {
- 43, 30, 81, 12, (UBYTE *)"Abort", NULL, GD_abort, PLACETEXT_IN, NULL, (APTR)abortClicked
- };
-
- struct NewGadget TestNGad[] = {
- 41, 51, 26, 11, (UBYTE *)"Eprom removed", NULL, GD_NoEprom, PLACETEXT_RIGHT, NULL, (APTR)NoEpromClicked,
- 96, 69, 92, 11, (UBYTE *)"Vpp", NULL, GD_SetVpp, PLACETEXT_LEFT, NULL, (APTR)SetVppClicked,
- 79, 9, 108, 11, (UBYTE *)"Address", NULL, GD_T_CyAddress, PLACETEXT_LEFT, NULL, (APTR)T_CyAddressClicked,
- 79, 24, 108, 11, (UBYTE *)"Data", NULL, GD_T_CyData, PLACETEXT_LEFT, NULL, (APTR)T_CyDataClicked
- };
-
- ULONG EprommerGTags[] = {
- (GTCY_Labels), (ULONG)&DataFormat0Labels[ 0 ], (TAG_DONE),
- (GTMX_Labels), (ULONG)&ProgAlgo0Labels[ 0 ], (GTMX_Spacing), 2, (TAG_DONE),
- (GTMX_Labels), (ULONG)&EpromType0Labels[ 0 ], (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (GTST_String), (ULONG)"0", (GTST_MaxChars), 7, (TAG_DONE),
- (GTST_String), (ULONG)"0", (GTST_MaxChars), 7, (TAG_DONE),
- (GTST_String), (ULONG)"0", (GTST_MaxChars), 7, (TAG_DONE),
- (GTST_String), (ULONG)"0", (GTST_MaxChars), 5, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE)
- };
-
- ULONG OptionsGTags[] = {
- (GTCY_Labels), (ULONG)&NumericalBase1Labels[ 0 ], (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTIN_Number), 0, (GTIN_MaxChars), 1, (TAG_DONE)
- };
-
- ULONG BusyGTags[] = {
- (TAG_DONE)
- };
-
- ULONG TestGTags[] = {
- (TAG_DONE),
- (GTCY_Labels), (ULONG)&SetVpp3Labels[ 0 ], (GA_Disabled), TRUE, (TAG_DONE),
- (GTCY_Labels), (ULONG)&T_CyAddress3Labels[ 0 ], (TAG_DONE),
- (GTCY_Labels), (ULONG)&T_CyData3Labels[ 0 ], (TAG_DONE)
- };
-
- static UWORD ComputeX( UWORD value )
- {
- return(( UWORD )((( FontX * value ) + 4 ) / 8 ));
- }
-
- static UWORD ComputeY( UWORD value )
- {
- return(( UWORD )((( FontY * value ) + 4 ) / 8 ));
- }
-
- static void ComputeFont( UWORD width, UWORD height )
- {
- Font = &Attr;
- Font->ta_Name = (STRPTR)Scr->RastPort.Font->tf_Message.mn_Node.ln_Name;
- Font->ta_YSize = FontY = Scr->RastPort.Font->tf_YSize;
- FontX = Scr->RastPort.Font->tf_XSize;
-
- OffX = Scr->WBorLeft;
- OffY = Scr->RastPort.TxHeight + Scr->WBorTop + 1;
-
- if ( width && height ) {
- if (( ComputeX( width ) + OffX + Scr->WBorRight ) > Scr->Width )
- goto UseTopaz;
- if (( ComputeY( height ) + OffY + Scr->WBorBottom ) > Scr->Height )
- goto UseTopaz;
- }
- return;
-
- UseTopaz:
- Font->ta_Name = (STRPTR)"topaz.font";
- FontX = FontY = Font->ta_YSize = 8;
- }
-
- int SetupScreen( void )
- {
- if ( ! ( Scr = LockPubScreen( PubScreenName )))
- return( 1L );
-
- ComputeFont( 0, 0 );
-
- if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
- return( 2L );
-
- if ( ! ( getClass = initGet()))
- return( 3L );
-
- if ( ! ( getImage = NewObject( getClass, NULL, GT_VisualInfo, VisualInfo, TAG_DONE )))
- return( 4L );
-
- return( 0L );
- }
-
- void CloseDownScreen( void )
- {
- if ( getImage ) {
- DisposeObject( getImage );
- getImage = NULL;
- }
-
- if ( getClass ) {
- FreeClass( getClass );
- getClass = NULL;
- }
-
- if ( VisualInfo ) {
- FreeVisualInfo( VisualInfo );
- VisualInfo = NULL;
- }
-
- if ( Scr ) {
- UnlockPubScreen( NULL, Scr );
- Scr = NULL;
- }
- }
-
- void EprommerRender( void )
- {
- struct IntuiText it;
- UWORD cnt;
-
- ComputeFont( EprommerWidth, EprommerHeight );
-
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 212 ),
- OffY + ComputeY( 137 ),
- ComputeX( 149 ),
- ComputeY( 41 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 212 ),
- OffY + ComputeY( 81 ),
- ComputeX( 149 ),
- ComputeY( 53 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 212 ),
- OffY + ComputeY( 5 ),
- ComputeX( 149 ),
- ComputeY( 73 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 4 ),
- OffY + ComputeY( 5 ),
- ComputeX( 205 ),
- ComputeY( 73 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 4 ),
- OffY + ComputeY( 81 ),
- ComputeX( 205 ),
- ComputeY( 97 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( EprommerWnd->RPort, OffX + ComputeX( 364 ),
- OffY + ComputeY( 5 ),
- ComputeX( 121 ),
- ComputeY( 173 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
-
- for ( cnt = 0; cnt < Eprommer_TNUM; cnt++ ) {
- CopyMem(( char * )&EprommerIText[ cnt ], ( char * )&it, (long)sizeof( struct IntuiText ));
- it.ITextFont = Font;
- it.LeftEdge = OffX + ComputeX( it.LeftEdge ) - ( IntuiTextLength( &it ) >> 1 );
- it.TopEdge = OffY + ComputeY( it.TopEdge ) - ( Font->ta_YSize >> 1 );
- PrintIText( EprommerWnd->RPort, &it, 0, 0 );
- }
- }
-
- int HandleEprommerIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( EprommerWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&EprommerMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( EprommerMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( EprommerWnd );
- EprommerRender();
- GT_EndRefresh( EprommerWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = EprommerCloseWindow();
- break;
-
- case IDCMP_RAWKEY:
- running = EprommerRawKey();
- break;
-
- case IDCMP_GADGETUP:
- case IDCMP_GADGETDOWN:
- func = ( void * )(( struct Gadget * )EprommerMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenEprommerWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = EprommerLeft, wtop = EprommerTop, ww, wh;
-
- ComputeFont( EprommerWidth, EprommerHeight );
-
- ww = ComputeX( EprommerWidth );
- wh = ComputeY( EprommerHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &EprommerGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Eprommer_CNT; lc++ ) {
-
- CopyMem((char * )&EprommerNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
-
- if ( EprommerGTypes[ lc ] != GENERIC_KIND ) {
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
- }
-
- EprommerGadgets[ lc ] = g = CreateGadgetA((ULONG)EprommerGTypes[ lc ], g, &ng, ( struct TagItem * )&EprommerGTags[ tc ] );
-
- if ( EprommerGTypes[ lc ] == GENERIC_KIND ) {
- g->Flags |= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
- g->Activation |= GACT_RELVERIFY;
- g->GadgetRender = (APTR)getImage;
- g->SelectRender = (APTR)getImage;
- }
-
- while( EprommerGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( EprommerWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, CYCLEIDCMP|MXIDCMP|BUTTONIDCMP|IDCMP_GADGETUP|STRINGIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_SIZEGADGET|WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_SIMPLE_REFRESH,
- WA_Gadgets, EprommerGList,
- WA_Title, EprommerWdt,
- WA_PubScreen, Scr,
- WA_MinWidth, 67,
- WA_MinHeight, 21,
- WA_MaxWidth, 640,
- WA_MaxHeight, 400,
- WA_AutoAdjust, TRUE,
- WA_PubScreenFallBack, TRUE,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( EprommerWnd, NULL );
-
- EprommerRender();
-
- return( 0L );
- }
-
- void CloseEprommerWindow( void )
- {
- if ( EprommerWnd ) {
- CloseWindow( EprommerWnd );
- EprommerWnd = NULL;
- }
-
- if ( EprommerGList ) {
- FreeGadgets( EprommerGList );
- EprommerGList = NULL;
- }
- }
-
- void OptionsRender( void )
- {
- ComputeFont( OptionsWidth, OptionsHeight );
-
- DrawBevelBox( OptionsWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 130 ),
- ComputeX( 211 ),
- ComputeY( 19 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( OptionsWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 107 ),
- ComputeX( 211 ),
- ComputeY( 19 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( OptionsWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 4 ),
- ComputeX( 211 ),
- ComputeY( 31 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( OptionsWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 38 ),
- ComputeX( 211 ),
- ComputeY( 31 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( OptionsWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 72 ),
- ComputeX( 211 ),
- ComputeY( 31 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- }
-
- int HandleOptionsIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( OptionsWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&OptionsMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( OptionsMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( OptionsWnd );
- OptionsRender();
- GT_EndRefresh( OptionsWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = OptionsCloseWindow();
- break;
-
- case IDCMP_RAWKEY:
- running = OptionsRawKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )OptionsMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenOptionsWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = OptionsLeft, wtop = OptionsTop, ww, wh;
-
- ComputeFont( OptionsWidth, OptionsHeight );
-
- ww = ComputeX( OptionsWidth );
- wh = ComputeY( OptionsHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &OptionsGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Options_CNT; lc++ ) {
-
- CopyMem((char * )&OptionsNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- OptionsGadgets[ lc ] = g = CreateGadgetA((ULONG)OptionsGTypes[ lc ], g, &ng, ( struct TagItem * )&OptionsGTags[ tc ] );
-
- while( OptionsGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( OptionsWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, CYCLEIDCMP|CHECKBOXIDCMP|BUTTONIDCMP|INTEGERIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_SIMPLE_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, OptionsGList,
- WA_Title, OptionsWdt,
- WA_ScreenTitle, "Options",
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( OptionsWnd, NULL );
-
- OptionsRender();
-
- return( 0L );
- }
-
- void CloseOptionsWindow( void )
- {
- if ( OptionsWnd ) {
- CloseWindow( OptionsWnd );
- OptionsWnd = NULL;
- }
-
- if ( OptionsGList ) {
- FreeGadgets( OptionsGList );
- OptionsGList = NULL;
- }
- }
-
- void BusyRender( void )
- {
- struct IntuiText it;
- UWORD cnt;
-
- ComputeFont( BusyWidth, BusyHeight );
-
- DrawBevelBox( BusyWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 4 ),
- ComputeX( 167 ),
- ComputeY( 22 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
-
- for ( cnt = 0; cnt < Busy_TNUM; cnt++ ) {
- CopyMem(( char * )&BusyIText[ cnt ], ( char * )&it, (long)sizeof( struct IntuiText ));
- it.ITextFont = Font;
- it.LeftEdge = OffX + ComputeX( it.LeftEdge ) - ( IntuiTextLength( &it ) >> 1 );
- it.TopEdge = OffY + ComputeY( it.TopEdge ) - ( Font->ta_YSize >> 1 );
- PrintIText( BusyWnd->RPort, &it, 0, 0 );
- }
- }
-
- int HandleBusyIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( BusyWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&BusyMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( BusyMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( BusyWnd );
- BusyRender();
- GT_EndRefresh( BusyWnd, TRUE );
- break;
-
- case IDCMP_RAWKEY:
- running = BusyRawKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )BusyMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenBusyWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = BusyLeft, wtop = BusyTop, ww, wh;
-
- ComputeFont( BusyWidth, BusyHeight );
-
- ww = ComputeX( BusyWidth );
- wh = ComputeY( BusyHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &BusyGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Busy_CNT; lc++ ) {
-
- CopyMem((char * )&BusyNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- BusyGadgets[ lc ] = g = CreateGadgetA((ULONG)BusyGTypes[ lc ], g, &ng, ( struct TagItem * )&BusyGTags[ tc ] );
-
- while( BusyGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( BusyWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, BUTTONIDCMP|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, BusyGList,
- WA_Title, BusyWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( BusyWnd, NULL );
-
- BusyRender();
-
- return( 0L );
- }
-
- void CloseBusyWindow( void )
- {
- if ( BusyWnd ) {
- CloseWindow( BusyWnd );
- BusyWnd = NULL;
- }
-
- if ( BusyGList ) {
- FreeGadgets( BusyGList );
- BusyGList = NULL;
- }
- }
-
- void TestRender( void )
- {
- ComputeFont( TestWidth, TestHeight );
-
- DrawBevelBox( TestWnd->RPort, OffX + ComputeX( 4 ),
- OffY + ComputeY( 4 ),
- ComputeX( 197 ),
- ComputeY( 37 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( TestWnd->RPort, OffX + ComputeX( 4 ),
- OffY + ComputeY( 45 ),
- ComputeX( 197 ),
- ComputeY( 45 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- }
-
- int HandleTestIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( TestWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&TestMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( TestMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( TestWnd );
- TestRender();
- GT_EndRefresh( TestWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = TestCloseWindow();
- break;
-
- case IDCMP_RAWKEY:
- running = TestRawKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )TestMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenTestWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = TestLeft, wtop = TestTop, ww, wh;
-
- ComputeFont( TestWidth, TestHeight );
-
- ww = ComputeX( TestWidth );
- wh = ComputeY( TestHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &TestGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Test_CNT; lc++ ) {
-
- CopyMem((char * )&TestNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- TestGadgets[ lc ] = g = CreateGadgetA((ULONG)TestGTypes[ lc ], g, &ng, ( struct TagItem * )&TestGTags[ tc ] );
-
- while( TestGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( TestWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, CHECKBOXIDCMP|CYCLEIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, TestGList,
- WA_Title, TestWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( TestWnd, NULL );
-
- TestRender();
-
- return( 0L );
- }
-
- void CloseTestWindow( void )
- {
- if ( TestWnd ) {
- CloseWindow( TestWnd );
- TestWnd = NULL;
- }
-
- if ( TestGList ) {
- FreeGadgets( TestGList );
- TestGList = NULL;
- }
- }
-
-