Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
TCTESampleGlue.c
/* |
* Apple Macintosh Developer Technical Support |
* |
* MultiFinder-Aware TextEdit Sample Application |
* |
* TESample |
* |
* TCTESampleGlue.a - THINK C Assembler Source |
* |
* Copyright © 1989 Apple Computer, Inc. |
* All rights reserved. |
* |
* Versions: |
* 1.00 08/88 |
* 1.01 11/88 |
* 1.02 04/89 |
* 1.03 06/89 |
* 1.04 06/92 |
* |
* Components: |
* TESample.p June 1, 1989 |
* TESample.c June 1, 1989 |
* TESampleInit.c June 4, 1992 |
* TESampleGlue.a June 1, 1989 |
* TESample.r June 1, 1989 |
* TESample.h June 1, 1989 |
* PTESample.make June 1, 1989 |
* CTESample.make June 1, 1989 |
* TCTESample.¹ June 4, 1992 |
* TCTESample.¹.rsrc June 4, 1992 |
* TCTESampleGlue.c June 4, 1992 |
* |
* TESample is an example application that demonstrates how |
* to initialize the commonly used toolbox managers, operate |
* successfully under MultiFinder, handle desk accessories and |
* create, grow, and zoom windows. The fundamental TextEdit |
* toolbox calls and TextEdit autoscroll are demonstrated. It |
* also shows how to create and maintain scrollbar controls. |
* |
* It does not by any means demonstrate all the techniques you |
* need for a large application. In particular, Sample does not |
* cover exception handling, multiple windows/documents, |
* sophisticated memory management, printing, or undo. All of |
* these are vital parts of a normal full-sized application. |
* |
* This application is an example of the form of a Macintosh |
* application; it is NOT a template. It is NOT intended to be |
* used as a foundation for the next world-class, best-selling, |
* 600K application. A stick figure drawing of the human body may |
* be a good example of the form for a painting, but that does not |
* mean it should be used as the basis for the next Mona Lisa. |
* |
* We recommend that you review this program or Sample before |
* beginning a new application. Sample is a simple app. which doesnÕt |
* use TextEdit or the Control Manager. |
* |
* |
* AsmClickLoop |
* |
* This routine gets called by the TextEdit Manager from TEClick. |
* It calls the old, default click loop routine that scrolls the |
* text, and then calls our own Pascal routine that handles |
* tracking the scroll bars to follow along. It doesn't bother |
* with saving registers A0 and D0, because they are trashed |
* anyway by TextEdit. |
*/ |
#include "TESample.h" |
void AsmClickLoop() |
{ |
asm { |
MOVEM.L D1-D2/A1,-(SP) ; D0 and A0 need not be saved |
CLR.L -(SP) ; make space for procedure pointer |
JSR GetOldClickLoop ; get the old clickLoop |
MOVEA.L (SP)+,A0 ; into A0 |
MOVEM.L (SP)+,D1-D2/A1 ; restore the world as it was |
JSR (A0) ; and execute old clickLoop |
MOVEM.L D1-D2/A1,-(SP) ; D0 and A0 need not be saved |
JSR PascalClickLoop ; do our clickLoop |
MOVEM.L (SP)+,D1-D2/A1 ; restore the world as it was |
MOVEQ #1,D0 ; clear the zero flag so TextEdit keeps going |
RTS |
} |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14