home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / new / misc / math / cp / source / plotgui.c < prev    next >
C/C++ Source or Header  |  1994-05-01  |  21KB  |  666 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : Chris Conger
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <intuition/intuition.h>
  10. #include <intuition/classes.h>
  11. #include <intuition/classusr.h>
  12. #include <intuition/imageclass.h>
  13. #include <intuition/gadgetclass.h>
  14. #include <libraries/gadtools.h>
  15. #include <graphics/displayinfo.h>
  16. #include <graphics/gfxbase.h>
  17. #include <clib/exec_protos.h>
  18. #include <clib/intuition_protos.h>
  19. #include <clib/gadtools_protos.h>
  20. #include <clib/graphics_protos.h>
  21. #include <clib/utility_protos.h>
  22. #include <string.h>
  23. #include <clib/diskfont_protos.h>
  24.  
  25. #include "plotgui.h"
  26. #include "cp.h"
  27.  
  28. extern UBYTE *version_string;
  29.  
  30.  
  31. struct Screen         *Scr = NULL;
  32. APTR                   VisualInfo = NULL;
  33. struct Window         *PlotWindowWnd = NULL;
  34. struct Window         *delwinWnd = NULL;
  35. struct Gadget         *PlotWindowGList = NULL;
  36. struct Gadget         *delwinGList = NULL;
  37. struct Menu           *PlotWindowMenus = NULL;
  38. struct IntuiMessage    PlotWindowMsg;
  39. struct IntuiMessage    delwinMsg;
  40. struct Gadget         *PlotWindowGadgets[6];
  41. struct Gadget         *delwinGadgets[3];
  42. UWORD                  SWIDTH = STDSCREENWIDTH;
  43. UWORD                  SHEIGHT = STDSCREENHEIGHT;
  44. UWORD                  delwinWidth;
  45. UWORD                  delwinHeight;
  46. UBYTE                 *PlotWindowWdt = (UBYTE *)"ChrisP";
  47. UBYTE                 *delwinWdt = (UBYTE *)"Kill Trace";
  48. struct Window         *PreSlideWnd = NULL;
  49. struct Gadget         *PreSlideGList = NULL;
  50. struct IntuiMessage    PreSlideMsg;
  51. struct Gadget         *PreSlideGadgets[1];
  52. UBYTE                 *PreSlideWdt = (UBYTE *)"Precision for Identify Feature";
  53.  
  54. WORD GADHEIGHT;
  55. WORD GADWIDTH;
  56.  
  57.  
  58. struct NewMenu PlotWindowNewMenu[] = {
  59.      NM_TITLE, (STRPTR)"Project", NULL, 0, NULL, NULL,
  60.      NM_ITEM, (STRPTR)"Open File", (STRPTR)"O", 0, 0L, (APTR)newfile,
  61.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  62.      NM_ITEM, (STRPTR)"Add File", (STRPTR)"A", 0, 0L, (APTR)addClicked,
  63.      NM_ITEM, (STRPTR)"Delete Set", (STRPTR)"D", 0, 0L, (APTR)deleteClicked,
  64.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  65.      NM_ITEM, (STRPTR)"Print", (STRPTR)"P", 0, 0L, (APTR)PlotDump,
  66.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  67.      NM_ITEM, (STRPTR)"About", NULL, 0, 0L, (APTR)PlotWindowItem0,
  68.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  69.      NM_ITEM, (STRPTR)"Die", (STRPTR)"Q", 0, 0L, (APTR)PlotWindowItem1,
  70.      NM_TITLE, (STRPTR)"Display", NULL, 0, NULL, NULL,
  71.      NM_ITEM, (STRPTR)"Full View", (STRPTR)"F", 0L, 0L, (APTR)fullClicked,
  72.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  73.      NM_ITEM, (STRPTR)"Cross Hair", (STRPTR)"H", 0L, 0L, (APTR)CrossHair,
  74.      NM_ITEM, (STRPTR)"Significant Digits", NULL, 0L, 0L, (APTR)PreOpenRequest,
  75.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  76.      NM_ITEM, (STRPTR)"Grid", (STRPTR)"G", NULL, 0L, (APTR)gridClicked,
  77.      NM_ITEM, (STRPTR)"Symbols", (STRPTR)"S", NULL, 0L, (APTR)PlotWindowItem6,
  78.      NM_ITEM, (STRPTR)"Control Panel", (STRPTR)"C", NULL, 0L, (APTR)PlotWindowItem7,
  79.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  80.      NM_ITEM, (STRPTR)"Screen  Depth", NULL, 0, NULL, NULL,
  81.      NM_SUB, (STRPTR)"1", (STRPTR)"1", NULL, 0L, (APTR)NewDepth1,
  82.      NM_SUB, (STRPTR)"2", (STRPTR)"2", NULL, 0L, (APTR)NewDepth2,
  83.      NM_SUB, (STRPTR)"3", (STRPTR)"3", NULL, 0L, (APTR)NewDepth3,
  84.      NM_SUB, (STRPTR)"4", (STRPTR)"4", NULL, 0L, (APTR)NewDepth4,
  85.      NM_TITLE, (STRPTR)"Axis", NULL, 0, NULL, NULL,
  86.      NM_ITEM, (STRPTR)"XAxis", NULL, 0, NULL, NULL,
  87.      NM_SUB, (STRPTR)"Lin", NULL, 0, 0L, (APTR)PlotWindowItem2,
  88.      NM_SUB, (STRPTR)"Log", NULL, 0, 0L, (APTR)PlotWindowItem3,
  89.      NM_ITEM, (STRPTR)"YAxis", NULL, 0, NULL, NULL,
  90.      NM_SUB, (STRPTR)"Lin", NULL, 0, 0L, (APTR)PlotWindowItem4,
  91.      NM_SUB, (STRPTR)"Log", NULL, 0, 0L, (APTR)PlotWindowItem5,
  92.      NM_END, NULL, NULL, 0, 0L, NULL };
  93.  
  94.  
  95. UWORD PlotWindowGTypes[] = {
  96.      BUTTON_KIND,
  97.      BUTTON_KIND,
  98.      BUTTON_KIND,
  99.      BUTTON_KIND,
  100.      BUTTON_KIND,
  101.      BUTTON_KIND
  102. };
  103.  
  104. UWORD delwinGTypes[] = {
  105.      LISTVIEW_KIND,
  106.      BUTTON_KIND,
  107.      BUTTON_KIND
  108. };
  109.  
  110. UWORD PreSlideGTypes[] = {
  111.     SLIDER_KIND
  112. };
  113.  
  114. struct NewGadget PlotWindowNGad[] = {
  115.      NULL, NULL, NULL, NULL, (UBYTE *)"_Add", NULL, GD_add, PLACETEXT_IN, NULL, (APTR)addClicked,
  116.      NULL, NULL, NULL, NULL, (UBYTE *)"_Kill", NULL, GD_delete, PLACETEXT_IN, NULL, (APTR)deleteClicked,
  117.      NULL, NULL, NULL, NULL, (UBYTE *)"_Full", NULL, GD_full, PLACETEXT_IN, NULL, (APTR)fullClicked,
  118.      NULL, NULL, NULL, NULL, (UBYTE *)"_Zoom", NULL, GD_zoom, PLACETEXT_IN, NULL, (APTR)zoomClicked,
  119.      NULL, NULL, NULL, NULL, (UBYTE *)"_Grid", NULL, GD_grid, PLACETEXT_IN, NULL, (APTR)gridClicked,
  120.      NULL, NULL, NULL, NULL, (UBYTE *)"_Quit", NULL, GD_quit, PLACETEXT_IN, NULL, (APTR)quitClicked
  121. };
  122.  
  123. struct NewGadget delwinNGad[] = {
  124.      NULL, NULL, NULL, NULL, NULL, NULL, GD_dellist, NULL, NULL, (APTR)dellistClicked,
  125.      NULL, NULL, NULL, NULL, (UBYTE *)"_Delete", NULL, GD_delset, PLACETEXT_IN, NULL, (APTR)delsetClicked,
  126.      NULL, NULL, NULL, NULL, (UBYTE *)"_Redraw", NULL, GD_canlist, PLACETEXT_IN, NULL, (APTR)canlistClicked
  127. };
  128.  
  129. struct NewGadget PreSlideNGad[] = {
  130.     NULL, NULL, NULL, NULL, NULL, NULL, GD_pre, PLACETEXT_BELOW, NULL, (APTR)preClicked
  131. };
  132.  
  133.  
  134. ULONG PlotWindowGTags[] = {
  135.      (GT_Underscore), '_', (TAG_DONE),
  136.      (GT_Underscore), '_', (TAG_DONE),
  137.      (GT_Underscore), '_', (TAG_DONE),
  138.      (GT_Underscore), '_', (TAG_DONE),
  139.      (GT_Underscore), '_', (TAG_DONE),
  140.      (GT_Underscore), '_', (TAG_DONE)
  141. };
  142.  
  143. ULONG delwinGTags[] = {
  144.      (GTLV_ShowSelected), NULL, (TAG_DONE),
  145.      (GT_Underscore), '_', (TAG_DONE),
  146.      (GT_Underscore), '_', (TAG_DONE)
  147. };
  148.  
  149. ULONG PreSlideGTags[] = {
  150.     (GTSL_Min), 1, (GTSL_Max), 9, (GTSL_Level), NULL, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE)
  151. };
  152.  
  153.  
  154. struct ColorSpec MonoColors[] = {
  155.       0, 0x00, 0x00, 0x00,
  156.       1, 0x0F, 0x0E, 0x0D,
  157.      ~0, 0x00, 0x00, 0x00 };
  158.  
  159. struct ColorSpec FourColors[] = {
  160.       0, 0x07, 0x06, 0x06,
  161.       1, 0x0B, 0x0A, 0x0A,
  162.       2, 0x03, 0x01, 0x03,
  163.       3, 0x0F, 0x00, 0x05,
  164.      ~0, 0x00, 0x00, 0x00 };
  165.  
  166. struct ColorSpec EightColors[] = {
  167.       0, 0x08, 0x07, 0x07,
  168.       1, 0x00, 0x00, 0x00,
  169.       2, 0x0C, 0x0C, 0x0F,
  170.       3, 0x09, 0x07, 0x08,
  171.       4, 0x0A, 0x07, 0x0F,
  172.       5, 0x0F, 0x0E, 0x08,
  173.       6, 0x03, 0x04, 0x06,
  174.       7, 0x0F, 0x0F, 0x0F,
  175.      ~0, 0x00, 0x00, 0x00 };
  176.  
  177. struct ColorSpec SixteenColors[] = {
  178.       0, 0x08, 0x07, 0x08,
  179.       1, 0x00, 0x00, 0x00,
  180.       2, 0x0F, 0x0F, 0x0F,
  181.       3, 0x07, 0x06, 0x09,
  182.       4, 0x05, 0x09, 0x0F,
  183.       5, 0x00, 0x0E, 0x08,
  184.       6, 0x0F, 0x04, 0x08,
  185.       7, 0x0F, 0x0D, 0x07,
  186.       8, 0x0B, 0x07, 0x0F,
  187.       9, 0x0F, 0x0A, 0x08,
  188.      10, 0x0F, 0x08, 0x0D,
  189.      11, 0x06, 0x00, 0x0F,
  190.      12, 0x00, 0x0F, 0x0F,
  191.      13, 0x0F, 0x05, 0x00,
  192.      14, 0x04, 0x04, 0x06,
  193.      15, 0x0F, 0x0F, 0x0F,
  194.      ~0, 0x00, 0x00, 0x00 };
  195.  
  196.  
  197. int SetupScreen( void )
  198. {
  199. UBYTE PubNum[4];
  200. struct List    *publist;
  201. struct PubScreenNode *psnode;
  202. WORD  s=0,t;
  203. WORD len;
  204. struct ColorSpec *ScreenColors;
  205. UBYTE PubName[32];
  206.  
  207. UWORD DriPens[] = {
  208.      0,1,2,2,1,3,2,0,2,~0 };
  209.  
  210. UWORD TwoPens[] = {
  211.      0,1,2,1,2,3,2,0,2,~0 };
  212.  
  213.  
  214.      strcpy(PubName,MyName);  /* OpenScreen will fail if MyName has already been used */
  215.  
  216.      if ( Stricmp(PubName,&version_string[5])==0)     /** if user didn't supply us a name **/
  217.        {
  218.         strcpy(PubName,"cP");
  219.  
  220.         len = (WORD) strlen( PubName );
  221.  
  222.         publist = LockPubScreenList();                /* Lock the public screen list     */
  223.  
  224.         for (psnode = (struct PubScreenNode *) publist->lh_Head; psnode->psn_Node.ln_Succ; psnode = (struct PubScreenNode *) psnode->psn_Node.ln_Succ)
  225.           {
  226.               if ( ! Strnicmp( psnode-> psn_Node.ln_Name, PubName, len))
  227.                   {
  228.                    t = 0;
  229.                    sscanf( &psnode-> psn_Node.ln_Name [len],"%hd", &t);
  230.                    s = max(s,t);
  231.                 }
  232.           }
  233.  
  234.          UnlockPubScreenList ();
  235.  
  236.          sprintf( PubNum,"%hd", s+1 );
  237.          strcat ( PubName, PubNum);         /* Add #s of other cP screens to name */
  238.       }
  239.  
  240.      if ( d