home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d2xx / d269 / propgadget.lha / PropGadget / struct.inc < prev   
Text File  |  1989-11-06  |  13KB  |  361 lines

  1. /*           Jerry J. Trantow
  2.              1560 A. East Irving Place
  3.              Milwaukee, Wi 53202-1460
  4. */ 
  5. /*  5 May 88 Started this file to support requester input for HomeWork4  */
  6. /*  8 May 88 Fixed some offset problems                                     */
  7. /*  9 May 88 Added Window to Requester                                   */
  8. /* 10 May 88 Changed filename, Now returns LONGINT, used with CBT        */
  9. /* 23 May 88 Linked to CUSTOMSCREEN for CBT                              */
  10. /* 23 May 88 Changed Window IDCMP Flags    to eliminate extra messages      */
  11. /*  1 May 88 Changed to LONG RequestHandler() to ULONG RequestHandler    */
  12.  
  13. /*  4 Dec 88 Modified this file for use in PropGadgetCalculate example   */
  14. /* 17 Dec 88 Added a bunch of IntuiText for the prop gadget example      */
  15. /* 28 Dec 88 Added more StringGadgets for input                          */
  16. /* 30 Dec 88 Connected all IntuiText to proper Gadgetry                  */
  17. /*  2 Jan 89 Deleted the Vertical Scroll Gadget                          */
  18. /* 29 Jan 89 Deleted Dynamic Allocation of Scroll and Arrow Gadgets      */
  19. /* 29 Jan 89 Explicitly declared Gadget TextAttribute others use default */
  20. /*  1 Feb 89 Changed over to Harriet Tolly's names for some variables    */
  21.  
  22. struct TextAttr taPlain =
  23. { (STRPTR)"topaz.font",(UWORD)8, (UBYTE)FS_NORMAL,(UBYTE)FPF_ROMFONT};
  24.  
  25. SHORT ValueList[]= { 0,0,  87,0,  87,12, 0,12, 0,0 };
  26. SHORT ChoiceList[]={ 0,0,  60,0,  60,10, 0,10, 0,0 };
  27. struct Border ChoiceBorder=
  28. { (SHORT)0,            /* LeftEdge    */
  29.   (SHORT)0,            /* TopEdge    */
  30.   (SHORT)2,            /* FrontPen    */
  31.   (SHORT)1,            /* BackPen    */
  32.   (SHORT)JAM1,                  /* DrawMode    */
  33.   (SHORT)5,            /* Visible    */
  34.   (SHORT *)ChoiceList,        /* XY           */
  35.   (struct Border *)NULL        /* NextBorder    */
  36. };
  37. struct Border ValueBorder=
  38. { (SHORT)-3,            /* LeftEdge    */
  39.   (SHORT)-3,            /* TopEdge    */
  40.   (SHORT)2,            /* FrontPen    */
  41.   (SHORT)1,            /* BackPen      */
  42.   (SHORT)JAM1,                  /* DrawMode     */
  43.   (SHORT)5,            /* Visible    */
  44.   (SHORT *)ValueList,        /* XY        */
  45.   (struct Border *)NULL        /* NextBorder    */
  46. };
  47. struct Border ValueBorder2=
  48. { (SHORT)-3,            /* LeftEdge    */
  49.   (SHORT)-3,            /* TopEdge    */
  50.   (SHORT)2,            /* FrontPen    */
  51.   (SHORT)1,                     /* BackPen    */
  52.   (SHORT)JAM1,                  /* DrawMode    */
  53.   (SHORT)5,            /* Visible    */
  54.   (SHORT *)ValueList,        /* XY        */
  55.   (struct Border *)NULL        /* NextBorder    */
  56. };
  57. UBYTE HBufferPot[20];        /* These will hold the ascii values */
  58. UBYTE HBufferBody[20];
  59. struct IntuiText OKText=
  60. { (UBYTE)3,            /* FrontPen    */
  61.   (UBYTE)2,            /* BackPen    */
  62.   (UBYTE)JAM1,                  /* DrawMode    */
  63.   (SHORT)20,            /* LeftEdge    */
  64.   (SHORT)2,            /* TopEdge    */
  65.   (struct TextAttr *)NULL,      /* ITextFont    */
  66.   (UBYTE *)"OK",        /* IText    */
  67.   (struct IntuiText *)NULL    /* NextText    */
  68. };
  69. struct IntuiText HorizTextPot=
  70. { (UBYTE)1,            /* FrontPen    */
  71.   (UBYTE)0,            /* BackPen    */
  72.   (UBYTE)JAM2,                  /* DrawMode    */
  73.   (SHORT)2,            /* LeftEdge    */
  74.   (SHORT)22,            /* TopEdge    */
  75.   (struct TextAttr *)&taPlain,    /* ITextFont    */
  76.   (UBYTE *)HBufferPot,        /* IText    */
  77.   (struct IntuiText *)NULL    /* NextText    */
  78. };
  79. struct IntuiText HorizTextBody=
  80. { (UBYTE)1,                /* FrontPen    */
  81.   (UBYTE)0,                /* BackPen    */
  82.   (UBYTE)JAM2,                          /* DrawMode    */
  83.   (SHORT)2,                /* LeftEdge    */
  84.   (SHORT)11,                /* TopEdge    */
  85.   (struct TextAttr *)&taPlain,        /* ITextFont    */
  86.   (UBYTE *)HBufferBody,            /* IText    */
  87.   (struct IntuiText *)&HorizTextPot    /* NextText    */
  88. };
  89. struct IntuiText HorizText=
  90. { (UBYTE)2,                /* FrontPen    */
  91.   (UBYTE)3,                /* BackPen    */
  92.   (UBYTE)JAM2,                /* DrawMode    */
  93.   (SHORT)2,                /* LeftEdge    */
  94.   (SHORT)1,                /* TopEdge    */
  95.   (struct TextAttr *)NULL,        /* ITextFont    */
  96.   (UBYTE *)"Horizontal Gadget",        /* IText    */
  97.   (struct IntuiText *)&HorizTextBody    /* NextText    */
  98. };
  99.  
  100. struct IntuiText TotalText=
  101. { (UBYTE)2,            /* FrontPen    */
  102.   (UBYTE)3,            /* BackPen    */
  103.   (UBYTE)JAM2,            /* DrawMode    */
  104.   (SHORT)90,            /* LeftEdge    */
  105.   (SHORT)0,            /* TopEdge    */
  106.   (struct TextAttr *)NULL,    /* ITextFont    */
  107.   (UBYTE *)"Total",        /* IText    */
  108.   (struct IntuiText *)NULL    /* NextText    */
  109. };
  110. struct IntuiText VisibleText=
  111. { (UBYTE)2,            /* FrontPen    */
  112.   (UBYTE)3,            /* BackPen    */
  113.   (UBYTE)JAM2,            /* DrawMode    */
  114.   (SHORT)90,            /* LeftEdge    */
  115.   (SHORT)0,            /* TopEdge    */
  116.   (struct TextAttr *)NULL,    /* ITextFont    */
  117.   (UBYTE *)"Visible",        /* IText    */
  118.   (struct IntuiText *)NULL    /* NextText    */
  119. };
  120. struct IntuiText FirstText=
  121. { (UBYTE)2,            /* FrontPen    */
  122.   (UBYTE)3,            /* BackPen    */
  123.   (UBYTE)JAM2,            /* DrawMode    */
  124.   (SHORT)90,            /* LeftEdge    */
  125.   (SHORT)0,            /* TopEdge    */
  126.   (struct TextAttr *)NULL,    /* ITextFont    */
  127.   (UBYTE *)"First",        /* IText    */
  128.   (struct IntuiText *)NULL    /* NextText    */
  129. };
  130. UBYTE TotalGadBuffer[MAXBUF];    /* Don't forget to initialize these */
  131. UBYTE VisibleGadBuffer[MAXBUF];    /* Don't forget to initialize these */
  132. UBYTE FirstGadBuffer[MAXBUF];    /* Don't forget to initialize these */
  133. UBYTE GadUndoBuffer[MAXBUF];
  134.  
  135. struct StringInfo TotalString =
  136. { (UBYTE *)TotalGadBuffer,    /* Buffer    */
  137.   (UBYTE *)GadUndoBuffer,    /* UndoBuffer    */
  138.   (SHORT)1,            /* BufferPos    */
  139.   (SHORT)MAXBUF-1,        /* MaxChars    */
  140.   (SHORT)0,            /* DispPos    */
  141.   (SHORT)0,            /* UndoPos    */
  142.   (SHORT)0,            /* NumChars    */
  143.   (SHORT)0,            /* DispVisible    */
  144.   (SHORT)0,            /* CLeft    */
  145.   (SHORT)0,            /* CTop        */
  146.   (struct Layer *)NULL,        /* LayerPtr    */
  147.   (LONG)1024L,            /* LongInt    */
  148.   (struct KeyMap *)NULL        /* AltKeyMap    */
  149. };
  150. struct StringInfo VisibleString =
  151. { (UBYTE *)VisibleGadBuffer,    /* Buffer    */
  152.   (UBYTE *)GadUndoBuffer,    /* UndoBuffer    */
  153.   (SHORT)1,            /* BufferPos    */
  154.   (SHORT)MAXBUF-1,        /* MaxChars    */
  155.   (SHORT)0,            /* DispPos    */
  156.   (SHORT)0,            /* UndoPos    */
  157.   (SHORT)0,            /* NumChars    */
  158.   (SHORT)0,            /* DispVisible    */
  159.   (SHORT)0,            /* CLeft    */
  160.   (SHORT)0,            /* CTop        */
  161.   (struct Layer *)NULL,        /* LayerPtr    */
  162.   (LONG)256L,            /* LongInt    */
  163.   (struct KeyMap *)NULL        /* AltKeyMap    */
  164. };
  165. struct StringInfo FirstString =
  166. { (UBYTE *)FirstGadBuffer,    /* Buffer    */
  167.   (UBYTE *)GadUndoBuffer,    /* UndoBuffer    */
  168.   (SHORT)1,            /* BufferPos    */
  169.   (SHORT)MAXBUF-1,        /* MaxChars    */
  170.   (SHORT)0,            /* DispPos    */
  171.   (SHORT)0,            /* UndoPos    */
  172.   (SHORT)0,            /* NumChars    */
  173.   (SHORT)0,            /* DispVisible    */
  174.   (SHORT)0,            /* CLeft    */
  175.   (SHORT)0,            /* CTop        */
  176.   (struct Layer *)NULL,        /* LayerPtr    */
  177.   (LONG)128L,            /* LongInt    */
  178.   (struct KeyMap *)NULL        /* AltKeyMap    */
  179. };
  180. extern struct Gadget ScrollGadget;
  181. struct Gadget OKGadget =
  182. { (struct Gadget *)NULL,        /* NextGadget    */
  183.   40,65,60,10,                /* dimensions    */
  184.   (USHORT)GADGHCOMP,            /* Flags    */
  185.   (USHORT)GADGIMMEDIATE|RELVERIFY,    /* Activation    */
  186.   (USHORT)BOOLGADGET,            /* GadgetType    */
  187.   (APTR)&ChoiceBorder,            /* GadgetRender */
  188.   (APTR)NULL,                /* SelectRender */
  189.   (struct IntuiText *)&OKText,        /* GadgetText    */
  190.   0L,                    /* MutualExclude*/
  191.   (APTR)NULL,                /* SpecialInfo    */
  192.   (USHORT)GAD_OK,            /* GadgetID    */
  193.   (APTR)&ScrollGadget            /* UserData    */
  194. };
  195. struct Gadget TotalGadget =
  196. { (struct Gadget *)&OKGadget,        /* NextGadget    */
  197.   20,20,85,10,                /* dimensions    */
  198.   (USHORT)GADGHCOMP,            /* Flags    */
  199.   (USHORT)GADGIMMEDIATE|LONGINT,    /* Activation    */
  200.   (USHORT)STRGADGET,            /* GadgetType    */
  201.   (APTR)&ValueBorder,            /* GadgetRender */
  202.   (APTR)NULL,                /* SelectRender */
  203.   (struct IntuiText *)&TotalText,    /* GadgetText    */
  204.   0L,                    /* MutualExclude*/
  205.   (APTR)&TotalString,            /* SpecialInfo    */
  206.   (USHORT)GAD_Total,            /* GadgetID    */
  207.   (APTR)NULL                /* UserData    */
  208. };
  209. struct Gadget VisibleGadget =
  210. { (struct Gadget *)&TotalGadget,    /* NextGadget    */
  211.   20,35,85,10,                /* dimensions    */
  212.   (USHORT)GADGHCOMP,            /* Flags    */
  213.   (USHORT)GADGIMMEDIATE|LONGINT,    /* Activation    */
  214.   (USHORT)STRGADGET,            /* GadgetType    */
  215.   (APTR)&ValueBorder2,            /* GadgetRender */
  216.   (APTR)NULL,                /* SelectRender */
  217.   (struct IntuiText *)&VisibleText,    /* GadgetText    */
  218.   0L,                    /* MutualExclude*/
  219.   (APTR)&VisibleString,            /* SpecialInfo    */
  220.   (USHORT)GAD_Visible,            /* GadgetID    */
  221.   (APTR)NULL                /* UserData    */
  222. };
  223. struct Gadget FirstGadget =
  224. { (struct Gadget *)&VisibleGadget,    /* NextGadget    */
  225.   20,50,85,10,                /* dimensions    */
  226.   (USHORT)GADGHCOMP,            /* Flags    */
  227.   (USHORT)GADGIMMEDIATE|LONGINT,    /* Activation    */
  228.   (USHORT)STRGADGET,            /* GadgetType    */
  229.   (APTR)&ValueBorder,            /* GadgetRender */
  230.   (APTR)NULL,                /* SelectRender */
  231.   (struct IntuiText *)&FirstText,    /* GadgetText    */
  232.   0L,                    /* MutualExclude*/
  233.   (APTR)&FirstString,            /* SpecialInfo    */
  234.   (USHORT)GAD_First,            /* GadgetID    */
  235.   (APTR)NULL                /* UserData    */
  236. };
  237.  
  238. /* -------------------- Arrow and Scroll Bar Gadgets -------------------- */
  239.  
  240. /**************************************************************************/
  241. /*  The following data structures contains the image data for the arrows  */
  242. /**************************************************************************/
  243. USHORT g_image_left_dat[]=
  244. {
  245.   0xFFFF,0x80F1,0x83F1,0x8FFD,0x8FFD,0x83F1,0x80F1,0xFFFF
  246. };
  247. USHORT g_image_right_dat[]=
  248. {
  249.   0xFFFF,0x8F01,0x8FC1,0xDFF1,0xDFF1,0x8FC1,0x8F01,0xFFFF
  250. };
  251. /***************************************************************/
  252. /*  The following data structures define the Arrow images      */
  253. /***************************************************************/
  254.  
  255. struct Image g_image_left =
  256. {
  257.   0, 0,              /* Left, Top    */
  258.   16, 8,             /* Width, Height*/
  259.   1,                 /* Depth     */ 
  260.   (USHORT *)&g_image_left_dat,     /* ImageData     */
  261.   0x01,              /* PlanePick     */
  262.   0x00,              /* PlaneOnOff     */
  263.   NULL               /* Next Image     */
  264. }; 
  265. struct Image g_image_right =
  266. {
  267.   0, 0,             /* Left, Top    */
  268.   16, 8,             /* Width, Height*/
  269.   1,                 /* Depth     */ 
  270.   (USHORT *)&g_image_right_dat, /* ImageData    */
  271.   0x01,              /* PlanePick    */
  272.   0x00,              /* PlaneOnOff    */
  273.   NULL                 /* Next Image    */
  274. };
  275. struct Image scroll_image =
  276. {
  277.   0, 0,         /* Left, Top    */
  278.   0, 0,            /* Width, Height*/
  279.   0,            /* Depth    */ 
  280.   0,             /* ImageData    */
  281.   0,              /* PlanePick    */
  282.   0,              /* PlaneOnOff     */
  283.   NULL             /* Next Image     */
  284. }; 
  285. struct PropInfo ScrollPropInfo =
  286. {
  287.   (USHORT)AUTOKNOB|FREEHORIZ,        /* Flags    */
  288.   (USHORT)0x0000,            /* HorizPot    */
  289.   (USHORT)0x0000,            /* VertPot    */
  290.   (USHORT)0x0000,            /* HorizBody    */
  291.   (USHORT)0x0000,            /* VertBody    */
  292.   (USHORT)0,                /* CWidth    */
  293.   (USHORT)0,                /* CHeight    */
  294.   (USHORT)0,                /* HPotRes    */
  295.   (USHORT)0,                /* VPotRes    */
  296.   (USHORT)0,                /* LeftBorder    */
  297.   (USHORT)0,                /* TopBorder    */
  298. };
  299. struct Gadget ScrollGadget =
  300. { (struct Gadget *)&FirstGadget,    /* NextGadget    */
  301.   16,-8,-32,9,                /* dimensions    */
  302.   (USHORT)GADGHCOMP|GRELBOTTOM|GRELWIDTH, /* Flags    */
  303.   (USHORT)GADGIMMEDIATE|FOLLOWMOUSE|RELVERIFY|BOTTOMBORDER, /* Activation */
  304.   (USHORT)PROPGADGET,            /* GadgetType    */
  305.   (APTR)&scroll_image,            /* GadgetRender */
  306.   (APTR)NULL,                /* SelectRender */
  307.   (struct IntuiText *)NULL,        /* GadgetText    */
  308.   0L,                    /* MutualExclude*/
  309.   (APTR)&ScrollPropInfo,        /* SpecialInfo    */
  310.   (USHORT)HORIZSCROLLGAD,        /* GadgetID    */
  311.   (APTR)&ScrollGadget            /* UserData    */
  312. };
  313. struct Gadget LeftArrowGadget =
  314. { (struct Gadget *)&ScrollGadget,    /* NextGadget    */
  315.   0,-8,16,8,                /* dimensions    */
  316.   (USHORT)GADGIMAGE|GADGHCOMP|GRELBOTTOM, /* Flags    */
  317.   (USHORT)GADGIMMEDIATE|RELVERIFY|BOTTOMBORDER,    /* Activation    */
  318.   (USHORT)BOOLGADGET,            /* GadgetType    */
  319.   (APTR)&g_image_left,            /* GadgetRender */
  320.   (APTR)NULL,                /* SelectRender */
  321.   (struct IntuiText *)NULL,        /* GadgetText    */
  322.   0L,                    /* MutualExclude*/
  323.   (APTR)NULL,                /* SpecialInfo    */
  324.   (USHORT)LEFTARROWGAD,            /* GadgetID    */
  325.   (APTR)&ScrollGadget            /* UserData    */
  326. };
  327. struct Gadget RightArrowGadget =
  328. { (struct Gadget *)&LeftArrowGadget,    /* NextGadget    */
  329.   -16,-8,16,8,                /* dimensions    */
  330.   (USHORT)GADGIMAGE|GADGHCOMP|GRELBOTTOM|GRELRIGHT,    /* Flags    */
  331.   (USHORT)GADGIMMEDIATE|RELVERIFY|BOTTOMBORDER,    /* Activation    */
  332.   (USHORT)BOOLGADGET,            /* GadgetType    */
  333.   (APTR)&g_image_right,            /* GadgetRender */
  334.   (APTR)NULL,                /* SelectRender */
  335.   (struct IntuiText *)NULL,        /* GadgetText    */
  336.   0L,                    /* MutualExclude*/
  337.   (APTR)NULL,                /* SpecialInfo    */
  338.   (USHORT)RIGHTARROWGAD,        /* GadgetID    */
  339.   (APTR)&ScrollGadget            /* UserData    */
  340. };
  341. struct NewWindow NewWindow=
  342. { (SHORT)10,                /* Left     */
  343.   (SHORT)10,                /* Top         */
  344.   (SHORT)350,                /* Width    */
  345.   (SHORT)120,                /* Height    */
  346.   (UBYTE)-1,                /* DetailPen    */
  347.   (UBYTE)-1,                /* BlockPen    */
  348.   (ULONG)GADGETUP|CLOSEWINDOW|MOUSEMOVE,/* IDCMPFlags    */
  349.   (ULONG)WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|ACTIVATE,    /* Flags    */
  350.   (struct Gadget *)&RightArrowGadget,    /* Gadgets    */
  351.   (struct Image *)NULL,            /* CheckMark    */
  352.   (UBYTE *)"JJT's Proportional Gadget Example", /* Title    */
  353.   (struct Screen *)NULL,        /* Screen    */            
  354.   (struct BitMap *)NULL,        /* BitMap    */
  355.   (SHORT)0,                /* MinWidth    */
  356.   (SHORT)0,                /* MinHeight    */
  357.   (SHORT)0,                /* MaxWidth    */
  358.   (SHORT)0,                /* MaxHeight    */
  359.   (USHORT)WBENCHSCREEN            /* Type        */
  360. };
  361.