home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 52 / af052sub.adf / lyr-o-mat.lha / Lyr-O-Mat / Source / Source.lha / words.c < prev    next >
C/C++ Source or Header  |  1993-04-23  |  10KB  |  312 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V1.4
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #include "words.h"
  7.  
  8. struct Screen         *Scr = NULL;
  9. UBYTE                 *PubScreenName = NULL;
  10. APTR                   VisualInfo = NULL;
  11. struct Window         *Project0Wnd = NULL;
  12. struct Gadget         *Project0GList = NULL;
  13. struct Menu           *Project0Menus = NULL;
  14. struct IntuiMessage    Project0Msg;
  15. struct Gadget         *Project0Gadgets[15];
  16. UWORD                  Project0Left = 0;
  17. UWORD                  Project0Top = 0;
  18. UWORD                  Project0Width = 495;
  19. UWORD                  Project0Height = 186;
  20. UBYTE                 *Project0Wdt = (UBYTE *)LYR_NAME;
  21. struct TextAttr       *Font, Attr;
  22. UWORD                  FontX, FontY;
  23. UWORD                  OffX, OffY;
  24.  
  25. UBYTE *mode0Labels[] = {
  26.     (UBYTE *)"Pattern",
  27.     (UBYTE *)"Text",
  28.     NULL };
  29.  
  30. struct NewMenu Project0NewMenu[] = {
  31.     NM_TITLE, (STRPTR)"Project", NULL, 0, NULL, NULL,
  32.     NM_ITEM, (STRPTR)"Load ", NULL, 0, NULL, NULL,
  33.     NM_SUB, (STRPTR)"Pattern & Classes", (STRPTR)"L", 0, 0L, (APTR)Project0Loadall,
  34.     NM_SUB, (STRPTR)"Pattern only", NULL, 0, 0L, (APTR)Project0Loadpattern,
  35.     NM_SUB, (STRPTR)"Classes only", NULL, 0, 0L, (APTR)Project0Loadclasses,
  36.     NM_ITEM, (STRPTR)"Append", NULL, 0, NULL, NULL,
  37.     NM_SUB, (STRPTR)"Pattern & Classes", (STRPTR)"A", 0, 0L, (APTR)Project0appendall,
  38.     NM_SUB, (STRPTR)"Pattern only", NULL, 0, 0L, (APTR)Project0appendpattern,
  39.     NM_SUB, (STRPTR)"Classes only", NULL, 0, 0L, (APTR)Project0appendclasses,
  40.     NM_ITEM, (STRPTR)"Save ", NULL, 0, NULL, NULL,
  41.     NM_SUB, (STRPTR)"Pattern & Classes", (STRPTR)"S", 0, 0L, (APTR)Project0saveall,
  42.     NM_SUB, (STRPTR)"Pattern only", NULL, 0, 0L, (APTR)Project0savepattern,
  43.     NM_SUB, (STRPTR)"Classes only", NULL, 0, 0L, (APTR)Project0saveclasses,
  44.     NM_ITEM, (STRPTR)"Save as Default", (STRPTR)"D", 0, 0L, (APTR)Project0savedefault,
  45.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  46.     NM_ITEM, (STRPTR)"About...",NULL, 0, 0L, (APTR)Project0about,
  47.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  48.     NM_ITEM, (STRPTR)"Quit...", (STRPTR)"Q", 0, 0L, (APTR)Project0quit,
  49.   NM_TITLE, (STRPTR)"Output", NULL, 0, NULL, NULL,
  50.   NM_ITEM, (STRPTR)"Window", (STRPTR)"W", CHECKED | CHECKIT | MENUTOGGLE, 0L, (APTR)Project0ConWd,
  51.   NM_ITEM, (STRPTR)"Printer", (STRPTR)"P", CHECKIT | MENUTOGGLE, 0L, (APTR)Project0Item0,
  52.   NM_TITLE, (STRPTR)"Info",NULL, 0, NULL, NULL,
  53.   NM_ITEM, (STRPTR)"Show complete info", (STRPTR)"I", 0, 0L, (APTR)Project0ShowInfo,
  54.   NM_ITEM, (STRPTR)"Show pattern info",NULL, 0, 0L, (APTR)Project0ShowPInfo,
  55.   NM_ITEM, (STRPTR)"Show class info", NULL, 0, 0L, (APTR)Project0ShowCInfo,
  56.   NM_TITLE, (STRPTR)"Options",NULL, 0, NULL, NULL,
  57.   NM_ITEM, (STRPTR)"Write Icons", (STRPTR)"C", CHECKIT | MENUTOGGLE | CHECKED, 0L, (APTR)Project0WriteIcon,
  58.   NM_END, NULL, NULL, 0, 0L, NULL };
  59.  
  60. UWORD Project0GTypes[] = {
  61.     STRING_KIND,
  62.     LISTVIEW_KIND,
  63.     STRING_KIND,
  64.     LISTVIEW_KIND,
  65.     STRING_KIND,
  66.     LISTVIEW_KIND,
  67.     INTEGER_KIND,
  68.     BUTTON_KIND,
  69.     BUTTON_KIND,
  70.     BUTTON_KIND,
  71.     BUTTON_KIND,
  72.     BUTTON_KIND,
  73.     BUTTON_KIND,
  74.     BUTTON_KIND,
  75.   CYCLE_KIND
  76. };
  77.  
  78. struct NewGadget Project0NGad[] = {
  79.     276, 100, 196, 14, NULL, NULL, GD_wordstring, 0, NULL, (APTR)wordstringClicked,
  80.     276, 100, 196, 66, (UBYTE *)"Word", NULL, GD_wordlist, PLACETEXT_ABOVE, NULL, (APTR)wordlistClicked,
  81.     11,  100, 202, 14, NULL, NULL, GD_class_string, 0, NULL, (APTR)class_stringClicked,
  82.     11,  100, 202, 66, (UBYTE *)"Class", NULL, GD_classlist, PLACETEXT_ABOVE, NULL, (APTR)classlistClicked,
  83.     11, 181, 461, 14, NULL, NULL, GD_templatestring, 0, NULL, (APTR)templatestringClicked,
  84.     11, 23, 461, 64, NULL, NULL, GD_templatelist, PLACETEXT_ABOVE, NULL, (APTR)templatelistClicked,
  85.     272, 2, 52, 13, (UBYTE *)"Number of Patterns", NULL, GD_numpat, PLACETEXT_RIGHT, NULL, (APTR)numpatClicked,
  86.     11, 2, 118, 16, (UBYTE *)"_Generate", NULL, GD_generate, PLACETEXT_IN, NULL, (APTR)generateClicked,
  87.     11, 83, 75, 12, (UBYTE *)"Add", NULL, GD_addtemplate, PLACETEXT_IN, NULL, (APTR)addtemplateClicked,
  88.     397, 83, 75, 12, (UBYTE *)"Delete", NULL, GD_deltemplate, PLACETEXT_IN, NULL, (APTR)deltemplateClicked,
  89.     11, 168, 75, 12, (UBYTE *)"Add", NULL, GD_addclass, PLACETEXT_IN, NULL, (APTR)addclassClicked,
  90.     97, 168, 75, 12, (UBYTE *)"Delete", NULL, GD_delclass, PLACETEXT_IN, NULL, (APTR)delclassClicked,
  91.     276, 168, 75, 12, (UBYTE *)"Add", NULL, GD_addword, PLACETEXT_IN, NULL, (APTR)addwordClicked,
  92.     362, 168, 75, 12, (UBYTE *)"Delete", NULL, GD_delword, PLACETEXT_IN, NULL, (APTR)delwordClicked,
  93.   133, 2, 118, 16, NULL, NULL, GD_mode, 0, NULL, (APTR)modeClicked
  94. };
  95.  
  96. ULONG Project0GTags[] = {
  97.     (GA_Disabled),TRUE,(GTST_MaxChars), 256, (TAG_DONE),
  98.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  99.     (GA_Disabled),TRUE,(GTST_MaxChars), 256, (TAG_DONE),
  100.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  101.     (GA_Disabled),TRUE,(GTST_MaxChars), 256, (TAG_DONE),
  102.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  103.     (GTIN_Number), 1, (GTIN_MaxChars), 4, (TAG_DONE),
  104.     (GT_Underscore),'_',(TAG_DONE),
  105.     (GT_Underscore),'_',(TAG_DONE),
  106.     (GT_Underscore),'_',(GA_Disabled),TRUE,(TAG_DONE),
  107.     (GT_Underscore),'_',(TAG_DONE),
  108.     (GT_Underscore),'_',(GA_Disabled),TRUE,(TAG_DONE),
  109.     (GT_Underscore),'_',(GA_Disabled),TRUE,(TAG_DONE),
  110.     (GT_Underscore),'_',(GA_Disabled),TRUE,(TAG_DONE),
  111.     (GTCY_Labels), (ULONG)&mode0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE)
  112. };
  113.  
  114. static UWORD ComputeX( UWORD value )
  115. {
  116.     return(( UWORD )((( FontX * value ) + 4 ) / 8 ));
  117. }
  118.  
  119. static UWORD ComputeY( UWORD value )
  120. {
  121.     return(( UWORD )((( FontY * value ) + 4 ) / 8 ));
  122. }
  123.  
  124. static void ComputeFont( UWORD width, UWORD height )
  125. {
  126.     Font = &Attr;
  127.     Font->ta_Name = (STRPTR)GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
  128.     Font->ta_YSize = FontY = GfxBase->DefaultFont->tf_YSize;
  129.     FontX = GfxBase->DefaultFont->tf_XSize;
  130.  
  131.     OffX = Scr->WBorLeft;
  132.     OffY = Scr->RastPort.TxHeight + Scr->WBorTop + 1;
  133.  
  134.     if ( width && height ) {
  135.         if (( ComputeX( width ) + OffX + Scr->WBorRight ) > Scr->Width )
  136.             goto UseTopaz;
  137.         if (( ComputeY( height ) + OffY + Scr->WBorBottom ) > Scr->Height )
  138.             goto UseTopaz;
  139.     }
  140.     return;
  141.  
  142. UseTopaz:
  143.     Font->ta_Name = (STRPTR)"topaz.font";
  144.     FontX = FontY = Font->ta_YSize = 8;
  145. }
  146.  
  147. int SetupScreen( void )
  148. {
  149.     if ( ! ( Scr = LockPubScreen( PubScreenName )))
  150.         return( 1L );
  151.  
  152.     ComputeFont( 0, 0 );
  153.  
  154.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  155.         return( 2L );
  156.  
  157.     return( 0L );
  158. }
  159.  
  160. void CloseDownScreen( void )
  161. {
  162.     if ( VisualInfo ) {
  163.         FreeVisualInfo( VisualInfo );
  164.         VisualInfo = NULL;
  165.     }
  166.  
  167.     if ( Scr        ) {
  168.         UnlockPubScreen( NULL, Scr );
  169.         Scr = NULL;
  170.     }
  171. }
  172.  
  173. int HandleProject0IDCMP( void )
  174. {
  175.     struct IntuiMessage    *m;
  176.     struct MenuItem        *n;
  177.     int            (*func)(void);
  178.     int            running = TRUE;
  179.  
  180.     while( m = GT_GetIMsg( Project0Wnd->UserPort )) {
  181.  
  182.         CopyMem(( char * )m, ( char * )&Project0Msg, (long)sizeof( struct IntuiMessage ));
  183.  
  184.         GT_ReplyIMsg( m );
  185.  
  186.         switch ( Project0Msg.Class ) {
  187.  
  188.             case    IDCMP_REFRESHWINDOW:
  189.                 GT_BeginRefresh( Project0Wnd );
  190.                 GT_EndRefresh( Project0Wnd, TRUE );
  191.                 break;
  192.  
  193.             case    IDCMP_VANILLAKEY:
  194.                 running = Project0VanillaKey();
  195.                 break;
  196.  
  197.             case    IDCMP_CLOSEWINDOW:
  198.                 running = Project0CloseWindow();
  199.                 break;
  200.  
  201.             case    IDCMP_GADGETUP:
  202.             case    IDCMP_GADGETDOWN:
  203.                 func = ( void * )(( struct Gadget * )Project0Msg.IAddress )->UserData;
  204.                 running = func();
  205.                 break;
  206.  
  207.             case    IDCMP_MENUPICK:
  208.                 while( Project0Msg.Code != MENUNULL ) {
  209.                     n = ItemAddress( Project0Menus, Project0Msg.Code );
  210.                     func = (void *)(GTMENUITEM_USERDATA( n ));
  211.                     running = func();
  212.                     Project0Msg.Code = n->NextSelect;
  213.                 }
  214.                 break;
  215.         }
  216.     }
  217.     return( running );
  218. }
  219.  
  220. int OpenProject0Window( void )
  221. {
  222.     struct NewGadget    ng;
  223.     struct Gadget    *g;
  224.     struct TagItem    *tmp;
  225.     UWORD        lc, tc;
  226.     UWORD        wleft = Project0Left, wtop = Project0Top, ww, wh;
  227.  
  228.     ComputeFont( Project0Width, Project0Height );
  229.  
  230.     ww = ComputeX( Project0Width );
  231.     wh = ComputeY( Project0Height );
  232.  
  233.     if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
  234.     if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
  235.  
  236.     if ( ! ( g = CreateContext( &Project0GList )))
  237.         return( 1L );
  238.  
  239.     for( lc = 0, tc = 0; lc < Project0_CNT; lc++ ) {
  240.  
  241.         CopyMem((char * )&Project0NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  242.  
  243.         ng.ng_VisualInfo = VisualInfo;
  244.         ng.ng_TextAttr   = Font;
  245.         ng.ng_LeftEdge   = OffX + ComputeX( ng.ng_LeftEdge );
  246.         ng.ng_TopEdge    = OffY + ComputeY( ng.ng_TopEdge );
  247.         ng.ng_Width      = ComputeX( ng.ng_Width );
  248.         ng.ng_Height     = ComputeY( ng.ng_Height);
  249.  
  250.         if ( Project0GTypes[ lc ] == LISTVIEW_KIND ) {
  251.             if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&Project0GTags[ tc ] )) {
  252.                 if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g;
  253.             }
  254.         }
  255.  
  256.         Project0Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project0GTypes[ lc ], g, &ng, ( struct TagItem * )&Project0GTags[ tc ] );
  257.  
  258.         while( Project0GTags[ tc ] ) tc += 2;
  259.         tc++;
  260.  
  261.         if ( NOT g )
  262.             return( 2L );
  263.     }
  264.  
  265.     if ( ! ( Project0Menus = CreateMenus( Project0NewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
  266.         return( 3L );
  267.  
  268.     LayoutMenus( Project0Menus, VisualInfo, TAG_DONE );
  269.  
  270.     if ( ! ( Project0Wnd = OpenWindowTags( NULL,
  271.                 WA_Left,    wleft,
  272.                 WA_Top,        wtop,
  273.                 WA_Width,    ww + OffX + Scr->WBorRight,
  274.                 WA_Height,    wh + OffY + Scr->WBorBottom,
  275.                 WA_IDCMP,    IDCMP_VANILLAKEY | STRINGIDCMP|LISTVIEWIDCMP|INTEGERIDCMP|BUTTONIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  276.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  277.                 WA_Gadgets,    Project0GList,
  278.                 WA_Title,    Project0Wdt,
  279.                 WA_ScreenTitle,    "Lyr-O-Mat V1.0 ©1993 CEKASOFT",
  280.                 WA_PubScreen,    Scr,
  281.                 WA_MinWidth,    67,
  282.                 WA_MinHeight,    21,
  283.                 WA_MaxWidth,    640,
  284.                 WA_MaxHeight,    400,
  285.                 WA_AutoAdjust,    TRUE,
  286.                 TAG_DONE )))
  287.     return( 4L );
  288.  
  289.     SetMenuStrip( Project0Wnd, Project0Menus );
  290.     GT_RefreshWindow( Project0Wnd, NULL );
  291.  
  292.     return( 0L );
  293. }
  294.  
  295. void CloseProject0Window( void )
  296. {
  297.     if ( Project0Menus      ) {
  298.         ClearMenuStrip( Project0Wnd );
  299.         FreeMenus( Project0Menus );
  300.         Project0Menus = NULL;    }
  301.  
  302.     if ( Project0Wnd        ) {
  303.         CloseWindow( Project0Wnd );
  304.         Project0Wnd = NULL;
  305.     }
  306.  
  307.     if ( Project0GList      ) {
  308.         FreeGadgets( Project0GList );
  309.         Project0GList = NULL;
  310.     }
  311. }
  312.