PB170
Well-known member
I've been thinking about writing this post for a loooong time, but I've felt that the idea was a bit too far-fetched, and that it would put the biggest effort on someone other than myself, so I've decided to focus on other projects this far. But since @Crutch opened the door for it to perhaps become a reality, then here we go
As I've mentioned in a few other posts, I'm using a PowerBook 170 with System 7.1 daily as one of my main computers. Over the years, I've added an assortment of system extensions to keep the system as up to date with modern interface enhancement as possible (like alt+tab and command+h for efficient application switching, proportional scroll bars etc.) to a point where it's now pretty much on par with modern systems for the things I use them for.
The only thing I'm really missing, is the Exposé/Mission Control feature for showing the desktop (probably the single most useful interface addition that has come with OS X, imho). It's the first thing I activate when I use a new computer, and I’ve been dreaming about having it on my PowerBook since shortly after it was introduced in Mac OS X 10.3.
I spent some time during the weekend to put together a visual mock-up of the implementation I've had in mind. (Entirely using Macromind Director 3 on my PowerBook, by the way ).
Basically, I'm thinking about a direct clone of the OS X implementation, but the way Apple likely would have implemented it if it had been conceived in the System 7 days:
View attachment Exposé mock-up.mp4
I've attached the original QuickTime video if anyone wants view it on real (black and white) hardware (it runs at the full 30 fps on my PowerBook).
I'd be happy to invest as much as I can into this for it to become a reality. The Toolbox/OS skills required to put it together is still way over my head, but I'd be glad to assist with the more general parts. (I'm also a graphic designer by profession so I can take care of the visual stuff )
Unless you manage to code it all by yourself @Crutch, perhaps we could make it a collaborative effort, if there is enough interest? It would be amazing to create a really polished extension for all versions of classic Mac OS.
To begin with, here's a basic algorithm:
* Regarding zoom rects:
I don't know if the algorithm is made available by the system, or if it's documented somewhere, but I'd guess it's proprietary and internal to the Finder. Anyway, I had to recreate it for the mock-up Since it's too quick to be able to discern the details directly (at least for me), I took some high speed footage and analyzed it (kind of amusing for a 25 mHz black and white system), and it's surprisingly complex. Here's how it appears to work:
Here's a combined photo of the animation sequence:
And here's a chart with the approximate acceleration/spacing:
I think this may be enough for one post
As I've mentioned in a few other posts, I'm using a PowerBook 170 with System 7.1 daily as one of my main computers. Over the years, I've added an assortment of system extensions to keep the system as up to date with modern interface enhancement as possible (like alt+tab and command+h for efficient application switching, proportional scroll bars etc.) to a point where it's now pretty much on par with modern systems for the things I use them for.
The only thing I'm really missing, is the Exposé/Mission Control feature for showing the desktop (probably the single most useful interface addition that has come with OS X, imho). It's the first thing I activate when I use a new computer, and I’ve been dreaming about having it on my PowerBook since shortly after it was introduced in Mac OS X 10.3.
I spent some time during the weekend to put together a visual mock-up of the implementation I've had in mind. (Entirely using Macromind Director 3 on my PowerBook, by the way ).
Basically, I'm thinking about a direct clone of the OS X implementation, but the way Apple likely would have implemented it if it had been conceived in the System 7 days:
View attachment Exposé mock-up.mp4
I've attached the original QuickTime video if anyone wants view it on real (black and white) hardware (it runs at the full 30 fps on my PowerBook).
I'd be happy to invest as much as I can into this for it to become a reality. The Toolbox/OS skills required to put it together is still way over my head, but I'd be glad to assist with the more general parts. (I'm also a graphic designer by profession so I can take care of the visual stuff )
Unless you manage to code it all by yourself @Crutch, perhaps we could make it a collaborative effort, if there is enough interest? It would be amazing to create a really polished extension for all versions of classic Mac OS.
To begin with, here's a basic algorithm:
- If triggered (by active screen corner or keyboard shortcut, as set up in control panel):
- Record/save the areas of all windows (including palettes/floating windows and irregularly shaped windows)
- Hide all windows
- Calculate angle/axis between center of window and center of screen for each window
- Calculate final positions of windows after moved along axises, with edges protruding 3 pixels into the screen (not including frame and shadow)
- Draw "zoom rects"* from current window positions to final positions
- Draw simplified (inactive) windows in final position
- If re-triggered, or if a mouse click occurs anywhere within 5 pixels from the screen's edges, or if one or more documents or applications are set to be opened from the Finder (and thereby leaving the Finder):
- Remove simplified windows
- Reverse "zoom rect" animation
- Restore windows
- If leaving the Finder, allow destination application/applications to activate and open any selected documents
* Regarding zoom rects:
I don't know if the algorithm is made available by the system, or if it's documented somewhere, but I'd guess it's proprietary and internal to the Finder. Anyway, I had to recreate it for the mock-up Since it's too quick to be able to discern the details directly (at least for me), I took some high speed footage and analyzed it (kind of amusing for a 25 mHz black and white system), and it's surprisingly complex. Here's how it appears to work:
- There are a total of 12 (or perhaps 11) medium grey rectangles in the animation (drawn, I believe, with the notPatXor transfer mode (same as for the outlines for dragging windows and documents anyway))
- 3 rectangles appear together on the screen at any one time
- The duration of the animation is ≈0,23 s (interestingly, I measured the exact same duration for the Exposé animation, so that seems like a suitable speed)
- The animation is not linear, but accelerated, so the rectangles are not linearly spaced (I'm not clear about the exact formula used, but Director's "accelerated/ease in" in-between animation function resulted in a pretty good approximation)
Here's a combined photo of the animation sequence:
And here's a chart with the approximate acceleration/spacing:
I think this may be enough for one post