/* * Source machine generated by GadToolsBox V2.0b * which is (c) Copyright 1991-1993 Jaba Development * * GUI Designed by : Steve Boxall */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "contact97Gui.h" struct Screen *Scr = NULL; UBYTE *PubScreenName = NULL; APTR VisualInfo = NULL; struct Window *Project0Wnd = NULL; struct Window *Project1Wnd = NULL; struct Window *Project2Wnd = NULL; struct Window *Project3Wnd = NULL; struct Gadget *Project0GList = NULL; struct Gadget *Project1GList = NULL; struct Gadget *Project2GList = NULL; struct Gadget *Project3GList = NULL; struct Menu *Project0Menus = NULL; struct IntuiMessage Project0Msg; struct IntuiMessage Project1Msg; struct IntuiMessage Project2Msg; struct IntuiMessage Project3Msg; struct TextFont *Font = NULL; struct Gadget *Project0Gadgets[7]; struct Gadget *Project1Gadgets[18]; struct Gadget *Project2Gadgets[13]; struct Gadget *Project3Gadgets[1]; UWORD Project0Left = 136; UWORD Project0Top = 36; UWORD Project0Width = 406; UWORD Project0Height = 177; UWORD Project1Left = 62; UWORD Project1Top = 16; UWORD Project1Width = 559; UWORD Project1Height = 220; UWORD Project2Left = 97; UWORD Project2Top = 26; UWORD Project2Width = 523; UWORD Project2Height = 208; UWORD Project3Left = 139; UWORD Project3Top = 27; UWORD Project3Width = 405; UWORD Project3Height = 195; UBYTE *Project0Wdt = (UBYTE *)"Contact Name"; UBYTE *Project1Wdt = (UBYTE *)"Contact Details"; UBYTE *Project2Wdt = (UBYTE *)"Find Contact"; UBYTE *Project3Wdt = (UBYTE *)"About"; struct TextAttr XHelvetica11 = { ( STRPTR )"XHelvetica.font", 11, 0x00, 0x62 }; struct IntuiText Project3IText[] = { 1, 22, JAM2,155, 38, &XHelvetica11, (UBYTE *)" Contact 97 ", &Project3IText[1], 1, 19, JAM2,118, 77, &XHelvetica11, (UBYTE *)" Giftware (c) 1997 Steve Boxall ", &Project3IText[2], 1, 3, JAM2,100, 119, &XHelvetica11, (UBYTE *)" Written Using GadToolsBox & Dice 'C' ", NULL }; struct NewMenu Project0NewMenu[] = { NM_TITLE, (STRPTR)"Contact", NULL, 0, NULL, NULL, NM_ITEM, (STRPTR)"Add Name", (STRPTR)"a", 0, 0L, (APTR)Project0Item0, NM_ITEM, (STRPTR)"Edit Name", (STRPTR)"e", 0, 0L, (APTR)Project0Edit01, NM_ITEM, (STRPTR)"Delete Name", NULL, 0, 0L, (APTR)Project0Delete01, NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL, NM_ITEM, (STRPTR)"Find", (STRPTR)"f", 0, 0L, (APTR)Project0Find01, NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL, NM_ITEM, (STRPTR)"About", NULL, 0, 0L, (APTR)Project0About01, NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL, NM_ITEM, (STRPTR)"Quit", NULL, 0, 0L, (APTR)Project0Quit01, NM_TITLE, (STRPTR)"Print", NULL, 0, NULL, NULL, NM_ITEM, (STRPTR)"Names + Numbers", NULL, 0, 0L, (APTR)Project0Item1, NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL, NM_ITEM, (STRPTR)"Names + Addresses", NULL, 0, 0L, (APTR)Project0Item2, NM_END, NULL, NULL, 0, 0L, NULL }; UWORD Project0GTypes[] = { BUTTON_KIND, BUTTON_KIND, BUTTON_KIND, STRING_KIND, LISTVIEW_KIND, BUTTON_KIND, BUTTON_KIND }; UWORD Project1GTypes[] = { TEXT_KIND, TEXT_KIND, TEXT_KIND, TEXT_KIND, TEXT_KIND, BUTTON_KIND, BUTTON_KIND, TEXT_KIND, BUTTON_KIND, BUTTON_KIND, STRING_KIND, STRING_KIND, STRING_KIND, LISTVIEW_KIND, STRING_KIND, STRING_KIND, STRING_KIND, BUTTON_KIND }; UWORD Project2GTypes[] = { BUTTON_KIND, BUTTON_KIND, LISTVIEW_KIND, TEXT_KIND, STRING_KIND, TEXT_KIND, CHECKBOX_KIND, CHECKBOX_KIND, CHECKBOX_KIND, CHECKBOX_KIND, CHECKBOX_KIND, TEXT_KIND, CHECKBOX_KIND }; UWORD Project3GTypes[] = { BUTTON_KIND }; struct NewGadget Project0NGad[] = { 9, 138, 69, 20, (UBYTE *)"Add", NULL, GD_Add01, PLACETEXT_IN, NULL, (APTR)Add01Clicked, 87, 138, 69, 20, (UBYTE *)"Edit", NULL, GD_Edit01, PLACETEXT_IN, NULL, (APTR)Edit01Clicked, 321, 138, 69, 20, (UBYTE *)"Quit", NULL, GD_Quit01, PLACETEXT_IN, NULL, (APTR)Quit01Clicked, 26, 116, 342, 15, NULL, NULL, GD_Name01, 0, NULL, (APTR)Name01Clicked, 26, 16, 342, 99, NULL, NULL, GD_NameList01, 0, NULL, (APTR)NameList01Clicked, 165, 138, 69, 20, (UBYTE *)"Find", NULL, GD_Find01, PLACETEXT_IN, NULL, (APTR)Find01Clicked, 243, 138, 69, 20, (UBYTE *)"Delete", NULL, GD_Delete01, PLACETEXT_IN, NULL, (APTR)Delete01Clicked }; struct NewGadget Project1NGad[] = { 37, 6, 123, 18, NULL, NULL, GD_ContactText01, 0, NULL, NULL, 37, 29, 123, 18, NULL, NULL, GD_CompanyName01, 0, NULL, NULL, 37, 127, 123, 18, NULL, NULL, GD_Email01, 0, NULL, NULL, 37, 150, 123, 18, NULL, NULL, GD_Phone01, 0, NULL, NULL, 38, 57, 123, 18, NULL, NULL, GD_Address, 0, NULL, NULL, 196, 107, 150, 14, (UBYTE *)"+", NULL, GD_AddAddress01, PLACETEXT_IN, NULL, (APTR)AddAddress01Clicked, 345, 107, 154, 14, (UBYTE *)"-", NULL, GD_DelAddress01, PLACETEXT_IN, NULL, (APTR)DelAddress01Clicked, 38, 173, 123, 18, NULL, NULL, GD_FaxNo01, 0, NULL, NULL, 23, 199, 144, 14, (UBYTE *)"Ok", NULL, GD_OkNew01, PLACETEXT_IN, NULL, (APTR)OkNew01Clicked, 389, 199, 144, 14, (UBYTE *)"Cancel", NULL, GD_AddCancel01, PLACETEXT_IN, NULL, (APTR)AddCancel01Clicked, 196, 7, 306, 15, NULL, NULL, GD_ContactName01, 0, NULL, (APTR)ContactName01Clicked, 196, 31, 306, 15, NULL, NULL, GD_CompanyName01, 0, NULL, (APTR)CompanyName01Clicked, 197, 91, 303, 15, NULL, NULL, GD_AddressText01, 0, NULL, (APTR)AddressText01Clicked, 197, 54, 303, 55, NULL, NULL, GD_Address01, 0, NULL, (APTR)Address01Clicked, 196, 128, 185, 15, NULL, NULL, GD_EmailEntry01, 0, NULL, (APTR)EmailEntry01Clicked, 196, 151, 185, 15, NULL, NULL, GD_PhoneEntry01, 0, NULL, (APTR)PhoneEntry01Clicked, 196, 174, 185, 15, NULL, NULL, GD_FaxEntry01, 0, NULL, (APTR)FaxEntry01Clicked, 206, 199, 144, 14, (UBYTE *)"Print", NULL, GD_PrintIt01, PLACETEXT_IN, NULL, (APTR)PrintIt01Clicked }; struct NewGadget Project2NGad[] = { 57, 179, 169, 16, (UBYTE *)"Find", NULL, GD_FindContact01, PLACETEXT_IN, NULL, (APTR)FindContact01Clicked, 287, 179, 169, 16, (UBYTE *)"Cancel", NULL, GD_CancelFind01, PLACETEXT_IN, NULL, (APTR)CancelFind01Clicked, 174, 94, 282, 66, NULL, NULL, GD_FindResult01, 0, NULL, (APTR)FindResult01Clicked, 56, 5, 99, 18, NULL, NULL, GD_SearchText01, 0, NULL, NULL, 175, 6, 284, 16, NULL, NULL, GD_FindEdit01, 0, NULL, (APTR)FindEdit01Clicked, 57, 94, 99, 18, NULL, NULL, GD_ResultTitle01, 0, NULL, NULL, 231, 55, 26, 11, (UBYTE *)"Company", NULL, GD_fndchk01, PLACETEXT_ABOVE, NULL, (APTR)fndchk01Clicked, 278, 55, 26, 11, (UBYTE *)"Address", NULL, GD_fndchk02, PLACETEXT_ABOVE, NULL, (APTR)fndchk02Clicked, 325, 55, 26, 11, (UBYTE *)"Email", NULL, GD_fndchk03, PLACETEXT_ABOVE, NULL, (APTR)fndchk03Clicked, 372, 55, 26, 11, (UBYTE *)"Phone", NULL, GD_fndchk04, PLACETEXT_ABOVE, NULL, (APTR)fndchk04Clicked, 422, 55, 26, 11, (UBYTE *)"Fax", NULL, GD_fndchk05, PLACETEXT_ABOVE, NULL, (APTR)fndchk05Clicked, 56, 32, 99, 18, NULL, NULL, GD_fndchktext, 0, NULL, NULL, 184, 55, 26, 11, (UBYTE *)"Name", NULL, GD_fndchk06, PLACETEXT_ABOVE, NULL, (APTR)fndchk06Clicked }; struct NewGadget Project3NGad[] = { 94, 157, 204, 21, (UBYTE *)"Continue", NULL, GD_AboutOk1, PLACETEXT_IN, NULL, (APTR)AboutOk1Clicked }; ULONG Project0GTags[] = { (TAG_DONE), (TAG_DONE), (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 29, (TAG_DONE), (GTLV_ShowSelected), 1L, (TAG_DONE), (TAG_DONE), (TAG_DONE) }; ULONG Project1GTags[] = { (GTTX_Text), (ULONG)"Contact Name", (GTTX_Border), TRUE, (TAG_DONE), (GTTX_Text), (ULONG)"Company Name", (GTTX_Border), TRUE, (TAG_DONE), (GTTX_Text), (ULONG)"Email", (GTTX_Border), TRUE, (TAG_DONE), (GTTX_Text), (ULONG)"Telephone No", (GTTX_Border), TRUE, (TAG_DONE), (GTTX_Text), (ULONG)"Company Address", (GTTX_Border), TRUE, (TAG_DONE), (TAG_DONE), (TAG_DONE), (GTTX_Text), (ULONG)"Fax No", (GTTX_Border), TRUE, (TAG_DONE), (TAG_DONE), (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 29, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_String), (ULONG)" ", (GTST_MaxChars), 29, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 29, (TAG_DONE), (GTLV_ShowSelected), 1L, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_String), (ULONG)" ", (GTST_MaxChars), 29, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_String), (ULONG)" ", (GTST_MaxChars), 19, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_String), (ULONG)" ", (GTST_MaxChars), 19, (TAG_DONE), (TAG_DONE) }; ULONG Project2GTags[] = { (TAG_DONE), (TAG_DONE), (GTLV_ShowSelected), NULL, (TAG_DONE), (GTTX_Text), (ULONG)"Find Text", (GTTX_Border), TRUE, (TAG_DONE), (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 29, (TAG_DONE), (GTTX_Text), (ULONG)"Find Result", (GTTX_Border), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE), (GTTX_Text), (ULONG)"Check Fields", (GTTX_Border), TRUE, (TAG_DONE), (GTCB_Checked), TRUE, (TAG_DONE) }; ULONG Project3GTags[] = { (TAG_DONE) }; int SetupScreen( void ) { if ( ! ( Font = OpenDiskFont( &XHelvetica11 ))) return( 5L ); if ( ! ( Scr = LockPubScreen( PubScreenName ))) return( 1L ); if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE ))) return( 2L ); return( 0L ); } void CloseDownScreen( void ) { if ( VisualInfo ) { FreeVisualInfo( VisualInfo ); VisualInfo = NULL; } if ( Scr ) { UnlockPubScreen( NULL, Scr ); Scr = NULL; } if ( Font ) { CloseFont( Font ); Font = NULL; } } int HandleProject0IDCMP( void ) { struct IntuiMessage *m; struct MenuItem *n; int (*func)(); BOOL running = TRUE; while( m = GT_GetIMsg( Project0Wnd->UserPort )) { CopyMem(( char * )m, ( char * )&Project0Msg, (long)sizeof( struct IntuiMessage )); GT_ReplyIMsg( m ); switch ( Project0Msg.Class ) { case IDCMP_REFRESHWINDOW: GT_BeginRefresh( Project0Wnd ); GT_EndRefresh( Project0Wnd, TRUE ); break; case IDCMP_CLOSEWINDOW: running = Project0CloseWindow(); break; case IDCMP_RAWKEY: running = Project0RawKey(); break; case IDCMP_GADGETUP: case IDCMP_GADGETDOWN: func = ( void * )(( struct Gadget * )Project0Msg.IAddress )->UserData; running = func(); break; case IDCMP_MENUPICK: while( Project0Msg.Code != MENUNULL ) { n = ItemAddress( Project0Menus, Project0Msg.Code ); func = (void *)(GTMENUITEM_USERDATA( n )); running = func(); Project0Msg.Code = n->NextSelect; } break; } } return( running ); } int OpenProject0Window( void ) { struct NewGadget ng; struct Gadget *g; struct TagItem *tmp; UWORD lc, tc; UWORD offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1; if ( ! ( g = CreateContext( &Project0GList ))) return( 1L ); for( lc = 0, tc = 0; lc < Project0_CNT; lc++ ) { CopyMem((char * )&Project0NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget )); ng.ng_VisualInfo = VisualInfo; ng.ng_TextAttr = &XHelvetica11; ng.ng_LeftEdge += offx; ng.ng_TopEdge += offy; if ( Project0GTypes[ lc ] == LISTVIEW_KIND ) { if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&Project0GTags[ tc ] )) { if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g; } } Project0Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project0GTypes[ lc ], g, &ng, ( struct TagItem * )&Project0GTags[ tc ] ); while( Project0GTags[ tc ] ) tc += 2; tc++; if ( NOT g ) return( 2L ); } if ( ! ( Project0Menus = CreateMenus( Project0NewMenu, GTMN_FrontPen, 0L, TAG_DONE ))) return( 3L ); LayoutMenus( Project0Menus, VisualInfo, GTMN_TextAttr, &XHelvetica11, TAG_DONE ); if ( ! ( Project0Wnd = OpenWindowTags( NULL, WA_Left, Project0Left, WA_Top, Project0Top, WA_Width, Project0Width, WA_Height, Project0Height + offy, WA_IDCMP, BUTTONIDCMP|STRINGIDCMP|LISTVIEWIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW, WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE, WA_Gadgets, Project0GList, WA_Title, Project0Wdt, WA_ScreenTitle, "Contact 97", WA_PubScreen, Scr, TAG_DONE ))) return( 4L ); SetMenuStrip( Project0Wnd, Project0Menus ); GT_RefreshWindow( Project0Wnd, NULL ); return( 0L ); } void CloseProject0Window( void ) { if ( Project0Menus ) { ClearMenuStrip( Project0Wnd ); FreeMenus( Project0Menus ); Project0Menus = NULL; } if ( Project0Wnd ) { CloseWindow( Project0Wnd ); Project0Wnd = NULL; } if ( Project0GList ) { FreeGadgets( Project0GList ); Project0GList = NULL; } } int HandleProject1IDCMP( void ) { struct IntuiMessage *m; int (*func)(); BOOL running = TRUE; while( m = GT_GetIMsg( Project1Wnd->UserPort )) { CopyMem(( char * )m, ( char * )&Project1Msg, (long)sizeof( struct IntuiMessage )); GT_ReplyIMsg( m ); switch ( Project1Msg.Class ) { case IDCMP_REFRESHWINDOW: GT_BeginRefresh( Project1Wnd ); GT_EndRefresh( Project1Wnd, TRUE ); break; case IDCMP_CLOSEWINDOW: running = Project1CloseWindow(); break; case IDCMP_RAWKEY: running = Project1RawKey(); break; case IDCMP_GADGETUP: case IDCMP_GADGETDOWN: func = ( void * )(( struct Gadget * )Project1Msg.IAddress )->UserData; running = func(); break; } } return( running ); } int OpenProject1Window( void ) { struct NewGadget ng; struct Gadget *g; struct TagItem *tmp; UWORD lc, tc; UWORD offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1; if ( ! ( g = CreateContext( &Project1GList ))) return( 1L ); for( lc = 0, tc = 0; lc < Project1_CNT; lc++ ) { CopyMem((char * )&Project1NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget )); ng.ng_VisualInfo = VisualInfo; ng.ng_TextAttr = &XHelvetica11; ng.ng_LeftEdge += offx; ng.ng_TopEdge += offy; if ( Project1GTypes[ lc ] == LISTVIEW_KIND ) { if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&Project1GTags[ tc ] )) { if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g; } } Project1Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project1GTypes[ lc ], g, &ng, ( struct TagItem * )&Project1GTags[ tc ] ); while( Project1GTags[ tc ] ) tc += 2; tc++; if ( NOT g ) return( 2L ); } if ( ! ( Project1Wnd = OpenWindowTags( NULL, WA_Left, Project1Left, WA_Top, Project1Top, WA_Width, Project1Width, WA_Height, Project1Height + offy, WA_IDCMP, TEXTIDCMP|BUTTONIDCMP|STRINGIDCMP|LISTVIEWIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW, WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE, WA_Gadgets, Project1GList, WA_Title, Project1Wdt, WA_ScreenTitle, "Contact 97", WA_PubScreen, Scr, TAG_DONE ))) return( 4L ); GT_RefreshWindow( Project1Wnd, NULL ); return( 0L ); } void CloseProject1Window( void ) { if ( Project1Wnd ) { CloseWindow( Project1Wnd ); Project1Wnd = NULL; } if ( Project1GList ) { FreeGadgets( Project1GList ); Project1GList = NULL; } } void Project2Render( void ) { UWORD offx, offy; offx = Project2Wnd->BorderLeft; offy = Project2Wnd->BorderTop; DrawBevelBox( Project2Wnd->RPort, offx + 175, offy + 32, 282, 45, GT_VisualInfo, VisualInfo, TAG_DONE ); } int HandleProject2IDCMP( void ) { struct IntuiMessage *m; int (*func)(); BOOL running = TRUE; while( m = GT_GetIMsg( Project2Wnd->UserPort )) { CopyMem(( char * )m, ( char * )&Project2Msg, (long)sizeof( struct IntuiMessage )); GT_ReplyIMsg( m ); switch ( Project2Msg.Class ) { case IDCMP_REFRESHWINDOW: GT_BeginRefresh( Project2Wnd ); Project2Render(); GT_EndRefresh( Project2Wnd, TRUE ); break; case IDCMP_CLOSEWINDOW: running = Project2CloseWindow(); break; case IDCMP_RAWKEY: running = Project2RawKey(); break; case IDCMP_GADGETUP: case IDCMP_GADGETDOWN: func = ( void * )(( struct Gadget * )Project2Msg.IAddress )->UserData; running = func(); break; } } return( running ); } int OpenProject2Window( void ) { struct NewGadget ng; struct Gadget *g; /* struct TagItem *tmp;*/ UWORD lc, tc; UWORD offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1; if ( ! ( g = CreateContext( &Project2GList ))) return( 1L ); for( lc = 0, tc = 0; lc < Project2_CNT; lc++ ) { CopyMem((char * )&Project2NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget )); ng.ng_VisualInfo = VisualInfo; ng.ng_TextAttr = &XHelvetica11; ng.ng_LeftEdge += offx; ng.ng_TopEdge += offy; Project2Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project2GTypes[ lc ], g, &ng, ( struct TagItem * )&Project2GTags[ tc ] ); while( Project2GTags[ tc ] ) tc += 2; tc++; if ( NOT g ) return( 2L ); } if ( ! ( Project2Wnd = OpenWindowTags( NULL, WA_Left, Project2Left, WA_Top, Project2Top, WA_Width, Project2Width, WA_Height, Project2Height + offy, WA_IDCMP, BUTTONIDCMP|LISTVIEWIDCMP|TEXTIDCMP|STRINGIDCMP|CHECKBOXIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW, WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE, WA_Gadgets, Project2GList, WA_Title, Project2Wdt, WA_ScreenTitle, "Contact 97", WA_PubScreen, Scr, TAG_DONE ))) return( 4L ); GT_RefreshWindow( Project2Wnd, NULL ); Project2Render(); return( 0L ); } void CloseProject2Window( void ) { if ( Project2Wnd ) { CloseWindow( Project2Wnd ); Project2Wnd = NULL; } if ( Project2GList ) { FreeGadgets( Project2GList ); Project2GList = NULL; } } void Project3Render( void ) { UWORD offx, offy; offx = Project3Wnd->BorderLeft; offy = Project3Wnd->BorderTop; DrawBevelBox( Project3Wnd->RPort, offx + 30, offy + 13, 332, 136, GT_VisualInfo, VisualInfo, TAG_DONE ); PrintIText( Project3Wnd->RPort, Project3IText, offx, offy ); } int HandleProject3IDCMP( void ) { struct IntuiMessage *m; int (*func)(); BOOL running = TRUE; while( m = GT_GetIMsg( Project3Wnd->UserPort )) { CopyMem(( char * )m, ( char * )&Project3Msg, (long)sizeof( struct IntuiMessage )); GT_ReplyIMsg( m ); switch ( Project3Msg.Class ) { case IDCMP_REFRESHWINDOW: GT_BeginRefresh( Project3Wnd ); Project3Render(); GT_EndRefresh( Project3Wnd, TRUE ); break; case IDCMP_CLOSEWINDOW: running = Project3CloseWindow(); break; case IDCMP_RAWKEY: running = Project3RawKey(); break; case IDCMP_GADGETUP: func = ( void * )(( struct Gadget * )Project3Msg.IAddress )->UserData; running = func(); break; } } return( running ); } int OpenProject3Window( void ) { struct NewGadget ng; struct Gadget *g; /* struct TagItem *tmp;*/ UWORD lc, tc; UWORD offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1; if ( ! ( g = CreateContext( &Project3GList ))) return( 1L ); for( lc = 0, tc = 0; lc < Project3_CNT; lc++ ) { CopyMem((char * )&Project3NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget )); ng.ng_VisualInfo = VisualInfo; ng.ng_TextAttr = &XHelvetica11; ng.ng_LeftEdge += offx; ng.ng_TopEdge += offy; Project3Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project3GTypes[ lc ], g, &ng, ( struct TagItem * )&Project3GTags[ tc ] ); while( Project3GTags[ tc ] ) tc += 2; tc++; if ( NOT g ) return( 2L ); } if ( ! ( Project3Wnd = OpenWindowTags( NULL, WA_Left, Project3Left, WA_Top, Project3Top, WA_Width, Project3Width, WA_Height, Project3Height + offy, WA_IDCMP, BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_REFRESHWINDOW, WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE, WA_Gadgets, Project3GList, WA_Title, Project3Wdt, WA_ScreenTitle, "Contact 97", WA_PubScreen, Scr, TAG_DONE ))) return( 4L ); GT_RefreshWindow( Project3Wnd, NULL ); Project3Render(); return( 0L ); } void CloseProject3Window( void ) { if ( Project3Wnd ) { CloseWindow( Project3Wnd ); Project3Wnd = NULL; } if ( Project3GList ) { FreeGadgets( Project3GList ); Project3GList = NULL; } }