home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Amiga / Applications / Mathematiques / Kurve.lha / Kurve / globdata.c < prev    next >
C/C++ Source or Header  |  1992-12-06  |  21KB  |  1,116 lines

  1. /*  kurvemake  */
  2. /* this is the name of the makefile */
  3. /*******************************************************************/
  4. /*                                                                 */
  5. /*                    These are all structures                     */
  6. /*                used in kurve.c and funkrequest.c                */
  7. /*                                                                 */
  8. /*                  ⌐ 90-92 by Henning  Rink                       */
  9. /*                                                                 */
  10. /* copyright notes -> see ReadMe                                   */
  11. /*******************************************************************/
  12.  
  13.  
  14. #ifdef TURBOKURVE
  15. char VERSTAG[]="\0$VER: TurboKurve 2.001 (27.09.1992)";
  16. #else
  17. char VERSTAG[]="\0$VER: Kurve 2.001 (27.09.1992)";
  18. #endif
  19.  
  20.  
  21. /* data used in kurve.c */
  22. char *Days[]=
  23.    { 
  24.       "Sunday",
  25.       "Monday",
  26.       "Tuesday",
  27.       "Wednesday",
  28.       "Thursday",
  29.       "Friday",
  30.       "Saturday"
  31.    };
  32.  
  33.  
  34. char *Months[]=
  35.    {
  36.      "January",
  37.      "February",
  38.      "March",
  39.      "April",
  40.      "May",
  41.      "June",
  42.      "July",
  43.      "August",
  44.      "September",
  45.      "October",
  46.      "November",
  47.      "December"
  48.     };
  49.  
  50. char *ErrorMessages[]=
  51.  {
  52. /*  0 */   "Really quit?",
  53. /*  1 */   "Syntaxerror!",
  54. /*  2 */   "Too much left braces!",
  55. /*  3 */   "Too much right braces!",
  56. /*  4 */   "Unknown arithmetic operator!",
  57. /*  5 */   "Unknown function!",
  58. /*  6 */   "You need some braces!",
  59. /*  7 */   "Error, right before left brace!",
  60. /*  8 */   "Can't open window for coordinates!",
  61. /*  9 */   "Can't open window!",
  62. /* 10 */   "",      /*   "Printer is not online!",       not needed          */
  63. /* 11 */   "",      /*   "Where is the System Disk ?",   cleared 21.12.1991  */
  64. /* 12 */   "Can't open outputwindow!",
  65. /* 13 */   "Can't open requester!",
  66. /* 14 */   "Out of memory?!",
  67. /* 15 */   "Can't open screen, Kurve ends!!",
  68. /* 16 */   "Really wanna print?",
  69. /* 17 */   "Can't create menus!",
  70. /* 18 */   "Not enough chip mem available!\nSave config, before restarting?",
  71. /* 19 */   "Not enough memory for full sized screen!"
  72.   };
  73.  
  74. char mycolors[]=
  75.    {
  76.       8,8,8,
  77.       0,0,0,
  78.       15,15,15,
  79.       6,9,13,
  80.       14,0,2,
  81.       2,15,2,
  82.       14,8,0,
  83.       0,0,0
  84.    };
  85.  
  86.  
  87.  
  88.  
  89. unsigned char funktion[255];   /* init with LoadConfig()   25.07.1991 */
  90. unsigned char funktion1[255];
  91. unsigned char funktion2[255];
  92. unsigned char UndoBuffer[280];
  93. unsigned char minx[20];
  94. unsigned char maxx[20];
  95. unsigned char miny[20];
  96. unsigned char maxy[20];
  97.  
  98. char  fontname[]="topaz.font";
  99. const char *coltoolname="sys:tools/colors";
  100. char  configdir[]="S:";
  101. char  configfile[]="Kurve.config";
  102. char  configpath[16];  /* configdir+configfile  */
  103.  
  104.  
  105.  
  106. APTR ScreenVI;
  107. struct Menu *menu;
  108.  
  109. struct TextAttr NormalAttr=
  110. {
  111.  (STRPTR)fontname,
  112.  TOPAZ_EIGHTY,
  113.  FS_NORMAL,
  114.  FPF_ROMFONT
  115. };
  116.  
  117. struct TextAttr BigAttr=
  118. {
  119.  (STRPTR)fontname,
  120.  TOPAZ_SIXTY,
  121.  FS_NORMAL,
  122.  FPF_ROMFONT
  123. };
  124.  
  125. struct TextAttr BigUnderlineAttr=
  126. {
  127.  (STRPTR)fontname,
  128.  TOPAZ_SIXTY,
  129.  FSF_UNDERLINED,
  130.  FPF_ROMFONT
  131. };
  132.  
  133.  
  134.  
  135. struct EasyStruct es1=
  136. {
  137.  sizeof(struct EasyStruct),0,(UBYTE *)"Kurve message!",(UBYTE *)"%s",NULL
  138. };
  139.  
  140.  
  141. char LoadText[]={"Load Settings..."};
  142. char SaveText[]={"Save Settings..."};
  143.  
  144.  
  145. struct NewMenu menulist[]=
  146. {
  147.   NM_TITLE,(STRPTR)"Project",NULL,0,0,NULL,
  148.       NM_ITEM,(STRPTR)"Clear",(STRPTR)"X",0,0,NULL,
  149.       NM_ITEM,(STRPTR)"About...",NULL,0,0,NULL,
  150.       NM_ITEM,(STRPTR)"Print",(STRPTR)"P",0,0,NULL,
  151.       NM_ITEM,(STRPTR)"Quit",(STRPTR)"Q",0,0,NULL,
  152.  
  153.   NM_TITLE,(STRPTR)"Settings",NULL,0,0,NULL,
  154.       NM_ITEM,(STRPTR)"Functionlist...",(STRPTR)"N",0,0,NULL,
  155.       NM_ITEM,(STRPTR)"Intervall...",(STRPTR)"I",0,0,NULL,
  156.       NM_ITEM,(STRPTR)"Unzoom",(STRPTR)"U",0,0,NULL,
  157.       NM_ITEM,(STRPTR)"Stepping Rate",NULL,0,0,NULL,
  158.          NM_SUB,(STRPTR)"1 Pixel",(STRPTR)"1",CHECKIT,14L,NULL,
  159.          NM_SUB,(STRPTR)"2 Pixel",(STRPTR)"2",CHECKIT,13L,NULL,
  160.          NM_SUB,(STRPTR)"4 Pixel",(STRPTR)"4",CHECKIT|CHECKED,11L,NULL,
  161.          NM_SUB,(STRPTR)"8 Pixel",(STRPTR)"8",CHECKIT,7L,NULL,
  162.  
  163.       NM_ITEM,(STRPTR)"Screenformat...",(STRPTR)"C",0,0,NULL,
  164.       NM_ITEM,(STRPTR)"Change Color...",NULL,0,0,NULL,
  165.       NM_ITEM,(STRPTR)LoadText,NULL,0,0,NULL,
  166.       NM_ITEM,(STRPTR)SaveText,NULL,0,0,NULL,
  167.  
  168.   NM_TITLE,(STRPTR)"Draw",NULL,0,0,NULL,
  169.       NM_ITEM,(STRPTR)"Function",(STRPTR)"F",0,0,NULL,
  170.       NM_ITEM,(STRPTR)"1st Diff",(STRPTR)"D",0,0,NULL,
  171.       NM_ITEM,(STRPTR)"2nd Diff",(STRPTR)"G",0,0,NULL,
  172.       NM_ITEM,(STRPTR)"Draw All",(STRPTR)"A",0,0,NULL,
  173.       NM_ITEM,(STRPTR)"Refresh Display",(STRPTR)"R",0,0,NULL,
  174.  
  175.   NM_TITLE,(STRPTR)"Extremes",NULL,0,0,NULL,
  176.       NM_ITEM,(STRPTR)"Zero Points",(STRPTR)"Z",0,0,NULL,
  177.       NM_ITEM,(STRPTR)"Maxima",(STRPTR)"M",0,0,NULL,
  178.       NM_ITEM,(STRPTR)"Turning Points",(STRPTR)"T",0,0,NULL,
  179.       NM_ITEM,(STRPTR)"Num. Integrate",NULL,0,0,NULL,
  180.   NM_END
  181. };
  182.  
  183.  
  184.  
  185. struct NewGadget NewOKGadget=
  186.   { 25,97,90,16,(STRPTR)"_Ok",&BigAttr,7,PLACETEXT_IN,NULL,NULL};
  187.  
  188. struct NewGadget NewCancelGadget=
  189.   { 275,97,90,16,(STRPTR)"_Cancel",&BigAttr,6,PLACETEXT_IN,NULL,NULL};
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196. struct IntuiText  MemText=
  197. {
  198.  1,0,JAM2,
  199.  132,97,
  200.  &NormalAttr,NULL,NULL
  201. };
  202.  
  203. struct IntuiText DateText=
  204. {
  205.   1,0,JAM2,
  206.   100,80,
  207.   &NormalAttr,NULL,
  208.   &MemText
  209. };
  210.  
  211.  
  212. struct TextAttr NameAttr=
  213. {
  214.  (STRPTR)fontname,
  215.  TOPAZ_SIXTY,
  216.  FSF_BOLD,
  217.  FPF_ROMFONT
  218. };
  219.  
  220. struct IntuiText CopyrightText=
  221. {
  222.   5,0,JAM2,
  223.   75,45,
  224.   &NameAttr,
  225.   (UBYTE *)"⌐ by Henning Rink 1989-92",
  226.   &DateText
  227. };
  228.  
  229. struct TextAttr  VerAttr=
  230. {
  231.  (STRPTR)fontname,
  232.  TOPAZ_SIXTY,
  233.  FS_NORMAL,
  234.  FPF_ROMFONT
  235. };
  236.  
  237. struct IntuiText VerText=
  238. {
  239.  1,0,JAM2,
  240.  75,60,
  241.  &VerAttr,
  242.  (UBYTE *)"Version 2.001, 27.09.1992",
  243.  &CopyrightText
  244. };
  245.  
  246.  
  247. #ifdef TURBOKURVE
  248. struct IntuiText WhatisText=
  249. {
  250.  1,0,JAM2,
  251.  100,30,
  252.  &VerAttr,
  253.  (UBYTE *)"The function plotter",
  254.  &VerText
  255. };
  256.  
  257. struct IntuiText NameText=
  258. {
  259.  5,0,JAM2,
  260.  150,12,
  261.  &NameAttr,
  262.  (UBYTE *)"TurboKurve",
  263.  &WhatisText
  264. };
  265.  
  266. #else
  267. struct IntuiText WhatisText=
  268. {
  269.  1,0,JAM2,
  270.  75,30,
  271.  &VerAttr,
  272.  (UBYTE *)"FreeWare function plotter",
  273.  &VerText
  274. };
  275.  
  276. struct IntuiText NameText=
  277. {
  278.  5,0,JAM2,
  279.  175,12,
  280.  &NameAttr,
  281.  (UBYTE *)"Kurve",
  282.  &WhatisText
  283. };
  284.  
  285. #endif
  286.  
  287.  
  288.  
  289. struct NewWindow FourthNewWindow=
  290.   {
  291.    0,10,
  292.    400,250,
  293.    0,1,
  294.    CLOSEWINDOW ,
  295.    WINDOWCLOSE |
  296.    WINDOWDRAG  |
  297.    ACTIVATE |
  298.    SIMPLE_REFRESH,
  299.    NULL,
  300.    NULL,
  301.    (UBYTE *)"Extremes",
  302.    NULL,
  303.    NULL,
  304.    0,0,
  305.    0,0,
  306.    CUSTOMSCREEN
  307.   };
  308.  
  309. struct NewWindow ThirdNewWindow=
  310.   {
  311.    120,80,
  312.    400,120,
  313.    0,1,
  314.    IDCMP_REFRESHWINDOW|
  315.    ACTIVATE |
  316.    GADGETUP |
  317.    GADGETDOWN |
  318.    VANILLAKEY |
  319.    MOUSEMOVE |
  320.    MOUSEBUTTONS,
  321.    ACTIVATE |
  322.    SIMPLE_REFRESH ,
  323.    NULL,
  324.    NULL,
  325.    NULL,
  326.    NULL,
  327.    NULL,
  328.    0,0,
  329.    0,0,
  330.    CUSTOMSCREEN
  331.   };
  332.  
  333. struct NewWindow SecondNewWindow=
  334.   {
  335.    520,11,
  336.    120,36,
  337.    0,1,
  338.    0 ,
  339.    WINDOWDRAG |
  340.    SIMPLE_REFRESH,
  341.    NULL,
  342.    NULL,
  343.    (UBYTE *)"Coordinates",
  344.    NULL,
  345.    NULL,
  346.    0,0,
  347.    0,0,
  348.    CUSTOMSCREEN
  349.   };
  350.  
  351. struct NewWindow FirstNewWindow=
  352.   {
  353.    0,10,
  354.    640,250,
  355.    0,1,
  356.    MENUPICK |
  357.    MENUVERIFY |
  358.    MOUSEMOVE |
  359.    MOUSEBUTTONS |
  360.    INTUITICKS ,
  361.    BACKDROP |
  362.    ACTIVATE |
  363.    BORDERLESS |
  364.    REPORTMOUSE |
  365.    SMART_REFRESH ,
  366.    NULL,
  367.    NULL,
  368.    NULL,
  369.    NULL,
  370.    NULL,
  371.    0,0,
  372.    0,0,
  373.    CUSTOMSCREEN
  374.   };
  375.  
  376.  
  377. UWORD pens[]={~0};
  378.  
  379. struct TagItem ExtDef[]=
  380.  {
  381.   SA_DisplayID,NULL,
  382.   SA_Pens,(ULONG *)pens,
  383.   SA_Overscan,OSCAN_TEXT,
  384.   SA_AutoScroll,TRUE,
  385.   TAG_DONE,NULL
  386.  };
  387.  
  388.  
  389. struct ExtNewScreen FirstNewScreen=
  390.   {
  391.     0,0,
  392.     640,260,
  393.     3,
  394.     0,1,
  395.     PAL_MONITOR_ID|HIRES_KEY ,
  396.     CUSTOMSCREEN | NS_EXTENDED,
  397.     &NormalAttr,
  398.     (UBYTE *)&VERSTAG[7],
  399.     NULL,
  400.     NULL,
  401.     ExtDef
  402.   };
  403.  
  404. /* definitions for changeintervall 06.08.1992 */
  405.  
  406. struct IntuiText Intervall2Text=
  407.  {
  408.   1,0,
  409.   JAM2,
  410.   128,10,
  411.   &BigAttr,
  412.   (UBYTE *)"Intervall limits",
  413.   NULL
  414.  };
  415.  
  416. struct NewGadget NewResetGadget=
  417.   { 150,94,90,16,(STRPTR)"_Reset",&BigAttr,5,PLACETEXT_IN,NULL,NULL};
  418.  
  419. struct NewGadget NewmaxyGadget=
  420. {225,70,152,14,(STRPTR)"Ymax:",&NormalAttr,4,
  421.   PLACETEXT_ABOVE,NULL,NULL};
  422.  
  423. struct NewGadget NewmaxxGadget=
  424. {225,36,152,14,(STRPTR)"Xmax:",&NormalAttr,2,
  425.   PLACETEXT_ABOVE,NULL,NULL};
  426.  
  427. struct NewGadget NewminyGadget=
  428. {25,70,152,14,(STRPTR)"Ymin:",&NormalAttr,3,
  429.   PLACETEXT_ABOVE,NULL,NULL};
  430.  
  431. struct NewGadget NewminxGadget=
  432. {25,36,152,14,(STRPTR)"_Xmin:",&NormalAttr,1,
  433.   PLACETEXT_ABOVE,NULL,NULL};
  434.  
  435. /* end of changeintervall */
  436.  
  437.  
  438.  
  439.  
  440. /* definitions for edit function  */
  441.  
  442. struct NewGadget NewF2Gadget=
  443. {14,88,600,14,(STRPTR)"_2nd Differentiation:",&NormalAttr,3,
  444.   PLACETEXT_ABOVE,NULL,NULL};
  445.  
  446. struct NewGadget NewF1Gadget=
  447. {14,54,600,14,(STRPTR)"_1st Differentiation:",&NormalAttr,2,
  448.   PLACETEXT_ABOVE,NULL,NULL};
  449.  
  450. struct NewGadget NewFGadget=
  451. {14,20,600,14,(STRPTR)"_Function:",&NormalAttr,1,PLACETEXT_ABOVE,NULL,NULL};
  452.  
  453. struct NewWindow   ReqNewWindow=
  454.  {
  455.   5,50,
  456.   630,140,
  457.   0,1,
  458.   IDCMP_REFRESHWINDOW|
  459.   IDCMP_GADGETUP |
  460.   IDCMP_VANILLAKEY,
  461.   WFLG_ACTIVATE |
  462.   WFLG_SIMPLE_REFRESH ,
  463.   NULL,
  464.   NULL,
  465.   NULL,
  466.   NULL,
  467.   NULL,
  468.   0,0,
  469.   0,0,
  470.   CUSTOMSCREEN
  471.  };
  472.  
  473. /* end of definitions    edit function  */
  474.  
  475.  
  476. /* border around prop gadget in list of functions  */
  477.  
  478. short FuncPropPairsB[]=
  479.  {
  480.   356,81,375,81,375,19,376,18,376,81
  481.  };
  482. struct Border FuncPropBorderB =
  483.  {
  484.   0,0,1,0,JAM1,5,
  485.   FuncPropPairsB,NULL
  486.  };
  487.  
  488. short FuncPropPairsW[]=
  489.  {
  490.    375,18,356,18,356,80,355,81,355,18
  491.  };
  492. struct Border FuncPropBorderW =
  493.  {
  494.   0,0,2,0,JAM1,5,
  495.   FuncPropPairsW,&FuncPropBorderB
  496.  };
  497.  
  498.  
  499. /* Border around displayed active function */
  500. short ActFuncPairsW[]=
  501.  {
  502.   18,113,375,113,375,103,376,102,376,113
  503.  };
  504. struct Border ActFuncBorderW =
  505.  {
  506.   0,0,2,0,JAM1,5,
  507.   ActFuncPairsW,&FuncPropBorderW
  508.  };
  509.  
  510. short ActFuncPairsB[]=
  511.  {
  512.   375,102,18,102,18,112,17,113,17,102
  513.  };
  514.  
  515. struct Border ActFuncBorderB =
  516.  {
  517.   0,0,1,0,JAM1,5,
  518.   ActFuncPairsB,&ActFuncBorderW
  519.  };
  520.  
  521.  
  522. /* Border around the funtionlist */
  523. short ListPairsB[]=
  524.  {
  525.   18,101,352,101,352,19,353,18,353,101
  526.  };
  527.  
  528. struct Border ListBorderB =
  529.  {
  530.   0,0,1,0,JAM1,5,
  531.   ListPairsB,&ActFuncBorderB
  532.  };
  533.  
  534. short ListPairsW[]=
  535.  {
  536.   352,18, 18,18, 18,100,17,101,17,18
  537.  };
  538. struct Border ListBorderW =
  539.  {
  540.   0,0,2,0,JAM1,5,
  541.   ListPairsW,&ListBorderB
  542.  };
  543.  
  544. /* Border around SCROLL UP DOWN gadgets  */
  545. short  FuncUDPairs[]=
  546.  {
  547.   20,0,0,0,0,9,1,8,1,1
  548.  };
  549.  
  550. short FuncUD2Pairs[]=
  551.  {
  552.   1,9,20,9,20,1,21,0,21,9
  553.  };
  554.  
  555. struct Border FuncUD2Border=
  556.  {
  557.   -3,-1,1,0,JAM1,5,
  558.    FuncUD2Pairs,NULL
  559.  };
  560.  
  561. struct Border FuncUDBorder=
  562.  {
  563.   -3,-1,2,0,JAM1,5,
  564.    FuncUDPairs,&FuncUD2Border
  565.  };
  566.  
  567. struct Border FuncUD2SelBorder=
  568.  {
  569.   -3,-1,2,0,JAM1,5,
  570.    FuncUD2Pairs,NULL
  571.  };
  572.  
  573. struct Border FuncUDSelBorder=
  574.  {
  575.   -3,-1,1,0,JAM1,5,
  576.    FuncUDPairs,&FuncUD2SelBorder
  577.  };
  578.  
  579. struct Gadget FuncDownGadget=
  580.  {
  581.   NULL,
  582.   358,93,16,8,
  583.   GADGHIMAGE, RELVERIFY | GADGIMMEDIATE , BOOLGADGET,
  584.   (APTR)&FuncUDBorder,(APTR)&FuncUDSelBorder, NULL, NULL, NULL, 12, NULL
  585.  };
  586.  
  587. struct Gadget FuncUpGadget=
  588.  {
  589.   &FuncDownGadget,
  590.   358,83,16,8,
  591.   GADGHIMAGE, RELVERIFY | GADGIMMEDIATE , BOOLGADGET,
  592.   (APTR)&FuncUDBorder,(APTR)&FuncUDSelBorder, NULL, NULL, NULL, 11, NULL
  593.  };
  594.  
  595.  
  596. UWORD DownData[6] =
  597.   { 0x1800,0x1800,0xFF00,0x7E00,0x3C00,0x1800 };
  598.  
  599. struct Image DownImage =
  600.   {
  601.     0,0,8,6,1,
  602.     &DownData[0],0x1,0x0,NULL
  603.   };
  604.  
  605. UWORD UpData[6] =
  606.   { 0x1800,0x3C00,0x7E00,0xFF00,0x1800,0x1800, };
  607.  
  608. struct Image UpImage =
  609.   {
  610.     0,0,8,6,1,
  611.     &UpData[0],0x1,0x0,NULL
  612.   };
  613.  
  614. struct Image FuncPropImage;
  615.  
  616. struct PropInfo FuncProp =
  617. {
  618.    FREEVERT | AUTOKNOB| PROPBORDERLESS,
  619.    0,0,
  620.    771,0,
  621. };
  622.  
  623. struct Gadget FuncPropGadget =
  624.    {
  625.    &FuncUpGadget,
  626.    358,20,
  627.    16,60,
  628.    GADGHCOMP,
  629.    RELVERIFY  |
  630.    GADGIMMEDIATE |
  631.    FOLLOWMOUSE ,
  632.    PROPGADGET,
  633.    (APTR)&FuncPropImage,
  634.    NULL,
  635.    NULL,
  636.    NULL,
  637.    (APTR)&FuncProp,
  638.    10,
  639.    NULL
  640.    };
  641.  
  642.  
  643. struct Gadget Num8Gadget=
  644.  {
  645.   &FuncPropGadget,
  646.   20,90,330,10,
  647.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  648.   NULL, NULL, NULL, NULL, NULL, 28, NULL
  649.  };
  650.  
  651. struct Gadget Num7Gadget=
  652.  {
  653.   &Num8Gadget,
  654.   20,80,330,10,
  655.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  656.   NULL, NULL, NULL, NULL, NULL, 27, NULL
  657.  };
  658.  
  659. struct Gadget Num6Gadget=
  660.  {
  661.   &Num7Gadget,
  662.   20,70,330,10,
  663.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  664.   NULL, NULL, NULL, NULL, NULL, 26, NULL
  665.  };
  666.  
  667. struct Gadget Num5Gadget=
  668.  {
  669.   &Num6Gadget,
  670.   20,60,330,10,
  671.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  672.   NULL, NULL, NULL, NULL, NULL, 25, NULL
  673.  };
  674.  
  675. struct Gadget Num4Gadget=
  676.  {
  677.   &Num5Gadget,
  678.   20,50,330,10,
  679.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  680.   NULL, NULL, NULL, NULL, NULL, 24, NULL
  681.  };
  682.  
  683. struct Gadget Num3Gadget=
  684.  {
  685.   &Num4Gadget,
  686.   20,40,330,10,
  687.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  688.   NULL, NULL, NULL, NULL, NULL, 23, NULL
  689.  };
  690.  
  691. struct Gadget Num2Gadget=
  692.  {
  693.   &Num3Gadget,
  694.   20,30,330,10,
  695.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  696.   NULL, NULL, NULL, NULL, NULL, 22, NULL
  697.  };
  698.  
  699. struct Gadget Num1Gadget=
  700.  {
  701.   &Num2Gadget,
  702.   20,20,330,10,
  703.   GADGHCOMP, RELVERIFY , BOOLGADGET,
  704.   NULL, NULL, NULL, NULL, NULL, 21, NULL
  705.  };
  706.  
  707.  
  708. /* coordinates for Border around "normal" gadgets in functionlist  */
  709. short  FuncOKPairs[]=
  710.  {
  711.   1,1,1,13,0,14,0,0,83,0
  712.  };
  713.  
  714. short FuncOK2Pairs[]=
  715.  {
  716.   1,14,84,14,84,0,83,1,83,13
  717.  };
  718.  
  719. /* Border around gadgets in funclist -> non selected  */
  720.  
  721. struct Border FuncOK2Border=
  722.  {
  723.   -3,-2,1,0,JAM1,5,
  724.    FuncOK2Pairs,NULL
  725.  };
  726.  
  727. struct Border FuncOKBorder=
  728.  {
  729.   -3,-2,2,0,JAM1,5,
  730.    FuncOKPairs,&FuncOK2Border
  731.  };
  732.  
  733. /* Border around gadgets in funclist -> selected */
  734.  
  735. struct Border FuncOK2SelBorder=
  736.  {
  737.   -3,-2,2,0,JAM1,5,
  738.    FuncOK2Pairs,NULL
  739.  };
  740.  
  741. struct Border FuncOKSelBorder=
  742.  {
  743.   -3,-2,1,0,JAM1,5,
  744.    FuncOKPairs,&FuncOK2SelBorder
  745.  };
  746.  
  747. /* Differentation gadget */
  748. struct IntuiText FuncDiffText=
  749.  {
  750.   1,0,JAM2,
  751.   15,2,&BigAttr,(UBYTE *)"Diff.",NULL
  752.  };
  753.  
  754.  
  755. struct Gadget FuncDiffGadget=
  756.  {
  757.   &Num1Gadget,
  758.   295,125,80,11,
  759.   GADGHIMAGE|GADGDISABLED,RELVERIFY,BOOLGADGET,
  760.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncDiffText,
  761.   NULL,NULL,9,NULL
  762.  };
  763.  
  764.  
  765. /* Pattern gadget  */
  766. struct IntuiText FuncPatternText=
  767.  {
  768.   1,0,JAM2,
  769.   5,2,&BigAttr,(UBYTE *)"Pattern",NULL
  770.  };
  771. struct Gadget FuncPatternGadget=
  772.  {
  773.   &FuncDiffGadget,
  774.   295,145,80,11,
  775.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  776.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncPatternText,
  777.   NULL,NULL,8,NULL
  778.  };
  779.  
  780.  
  781. /* Print list of function gadget */
  782. struct IntuiText FuncPrintText=
  783.  {
  784.   1,0,JAM2,
  785.   15,2,&BigAttr,(UBYTE *)"Print",NULL
  786.  };
  787.  
  788. struct Gadget FuncPrintGadget=
  789.  {
  790.   &FuncPatternGadget,
  791.   25,125,80,11,
  792.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  793.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncPrintText,
  794.   NULL,NULL,7,NULL
  795.  };
  796.  
  797.  
  798. /* OK gadget in list of function request */
  799. struct IntuiText FuncOKText=
  800.  {
  801.   1,0,JAM2,
  802.   30,2,&BigAttr,(UBYTE *)"OK",NULL
  803.  };
  804. struct Gadget FuncOKGadget=
  805.  {
  806.   &FuncPrintGadget,
  807.   295,165,80,11,
  808.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  809.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncOKText,
  810.   NULL,NULL,6,NULL
  811.  };
  812.  
  813.  
  814. /* save list of function gadget */
  815. struct IntuiText FuncSaveText=
  816.  {
  817.   1,0,JAM2,
  818.   20,2,&BigAttr,(UBYTE *)"Save",NULL
  819.  };
  820. struct Gadget FuncSaveGadget=
  821.  {
  822.   &FuncOKGadget,
  823.   25,165,80,11,
  824.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  825.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncSaveText,
  826.   NULL,NULL,5,NULL
  827.  };
  828.  
  829.  
  830. /* load new list of functions gadget */
  831. struct IntuiText FuncLoadText=
  832.  {
  833.   1,0,JAM2,
  834.   20,2,&BigAttr,(UBYTE *)"Load",NULL
  835.  };
  836. struct Gadget FuncLoadGadget=
  837.  {
  838.   &FuncSaveGadget,
  839.   25,145,80,11,
  840.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  841.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&FuncLoadText,
  842.   NULL,NULL,4,NULL
  843.  };
  844.  
  845.  
  846. /* New gadget adds a new function to the list */
  847. struct IntuiText NewText=
  848.  {
  849.   1,0,JAM2,
  850.   25,2,&BigAttr,(UBYTE *)"New",NULL
  851.  };
  852. struct Gadget NewGadget=
  853.  {
  854.   &FuncLoadGadget,
  855.   160,125,80,11,
  856.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  857.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&NewText,
  858.   NULL,NULL,3,NULL
  859.  };
  860.  
  861.  
  862. /* Edit gadget, to edit the selected function */
  863. struct IntuiText EditText=
  864.  {
  865.   1,0,JAM2,
  866.   20,2,&BigAttr,(UBYTE *)"Edit",NULL
  867.  };
  868.  
  869. struct Gadget Edit2Gadget=
  870.  {
  871.   &NewGadget,
  872.   19,103,355,10,
  873.   GADGHNONE, RELVERIFY , BOOLGADGET,
  874.   NULL, NULL, NULL, NULL, NULL, 13, NULL
  875.  };
  876.  
  877. struct Gadget EditGadget=
  878.  {
  879.   &Edit2Gadget,
  880.   160,145,80,11,
  881.   GADGHIMAGE,RELVERIFY,BOOLGADGET,
  882.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&EditText,
  883.   NULL,NULL,2,NULL
  884.  };
  885.  
  886.  
  887. /* Main text of the request  */
  888. struct IntuiText FuncListText=
  889. {
  890.  1,0,JAM2,
  891.  -140,-160,&BigAttr,(UBYTE *)"List of functions",NULL
  892. };
  893.  
  894.  
  895. /* delete gadget used to delete the actual function */
  896. struct IntuiText DeleteText=
  897.  {
  898.   1,0,JAM2,
  899.   10,2,&BigAttr,(UBYTE *)"Delete",&FuncListText
  900.  };
  901. struct Gadget DeleteGadget=
  902.  {
  903.   &EditGadget,
  904.   160,165,80,11,
  905.   GADGHIMAGE,RELVERIFY ,BOOLGADGET,
  906.   (APTR)&FuncOKBorder,(APTR)&FuncOKSelBorder,&DeleteText,
  907.   NULL,NULL,1,NULL
  908.  };
  909.  
  910.  
  911. struct NewWindow   FuncReqNewWindow=
  912.  {
  913.   0,11,400,185,0,1,
  914.   GADGETUP | GADGETDOWN    | INTUITICKS    | MOUSEMOVE ,
  915.   ACTIVATE | SMART_REFRESH | NOCAREREFRESH ,
  916.   &DeleteGadget,
  917.   NULL,NULL,NULL,NULL,
  918.   0,0,0,0,
  919.   CUSTOMSCREEN
  920.  };
  921.  
  922. /* Definitions for Pattern-Request Window  04.08.1992 and 05.08.1992 */
  923.  
  924. struct IntuiText PatternBoxText=
  925.  {
  926.   1,0,JAM2,
  927.   70,12,&BigAttr,(UBYTE *)"Change line style pattern!",&FuncListText
  928.  };
  929.  
  930. struct NewGadget NewPatternGadget=
  931. { 355,45,22,11,NULL,&NormalAttr,10,NULL,NULL};
  932.  
  933. /* end of definitions for Pattern-Request Window */
  934.  
  935.  
  936. UWORD mousedata[36] =
  937.        {
  938.           0,0,
  939.           0x0400,0x07C0,
  940.           0x0000,0x07C0,
  941.           0x0100,0x0380,
  942.           0x0000,0x07E0,
  943.           0x07C0,0x1FF8,
  944.           0x1FF0,0x3FEC,
  945.           0x3FF8,0x7FDE,
  946.           0x3FF8,0x7FBE,
  947.           0x7FFC,0xFF7F,
  948.           0x7EFC,0xFFFF,
  949.           0x7FFC,0xFFFF,
  950.           0x3FF8,0x7FFE,
  951.           0x3FF8,0x7FFE,
  952.           0x1FF0,0x3FFC,
  953.           0x07C0,0x1FF8,
  954.           0x0000,0x07E0,
  955.           0,0
  956.        };
  957.  
  958.  
  959. struct IntuiText IntegralWin1Text=
  960.  {
  961.   1,0,JAM2,
  962.   20,10,&BigAttr,(UBYTE *)"Numerical Integral via Simpson, from",NULL
  963.  };
  964.  
  965. struct IntuiText IntegralWin3Text=
  966.  {
  967.   6,0,JAM2,
  968.   10,32,&NormalAttr,NULL,&IntegralWin1Text
  969.  };
  970.  
  971. struct IntuiText IntegralWin4Text=
  972.  {
  973.   1,0,JAM2,
  974.   110,54,&BigAttr,(UBYTE *)"reports an area of",&IntegralWin3Text
  975.  };
  976.  
  977. struct IntuiText IntegralWin5Text=
  978.  {
  979.   6,0,JAM2,
  980.   10,75,&BigAttr,NULL,&IntegralWin4Text
  981.  };
  982.  
  983.  
  984.  
  985. /* changescreenmode definitions  03.08.1992*/
  986.  
  987. struct Window *screenmodewin;
  988.  
  989. struct NewWindow ScrModeNewWindow=
  990.   {
  991.    0,11,
  992.    620,160,
  993.    0,1,
  994.    IDCMP_ACTIVEWINDOW |
  995.    IDCMP_REFRESHWINDOW|
  996.    IDCMP_GADGETDOWN |
  997.    IDCMP_GADGETUP,
  998.    WFLG_ACTIVATE |
  999.    WFLG_SIMPLE_REFRESH|
  1000.    WFLG_DRAGBAR ,
  1001.    NULL,
  1002.    NULL,
  1003.    (UBYTE *)"ScreenMode Prefs",
  1004.    NULL,
  1005.    NULL,
  1006.    0,0,
  1007.    0,0,
  1008.    CUSTOMSCREEN
  1009.   };
  1010.  
  1011. struct Gadget *nullgadget;
  1012.  
  1013. struct NewGadget modeuse=
  1014.   { 12,140,60,14,(STRPTR)"Use",&NormalAttr,1,PLACETEXT_IN,NULL,NULL};
  1015.  
  1016. struct NewGadget modecancel=
  1017.   { 548,140,60,14,(STRPTR)"Cancel",&NormalAttr,2,PLACETEXT_IN,NULL,NULL};
  1018.  
  1019. struct NewGadget defwidth=
  1020.   { 155,97,60,10,(STRPTR)"Default",&NormalAttr,3,PLACETEXT_RIGHT,NULL,NULL};
  1021.  
  1022. struct NewGadget defheight=
  1023.   { 155,117,60,10,(STRPTR)"Default",&NormalAttr,4,PLACETEXT_RIGHT,NULL,NULL};
  1024.  
  1025. struct NewGadget scrwidthgadget=
  1026.   { 80,95,60,14,(STRPTR)"Width:",&NormalAttr,5,PLACETEXT_LEFT,NULL,NULL};
  1027.  
  1028. struct NewGadget scrheightgadget=
  1029.   { 80,115,60,14,(STRPTR)"Height:",&NormalAttr,6,PLACETEXT_LEFT,NULL,NULL};
  1030.  
  1031. struct NewGadget modelistview=
  1032.   { 12,30,288,60,(STRPTR)"Display Mode",&NormalAttr,7,PLACETEXT_ABOVE,NULL,NULL};
  1033.  
  1034.  
  1035. char   monitordescript[4][32];
  1036. struct List monitorlist;
  1037. struct Node l1mode={NULL,NULL,0,0,&monitordescript[0][0]};
  1038. struct Node l2mode={NULL,NULL,0,0,&monitordescript[1][0]};
  1039. struct Node l3mode={NULL,NULL,0,0,&monitordescript[2][0]};
  1040. struct Node l4mode={NULL,NULL,0,0,&monitordescript[3][0]};
  1041.  
  1042. struct NameInfo      namebuffer;
  1043. struct DimensionInfo dimensionbuffer;
  1044. USHORT defscr;  /* default for screenheight and width BIT 0 -> default width */
  1045.                 /* BIT 1 -> default screenheight                             */
  1046.  
  1047. char monitorvissize[18];
  1048. char monitorminsize[18];
  1049. char monitormaxsize[18];
  1050. char colorstring[10];
  1051.  
  1052. struct IntuiText colortxt2=
  1053. {
  1054.  1,0,JAM2,
  1055.  150,35,&NormalAttr,(UBYTE *)colorstring,
  1056.  NULL
  1057. };
  1058.  
  1059. struct IntuiText maxsizetxt2=
  1060. {
  1061.  1,0,JAM2,
  1062.  150,25,&NormalAttr,(UBYTE *)monitormaxsize,
  1063.  &colortxt2
  1064. };
  1065.  
  1066. struct IntuiText minsizetxt2=
  1067. {
  1068.  1,0,JAM2,
  1069.  150,15,&NormalAttr,(UBYTE *)monitorminsize,
  1070.  &maxsizetxt2
  1071. };
  1072.  
  1073. struct IntuiText vissizetxt2=
  1074. {
  1075.  1,0,JAM2,
  1076.  150,5,&NormalAttr,(UBYTE *)monitorvissize,
  1077.  &minsizetxt2
  1078. };
  1079.  
  1080. struct IntuiText colortxt=
  1081. {
  1082.  1,0,JAM2,
  1083.  6,35,&NormalAttr,(UBYTE *)"Maximum Colors:",
  1084.  &vissizetxt2
  1085. };
  1086.  
  1087. struct IntuiText maxsizetxt=
  1088. {
  1089.  1,0,JAM2,
  1090.  6,25,&NormalAttr,(UBYTE *)"Maximum Size  :",
  1091.  &colortxt
  1092. };
  1093.  
  1094. struct IntuiText minsizetxt=
  1095. {
  1096.  1,0,JAM2,
  1097.  6,15,&NormalAttr,(UBYTE *)"Minimum Size  :",
  1098.  &maxsizetxt
  1099. };
  1100.  
  1101. struct IntuiText vissizetxt=
  1102. {
  1103.  1,0,JAM2,
  1104.  6,5,&NormalAttr,(UBYTE *)"Visible Size  :",
  1105.  &minsizetxt
  1106. };
  1107.  
  1108. struct IntuiText modeproptxt=
  1109. {
  1110.  1,0,JAM2,
  1111.  93,-12,&NormalAttr,(UBYTE *)"Mode Properties",
  1112.  &vissizetxt
  1113. };
  1114.  
  1115. /* end of changescreenmode definitions  */
  1116.