home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 6 / FreshFish_September1994.bin / bbs / misc / cp-4.3.lha / cP / Source / idcmp.c < prev    next >
C/C++ Source or Header  |  1994-07-31  |  9KB  |  488 lines

  1. #include "cp.h"
  2.  
  3. LONG listcode = -1;
  4.  
  5. BOOL sel = FALSE;
  6.  
  7. int addClicked( void )
  8. {
  9.      /* routine when gadget "_Add" is clicked. */
  10.      if (AddNewSet())
  11.        {
  12.           DrawView ( FALSE );
  13.        }
  14.      return ( 1 );
  15. }
  16.  
  17. int newfile( void )
  18. {
  19.      /* routine when "Open File" is selected from menu. */
  20.      FreeAllSets();
  21.      AddNewSet();
  22.      DrawView ( TRUE );
  23.      return ( 1 );
  24. }
  25.  
  26. int PlotDump( void )
  27. {
  28.      /* routine when "Print" is selected from menu. */
  29.      Dump ();
  30.      return ( 1 );
  31. }
  32.  
  33. int deleteClicked( void )
  34. {
  35.      /* routine when gadget "_Kill" is clicked. */
  36.  
  37.      if ( OpenGTXWindow( OpendelwinWindow ))
  38.        {
  39.           Death(20);
  40.        }
  41.  
  42.      SetPointer( delwinWnd, ROBOTPointer, ROBOTHEIGHT, ROBOTWIDTH, ROBOTXOFF , ROBOTYOFF);    /* Set pointer to Robot */
  43.  
  44.  
  45.      sel = FALSE;
  46.      GT_SetGadgetAttrs(delwinGadgets[0],delwinWnd,NULL,GTLV_Labels,SetList,TAG_DONE);
  47.  
  48.         do {
  49.                Wait ( 1L << delwinWnd-> UserPort-> mp_SigBit );
  50.              }
  51.           while ( HandledelwinIDCMP() );
  52.  
  53.      ClosedelwinWindow();
  54.      return (1);
  55. }
  56.  
  57.  
  58. int fullClicked( void )
  59. {
  60.      /* routine when gadget "_Full" is clicked. */
  61.      DrawView( TRUE );
  62.      return(1);
  63. }
  64.  
  65. int zoomClicked( void )
  66. {
  67.      /* routine when gadget "_Zoom" is clicked. */
  68.  
  69.      SetPointer( PlotWindowWnd, XPPointer, XPHEIGHT, XPWIDTH, XPXOFF , XPYOFF);    /* Set pointer cross for zoom */
  70.  
  71.      Zoom();
  72.  
  73.      return (1);
  74. }
  75.  
  76. int gridClicked( void )
  77. {
  78.      /* routine when gadget "_Grid" is clicked. */
  79.      Grid();
  80.      if ( grid == TRUE ) grid = FALSE;
  81.      else grid = TRUE;
  82.      return (1);
  83. }
  84.  
  85. int quitClicked( void )
  86. {
  87.      /* routine when gadget "_Quit" is clicked. */
  88.      return (0);
  89. }
  90.  
  91. int PreOpenRequest( void )
  92. {
  93. /* menu selection to set precision */
  94.  
  95.      if ( OpenGTXWindow( OpenPreSlideWindow ))
  96.        {
  97.           Death(20);
  98.        }
  99.  
  100.         do {
  101.                Wait ( 1L << PreSlideWnd-> UserPort-> mp_SigBit );
  102.              }
  103.           while ( HandlePreSlideIDCMP() );
  104.  
  105.     ClosePreSlideWindow();
  106.     return (1);
  107. }
  108.  
  109. int UnZoom( void )
  110. {
  111. double txmax;
  112. double txmin;
  113. double tymax;
  114. double tymin;
  115.  
  116.     txmax = cv.xmax;
  117.     txmin = cv.xmin;
  118.     tymax = cv.ymax;
  119.     tymin = cv.ymin;
  120.  
  121.     /* restore unzoom settings */
  122.      cv.xmin   = ov.xmin;
  123.      cv.xmax   = ov.xmax;
  124.     cv.ymin   = ov.ymin;
  125.      cv.ymax   = ov.ymax;
  126.         cv.xdelta = ov.xdelta;
  127.       cv.ydelta = ov.ydelta;
  128.  
  129.     ov.xmax = txmax;
  130.     ov.xmin = txmin;
  131.     ov.ymax = tymax;
  132.     ov.ymin = tymin;
  133.  
  134.     DrawView( FALSE );
  135.      return (1);
  136. }
  137.  
  138.  
  139. int PlotWindowItem0( void )
  140. {
  141.  
  142. struct EasyStruct ES =
  143.    {
  144.      sizeof(struct EasyStruct),
  145.      0,
  146.      "SAIC",
  147.      "%s",
  148.      "It's Freeware!"
  149.     };
  150.      EasyRequest (PlotWindowWnd,&ES,NULL,"cP\nby\nChris Conger\nand\nSAIC\nan employee owned company");
  151.      return (1);
  152. }
  153.  
  154. int PlotWindowItem1( void )
  155. {
  156.      return (0);
  157. }
  158.  
  159. int PlotWindowItem2( void )
  160. {
  161.      LOGX = FALSE;
  162.      DrawView( TRUE );
  163.      return (1);
  164. }
  165.  
  166. int PlotWindowItem3( void )
  167. {
  168.      LOGX = TRUE;
  169.      DrawView( TRUE );
  170.      return (1);
  171. }
  172.  
  173. int PlotWindowItem4( void )
  174. {
  175.      LOGY = FALSE;
  176.      DrawView( TRUE );
  177.      return (1);
  178. }
  179.  
  180. int PlotWindowItem5( void )
  181. {
  182.      LOGY = TRUE;
  183.      DrawView( TRUE );
  184.      return (1);
  185. }
  186.  
  187. int PlotWindowItem6( void )
  188. {
  189.      if( sym == TRUE ) 
  190.        {
  191.         sym = FALSE;
  192.          DrawView ( FALSE );
  193.        }
  194.      else
  195.        {
  196.           sym = TRUE;
  197.         SymAllSets();
  198.       }
  199.      return ( 1 );
  200. }
  201.  
  202. int PlotWindowItem7( void )
  203. {
  204.  
  205.      if( CPANEL == TRUE )
  206.        {
  207.           CPANEL = FALSE;
  208.           RemoveGList( PlotWindowWnd, PlotWindowGList, PlotWindow_CNT+1 );
  209.        }
  210.      else
  211.        {
  212.           AddGList( PlotWindowWnd,PlotWindowGList, NULL, PlotWindow_CNT+1, NULL );
  213.           CPANEL = TRUE;
  214.        }
  215.      DrawView ( FALSE );
  216.      return ( 1 );
  217. }
  218.  
  219. int NewDepth(WORD d)
  220. {
  221.     if ( delwinWnd )     ClosedelwinWindow();
  222.     if ( PlotWindowWnd ) ClosePlotWindowWindow();
  223.     if ( Scr )           CloseDownScreen();
  224.  
  225.      depth = d;
  226.  
  227.      if (d==1) { MONO = TRUE; lastcolor=1;}
  228.      if (d==2) { MONO = FALSE; lastcolor=3;}
  229.      if (d==3) { MONO = FALSE; lastcolor=7;}
  230.      if (d==4) { MONO = FALSE; lastcolor=15;}
  231.      
  232.      if ( OpenGTXScreen()) Death(10);
  233.  
  234.      if ( OpenGTXWindow( OpenPlotWindowWindow )) Death(10);
  235.  
  236.     DrawView (FALSE);
  237.      
  238.   return ( 1 );    
  239. }
  240.  
  241. int NewDepth1()
  242. {
  243.     return (10);
  244. }
  245. int NewDepth2()
  246. {
  247.     return (20);
  248. }
  249. int NewDepth3()
  250. {
  251.     return (30);
  252. }
  253. int NewDepth4()
  254. {
  255.     return (40);
  256. }
  257.  
  258.  
  259. int PlotWindowVanillaKey( void )
  260. {
  261.      switch (PlotWindowMsg.Code)
  262.        {
  263.           case 'a':
  264.           case 'A':
  265.                return( addClicked() );
  266.           case 'k':
  267.           case 'K':
  268.                return( deleteClicked() );
  269.           case 'z':
  270.           case 'Z':
  271.                return( zoomClicked() );
  272.           case 'f':
  273.           case 'F':
  274.                return( fullClicked() );
  275.           case 'g':
  276.           case 'G':
  277.                return( gridClicked() );
  278.           case 'h':
  279.           case 'H':
  280.                return( CrossHair() );
  281.           case 'r':
  282.           case 'R':
  283.              DrawView( FALSE );
  284.                return( 1 );
  285.           case 'q':
  286.           case 'Q':
  287.                return ( quitClicked() );
  288.           case 's':
  289.           case 'S':
  290.                return ( PlotWindowItem6() );
  291.           case 'u':
  292.           case 'U':
  293.             return (UnZoom());
  294.           case 'd':
  295.           case 'D':
  296.                return (PreOpenRequest());
  297.           case 'x':
  298.           case 'X':
  299.              if(LOGX) LOGX = FALSE;
  300.              else LOGX = TRUE;
  301.              DrawView( TRUE );
  302.              return (1);
  303.           case 'y':
  304.           case 'Y':
  305.              if(LOGY) LOGY = FALSE;
  306.              else LOGY = TRUE;
  307.              DrawView( TRUE );
  308.              return (1);
  309.           default:
  310.                return (1);
  311.        }
  312. }
  313.  
  314. int PlotWindowRawKey( void )
  315. {
  316. struct Rectangle rect;
  317.  
  318.     if (QueryOverscan(Disp, &rect, OSCAN_TEXT))
  319.       {
  320.  
  321.          switch (PlotWindowMsg.Code)
  322.            {
  323.               case 76:
  324.                 MoveScreen(Scr,0,min((rect.MaxY-rect.MinY), -(Scr->ViewPort.DyOffset)));
  325.                 return(1);
  326.               case 77:
  327.                 MoveScreen(Scr,0,rect.MinY-rect.MaxY);
  328.                 return(1);
  329.               case 78:
  330.                 MoveScreen(Scr,(rect.MinX-rect.MaxX), 0);
  331.                 return(1);
  332.               case 79:
  333.                 MoveScreen(Scr,(rect.MaxX-rect.MinX), 0);
  334.                 return(1);
  335.               default:
  336.                    return (1);
  337.              }
  338.        }
  339.      return(1);
  340. }
  341.  
  342.  
  343. int delwinVanillaKey(void)
  344. {
  345.      switch (delwinMsg.Code)
  346.        {
  347.           case 'r':
  348.           case 'R':
  349.                return( canlistClicked() );
  350.  
  351.           case 'k':
  352.           case 'K':
  353.                return ( delsetClicked());
  354.  
  355.         case 13 : /* hit enter */
  356.             delsetClicked();
  357.             return ( 0 );
  358.  
  359.         case 27 : /* hit escape */
  360.             return ( 0 );
  361.  
  362.           default:
  363.                   return (1);
  364.        }
  365. }
  366.  
  367. int delwinRawKey(void)
  368. {
  369. struct Set *node;
  370. WORD k=0;
  371.  
  372.     node = (struct Set *)SetList-> lh_Head;
  373.  
  374.      while ( node-> snode.ln_Succ ) { node = (struct Set*)node-> snode.ln_Succ; k++; }
  375.  
  376.      switch (delwinMsg.Code)
  377.        {
  378.  
  379.           case 76:     /* up arrow key */
  380.               
  381.               listcode = max(listcode-1,0);
  382.             sel = TRUE;
  383.             GT_SetGadgetAttrs(delwinGadgets[0],delwinWnd,NULL,GTLV_Selected,(UWORD)listcode,TAG_DONE);
  384.             return (1);
  385.  
  386.           case 77:    /* down arrow key */
  387.               
  388.               listcode = min(listcode+1,k-1);
  389.                  sel = TRUE;
  390.              GT_SetGadgetAttrs(delwinGadgets[0],delwinWnd,NULL,GTLV_Selected,(UWORD)listcode,TAG_DONE);
  391.             return(1);
  392.        }
  393.      return (1);
  394. }
  395.  
  396. int dellistClicked( void )
  397. {
  398. static ULONG osec=0, omsec=0;
  399. ULONG csec, cmsec;
  400. static LONG olcode=100;
  401.  
  402.     CurrentTime( &csec, &cmsec );
  403.  
  404.      sel = TRUE;
  405.      listcode = delwinMsg.Code;
  406.  
  407.     if ( DoubleClick ( osec, omsec, csec, cmsec ))
  408.       {
  409.         if ( olcode == listcode )
  410.           {
  411.               delsetClicked ();
  412.               return( 1 );
  413.           }
  414.       }
  415.  
  416.     else
  417.       {
  418.           osec   = csec;
  419.           omsec  = cmsec;
  420.           olcode = listcode;
  421.       }
  422.  
  423.      return ( 1 );
  424. }
  425.  
  426. int delsetClicked( void )
  427. {
  428. struct Set *node;
  429. WORD k;
  430. UBYTE str[132];
  431.     
  432.      if ( sel )
  433.        {
  434.           node = (struct Set *)SetList-> lh_Head;
  435.           k = 0;
  436.  
  437.           while ( node && k < listcode )
  438.             {
  439.                node = (struct Set *)node-> snode.ln_Succ;
  440.                k++;
  441.             }
  442.  
  443.           GT_SetGadgetAttrs(delwinGadgets[0],delwinWnd,NULL,GTLV_