[net.micro.mac] MacApp Paint

congdon@ci-dandelion.UUCP (Robert M. Congdon) (08/25/86)

I went to the MacApp presentation at the MacWorld Expo in Boston last 
Saturday.  The presentation was given by Kurt Schmucker (author of the 
book "Object-Oriented Programming for the Macintosh, published by Hayden). 
I came away pretty impressed -- especially by a demo program written by 
Larry Rosenstein called MacApp Paint. It was pretty much like MacPaint 
except that it supported multiple documents, resizable windows and 
auto-scrolled during dynamic operations (e.g. while drawing a line). 
Not only did it have a lot of features but it appeared to be pretty
fast. I understand that this was developed in two months.

Now I wonder: was this program was written completely using MacApp 
and Object Pascal? Also, during the demo Kurt showed a debugger that 
allowed one to trace message sends and set breakpoints on message 
sends. Is this a standard part of MacApp or is it part of MPW Pascal?

-- 
-----------------------------------------------------------------------
 Robert M. Congdon     ..{talcott,mit-eddie,frog}!ci-dandelion!congdon
-----------------------------------------------------------------------
 Cognition, Inc.		
 900 Tech Park Drive		
 Billerica, MA 01821		
 (617) 667-4800			

lsr@apple.UUCP (Larry Rosenstein) (08/26/86)

In article <183@ci-dandelion.UUCP> congdon@ci-dandelion.UUCP (Robert M. Congdon) writes:
>
>Now I wonder: was this program was written completely using MacApp 
>and Object Pascal? Also, during the demo Kurt showed a debugger that 
>allowed one to trace message sends and set breakpoints on message 
>sends. Is this a standard part of MacApp or is it part of MPW Pascal?
>

MacApp Paint was written using MacApp and Object Pascal, with a small amount
of assembler (bit manipulation stuff), most of which was copied directly
from the sources to MacPaint.  All of the user interface to the program was
written in Object Pascal.  The only non-standard thing I did was with the
scrolling (since I have the entire bitmap in memory, there is no reason to
use ScrollRect).  This was very easy to override in MacApp.

The program was was intended to demonstrate that programs written using
object-oriented programming and MacApp do not necessarily have to be slow.  

The debug window and tracing facility that were shown in the talk are a
standard part of MacApp.  (The debugging facilities in MacApp include about
70K of code.)  They are based on a feature of MPW Pascal where the compiler
can insert a procedure call at the beginning and end of each procedure.  The
MacApp debugger implements these procedures and does things such as searching
for the procedure name, etc.  (There is no technical reason why the debugger
couldn't be used in a non-MacApp program, but there is not enough time to
document it for the first MPW release.)

-- 
Larry Rosenstein

Object Specialist
Apple Computer

AppleLink: Rosenstein1
UUCP:  {sun, voder, nsc, mtxinu, dual}!apple!lsr
CSNET: lsr@Apple.CSNET