Animated/dynamic GUI

Has anyone had any experience with dynamic GUI ? (I have just invented this expression, so hopefully you will understand my point)

For example, animating the deployment of a new tab inside a window, upon a button click.

(any other animation of the controls inside a window count as well)

Has this been done ? What would be the best aproach ? Ideas ?


@Thom McGrath has done some stuff with animation, he has an Animation Kit on his website:

But keep in mind these kinds of animations only slow users down, which tends to annoy power users. The Xojo 2013 IDE had animations in the navigator that have since been removed for that very reason.

I might reconsider the animations you’re thinking about.

Good point Tim… I’ll consider it, though I am thinking about this only in very sporadic cases…

I’ll take a look at Thom’s work…

Thank you!

I’ve done a couple of animation tutorials over at

Never animated a tabbed window thou.

There’s two approaches to consider.

  1. Mac Only is to use CoreAnimation, this can provide nice smooth and fluid animations, it’s built right into the macOS. There are cravats, a). Core Animation uses a ‘flipped’ vertical rule to Xojo (it draws bottom up, instead of top down). b) It messes the Xojo co-ordinates from behind the scenes and without proper updating this causes view weirdness. c) For maximum fluidity you need to use Layer-Backed Views (triple buffering), for the most part work fine, but can cause some graphic glitches and weirdness.

  2. Native Xojo code, this is x-plat and when dealing with Xojo controls is the easiest. However, you must do some tricks to improve the speed of the redraw of Xojo controls, otherwise it makes it slow, jerky and unnatural. For the project I’m working on right now, I’m going down this route as I’m starting to utilize pure Xojo more so I can port my apps to Windows. I have a couple of ideas on how to simulate triple buffering to improve the responsiveness of the animation, but nothing tested yet.

The animations were already optional from day one, so it wasn’t about getting in the way of users.