home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / POPCLIIV.LHA / popcliIV / sources / pchelp.c next >
Encoding:
C/C++ Source or Header  |  1993-01-12  |  6.5 KB  |  229 lines

  1. /*
  2.  *  Source generated with GadToolsBox V1.3
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #define MIN(a,b)    ((a)<(b)?(a):(b))
  7. #define MAX(a,b)    ((a)>(b)?(a):(b))
  8.  
  9. #include "pchelp.h"
  10. #include "psdata.h"
  11.  
  12. extern GLOBAL_DATA PROSET;
  13.  
  14. struct Screen        *Scr = NULL;
  15. struct TextAttr      *TAttr;
  16. APTR                  VisualInfo = NULL;
  17. struct Window        *PopCliIVWnd = NULL;
  18. struct Gadget        *PopCliIVGList = NULL;
  19. struct Gadget        *PopCliIVGadgets[6];
  20. UWORD                 PopCliIVLeft;
  21. UWORD                 PopCliIVTop;
  22. UWORD                 PopCliIVWidth;
  23. UWORD                 PopCliIVHeight;
  24. UBYTE                *PopCliIVWdt = (UBYTE *)"PopCliIV";
  25. UWORD                 BevelBoxHeight;
  26. UWORD                 StringGadWidth;
  27.  
  28. int SetUpScreen( void )
  29. {
  30.    if ( ! ( Scr = LockPubScreen( NULL )))
  31.       return( 1L );
  32.  
  33.    if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  34.       return( 2L );
  35.  
  36.    ScreenToFront( Scr   );
  37.    TAttr                         =  Scr->Font;
  38.  
  39.    return( 0L );
  40. }
  41.  
  42. void CloseDownScreen( void )
  43. {
  44.    if ( VisualInfo ) {
  45.       FreeVisualInfo( VisualInfo );
  46.       VisualInfo = NULL;
  47.    }
  48.  
  49.    if ( Scr        ) {
  50.       UnlockPubScreen( NULL, Scr );
  51.       Scr = NULL;
  52.    }
  53. }
  54.  
  55. void PopCliHelpSize( void )
  56. {
  57.    UWORD offx, offy,
  58.          rightWidth;
  59.    WORD  alen,
  60.          blen,
  61.          clen,
  62.          dlen;
  63.  
  64.    offx = Scr->WBorLeft;
  65.    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  66.  
  67.    StringGadWidth    =  6 +
  68.                         TextLength( &(Scr->RastPort),
  69.                                     "rawkey lcommand alt help",
  70.                                     strlen("rawkey lcommand alt help") ) +
  71.                         6;
  72.  
  73.    alen = 4 + StringGadWidth +
  74.           TextLength( &(Scr->RastPort), "PopCli ShortCut", strlen("PopCli ShortCut") ) +
  75.           TAttr->ta_YSize + 4;
  76.    blen = 4 + StringGadWidth +
  77.           TextLength( &(Scr->RastPort), "PopCli Command", strlen("PopCli Command") ) +
  78.           TAttr->ta_YSize + 4;
  79.    clen = 4 + StringGadWidth +
  80.           TextLength( &(Scr->RastPort), "For this help", strlen("For this help") ) +
  81.           TAttr->ta_YSize + 4;
  82.    dlen = 4 + StringGadWidth +
  83.           TextLength( &(Scr->RastPort), "Look for a Shell", strlen("Look for a Shell") ) +
  84.           TAttr->ta_YSize + 4;
  85.  
  86.  
  87.    rightWidth     =  MAX( MAX(alen,blen), clen );
  88.  
  89.  
  90.    PopCliIVWidth  =  Scr->WBorLeft + rightWidth + Scr->WBorRight;
  91.  
  92.    PopCliIVLeft   =  Scr->MouseX - PopCliIVWidth/2;
  93.    PopCliIVTop    =  Scr->MouseY - offy/2;
  94. }
  95.  
  96.  
  97. void PopCliIVRender( void )
  98. {
  99.     UWORD        offx, offy;
  100.  
  101.     offx = PopCliIVWnd->BorderLeft;
  102.     offy = PopCliIVWnd->BorderTop;
  103.  
  104.     DrawBevelBox( PopCliIVWnd->RPort, offx + 0, offy + 0,
  105.                   PopCliIVWidth - (PopCliIVWnd->BorderRight) - offx,
  106.                   BevelBoxHeight,
  107.                   GT_VisualInfo, VisualInfo,
  108.                   TAG_DONE );
  109. }
  110.  
  111. int OpenPopCliIVWindow( void )
  112. {
  113.    struct NewGadget    ng;
  114.    struct Gadget       *g;
  115.    UWORD               offx, offy;
  116.  
  117.    PopCliHelpSize();
  118.  
  119.    offx = Scr->WBorLeft;
  120.    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  121.  
  122.    if ( ! ( g = CreateContext( &PopCliIVGList )))
  123.       return( 1L );
  124.  
  125.    ng.ng_LeftEdge       =     offx + 4;
  126.    ng.ng_TopEdge        =     offy + 2;
  127.    ng.ng_Width          =     StringGadWidth;
  128.    ng.ng_Height         =     TAttr->ta_YSize + 5;
  129.    ng.ng_GadgetText     =     (UBYTE *)"PopCli ShortCut";
  130.    ng.ng_TextAttr       =     TAttr;
  131.    ng.ng_GadgetID       =     GD_popcli_sc;
  132.    ng.ng_Flags          =     PLACETEXT_RIGHT;
  133.    ng.ng_VisualInfo     =     VisualInfo;
  134.  
  135.    g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PROSET.popcli, GTST_MaxChars, 256, TAG_DONE );
  136.  
  137.    PopCliIVGadgets[ 0 ] = g;
  138.  
  139.    ng.ng_TopEdge        =     ng.ng_TopEdge + ng.ng_Height + 1;
  140.    ng.ng_GadgetText     =     (UBYTE *)"PopCli Command";
  141.    ng.ng_GadgetID       =     GD_popcli_cmd;
  142.  
  143.    g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PROSET.popclicmd, GTST_MaxChars, 256, TAG_DONE );
  144.  
  145.    PopCliIVGadgets[ 1 ] = g;
  146.  
  147.    BevelBoxHeight       =     ng.ng_TopEdge + ng.ng_Height + 2 - offy;
  148.    ng.ng_TopEdge        =     ng.ng_TopEdge + ng.ng_Height + 4;
  149.    ng.ng_GadgetText     =     (UBYTE *)"For this help";
  150.    ng.ng_GadgetID       =     GD_help_sc;
  151.  
  152.    g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PROSET.helpme, GTST_MaxChars, 256, TAG_DONE );
  153.  
  154.    PopCliIVGadgets[ 2 ] = g;
  155.  
  156.    ng.ng_TopEdge        =     ng.ng_TopEdge + ng.ng_Height + 1;
  157.    ng.ng_GadgetText     =     (UBYTE *)"Look for a Shell";
  158.    ng.ng_GadgetID       =     GD_lookfor_sc;
  159.  
  160.    g = CreateGadget( STRING_KIND, g, &ng, GTST_String, PROSET.lookfor, GTST_MaxChars, 256, TAG_DONE );
  161.  
  162.    PopCliIVGadgets[ 5 ] = g;
  163.  
  164.    ng.ng_LeftEdge       =     offx + (PopCliIVWidth-Scr->WBorLeft-Scr->WBorRight)/2 + 1;
  165.    ng.ng_TopEdge        =     ng.ng_TopEdge + ng.ng_Height + 2;
  166.    ng.ng_Width          =     (PopCliIVWidth-Scr->WBorLeft-Scr->WBorRight)/2 - 2;
  167.    ng.ng_Height         =     2*(TAttr->ta_YSize + 5);
  168.    ng.ng_GadgetText     =     (UBYTE *)"remove";
  169.    ng.ng_GadgetID       =     GD_quit;
  170.    ng.ng_Flags          =     PLACETEXT_IN;
  171.  
  172.    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  173.  
  174.    PopCliIVGadgets[ 3 ] = g;
  175.  
  176.    ng.ng_LeftEdge       =     offx + 1;
  177.    ng.ng_GadgetText     =     (UBYTE *)"hide";
  178.    ng.ng_GadgetID       =     GD_hide;
  179.  
  180.    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  181.  
  182.    PopCliIVGadgets[ 4 ] = g;
  183.  
  184.    if ( ! g )
  185.       return( 2L );
  186.  
  187.    PopCliIVHeight       =     ng.ng_TopEdge + ng.ng_Height + Scr->WBorBottom;
  188.  
  189.    PopCliHelpSize();
  190.  
  191.    if ( ! ( PopCliIVWnd = OpenWindowTags( NULL,
  192.                   WA_Left,          PopCliIVLeft,
  193.                   WA_Top,           PopCliIVTop,
  194.                   WA_Width,         PopCliIVWidth,
  195.                   WA_Height,        PopCliIVHeight,
  196.                   WA_IDCMP,         STRINGIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  197.                   WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH,
  198.                   WA_Gadgets,       PopCliIVGList,
  199.                   WA_Title,         PopCliIVWdt,
  200.                   WA_ScreenTitle,   "GadToolsBox v1.3 © 1991,92 ",
  201.                   WA_PubScreen,     Scr,
  202.                   TAG_DONE )))
  203.       return( 4L );
  204.  
  205.    GT_RefreshWindow( PopCliIVWnd, NULL );
  206.  
  207.    PopCliIVRender();
  208.  
  209.    return( 0L );
  210. }
  211.  
  212. void ClosePopCliIVWindow( void )
  213. {
  214.    struct IntuiMessage  *imsg;
  215.  
  216.    if ( PopCliIVWnd        ) {
  217.       while( (imsg = GT_GetIMsg(PopCliIVWnd->UserPort)) )
  218.          GT_ReplyIMsg(imsg);
  219.       CloseWindow( PopCliIVWnd );
  220.       PopCliIVWnd = NULL;
  221.    }
  222.  
  223.    if ( PopCliIVGList      ) {
  224.       FreeGadgets( PopCliIVGList );
  225.       PopCliIVGList = NULL;
  226.    }
  227. }
  228.  
  229.