home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 1 / FFMCD01.bin / bbs / libdisks / d700t799 / disk751.lha / PPMC / Source / PPMC.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-05  |  8.0 KB  |  279 lines

  1. /*
  2.         Source generated with GadToolsBox V1.4
  3.         which is © Copyright 1991,92 Jaba Development
  4.  
  5.         Modifications by REELSOFT
  6. */
  7.  
  8. #include    <proto/intuition.h>
  9. #include    <proto/gadtools.h>
  10. #include    <proto/exec.h>
  11. #include    <proto/graphics.h>
  12. #include    <proto/utility.h>
  13.  
  14. #include    <intuition/classes.h>
  15. #include    <intuition/classusr.h>
  16. #include    <intuition/imageclass.h>
  17. #include    <intuition/gadgetclass.h>
  18. #include    <graphics/gfxbase.h>
  19.  
  20. #include    "PPMC.h"
  21. #include    "PPMC_Defines.h"
  22.  
  23. struct    Screen        *Scr        = NULL ;
  24. APTR                VisualInfo    = NULL ;
  25. struct    Window        *PPMCWnd    = NULL ;
  26. struct    Gadget        *PPMCGList    = NULL ;
  27. struct    Menu        *PPMCMenus    = NULL ;
  28. struct    Gadget        *PPMCGadgets [12] ;
  29. struct    RastPort    *ppmcRP ;
  30.  
  31. UBYTE    *BufSize0Labels [] = {    (UBYTE *)"LARGE",
  32.                                 (UBYTE *)"MEDIUM",
  33.                                 (UBYTE *)"SMALL",        NULL } ;
  34. UBYTE    *CrunEff0Labels [] = {    (UBYTE *)"FAST",
  35.                                 (UBYTE *)"MEDIOCRE",
  36.                                 (UBYTE *)"GOOD",
  37.                                 (UBYTE *)"VERY GOOD",
  38.                                 (UBYTE *)"BEST",        NULL } ;
  39. UBYTE    *DecrCol0Labels [] = {    (UBYTE *)"COL0",
  40.                                 (UBYTE *)"COL2",
  41.                                 (UBYTE *)"POINTER",
  42.                                 (UBYTE *)"SCROLL",
  43.                                 (UBYTE *)"NONE",        NULL } ;
  44.  
  45. struct    TextAttr    PPMCFnt = { ( STRPTR )"PPMC.font", 8, 0x00, 0x20 } ;
  46.  
  47. struct    NewMenu    PPMCNewMenu [] = {
  48.     NM_TITLE,    (STRPTR)"Project", NULL, 0, 0L, NULL,
  49.         NM_ITEM,    (STRPTR)"About...",        (STRPTR)"?", 0, 0L, NULL,
  50.         NM_ITEM,    (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  51.         NM_ITEM,    (STRPTR)"Load...",        (STRPTR)"L", 0, 0L, NULL,
  52.         NM_ITEM,    (STRPTR)"Save",            (STRPTR)"S", NM_ITEMDISABLED, 0L, NULL,
  53.         NM_ITEM,    (STRPTR)"Save As...",    (STRPTR)"V", NM_ITEMDISABLED, 0L, NULL,
  54.         NM_ITEM,    (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  55.         NM_ITEM,    (STRPTR)"Quit...",        (STRPTR)"Q", 0, 0L, NULL,
  56.     NM_TITLE,    (STRPTR)"Parameters", NULL, 0, 0L, NULL,
  57.         NM_ITEM,    (STRPTR)"Efficiency",        NULL, 0, 0L, NULL,
  58.             NM_SUB,        (STRPTR)"FAST",            NULL, 0, 0L, NULL,
  59.             NM_SUB,        (STRPTR)"MEDIOCRE",        NULL, 0, 0L, NULL,
  60.             NM_SUB,        (STRPTR)"GOOD",            NULL, 0, 0L, NULL,
  61.             NM_SUB,        (STRPTR)"VERY GOOD",    NULL, 0, 0L, NULL,
  62.             NM_SUB,        (STRPTR)"BEST",            NULL, 0, 0L, NULL,
  63.         NM_ITEM,    (STRPTR)"Speedup Buffer", NULL, 0, 0L, NULL,
  64.             NM_SUB,        (STRPTR)"LARGE",        NULL, 0, 0L, NULL,
  65.             NM_SUB,        (STRPTR)"MEDIUM",        NULL, 0, 0L, NULL,
  66.             NM_SUB,        (STRPTR)"SMALL",        NULL, 0, 0L, NULL,
  67.         NM_ITEM,    (STRPTR)"Decrunching Effect", NULL, 0, 0L, NULL,
  68.             NM_SUB,        (STRPTR)"COL0",            NULL, 0, 0L, NULL,
  69.             NM_SUB,        (STRPTR)"COL2",            NULL, 0, 0L, NULL,
  70.             NM_SUB,        (STRPTR)"POINTER",        NULL, 0, 0L, NULL,
  71.             NM_SUB,        (STRPTR)"SCROLL",        NULL, 0, 0L, NULL,
  72.             NM_SUB,        (STRPTR)"NONE",            NULL, 0, 0L, NULL,
  73.         NM_ITEM,    (STRPTR)"Password",    (STRPTR)"P", CHECKIT|MENUTOGGLE, 0L, NULL,
  74.     NM_TITLE,    (STRPTR)"Crunching", NULL, 0, NULL, NULL,
  75.         NM_ITEM,    (STRPTR)"START...", (STRPTR)"T", NM_ITEMDISABLED, 0L, NULL,
  76.     NM_END, NULL, NULL, 0, 0L, NULL
  77. } ;
  78.  
  79. int    SetupScreen ( VOID )
  80. {
  81.     Scr = LockPubScreen ( (UBYTE * )"Workbench" ) ;
  82.     if ( Scr == NULL )
  83.         return (1L) ;
  84.  
  85.     VisualInfo = GetVisualInfo ( Scr, TAG_DONE ) ;
  86.     if ( VisualInfo == NULL )
  87.         return (2L) ;
  88.  
  89.     return (0L) ;
  90. }
  91.  
  92. VOID    CloseDownScreen ( VOID )
  93. {
  94.     if ( VisualInfo ) {
  95.         FreeVisualInfo ( VisualInfo ) ;
  96.         VisualInfo = NULL ;
  97.     }
  98.  
  99.     if ( Scr ) {
  100.         UnlockPubScreen ( NULL, Scr ) ;
  101.         Scr = NULL ;
  102.     }
  103. }
  104.  
  105. struct    IntuiText    PPMCIText [] = {
  106.             2, 0, JAM1, 10, 23, &PPMCFnt, (UBYTE *)"EFFICIENCY", &PPMCIText [1],
  107.             2, 0, JAM1,171, 23, &PPMCFnt, (UBYTE *)"SPEEDUP BUFFER", &PPMCIText [2],
  108.             2, 0, JAM1,332, 23, &PPMCFnt, (UBYTE *)"DECRUNCHING EFFECT", NULL
  109. } ;
  110. VOID    PPMCRender ( VOID )
  111. {
  112.     UWORD    bbox [24] = {      0,  0, 483, 20,
  113.                               0, 20, 161, 61,
  114.                             161, 20, 161, 46,
  115.                             161, 66, 161, 15,
  116.                             322, 20, 161, 61,
  117.                               0, 81, 483, 22
  118.     } ;
  119.     UWORD    cnt ;
  120.  
  121.     for ( cnt = 0 ; cnt < 24 ; cnt+= 4 ) {
  122.         DrawBevelBox (    PPMCWnd->RPort,
  123.                         PPMCWnd->BorderLeft + bbox [cnt],
  124.                         PPMCWnd->BorderTop + bbox [cnt+1],
  125.                         bbox [cnt+2], bbox [cnt+3],
  126.                         GT_VisualInfo,    VisualInfo,        TAG_DONE ) ;
  127.     }
  128.  
  129.     DrawBevelBox (    PPMCWnd->RPort,
  130.                     PPMCWnd->BorderLeft + 8, PPMCWnd->BorderTop + 84,
  131.                     201, 16,
  132.                     GT_VisualInfo,    VisualInfo,
  133.                     GTBB_Recessed,    TRUE,                TAG_DONE ) ;
  134.  
  135.     PrintIText ( PPMCWnd->RPort, PPMCIText, PPMCWnd->BorderLeft, PPMCWnd->BorderTop ) ;
  136. }
  137.  
  138. //    ...
  139. struct    NewGadget    PPMCNGad [] = {
  140.   8, 3, 26,14, (UBYTE *)"?",        NULL, GD_About,      PLACETEXT_IN,        NULL, NULL,
  141.  39, 3, 51,14, (UBYTE *)"_LOAD",    NULL, GD_Load,      PLACETEXT_IN,        NULL, NULL,
  142.  95, 3, 51,14, (UBYTE *)"_SAVE",    NULL, GD_Save,      PLACETEXT_IN,        NULL, NULL,
  143. 151, 3,247,14, NULL,                NULL, GD_Status,  0,                NULL, NULL,
  144. 403, 3, 72,14, (UBYTE *)"S_TART",    NULL, GD_Start,      PLACETEXT_IN,        NULL, NULL,
  145. 133,33, 17, 9, NULL,                NULL, GD_CrunEff, PLACETEXT_LEFT,    NULL, NULL,
  146. 294,36, 17, 9, NULL,                NULL, GD_BufSize, PLACETEXT_LEFT,    NULL, NULL,
  147. 455,33, 17, 9, NULL,                NULL, GD_DecrCol, PLACETEXT_LEFT,    NULL, NULL,
  148. 172,68, 26,11, (UBYTE *)"_PASSWORD",NULL, GD_Crypt,      PLACETEXT_RIGHT|NG_HIGHLABEL, NULL, NULL,
  149. 219,85, 41,14, (UBYTE *)"%",        NULL, GD_Crunch,  PLACETEXT_RIGHT,    NULL, NULL,
  150. 296,85, 41,14, (UBYTE *)"% gain",    NULL, GD_Gained,  PLACETEXT_RIGHT,    NULL, NULL,
  151. 394,84, 81,16, (UBYTE *)"ABORT",    NULL, GD_Abort,      PLACETEXT_IN,        NULL, NULL
  152. } ;
  153. ULONG    PPMCGTags [] = {    (TAG_DONE),
  154.                             (GT_Underscore), '_', (TAG_DONE),
  155.                             (GT_Underscore), '_', (GA_Disabled), TRUE, (TAG_DONE),
  156.                             (GTTX_Text), (ULONG)"Load or Drop a File to crunch...", (GTTX_Border), TRUE, (TAG_DONE),
  157.                             (GT_Underscore), '_', (GA_Disabled), TRUE,    (TAG_DONE),
  158.                             (GTMX_Labels), (ULONG)&CrunEff0Labels [0], (GTMX_Active), 4, (TAG_DONE),
  159.                             (GTMX_Labels), (ULONG)&BufSize0Labels [0], (TAG_DONE),
  160.                             (GTMX_Labels), (ULONG)&DecrCol0Labels [0], (GTMX_Active), 4, (TAG_DONE),
  161.                             (GT_Underscore), '_', (TAG_DONE),
  162.                             (GTNM_Border), TRUE, (TAG_DONE),
  163.                             (GTNM_Border), TRUE, (TAG_DONE),
  164.                             (GA_Disabled), TRUE, (TAG_DONE)
  165.         } ;
  166. UWORD    PPMCGTypes [] = {    BUTTON_KIND,
  167.                             BUTTON_KIND,
  168.                             BUTTON_KIND,
  169.                             TEXT_KIND,
  170.                             BUTTON_KIND,
  171.                             MX_KIND,
  172.                             MX_KIND,
  173.                             MX_KIND,
  174.                             CHECKBOX_KIND,
  175.                             NUMBER_KIND,
  176.                             NUMBER_KIND,
  177.                             BUTTON_KIND
  178.         } ;
  179. int    OpenPPMCWindow ( VOID )
  180. {
  181.     struct    NewGadget    ng ;
  182.     struct    Gadget        *g ;
  183.     UWORD    lc, tc ;
  184.     UWORD    zoom [4] ;
  185.  
  186.     g = CreateContext ( &PPMCGList ) ;
  187.     if ( g == NULL )
  188.         return (1L) ;
  189.  
  190.     for ( lc = 0, tc = 0 ; lc < PPMC_CNT ; lc++ ) {
  191.         CopyMem ( (char *)&PPMCNGad [lc], (char *)&ng, (long)sizeof (struct NewGadget) ) ;
  192.  
  193.         ng.ng_VisualInfo     = VisualInfo ;
  194.         ng.ng_TextAttr         = &PPMCFnt ;
  195.         ng.ng_LeftEdge        += Scr->WBorLeft ;
  196.         ng.ng_TopEdge        += Scr->WBorTop + Scr->RastPort.TxHeight + 1 ;
  197.  
  198.         PPMCGadgets [lc] = g = CreateGadgetA ( (ULONG)PPMCGTypes [lc], g, &ng, (struct TagItem *)&PPMCGTags [tc] ) ;
  199.  
  200.         while ( PPMCGTags [tc] )
  201.             tc += 2 ;
  202.         tc++ ;
  203.  
  204.         if ( NOT g )
  205.             return (2L) ;
  206.     }
  207.  
  208.     zoom [0] = zoom [1] = 0 ;
  209.     zoom [2] = TextLength ( &Scr->RastPort, (UBYTE *)PPMC_NAME, 4 ) + 80 ;
  210.     zoom [3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1 ;
  211.  
  212.     PPMCWnd = OpenWindowTags (
  213.                 NULL,
  214.                 WA_Left,        (Scr->Width-491)/2,
  215.                 WA_Top,            (Scr->Height-105)/2,
  216.                 WA_Width,        491,
  217.                 WA_Height,        105 + Scr->WBorTop + Scr->RastPort.TxHeight + 1,
  218.                 WA_IDCMP,        BUTTONIDCMP
  219.                                 |MXIDCMP
  220.                                 |CHECKBOXIDCMP
  221.                                 |TEXTIDCMP
  222.                                 |NUMBERIDCMP
  223.                                 |IDCMP_MENUPICK
  224.                                 |IDCMP_CLOSEWINDOW
  225.                                 |IDCMP_REFRESHWINDOW,
  226.                 WA_Flags,        WFLG_DRAGBAR
  227.                                 |WFLG_DEPTHGADGET
  228.                                 |WFLG_CLOSEGADGET
  229.                                 |WFLG_SMART_REFRESH
  230.                                 |WFLG_ACTIVATE,
  231.                 WA_Gadgets,        PPMCGList,
  232.                 WA_Title,        (UBYTE *)PPMC_NAME,
  233.                 WA_ScreenTitle,    PPMC_SCREEN,
  234.                 WA_Zoom,        zoom,
  235.                 TAG_DONE
  236.     ) ;
  237.     if ( PPMCWnd == NULL )
  238.         return (4L) ;
  239.  
  240.     PPMCRender () ;
  241.  
  242.     SetupMenus () ;
  243.  
  244.     GT_RefreshWindow ( PPMCWnd, NULL ) ;
  245.  
  246.     ppmcRP = PPMCWnd->RPort ;
  247.  
  248.     return (0L) ;
  249. }
  250.  
  251. VOID    ClosePPMCWindow ( VOID )
  252. {
  253.     if ( PPMCWnd ) {
  254.         ClearMenus () ;
  255.         CloseWindow ( PPMCWnd ) ;
  256.         PPMCWnd = NULL;
  257.     }
  258.  
  259.     if ( PPMCGList ) {
  260.         FreeGadgets ( PPMCGList ) ;
  261.         PPMCGList = NULL ;
  262.     }
  263. }
  264.  
  265. VOID    SetupMenus ( VOID )
  266. {
  267.     PPMCMenus = CreateMenus ( PPMCNewMenu, GTMN_FrontPen, 0L, TAG_DONE ) ;
  268.     LayoutMenus ( PPMCMenus, VisualInfo, TAG_DONE ) ;
  269.     SetMenuStrip ( PPMCWnd, PPMCMenus ) ;
  270. }
  271.  
  272. VOID    ClearMenus ( VOID )
  273. {
  274.     ClearMenuStrip ( PPMCWnd ) ;
  275.     FreeMenus ( PPMCMenus ) ;
  276.     PPMCMenus = NULL ;
  277. }
  278.  
  279. //    ...