Fairly large ITTSW checkin.
authorMatthew Judy <mjudy@ithinksw.com>
Sun, 13 Apr 2003 15:19:26 +0000 (15:19 +0000)
committerMatthew Judy <mjudy@ithinksw.com>
Sun, 13 Apr 2003 15:19:26 +0000 (15:19 +0000)
commit7c89200521dd8c6cb8fc8a17c633ac80d4b18bd2
tree24ac395f175fe13d8abeb96a2feca0942c07c745
parentf9ac1766dbe420e477be299e49b2d8f69cafe5ec
Fairly large ITTSW checkin.

- Created ITCutWindowEffect for simple appear and vanish without a
transition.  Better than using nil in the ITTSW.

- Moved the concept of effect progress out of the effects and into the
window itself, as a method in the ITWindowMobility protocol (formerly
known as ITWindowPositioning).

- Moved the logic to start the vanish timer into ITTSW's setVisibility
callback method.  If an effect sets the window's visibility to the
"Visible" state (having completely appeared, or completely canceled
vanishing), the timer will begin.

- Cleaned up a lot of code, and improved performance a bit.  Looks even
better than before on my old dual 450... who knows, it might be good on a
G3 :)

Stuff that's left in the Kit side of MT's statuswindows:

- Implement vanish timer.

- Finalize ITSlide*allyWindowEffect

- ( Warning... long. )
  Cancelling a window appearing should always use a reverse of the entry
effect.  But sometimes, a different effect may be desired for cancelling
a vanishing window than the reverse of the exit effect.  For example,
a window "Cuts" in, and begins to "Dissolve" out.  As of now, cancelling
the dissolve out will cause a very fast dissolve back in, however, to
match Apple's style, a simple "cut" back in would be desired.

  It's not as simple as always using an inverse of the entry effect to
cancel vanish.  Some effects are too radically different (consider trying to
cancel a "Pivot" exit with the inverse of a "SlideHorizontally".  It just
wouldn't work.

  Personally, i think it's actually better to keep the heuristic as it
is, and in the case of "Cut" in / "Dissolve" out, fuck the way Apple does
it... Ours looks better.  However, a third effect object could be
instantiated to handle the cancel vanish effect, which would be used for
that purpose if present.  This is a big maybe, and is definitely not a
showstopper for MT FCS.
ITCutWindowEffect.h [new file with mode: 0755]
ITCutWindowEffect.m [new file with mode: 0755]
ITDissolveWindowEffect.m
ITPivotWindowEffect.m
ITTransientStatusWindow.h
ITTransientStatusWindow.m
ITWindowEffect.h
ITWindowEffect.m
Showcase/Controller.m