Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: increasing height during back to front transition



Thanks for explaining this, especially the part about setting a global to prevent transitioncomplete from being called during reload.

How do I handle the case of running on Mac O X 10.4.2 or earlier? For example, after performTransition is called, I think that I need to do something like this:
if (sys10_4_2_OrEarlier)
setTimeout("transitioncomplete ();", 800);


Can 'sys10_4_2_OrEarlier' be set from JavaScript or do I need to set it using a widget plugin? Is there a way to reliably determine if the widget object implements ontransitioncomplete?

For the case of running 'Mac OS X 10.4.3' or later, transitioncomplete should be called automatically because of this line:
widget.ontransitioncomplete = transitioncomplete


Thanks,
Chuck


At 11:54 AM -0800 11/5/05, John Louch wrote:
On 10.4.3 and later you can do the following:

widget.ontransitioncomplete = transitioncomplete

function transitioncomplete () {
 // do whatever
}

Note, there is a bug in the implementation where it will be called when you
reload your widget as well.  So you may want to protect the method by
setting a global when you do a transition.

Thanks,
jl


 Hi Matt,

That solution works great. Thanks. I had actually tried that but I didn't use
enough milliseconds.


I now have a workable solution, yet it would be really nice if the height
> increase could be applied before 'window.widget.performTransition();' so that
the resizing of the widget would not be visible to the user. Seeing the widget
snap to its former size after back to front transition kind of looks like a
design flaw. Do you see what I mean? Should there be an enhancement request
for for resizing before performTransition? Or, would having a
"transitionFinished" notification make the resize much less visible because of
the improved timing?


 Thanks,
 Chuck


At 2:40 PM -0800 11/4/05, Matt Drance wrote:
 Hi Chuck,

You can use the Stretcher example to get to the correct size before the
transition. Since the Stretcher has a callback for a completed stretch, you
can do the following:


 1) info button click starts the stretch
 2) stretch to desired size; stretch callback performs transition

 function flipClick (event) {
         if (!stretcher.isStretched()) {
               stretcher.onFinished = showPrefs;
               stretcher.stretch();
         } else {
               showPrefs();
        }
 }

function showPrefs () {
if (window.widget) {
window.widget.prepareForTransition("ToBack");
}
document.getElementById("front").style.display = "none";
document.getElementById("back").style.display = "block";
if (window.widget) {
setTimeout("window.widget.performTransition()", 0);
}
}



When going back to the front, you can do a delayed "shrink" that will go back
to the appropriate front height after the front transition is complete, like
below. This is a little sketchy because it assumes a specific time interval
for the transition to be performed. There is already an enhancement request
for a "transitionFinished" notification which would make this less sketchy.


function goToFront () {
if (window.widget) {
window.widget.prepareForTransition("ToFront");
}
document.getElementById("back").style.display = "none";
document.getElementById("front").style.display = "block";


>> var stretcherTimeout = 0;
         if (window.widget) {
               setTimeout("window.widget.performTransition();", 0);
               stretcherTimeout = 800; // give some time for the transition
        }
         if (stretcher.onFinished == showPrefs && stretcher.isStretched()) {
                // We stretched in order to show the prefs; shrink back when
>> the front is shown
stretcher.onFinished = returnFrontState;
>> setTimeout("stretcher.stretch();", stretcherTimeout);
        }
 }

 ----------------------------------------------
 Matt Drance
 DTS Engineer
 Java - Dashboard - Address Book
 email@hidden


On Nov 4, 2005, at 2:09 PM, Chuck Soper wrote:

 This message is a little long - feel free to just read the last paragraph.

 I have a widget has a variable height on the front and a fixed height for
 the backside. When the front is taller than the back, I have a problem
 flipping the widget from back to front.

It doesn't appear to be possible to increase the height of the widget before
preparing or performing the transition from back to front. Because of this,
the flip transition is not smooth at all. I see the first half of the back
to front transition animation then the front suddenly appears.


The work-around to this problem is to use the same height for the front and
the backside whenever the front is taller than the back. This is the
approach that the Stocks widget takes. The purpose of the
resizedWhenFlippedOver boolean in Stocks.js is to remember when the front is
shorter than the back otherwise the height of the backside is not resized
during front to back transitions. This can be verified by doing the
following:
- use seven or more stock symbols.
- flip the Stocks to its backside.
- mouse down on the widget and deactivate the dashboard to bring the widget
to the desktop (you need to have debugmode turned on).
- Capture the window using Grab.
Notice that the height of the backside graphic equals the height of the
front side.


The reason that I don't want to use this work-around is because I need to
have backside elements that are offset from the bottom of the widget not the
top.


Is it possible to increase the height of the widget during back to front
transition and have smooth animation of the flip? The fact that the Stocks
widget uses a special case to avoid that scenario suggests that this is not
possible. Does anyone know otherwise? If not, I can file a bug report.


 Chuck
 _______________________________________________
 Do not post admin requests to the list. They will be ignored.
 Dashboard-dev mailing list      (email@hidden)
 Help/Unsubscribe/Update your Subscription:
 http://lists.apple.com/mailman/options/dashboard-dev/email@hidden
 <http://lists.apple.com/mailman/options/dashboard-dev/email@hidden>

This email sent to email@hidden


  _______________________________________________
 Do not post admin requests to the list. They will be ignored.
 Dashboard-dev mailing list     (email@hidden)
 Help/Unsubscribe/Update your Subscription:
 http://lists.apple.com/mailman/options/dashboard-dev/email@hidden

This email sent to email@hidden



_______________________________________________ Do not post admin requests to the list. They will be ignored. Dashboard-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/dashboard-dev/email@hidden

This email sent to email@hidden


--------------------------------------------------
John Louch         Internet #: email@hidden
(805) 541 2965


_______________________________________________ Do not post admin requests to the list. They will be ignored. Dashboard-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/dashboard-dev/email@hidden

This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Dashboard-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/dashboard-dev/email@hidden

This email sent to email@hidden
References: 
 >Re: increasing height during back to front transition (From: John Louch <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.