home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 2 / ETO Development Tools 2.iso / Tools - Objects / MacApp / MacApp CD Release / MacApp 2.0.1 (Many Libraries) / Examples / Calc / UGrabberTracker.inc1.p < prev    next >
Encoding:
Text File  |  1990-10-25  |  2.1 KB  |  76 lines  |  [TEXT/MPS ]

  1. {[a-,body+,h-,o=100,r+,rec+,t=4,u+,#+,j=20/57/1$,n-]}
  2. { UGrabberTracker.inc1.p }
  3. { Copyright © 1988-1990 by Apple Computer, Inc. All rights reserved.}
  4.  
  5. {--------------------------------------------------------------------------------------------------}
  6. {$S ADoCommand}
  7.  
  8. PROCEDURE TGrabberTracker.IGrabberTracker(itsCmdNumber: CmdNumber;
  9.                                           itsDocument: TDocument;
  10.                                           itsView: TView;
  11.                                           itsScroller: TScroller);
  12.  
  13.     BEGIN
  14.     ICommand(itsCmdNumber, itsDocument, itsView, itsScroller);
  15.     fCanUndo := false;                                    { !!! Should just be a TNoChangesCommand }
  16.     fCausesChange := false;
  17.     END;
  18.  
  19. {--------------------------------------------------------------------------------------------------}
  20. {$S ADoCommand}
  21.  
  22. FUNCTION TGrabberTracker.TrackMouse(aTrackPhase: TrackPhase;
  23.                                     VAR anchorPoint, previousPoint, nextPoint: VPoint;
  24.                                     mouseDidMove: Boolean): TCommand; OVERRIDE;
  25.  
  26.     VAR
  27.         delta:                VPoint;
  28.  
  29.     BEGIN
  30.     TrackMouse := self;                                 { keep tracking with me }
  31.     CASE aTrackPhase OF
  32.         trackPress: ;
  33.         trackMove:
  34.             IF mouseDidMove THEN
  35.                 BEGIN
  36.                 WITH fScroller, delta DO
  37.                     BEGIN
  38.                     v := MinMax(anchorPoint.v - nextPoint.v, - fTranslation.v, fMaxTranslation.v -
  39.                                 fTranslation.v);
  40.                     h := MinMax(anchorPoint.h - nextPoint.h, - fTranslation.h, fMaxTranslation.h -
  41.                                 fTranslation.h);
  42.                     IF NOT EqualVPt(delta, gZeroVPt) THEN
  43.                         BEGIN
  44.                         ScrollBy(h, v, True);
  45.                         Update;
  46.                         END
  47.                     END;
  48.  
  49.                 AddVPt(delta, nextPoint);
  50.  
  51.                 previousPoint := nextPoint;
  52.                 anchorPoint := nextPoint;
  53.                 END;
  54.         trackRelease: ;
  55.     END;                                                { CASE }
  56.     END;
  57.  
  58. {--------------------------------------------------------------------------------------------------}
  59. {$S ADoCommand}
  60.  
  61. PROCEDURE TGrabberTracker.TrackFeedback(anchorPoint, nextPoint: VPoint;
  62.                                         turnItOn, mouseDidMove: Boolean);
  63.  
  64.     BEGIN
  65.     { NO feedback please }
  66.     END;
  67.  
  68. {--------------------------------------------------------------------------------------------------}
  69. {$S ADoCommand}
  70.  
  71. PROCEDURE TGrabberTracker.AutoScroll(deltaH, deltaV: VCoordinate);
  72.  
  73.     BEGIN
  74.     { NO AutoScroll please }
  75.     END;
  76.