home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / util / cdity / yak / src / blank_window.c < prev    next >
C/C++ Source or Header  |  1994-10-13  |  8KB  |  361 lines

  1.  
  2. /*
  3.  *  Source machine generated by GadToolsBox V2.0b
  4.  *  which is (c) Copyright 1991-1993 Jaba Development
  5.  *
  6.  *  GUI Designed by : Martin W Scott and Gaël Marziou
  7.  */
  8.  
  9.  
  10.  
  11.  
  12. #include <exec/types.h>
  13. #include <intuition/intuition.h>
  14. #include <intuition/classes.h>
  15. #include <intuition/classusr.h>
  16. #include <intuition/imageclass.h>
  17. #include <intuition/gadgetclass.h>
  18. #include <intuition/intuitionbase.h>
  19. #include <libraries/gadtools.h>
  20. #include <graphics/displayinfo.h>
  21. #include <graphics/gfxbase.h>
  22. #include <proto/exec.h>
  23. #include <proto/intuition.h>
  24. #include <proto/gadtools.h>
  25. #include <proto/graphics.h>
  26. #include <proto/locale.h>
  27. #include <proto/utility.h>
  28. #include <string.h>
  29.  
  30.  
  31. #include "version.h"
  32. #include "yak.h"
  33. #include "gui.h"
  34.  
  35. #define CATCOMP_NUMBERS
  36. #include "locale/yak_locale_strings.h"
  37.  
  38.  
  39. extern struct Catalog    *Catalog;
  40.  
  41. extern LONG (*HandleIDCMP)(void);
  42.  
  43. struct Window   *BlankWnd = NULL;
  44. struct Gadget   *BlankGList = NULL;
  45. struct Gadget   *BlankGadgets[Blank_CNT];
  46. UWORD            BlankLeft = 0;
  47. UWORD            BlankWidth = 383;
  48. UWORD            BlankHeight = 105;
  49. UBYTE           *BlankWdt = NULL;
  50.  
  51. UBYTE *MBMethod0Labels[4];
  52.  
  53. VOID
  54. InitMBMethod0Labels()
  55. {
  56.     MBMethod0Labels[0] = getString(NONE_STRING);
  57.     MBMethod0Labels[1] = getString(SPRITES_STRING);
  58.     MBMethod0Labels[2] = getString(COPPER_STRING);
  59.     MBMethod0Labels[3] = NULL;
  60. }
  61.  
  62.  
  63. #define Blank_TNUM 1
  64.  
  65. struct IntuiText BlankIText[Blank_TNUM] = 
  66. {
  67.     2,0,JAM1,261,81,NULL,NULL,NULL 
  68. };
  69.  
  70.  
  71.  
  72. UWORD BlankGTypes[] = 
  73. {
  74.         INTEGER_KIND,
  75.         INTEGER_KIND,
  76.         CYCLE_KIND,
  77.         BUTTON_KIND,
  78.         CHECKBOX_KIND
  79. };
  80.  
  81.  
  82. struct NewGadget BlankNGad[] = 
  83. {
  84.         160,53,51,14,NULL,NULL,GD_ScrTONum       ,PLACETEXT_LEFT ,NULL ,NULL,
  85.         160,68,51,14,NULL,NULL,GD_MouseTONum     ,PLACETEXT_LEFT ,NULL ,NULL,
  86.         195,3,170,14,NULL,NULL,GD_MBMethod       ,PLACETEXT_LEFT ,NULL ,NULL,
  87.         140,88,100,13,NULL,NULL,GD_Return3       ,PLACETEXT_IN   ,NULL ,NULL,
  88.           7,19,26,11,NULL,NULL,GD_BlankMouseOnKey,PLACETEXT_RIGHT,NULL ,NULL
  89. };
  90.  
  91.  
  92. VOID InitBlankNGad (VOID)
  93. {
  94.         BlankNGad[GD_ScrTONum].ng_GadgetText   = getString(SCREENTIMEOUT_STRING);
  95.         BlankNGad[GD_MouseTONum].ng_GadgetText = getString(MOUSETIMEOUT_STRING);
  96.         BlankNGad[GD_MBMethod].ng_GadgetText   = getString(MOUSEBLANK_METHOD_STRING);
  97.         BlankNGad[GD_Return3].ng_GadgetText    = getString(OK_STRING);
  98.         BlankNGad[GD_BlankMouseOnKey].ng_GadgetText = getString(BlankMouseOnKey_STRING);
  99. }
  100.  
  101.  
  102.  
  103.  
  104. ULONG BlankGTags[] = 
  105. {
  106.         (GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
  107.         (GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
  108.         (GTCY_Labels),(ULONG)&MBMethod0Labels[ 0 ],(TAG_DONE),
  109.         (TAG_DONE),
  110.         (GTCB_Scaled),TRUE,(TAG_DONE),
  111. };
  112.  
  113.  
  114.  
  115. VOID
  116. BlankRender()
  117. {
  118.     UBYTE cnt;
  119.     UWORD X,Y, Width;
  120.  
  121.     ComputeFont(BlankWidth,BlankHeight);
  122.  
  123.     Width = ComputeX( 380 );
  124.     X = OffX +ComputeX(2);
  125.  
  126.     DrawBevelBox( BlankWnd->RPort, X, 
  127.                  OffY +ComputeY(85),
  128.                  Width,
  129.                  ComputeY( 19 ),
  130.                  GT_VisualInfo, VisualInfo, TAG_DONE );
  131.         
  132.     Y = OffY +ComputeY(35);
  133.  
  134.     BlankIText[ 0 ].LeftEdge  = X +5;
  135.     BlankIText[ 0 ].TopEdge   = Y +3;
  136.  
  137.     DrawBevelBox( BlankWnd->RPort, X, Y,
  138.                  Width,
  139.                  ComputeY( 50 ),
  140.                  GT_VisualInfo, VisualInfo, TAG_DONE );
  141.  
  142.     DrawBevelBox( BlankWnd->RPort, X,
  143.                  OffY + ComputeY( 1 ),
  144.                  Width,
  145.                  ComputeY( 34 ),
  146.                  GT_VisualInfo, VisualInfo, TAG_DONE );
  147.  
  148.     for (cnt = 0; cnt < Blank_TNUM; cnt++) 
  149.     {
  150.         BlankIText[ cnt ].ITextFont = Font;
  151.         PrintIText(BlankWnd->RPort,&BlankIText[ cnt ],0,0);    
  152.     }
  153. }
  154.  
  155.  
  156.  
  157. int
  158. OpenBlankWindow()
  159. {
  160.         struct NewGadget        ng;
  161.         struct Gadget   *g;
  162.         UWORD           lc,tc;
  163.         UWORD           wleft = BlankLeft,wtop = WindowTop,ww,wh;
  164.  
  165.         ComputeFont(BlankWidth,BlankHeight);
  166.  
  167.         ww = ComputeX(BlankWidth);
  168.         wh = ComputeY(BlankHeight);
  169.  
  170.         if ((wleft +ww +OffX +Scr->WBorRight) > Scr->Width) wleft = Scr->Width -ww;
  171.         if ((wtop +wh +OffY +Scr->WBorBottom) > Scr->Height) wtop = Scr->Height -wh;
  172.  
  173.         if (! (g = CreateContext(&BlankGList))) 
  174.         {
  175.                 return(1L);
  176.         }
  177.  
  178.         for(lc = 0,tc = 0; lc < Blank_CNT; lc++) 
  179.         {
  180.  
  181.                 CopyMem((char *)&BlankNGad[ lc ],(char *)&ng,(long)sizeof(struct NewGadget));
  182.  
  183.                 ng.ng_VisualInfo = VisualInfo;
  184.                 ng.ng_TextAttr   = Font;
  185.                 ng.ng_LeftEdge   = OffX +ComputeX(ng.ng_LeftEdge);
  186.                 ng.ng_TopEdge    = OffY +ComputeY(ng.ng_TopEdge);
  187.                 ng.ng_Width      = ComputeX(ng.ng_Width);
  188.                 ng.ng_Height     = ComputeY(ng.ng_Height);
  189.  
  190.                 BlankGadgets[ lc ] = g = CreateGadgetA((ULONG)BlankGTypes[ lc ],g,&ng,(struct TagItem *) &BlankGTags[ tc ]);
  191.  
  192.                 while(BlankGTags[ tc ]) 
  193.                         tc += 2;
  194.  
  195.                 tc++;
  196.  
  197.                 if (NOT g)
  198.                         return(2L);
  199.         }
  200.  
  201.     if (NOT (BlankWnd = OpenWindowTags(NULL,
  202.                         WA_Left,         wleft,
  203.                         WA_Top,          wtop,
  204.                         WA_Width,        ww +OffX +Scr->WBorRight,
  205.                         WA_Height,       wh +OffY +Scr->WBorBottom,
  206.                         WA_IDCMP,        LISTVIEWIDCMP|STRINGIDCMP|CYCLEIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
  207.                         WA_Flags,        WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH,
  208.                         WA_Gadgets,      BlankGList,
  209.                         WA_Title,        BlankWdt,
  210.                         WA_ScreenTitle,  getString(COPYRIGHT_STRING),
  211.                         WA_PubScreenName,PubScreenName,
  212.                         TAG_DONE)))
  213.     return(4L);
  214.  
  215.     GT_RefreshWindow(BlankWnd,NULL);
  216.  
  217.     BlankRender();
  218.  
  219.     return(0L);
  220. }
  221.  
  222.  
  223.  
  224. VOID
  225. CloseBlankWindow()
  226. {
  227.     CloseOneWindow(BlankWnd,NULL,BlankGList);
  228.     BlankWnd = NULL;
  229. }
  230.  
  231.  
  232.  
  233.  
  234.  
  235. /* initialise all gadgets of Blank window */
  236.  
  237. static void
  238. InitBlankGadgets(void)
  239. {
  240.         InitToggleGadgets(BLANK_WINDOW);
  241.  
  242.         InitWindowGadget(GDX_ScrTONum, GTIN_Number, blanksecs, BLANK_WINDOW);
  243.         InitWindowGadget(GDX_MouseTONum, GTIN_Number, mblanksecs, BLANK_WINDOW);
  244.         InitWindowGadget(GDX_MBMethod, GTCY_Active, mouseblank, BLANK_WINDOW);
  245. }
  246.  
  247.  
  248.  
  249.  
  250.  
  251. /* handle Blank window events */
  252. LONG
  253. HandleBlankIDCMP(void)
  254. {
  255.     struct IntuiMessage *msg;
  256.     struct Gadget   *gadget;
  257.     ULONG           class;
  258.     UWORD           code;
  259.     LONG            num;
  260.  
  261.     while (msg = GT_GetIMsg(BlankWnd->UserPort))
  262.     {
  263.         class = msg->Class;
  264.         code = msg->Code;
  265.         gadget = (struct Gadget *)msg->IAddress;
  266.         GT_ReplyIMsg(msg);
  267.  
  268.         switch (class)
  269.         {
  270.           case CLOSEWINDOW:
  271.             HideInterface();
  272.             return ROOT_OKAY;
  273.  
  274.           case GADGETUP:
  275.           case GADGETDOWN:
  276.             switch (gadget->GadgetID)
  277.             {
  278.               case GD_Return3:
  279.                 UpdateWindowsPosition();
  280.                 CloseBlankWindow();
  281.                 if (!ShowRootWindow())
  282.                     PostError(getString(Couldnt_open_other_window_ERR));
  283.                 return ROOT_OKAY;
  284.  
  285.         
  286.               case GD_MBMethod:
  287.                 mouseblank = code;
  288.                 mblankcount = mblanktimeout;
  289.                 break;
  290.  
  291.               case GD_ScrTONum:
  292.                 num = GetNumber(gadget);
  293.                 if (num >= 0) 
  294.                 {
  295.                     blanksecs = num;
  296.                     blankcount = blanktimeout = blanksecs*10;
  297.                 } 
  298.                 else 
  299.                 {
  300.                     InitWindowGadget(GDX_ScrTONum, GTIN_Number, blanksecs, BLANK_WINDOW);
  301.                     DisplayBeep(BlankWnd->WScreen);
  302.                 }
  303.                 break;
  304.  
  305.               case GD_MouseTONum:
  306.                 num = GetNumber(gadget);
  307.                 if (num >= 0) 
  308.                 {
  309.                     mblanksecs = num;
  310.                     mblankcount = mblanktimeout = mblanksecs*10;
  311.                 } 
  312.                 else 
  313.                 {
  314.                     InitWindowGadget(GDX_MouseTONum, GTIN_Number, mblanksecs, BLANK_WINDOW);
  315.                     DisplayBeep(BlankWnd->WScreen);
  316.                 }
  317.                 break;
  318.  
  319.  
  320.               case GD_BlankMouseOnKey:
  321.                 blankmouseonkey ^= TRUE;
  322.                 break;
  323.  
  324.             }                    /* switch (gadget->GadgetID) */
  325.             break;
  326.  
  327.           case REFRESHWINDOW:
  328.             GT_BeginRefresh(BlankWnd);
  329.             GT_EndRefresh(BlankWnd, TRUE);
  330.             break;
  331.  
  332.         }                        /* switch (class) */
  333.  
  334.     }                            /* while more messages */
  335.  
  336.     return ROOT_OKAY;
  337. }
  338.  
  339.  
  340.  
  341. /* show our blank window */
  342. BOOL
  343. ShowBlankWindow(void)
  344. {
  345.     if (!OpenBlankWindow())        /* like the name says... */
  346.     {
  347.         InitBlankGadgets();
  348.         wndsigflag = 1 << BlankW