Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!apple!keith From: keith@Apple.COM (Keith Rollin) Newsgroups: comp.sys.mac.system Subject: Re: ScrollBar design question Message-ID: <54350@apple.Apple.COM> Date: 26 Jun 91 18:21:33 GMT References: <1991Jun25.124247.11023@cbnews.cb.att.com> <22430@duke.cs.duke.edu> Organization: Apple Computer Inc., Cupertino, CA Lines: 42 In article lamont@convex.com (Bradley Lamont) writes: >In <22430@duke.cs.duke.edu> jfw@neuro (John F. Whitehead) writes: > >>... but when you slide it, you see the window slide so you know >>exactly how much you need to move it! > >For some reason, Apple chose not to do this. It is part of the mac user >interface guidelines not to update the screen during scrolling when the >"thumb" is being moved, only to update when the arrows are clicked. >From the point of view of programming it in a new application, it is >extermely easy to do. But adding it to existing applications would require >rewriting the scrollbar control routine. There are three reasons that I can see that "live scrolling" wasn't done. The first reason is that the original Mac had only 128K of RAM that doubled as a screen buffer, a 64K ROM holding routines optimized for space and not for speed, and an 8MHz 68000. There just wasn't enough horsepower to do that kind of scrolling. Second, unless you are using something like MacApp, there is no uniform way of performing coordinate translation. You can either munge the window port's origin yourself, or you can keep it at (0, 0) and manage your own local origin. There are probably other ways, too. Without knowing the technique the application is using, there is no way for the scrollbar to automatically scroll the window. Third, again without something like MacApp, there is no way for the scrollbar to know which areas to scroll. The second two of these problems can be solved with a 'view system' as implemented in MacApp. Coordinate translation is handled in a standard way across all applications, and the bounds of the associated view to scroll are easily available. For example, MacBrowse (nee Mouser), MacApp's class broswer, implements live scrolling in its current internal release. -- ------------------------------------------------------------------------------ Keith Rollin --- Apple Computer, Inc. INTERNET: keith@apple.com UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith "But where the senses fail us, reason must step in." - Galileo