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 : David Ekholm, Datadosen
- */
-
- #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 <pragmas/exec_pragmas.h>
- #include <pragmas/intuition_pragmas.h>
- #include <pragmas/gadtools_pragmas.h>
- #include <pragmas/graphics_pragmas.h>
- #include <pragmas/utility_pragmas.h>
-
- #include "DesignGUI.h"
- #include "DesignGUI_fix.h"
-
- #define CATCOMP_NUMBERS
- #include "db.h"
-
- /*
- static struct Window *MainWnd = NULL;
- static struct Window *TagWnd = NULL;
- static struct Window *NameWnd = NULL;
- static struct Window *FieldWnd = NULL;
- */
- struct Window *VisWnd = NULL;
-
- /*
- static struct Gadget *MainGList = NULL;
- static struct Gadget *TagGList = NULL;
- static struct Gadget *NameGList = NULL;
- static struct Gadget *FieldGList = NULL;
- */
- static struct Gadget *VisGList = NULL;
-
- struct Menu *DesignMenus = NULL;
- /*
- struct IntuiMessage MainMsg;
- struct IntuiMessage TagMsg;
- struct IntuiMessage NameMsg;
- struct IntuiMessage FieldMsg;
- */
- struct IntuiMessage VisMsg;
- /*
- static struct Gadget *MainGadgets[11];
- static struct Gadget *TagGadgets[4];
- static struct Gadget *NameGadgets[3];
- static struct Gadget *FieldGadgets[5];
- */
- struct Gadget *VisGadgets[8];
- /*
- static UWORD MainLeft = 227;
- static UWORD MainTop = 186;
- static UWORD MainWidth = 305;
- static UWORD MainHeight = 182;
- static UWORD TagLeft = 89;
- static UWORD TagTop = 162;
- static UWORD TagWidth = 489;
- static UWORD TagHeight = 63;
- static UWORD NameLeft = 237;
- static UWORD NameTop = 199;
- static UWORD NameWidth = 283;
- static UWORD NameHeight = 64;
- static UWORD FieldLeft = 149;
- static UWORD FieldTop = 218;
- static UWORD FieldWidth = 329;
- static UWORD FieldHeight = 102;
- */
- static UWORD VisLeft = 150;
- static UWORD VisTop = 174;
- static UWORD VisWidth = 398;
- static UWORD VisHeight = 122;
- /*
- static UBYTE *MainWdt = (UBYTE *)"List Window";
- static UBYTE *TagWdt = (UBYTE *)"Edit tag";
- static UBYTE *NameWdt = (UBYTE *)"Edit name";
- static UBYTE *FieldWdt = (UBYTE *)"Edit field object";
- static UBYTE *VisWdt = (UBYTE *)"Edit visual field object";
- */
- static struct TextAttr *Font, Attr;
- static UWORD FontX, FontY;
- static UWORD OffX, OffY;
-
- struct NewMenu DesignNewMenu[] = {
- NM_TITLE,(STRPTR)MSG_PROJECT_MENU , NULL, 0, NULL, NULL,
- NM_ITEM, (STRPTR)MSG_EDVIEW_ABOUT , NULL, 0, 0L , (APTR)DesignPROJECT_ABOUT,
- NM_ITEM, (STRPTR)MSG_EDVIEW_EXIT , NULL, 0, 0L , (APTR)DesignPROJECT_EXIT,
-
- NM_TITLE,(STRPTR)MSG_EDVIEW_EDIT , NULL, 0, NULL, NULL,
- NM_ITEM, (STRPTR)MSG_EDVIEW_UNDO , NULL, NM_ITEMDISABLED, 0L, (APTR)DesignEDIT_UNDO,
- NM_ITEM, (STRPTR)NM_BARLABEL, NULL ,0, 0L, NULL,
- NM_ITEM, (STRPTR)MSG_EDVIEW_CUT , NULL, 0, 0L, (APTR)DesignEDIT_CUT,
- NM_ITEM, (STRPTR)MSG_EDVIEW_COPY , NULL, 0, 0L, (APTR)DesignEDIT_COPY,
- NM_ITEM, (STRPTR)MSG_EDVIEW_PASTE , NULL, NM_ITEMDISABLED, 0L, (APTR)DesignEDIT_PASTE,
-
- NM_END, NULL, NULL, 0, 0L, NULL };
-
- /*
- static UWORD MainGTypes[] = {
- LISTVIEW_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- static UWORD TagGTypes[] = {
- STRING_KIND,
- STRING_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- static UWORD NameGTypes[] = {
- STRING_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- static UWORD FieldGTypes[] = {
- STRING_KIND,
- INTEGER_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
- */
- static UWORD VisGTypes[] = {
- STRING_KIND, // Name
- INTEGER_KIND, // size
- BUTTON_KIND, // ok
- BUTTON_KIND, // cancel
- BUTTON_KIND, // more
- TEXT_KIND, // field
- BUTTON_KIND, // select
- CYCLE_KIND // type
-
- };
-
- /*
- static struct NewGadget MainNGad[] = {
- 4, 20, 221, 117, (UBYTE *)"Object list", NULL, GD_LIST, PLACETEXT_ABOVE, NULL, (APTR)LISTClicked,
- 232, 20, 69, 17, (UBYTE *)"Top", NULL, GD_TOP, PLACETEXT_IN, NULL, (APTR)TOPClicked,
- 232, 44, 69, 17, (UBYTE *)"Up", NULL, GD_UP, PLACETEXT_IN, NULL, (APTR)UPClicked,
- 232, 68, 69, 17, (UBYTE *)"Down", NULL, GD_DOWN, PLACETEXT_IN, NULL, (APTR)DOWNClicked,
- 232, 92, 69, 17, (UBYTE *)"Bottom", NULL, GD_BOTTOM, PLACETEXT_IN, NULL, (APTR)BOTTOMClicked,
- 4, 136, 69, 17, (UBYTE *)"_New...", NULL, GD_NEW, PLACETEXT_IN, NULL, (APTR)NEWClicked,
- 80, 136, 69, 17, (UBYTE *)"_Edit...", NULL, GD_EDIT, PLACETEXT_IN, NULL, (APTR)EDITClicked,
- 156, 136, 69, 17, (UBYTE *)"Co_py", NULL, GD_COPY, PLACETEXT_IN, NULL, (APTR)COPYClicked,
- 232, 136, 69, 17, (UBYTE *)"Remove", NULL, GD_REMOVE, PLACETEXT_IN, NULL, (APTR)REMOVEClicked,
- 4, 160, 69, 17, (UBYTE *)"_Use", NULL, GD_USE, PLACETEXT_IN, NULL, (APTR)USEClicked,
- 232, 160, 69, 17, (UBYTE *)"_Cancel", NULL, GD_CANCEL, PLACETEXT_IN, NULL, (APTR)CANCELClicked
- };
-
- static struct NewGadget TagNGad[] = {
- 190, 6, 292, 21, (UBYTE *)"_Value", NULL, GD_TAG_VALUE, PLACETEXT_LEFT, NULL, (APTR)TAG_VALUEClicked,
- 30, 6, 101, 21, (UBYTE *)"_ID", NULL, GD_TAG_ID, PLACETEXT_LEFT, NULL, (APTR)TAG_IDClicked,
- 6, 42, 61, 17, (UBYTE *)"_Ok", NULL, GD_TAG_OK, PLACETEXT_IN, NULL, (APTR)TAG_OKClicked,
- 422, 42, 61, 17, (UBYTE *)"_Cancel", NULL, GD_TAG_CANCEL, PLACETEXT_IN, NULL, (APTR)TAG_CANCELClicked
- };
-
- static struct NewGadget NameNGad[] = {
- 52, 6, 225, 21, (UBYTE *)"_Name", NULL, GD_NAME_NAME, PLACETEXT_LEFT, NULL, (APTR)NAME_NAMEClicked,
- 6, 42, 61, 17, (UBYTE *)"_Ok", NULL, GD_NAME_OK, PLACETEXT_IN, NULL, (APTR)NAME_OKClicked,
- 215, 42, 61, 17, (UBYTE *)"_Cancel", NULL, GD_NAME_CANCEL, PLACETEXT_IN, NULL, (APTR)NAME_CANCELClicked
- };
-
- static struct NewGadget FieldNGad[] = {
- 64, 8, 113, 21, (UBYTE *)"_Name", NULL, GD_FIELD_NAME, PLACETEXT_LEFT, NULL, (APTR)FIELD_NAMEClicked,
- 264, 8, 57, 21, (UBYTE *)"Max _length", NULL, GD_FIELD_MAXLEN, PLACETEXT_LEFT, NULL, (APTR)FIELD_MAXLENClicked,
- 4, 80, 69, 17, (UBYTE *)"_Ok", NULL, GD_FIELD_OK, PLACETEXT_IN, NULL, (APTR)FIELD_OKClicked,
- 256, 80, 69, 17, (UBYTE *)"_Cancel", NULL, GD_FIELD_CANCEL, PLACETEXT_IN, NULL, (APTR)FIELD_CANCELClicked,
- 128, 80, 69, 17, (UBYTE *)"_More...", NULL, GD_FIELD_MORE, PLACETEXT_IN, NULL, (APTR)FIELD_MOREClicked
- };
- */
-
- static char *GadgetType_Labels[] = {
- (char *)"String",
- (char *)"Text",
- (char *)"Textfield",
- (char *)"Cycle",
- (char *)"Checkbox",
- NULL
- };
-
- static struct NewGadget VisNGad[] = {
- 72, 8, 205, 21, (UBYTE *)"_Name" , NULL, GD_VIS_NAME , PLACETEXT_LEFT, NULL, (APTR)VIS_NAMEClicked,
- 348, 8, 46, 21, (UBYTE *)"Si_ze" , NULL, GD_VIS_SIZE , PLACETEXT_LEFT, NULL, (APTR)VIS_SIZEClicked,
- 4, 100, 79, 17, (UBYTE *)"_Ok" , NULL, GD_VIS_OK , PLACETEXT_IN , NULL, (APTR)VIS_OKClicked,
- 315, 100, 78, 17, (UBYTE *)"_Cancel" , NULL, GD_VIS_CANCEL, PLACETEXT_IN , NULL, (APTR)VIS_CANCELClicked,
- 160, 100, 89, 17, (UBYTE *)"_More..." , NULL, GD_VIS_MORE , PLACETEXT_IN , NULL, (APTR)VIS_MOREClicked,
- 72, 36, 123, 21, (UBYTE *)"Field" , NULL, GD_VIS_FIELD , PLACETEXT_LEFT, NULL, NULL,
- 205, 40, 75, 17, (UBYTE *)"Select...", NULL, GD_VIS_SELECT, PLACETEXT_IN , NULL, (APTR)VIS_SELECTClicked,
- 72, 64, 322, 21, (UBYTE *)"_Type" , NULL, GD_VIS_TYPE , PLACETEXT_IN , NULL, NULL
- };
-
- /*
- static ULONG MainGTags[] = {
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- static ULONG TagGTags[] = {
- (GTST_MaxChars), 256, (GT_Underscore), '_', (TAG_DONE),
- (GTST_MaxChars), 45, (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- static ULONG NameGTags[] = {
- (GTST_MaxChars), 45, (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- static ULONG FieldGTags[] = {
- (GTST_MaxChars), 45, (GT_Underscore), '_', (TAG_DONE),
- (GTIN_Number), 200, (GTIN_MaxChars), 5, (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
- */
- static ULONG VisGTags[] = {
- (GTST_MaxChars), 45 , (GT_Underscore), '_', (TAG_DONE),
- (GTIN_Number) , 25 , (GTIN_MaxChars), 3, (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_' , (TAG_DONE),
- (GT_Underscore), '_' , (TAG_DONE),
- (GT_Underscore), '_' , (GA_Disabled), TRUE, (TAG_DONE),
- (GTTX_Border) , TRUE, (TAG_DONE),
- (GT_Underscore), '_' , (TAG_DONE),
- (GT_Underscore), '_' , GTCY_Active, 0, GTCY_Labels, &GadgetType_Labels, (TAG_DONE)
- };
-
- static UWORD ComputeX( UWORD value )
- {
- return(( UWORD )((( FontX * value ) + 4 ) / 8 ));
- }
-
- static UWORD ComputeY( UWORD value )
- {
- return(( UWORD )((( FontY * value ) + 6 ) / 13 ));
- }
-
- 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;
- }
-
- /// Old parts
- /*
- int HandleMainIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( MainWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&MainMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( MainMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( MainWnd );
- GT_EndRefresh( MainWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = MainCloseWindow();
- break;
-
- case IDCMP_VANILLAKEY:
- running = MainVanillaKey();
- break;
-
- case IDCMP_RAWKEY:
- running = MainRawKey();
- break;
-
- case IDCMP_GADGETUP:
- case IDCMP_GADGETDOWN:
- func = ( void * )(( struct Gadget * )MainMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenMainWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = MainLeft, wtop = MainTop, ww, wh;
-
- ComputeFont( MainWidth, MainHeight );
-
- ww = ComputeX( MainWidth );
- wh = ComputeY( MainHeight );
-
- 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( &MainGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Main_CNT; lc++ ) {
-
- CopyMem((char * )&MainNGad[ 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);
-
- MainGadgets[ lc ] = g = CreateGadgetA((ULONG)MainGTypes[ lc ], g, &ng, ( struct TagItem * )&MainGTags[ tc ] );
-
- while( MainGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( MainWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, LISTVIEWIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
- WA_Gadgets, MainGList,
- WA_Title, MainWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( MainWnd, NULL );
-
- return( 0L );
- }
-
- void CloseMainWindow( void )
- {
- if ( MainWnd ) {
- CloseWindow( MainWnd );
- MainWnd = NULL;
- }
-
- if ( MainGList ) {
- FreeGadgets( MainGList );
- MainGList = NULL;
- }
- }
-
- int HandleTagIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( TagWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&TagMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( TagMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( TagWnd );
- GT_EndRefresh( TagWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = TagCloseWindow();
- break;
-
- case IDCMP_VANILLAKEY:
- running = TagVanillaKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )TagMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenTagWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = TagLeft, wtop = TagTop, ww, wh;
-
- ComputeFont( TagWidth, TagHeight );
-
- ww = ComputeX( TagWidth );
- wh = ComputeY( TagHeight );
-
- 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( &TagGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Tag_CNT; lc++ ) {
-
- CopyMem((char * )&TagNGad[ 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);
-
- TagGadgets[ lc ] = g = CreateGadgetA((ULONG)TagGTypes[ lc ], g, &ng, ( struct TagItem * )&TagGTags[ tc ] );
-
- while( TagGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( TagWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, STRINGIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, TagGList,
- WA_Title, TagWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( TagWnd, NULL );
-
- return( 0L );
- }
-
- void CloseTagWindow( void )
- {
- if ( TagWnd ) {
- CloseWindow( TagWnd );
- TagWnd = NULL;
- }
-
- if ( TagGList ) {
- FreeGadgets( TagGList );
- TagGList = NULL;
- }
- }
-
- int HandleNameIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( NameWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&NameMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( NameMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( NameWnd );
- GT_EndRefresh( NameWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = NameCloseWindow();
- break;
-
- case IDCMP_VANILLAKEY:
- running = NameVanillaKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )NameMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenNameWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = NameLeft, wtop = NameTop, ww, wh;
-
- ComputeFont( NameWidth, NameHeight );
-
- ww = ComputeX( NameWidth );
- wh = ComputeY( NameHeight );
-
- 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( &NameGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Name_CNT; lc++ ) {
-
- CopyMem((char * )&NameNGad[ 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);
-
- NameGadgets[ lc ] = g = CreateGadgetA((ULONG)NameGTypes[ lc ], g, &ng, ( struct TagItem * )&NameGTags[ tc ] );
-
- while( NameGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( NameWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, STRINGIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, NameGList,
- WA_Title, NameWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( NameWnd, NULL );
-
- return( 0L );
- }
-
- void CloseNameWindow( void )
- {
- if ( NameWnd ) {
- CloseWindow( NameWnd );
- NameWnd = NULL;
- }
-
- if ( NameGList ) {
- FreeGadgets( NameGList );
- NameGList = NULL;
- }
- }
-
- int HandleFieldIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( FieldWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&FieldMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( FieldMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( FieldWnd );
- GT_EndRefresh( FieldWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = FieldCloseWindow();
- break;
-
- case IDCMP_VANILLAKEY:
- running = FieldVanillaKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )FieldMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenFieldWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = FieldLeft, wtop = FieldTop, ww, wh;
-
- ComputeFont( FieldWidth, FieldHeight );
-
- ww = ComputeX( FieldWidth );
- wh = ComputeY( FieldHeight );
-
- 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( &FieldGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Field_CNT; lc++ ) {
-
- CopyMem((char * )&FieldNGad[ 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);
-
- FieldGadgets[ lc ] = g = CreateGadgetA((ULONG)FieldGTypes[ lc ], g, &ng, ( struct TagItem * )&FieldGTags[ tc ] );
-
- while( FieldGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( FieldWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, STRINGIDCMP|INTEGERIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, FieldGList,
- WA_Title, FieldWdt,
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( FieldWnd, NULL );
-
- return( 0L );
- }
-
- void CloseFieldWindow( void )
- {
- if ( FieldWnd ) {
- CloseWindow( FieldWnd );
- FieldWnd = NULL;
- }
-
- if ( FieldGList ) {
- FreeGadgets( FieldGList );
- FieldGList = NULL;
- }
- }
- */
- //|
-
- int HandleVisIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)();
- BOOL running = TRUE;
-
- while( m = GT_GetIMsg( VisWnd->UserPort )) {
-
- CopyMem(( char * )m, ( char * )&VisMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( VisMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( VisWnd );
- GT_EndRefresh( VisWnd, TRUE );
- break;
-
- case IDCMP_CLOSEWINDOW:
- running = VisCloseWindow();
- break;
-
- case IDCMP_VANILLAKEY:
- running = VisVanillaKey();
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )VisMsg.IAddress )->UserData;
- if(func)
- running = func();
- else
- running = 0;
- break;
- }
- }
- return( running );
- }
-
- /*
- ** Edit item window
- */
-
- int OpenVisWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = VisLeft, wtop = VisTop, ww, wh;
- char i;
-
- /* Localization. Poor but works ;-) */
- VisNGad[0].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_NAME);
- VisNGad[1].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_SIZE);
- VisNGad[2].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_OK);
- VisNGad[3].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_CANCEL);
- VisNGad[4].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_MORE);
- VisNGad[5].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_FIELD);
- VisNGad[6].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_SELECT);
- VisNGad[7].ng_GadgetText = GetAppStr(MSG_EDVIEW_EDIT_TYPE);
-
- for(i=0; i<5; i++)
- GadgetType_Labels[i] = (char *)GetAppStr(MSG_EDVIEW_TYPE_0 + i);
-
-
- ComputeFont( VisWidth, VisHeight );
-
- ww = ComputeX( VisWidth );
- wh = ComputeY( VisHeight );
-
- 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( &VisGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Vis_CNT; lc++ ) {
-
- CopyMem((char * )&VisNGad[ 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);
-
- VisGadgets[ lc ] = g = CreateGadgetA((ULONG)VisGTypes[ lc ], g, &ng, ( struct TagItem * )&VisGTags[ tc ] );
-
- while( VisGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( VisWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, STRINGIDCMP|INTEGERIDCMP|BUTTONIDCMP|TEXTIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, VisGList,
- WA_Title, GetAppStr(MSG_EDVIEW_TITLE),
- WA_PubScreen, Scr,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( VisWnd, NULL );
-
- return( 0L );
- }
-
- void CloseVisWindow( void )
- {
- if ( VisWnd ) {
- CloseWindow( VisWnd );
- VisWnd = NULL;
- }
-
- if ( VisGList ) {
- FreeGadgets( VisGList );
- VisGList = NULL;
- }
- }
-