/* * skew1.c * * PROGRAM NAME: SKEW ( meaning "SKEleton Writer" ) * * VERSION: 0.85 * * FINISHED: 11-Mar-92 * * PURPOSE: Utility for generating GetIDCMP() functions & Co. * * PROGRAMMER: Piotr Obminski * * LEGAL STATUS: Public Domain * * COMPILER: DICE V2.06 * * COMPILATION: dmake -f skew.make * * COMMENTS: My first biggish Amiga C project... * * HISTORY: See file skew.history */ #include #include #include #include #include #include #include #include #include "skew.h" #include "image.h" APTR GadToolsBase = NULL; APTR AslBase = NULL; struct Window *Wnd = NULL; struct Screen *Scr = NULL; APTR VisualInfo = NULL; struct TextAttr topaz8 = { ( STRPTR )"topaz.font", 8, 0x00, 0x01 }; /* Colors1 -- white coffe, black, white & red */ struct ColorSpec ScreenColors[] = { 0, 0x0B, 0x0A, 0x09, 1, 0x00, 0x00, 0x02, 2, 0x0F, 0x0F, 0x0F, 3, 0x09, 0x01, 0x00, ~0, 0x00, 0x00, 0x00 }; UWORD DriPens[] = { 0,1,1,2,1,3,1,0,2,~0 }; struct TagItem ScreenTags_PAL[] = { SA_Left, 0, SA_Top, 0, SA_Width, 640, SA_Height, 256, SA_Depth, 2, SA_Colors, ScreenColors, SA_Font, &topaz8, SA_Type, CUSTOMSCREEN, SA_DisplayID, PAL_MONITOR_ID | HIRES_KEY, SA_Pens, DriPens, TAG_DONE }; /* what a waste! */ struct TagItem ScreenTags_NTSC[] = { SA_Left, 0, SA_Top, 0, SA_Width, 640, SA_Height, 256, SA_Depth, 2, SA_Colors, ScreenColors, SA_Font, &topaz8, SA_Type, CUSTOMSCREEN, SA_DisplayID, NTSC_MONITOR_ID | HIRESLACE_KEY, SA_Pens, DriPens, TAG_DONE }; struct TagItem WindowTags[] = { WA_Left, 2, WA_Top, 10, WA_Width, 637, WA_Height, 246, WA_IDCMP, IDCMP_GADGETDOWN | IDCMP_GADGETUP | IDCMP_REFRESHWINDOW | IDCMP_MENUPICK, WA_Flags, WFLG_SMART_REFRESH | WFLG_ACTIVATE | WFLG_RMBTRAP | WFLG_BACKDROP, WA_Gadgets, 0L, WA_Title, NULL, WA_ScreenTitle, "SKEleton Writer Public Domain by Piotr Obminski March 1992", WA_CustomScreen, 0L, WA_MinWidth, 637, WA_MinHeight, 1, WA_MaxWidth, 637, WA_MaxHeight, 246, TAG_DONE }; struct IntuiText IText1[]= { 3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"1/3", &IText1[1], 3, 0, JAM1, 60, 135, &topaz8, (UBYTE *)"Fields in IntuiMessage:", NULL }; struct IntuiText IText2[] = { 3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"2/3", &IText2[1], 3, 0, JAM1, 80, 20, &topaz8, (UBYTE *)"Class:", NULL }; struct IntuiText IText3[] = { 3, 0, JAM2, 588, 12, &topaz8, (UBYTE *)"3/3", &IText3[1], 3, 0, JAM1, 60, 20, &topaz8, (UBYTE *)"Global options:", NULL }; /* stuff related to displaying program's logo */ extern UWORD Title_data[]; /* IMAGE STRUCTURE */ struct Image Title = { 0, 0, 477, 40, 2, &Title_data[0], 2, 0, NULL }; int Display_num; /* stuff for top-level function name */ char *TOP_LEVEL_BUF; char TOP_LEVEL_NAME[ 40 ] = "GetIDCMP"; /* stuff for IDCMPWindow name */ char *IDCMP_WIN_BUF; char IDCMP_WIN_NAME[ 40 ] = "Wnd"; /* prefix & suffix for the names of the generated functions */ char *PREFIX_BUF, *SUFFIX_BUF; char PREFIX_NAME[ 20 ], SUFFIX_NAME[ 20 ]; extern struct Gadget *GList; extern struct Gadget *Gadgets[]; /* flags related to gadgets & output file */ extern long Flag1; extern long Flag2A; extern long Flag2B; extern long Flag3; /* flags for cycle gadgets on display #3 */ extern int WaitingMode_FLAG, Variables_FLAG, Comments_FLAG, FillIns_FLAG, WaitingMode_START, Variables_START, Comments_START, FillIns_START; /* stuff needed for cycle gadgets in last (third) display */ UBYTE *WaitingModeLabels0[] = { "passive", "busy", 0L }; UBYTE *WaitingModeLabels1[] = { "busy", "passive", 0L }; UBYTE *VariablesLabels0[] = { "global", "local", 0L }; UBYTE *VariablesLabels1[] = { "local", "global", 0L }; UBYTE *CommentsLabels0[] = { "sparse", "NONE", "verbose", 0L }; UBYTE *CommentsLabels1[] = { "NONE", "verbose", "sparse", 0L }; UBYTE *CommentsLabels2[] = { "verbose", "sparse", "NONE", 0L }; UBYTE *FillInsLabels0[] = { "NOT MARKED", "@@@@@@@@@@", "/* @@ */", "@@", 0L }; UBYTE *FillInsLabels1[] = { "@@@@@@@@@@", "/* @@ */", "@@", "NOT MARKED", 0L }; UBYTE *FillInsLabels2[] = { "/* @@ */", "@@", "NOT MARKED", "@@@@@@@@@@", 0L }; UBYTE *FillInsLabels3[] = { "@@", "NOT MARKED", "@@@@@@@@@@", "/* @@ */", 0L }; /* function prototypes */ void main( void ); static long InitStuff( void ); static long MakeWindow( void ); void CleanStuff( void ); long MakeDisplay( int num ); extern void HandleIDCMP( void ); extern void HandleGadgets( USHORT, APTR ); void main( void ) { if ( InitStuff() != 0L ) { exit( 25 ); }; HandleIDCMP(); CleanStuff(); } long InitStuff( void ) { GadToolsBase = (APTR) OpenLibrary( "gadtools.library", 0 ); if ( GadToolsBase == NULL ) { puts( "Sorry, you need gadtools.library!" ); return( 10L ); } AslBase = (APTR) OpenLibrary( "asl.library", 0 ); if ( AslBase == NULL ) { puts( "Sorry, you need asl.library!" ); return( 8l ); } if ( !( Scr = OpenScreenTagList( 0L, ScreenTags_PAL ))) { if ( !( Scr = OpenScreenTagList( 0L, ScreenTags_NTSC ))) return( 5L ); } if ( MakeWindow() != 0L ) { return( 1l ); } } long MakeWindow( void ) { WindowTags[ 9 ].ti_Data = Scr; if ( NOT( Wnd = OpenWindowTagList( 0L, WindowTags ))) return( 5l ); MakeDisplay( 0 ); RefreshGList( GList, Wnd, NULL, -1 ); GT_RefreshWindow( Wnd, NULL ); } long MakeDisplay( int Display_num ) { struct NewGadget ng; struct Gadget *g; BOOL check_flag; UBYTE *temp_ptr; TOP_LEVEL_BUF = &TOP_LEVEL_NAME[ 0 ]; IDCMP_WIN_BUF = &IDCMP_WIN_NAME[ 0 ]; PREFIX_BUF = &PREFIX_NAME[ 0 ]; SUFFIX_BUF = &SUFFIX_NAME[ 0 ]; switch ( Display_num ) { /* making window #0 */ case 0 : if ( NOT( VisualInfo = GetVisualInfo( Scr, TAG_DONE ))) return( 2l ); if ( NOT( g = CreateContext( &GList ))) return( 3l ); ng.ng_LeftEdge = 208; ng.ng_TopEdge = 104; ng.ng_Width = 208; ng.ng_Height = 16; ng.ng_GadgetText = "IDCMPWindow"; ng.ng_TextAttr = &topaz8; ng.ng_GadgetID = GD_IDCMPWindow; ng.ng_Flags = PLACETEXT_ABOVE; ng.ng_VisualInfo = VisualInfo; g = CreateGadget( STRING_KIND, g, &ng, GTST_String, IDCMP_WIN_NAME, GTST_MaxChars, 40, TAG_DONE ); IDCMP_WIN_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer; Gadgets[ 0 ] = g; ng.ng_LeftEdge = 184; ng.ng_TopEdge = 150; ng.ng_GadgetText = "Class"; ng.ng_GadgetID = GD_Code; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & CLASS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 1 ] = g; ng.ng_TopEdge = 170; ng.ng_GadgetText = "Code"; ng.ng_GadgetID = GD_Code; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & CODE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 2 ] = g; ng.ng_TopEdge = 190; ng.ng_GadgetText = "Qualifier"; ng.ng_GadgetID = GD_Qualifier; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & QUALIFIER_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 3 ] = g; ng.ng_LeftEdge = 386; ng.ng_TopEdge = 150; ng.ng_GadgetText = "MouseX"; ng.ng_GadgetID = GD_MouseX; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & MOUSEX_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 4 ] = g; ng.ng_LeftEdge = 501; ng.ng_GadgetText = "MouseY"; ng.ng_GadgetID = GD_MouseY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & MOUSEY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 5 ] = g; ng.ng_LeftEdge = 386; ng.ng_TopEdge = 170; ng.ng_GadgetText = "Seconds"; ng.ng_GadgetID = GD_Seconds; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & SECONDS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 6 ] = g; ng.ng_LeftEdge = 501; ng.ng_GadgetText = "Micros"; ng.ng_GadgetID = GD_Micros; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & MICROS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 7 ] = g; ng.ng_LeftEdge = 470; ng.ng_TopEdge = 190; ng.ng_GadgetText = "IAddress"; ng.ng_GadgetID = GD_IAddress; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag1 & IADDRESS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 8 ] = g; ng.ng_LeftEdge = 80; ng.ng_TopEdge = 222; ng.ng_Width = 100; ng.ng_Height = 18; ng.ng_GadgetText = "QUIT"; ng.ng_GadgetID = GD_QUIT1; ng.ng_Flags = PLACETEXT_IN; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 9 ] = g; ng.ng_LeftEdge = 460; ng.ng_TopEdge = 222; ng.ng_GadgetText = "GO ON"; ng.ng_GadgetID = GD_GO_ON1; ng.ng_Flags = PLACETEXT_IN; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 10 ] = g; if ( NOT g ) return( 4l ); AddGList( Wnd, GList, 0, -1, NULL ); Gadgets[ 11 ] = 0; PrintIText( Wnd->RPort, IText1, 0L, 0L ); DrawImage( Wnd->RPort, &Title, 76L, 30L ); break; /* making window #1 */ case 1 : if ( NOT( VisualInfo = GetVisualInfo( Scr, TAG_DONE ))) return( 2l ); if ( NOT( g = CreateContext( &GList ))) return( 3l ); ng.ng_LeftEdge = 138; ng.ng_TopEdge = 33; ng.ng_GadgetText = "MOUSEBUTTONS"; ng.ng_TextAttr = &topaz8; ng.ng_GadgetID = GD_MOUSEBUTTONS; ng.ng_Flags = PLACETEXT_LEFT; ng.ng_VisualInfo = VisualInfo; check_flag = (Flag2A & MOUSEBUTTONS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 0 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_MOUSEBUTTONS_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & MOUSEBUTTONS_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 1 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 45; ng.ng_GadgetText = "MOUSEMOVE"; ng.ng_GadgetID = GD_MOUSEMOVE; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & MOUSEMOVE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 2 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_MOUSEMOVE_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & MOUSEMOVE_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 3 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 57; ng.ng_GadgetText = "DELTAMOVE"; ng.ng_GadgetID = GD_DELTAMOVE; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & DELTAMOVE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 4 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_DELTAMOVE_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & DELTAMOVE_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 5 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 77; ng.ng_GadgetText = "GADGETDOWN"; ng.ng_GadgetID = GD_GADGETDOWN; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & GADGETDOWN_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 6 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_GADGETDOWN_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & GADGETDOWN_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 7 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 89; ng.ng_GadgetText = "GADGETUP"; ng.ng_GadgetID = GD_GADGETUP; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & GADGETUP_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 8 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_GADGETUP_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & GADGETUP_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 9 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 101; ng.ng_GadgetText = "CLOSEWINDOW"; ng.ng_GadgetID = GD_CLOSEWINDOW; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & CLOSEWINDOW_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 10 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_CLOSEWINDOW_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & CLOSEWINDOW_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 11 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 121; ng.ng_GadgetText = "MENUPICK"; ng.ng_GadgetID = GD_MENUPICK; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & MENUPICK_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 12 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_MENUPICK_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & MENUPICK_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 13 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 133; ng.ng_GadgetText = "MENUVERIFY"; ng.ng_GadgetID = GD_MENUVERIFY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & MENUVERIFY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 14 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_MENUVERIFY_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & MENUVERIFY_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 15 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 145; ng.ng_GadgetText = "MENUHELP"; ng.ng_GadgetID = GD_MENUHELP; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & MENUHELP_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 16 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_MENUHELP_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & MENUHELP_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 17 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 165; ng.ng_GadgetText = "RAWKEY"; ng.ng_GadgetID = GD_RAWKEY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & RAWKEY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 18 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_RAWKEY_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & RAWKEY_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 19 ] = g; ng.ng_LeftEdge = 138; ng.ng_TopEdge = 177; ng.ng_GadgetText = "VANILLAKEY"; ng.ng_GadgetID = GD_VANILLAKEY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & VANILLAKEY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 20 ] = g; ng.ng_LeftEdge = 166; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_VANILLAKEY_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & VANILLAKEY_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 21 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 33; ng.ng_GadgetText = "REQSET"; ng.ng_GadgetID = GD_REQSET; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & REQSET_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 22 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_REQSET_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & REQSET_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 23 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 45; ng.ng_GadgetText = "REQCLEAR"; ng.ng_GadgetID = GD_REQCLEAR; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & REQCLEAR_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 24 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_REQCLEAR_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & REQCLEAR_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 25 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 57; ng.ng_GadgetText = "REQVERIFY"; ng.ng_GadgetID = GD_REQVERIFY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2A & REQVERIFY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 26 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_REQVERIFY_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2A & REQVERIFY_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 27 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 77; ng.ng_GadgetText = "NEWSIZE"; ng.ng_GadgetID = GD_NEWSIZE; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & NEWSIZE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 28 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_NEWSIZE_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & NEWSIZE_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 29 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 89; ng.ng_GadgetText = "SIZEVERIFY"; ng.ng_GadgetID = GD_SIZEVERIFY; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & SIZEVERIFY_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 30 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_SIZEVERIFY_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & SIZEVERIFY_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 31 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 101; ng.ng_GadgetText = "ACTIVEWINDOW"; ng.ng_GadgetID = GD_ACTIVEWINDOW; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & ACTIVEWINDOW_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 32 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_ACTIVEWINDOW_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & ACTIVEWINDOW_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 33 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 113; ng.ng_GadgetText = "INACTIVEWINDOW"; ng.ng_GadgetID = GD_INACTIVEWINDOW; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & INACTIVEWINDOW_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 34 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_INACTIVEWINDOW_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & INACTIVEWINDOW_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 35 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 125; ng.ng_GadgetText = "CHANGEWINDOW"; ng.ng_GadgetID = GD_CHANGEWINDOW; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & CHANGEWINDOW_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 36 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_CHANGEWINDOW_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & CHANGEWINDOW_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 37 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 137; ng.ng_GadgetText = "REFRESHWINDOW"; ng.ng_GadgetID = GD_REFRESHWINDOW; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & REFRESHWINDOW_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 38 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_REFRESHWINDOW_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & REFRESHWINDOW_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 39 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 157; ng.ng_GadgetText = "DISKINSERTED"; ng.ng_GadgetID = GD_DISKINSERTED; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & DISKINSERTED_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 40 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_DISKINSERTED_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & DISKINSERTED_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 41 ] = g; ng.ng_LeftEdge = 356; ng.ng_TopEdge = 169; ng.ng_GadgetText = "DISKREMOVED"; ng.ng_GadgetID = GD_DISKREMOVED; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & DISKREMOVED_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 42 ] = g; ng.ng_LeftEdge = 384; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_DISKREMOVED_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & DISKREMOVED_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 43 ] = g; ng.ng_LeftEdge = 541; ng.ng_TopEdge = 65; ng.ng_GadgetText = "NEWPREFS"; ng.ng_GadgetID = GD_NEWPREFS; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & NEWPREFS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 44 ] = g; ng.ng_LeftEdge = 569; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_NEWPREFS_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & NEWPREFS_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 45 ] = g; ng.ng_LeftEdge = 541; ng.ng_TopEdge = 85; ng.ng_GadgetText = "INTUITICKS"; ng.ng_GadgetID = GD_INTUITICKS; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & INTUITICKS_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 46 ] = g; ng.ng_LeftEdge = 569; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_INTUITICKS_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & INTUITICKS_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 47 ] = g; ng.ng_LeftEdge = 541; ng.ng_TopEdge = 105; ng.ng_GadgetText = "IDCMPUPDATE"; ng.ng_GadgetID = GD_IDCMPUPDATE; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & IDCMPUPDATE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 48 ] = g; ng.ng_LeftEdge = 569; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_IDCMPUPDATE_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & IDCMPUPDATE_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 49 ] = g; ng.ng_LeftEdge = 541; ng.ng_TopEdge = 190; ng.ng_GadgetText = "LONELYMESSAGE"; ng.ng_GadgetID = GD_LONELYMESSAGE; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag2B & LONELYMESSAGE_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 50 ] = g; ng.ng_LeftEdge = 569; ng.ng_GadgetText = "F"; ng.ng_GadgetID = GD_LONELYMESSAGE_F; ng.ng_Flags = PLACETEXT_RIGHT; check_flag = (Flag2B & LONELYMESSAGE_F_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 51 ] = g; ng.ng_LeftEdge = 80; ng.ng_TopEdge = 222; ng.ng_Width = 100; ng.ng_Height = 18; ng.ng_GadgetText = "QUIT"; ng.ng_TextAttr = &topaz8; ng.ng_GadgetID = GD_QUIT2; ng.ng_Flags = PLACETEXT_IN; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 52 ] = g; ng.ng_LeftEdge = 460; ng.ng_GadgetText = "GO ON"; ng.ng_GadgetID = GD_GO_ON2; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 53 ] = g; ng.ng_LeftEdge = 324; ng.ng_GadgetText = "STEP BACK"; ng.ng_GadgetID = GD_STEP_BACK2; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 54 ] = g; if ( NOT g ) return( 4l ); AddGList( Wnd, GList, 0, -1, NULL ); PrintIText( Wnd->RPort, IText2, 0L, 0L ); break; /* making window #2 */ case 2 : if ( NOT( VisualInfo = GetVisualInfo( Scr, TAG_DONE ))) return( 2l ); if ( NOT( g = CreateContext( &GList ))) return( 3l ); ng.ng_LeftEdge = 44; ng.ng_TopEdge = 53; ng.ng_Width = 208; ng.ng_Height = 16; ng.ng_GadgetText = "top-level function"; ng.ng_TextAttr = &topaz8; ng.ng_GadgetID = GD_TopLevelName; ng.ng_Flags = PLACETEXT_ABOVE; ng.ng_VisualInfo = VisualInfo; g = CreateGadget( STRING_KIND, g, &ng, GTST_String, TOP_LEVEL_NAME, GTST_MaxChars, 40, TAG_DONE ); TOP_LEVEL_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer; Gadgets[ 0 ] = g; ng.ng_LeftEdge = 36; ng.ng_TopEdge = 92; ng.ng_Width = 146; ng.ng_GadgetText = "prefix"; ng.ng_GadgetID = GD_Prefix; g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PREFIX_NAME, GTST_MaxChars, 20, TAG_DONE ); PREFIX_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer; Gadgets[ 1 ] = g; ng.ng_LeftEdge = 194; ng.ng_TopEdge = 92; ng.ng_GadgetText = "suffix"; ng.ng_GadgetID = GD_Suffix; g = CreateGadget( STRING_KIND, g, &ng, GTST_String, SUFFIX_NAME, GTST_MaxChars, 20, TAG_DONE ); SUFFIX_BUF = ((struct StringInfo *) g->SpecialInfo)->Buffer; Gadgets[ 2 ] = g; ng.ng_LeftEdge = 266; ng.ng_TopEdge = 137; ng.ng_GadgetText = "function skeletons"; ng.ng_GadgetID = GD_Skeletons; ng.ng_Flags = PLACETEXT_LEFT; check_flag = (Flag3 & Skeletons_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 3 ] = g; ng.ng_TopEdge = 157; ng.ng_GadgetText = "function prototypes"; ng.ng_GadgetID = GD_Prototypes; check_flag = (Flag3 & Prototypes_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 4 ] = g; ng.ng_TopEdge = 177; ng.ng_GadgetText = "gadtools.library"; ng.ng_GadgetID = GD_Prototypes; check_flag = (Flag3 & gadtools_FLAG) ? TRUE : FALSE; g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, check_flag, TAG_DONE ); Gadgets[ 5 ] = g; ng.ng_LeftEdge = 390; ng.ng_TopEdge = 53; ng.ng_Width = 215; ng.ng_Height = 14; ng.ng_GadgetText = " waiting"; ng.ng_GadgetID = GD_WaitingMode; ng.ng_Flags = PLACETEXT_ABOVE; switch (WaitingMode_FLAG) { case 0: temp_ptr = WaitingModeLabels0; WaitingMode_START = 0; break; case 1: temp_ptr = WaitingModeLabels1; WaitingMode_START = 1; break; } g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE ); Gadgets[ 6 ] = g; ng.ng_TopEdge = 98; ng.ng_GadgetText = " variables"; ng.ng_GadgetID = GD_Variables; switch (Variables_FLAG) { case 0: temp_ptr = VariablesLabels0; Variables_START = 0; break; case 1: temp_ptr = VariablesLabels1; Variables_START = 1; break; } g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE ); Gadgets[ 7 ] = g; ng.ng_TopEdge = 143; ng.ng_GadgetText = " comments"; ng.ng_GadgetID = GD_Comments; switch (Comments_FLAG) { case 0: temp_ptr = CommentsLabels0; Comments_START = 0; break; case 1: temp_ptr = CommentsLabels1; Comments_START = 1; break; case 2: temp_ptr = CommentsLabels2; Comments_START = 2; break; } g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE ); Gadgets[ 8 ] = g; ng.ng_TopEdge = 188; ng.ng_GadgetText = " fill-ins"; ng.ng_GadgetID = GD_FillIns; switch (FillIns_FLAG) { case 0: temp_ptr = FillInsLabels0; FillIns_START = 0; break; case 1: temp_ptr = FillInsLabels1; FillIns_START = 1; break; case 2: temp_ptr = FillInsLabels2; FillIns_START = 2; break; case 3: temp_ptr = FillInsLabels3; FillIns_START = 3; break; } g = CreateGadget( CYCLE_KIND, g, &ng, GTCY_Labels, temp_ptr, TAG_DONE ); Gadgets[ 9 ] = g; ng.ng_LeftEdge = 80; ng.ng_TopEdge = 222; ng.ng_Width = 100; ng.ng_Height = 18; ng.ng_GadgetText = "QUIT"; ng.ng_TextAttr = &topaz8; ng.ng_GadgetID = GD_QUIT3; ng.ng_Flags = PLACETEXT_IN; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 10 ] = g; ng.ng_LeftEdge = 460; ng.ng_GadgetText = "WRITE C"; ng.ng_GadgetID = GD_WRITE_C; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 11 ] = g; ng.ng_LeftEdge = 324; ng.ng_GadgetText = "STEP BACK"; ng.ng_GadgetID = GD_STEP_BACK3; g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE ); Gadgets[ 12 ] = g; if ( NOT g ) return( 4l ); AddGList( Wnd, GList, 0, -1, NULL ); Gadgets[ 13 ] = 0; PrintIText( Wnd->RPort, IText3, 0L, 0L ); break; } RefreshGadgets( GList, Wnd, NULL ); GT_RefreshWindow( Wnd, NULL ); } void CleanStuff( void ) { if ( Wnd ) CloseWindow( Wnd ); if ( GList ) FreeGadgets( GList ); if ( VisualInfo ) FreeVisualInfo( VisualInfo ); if ( Scr ) CloseScreen( Scr ); }