DockletX

Posted by Julien on February 23rd, 2009

DockletX-Preview DockletX is a plugin for DesktopX that allows you to run ObjectDock docklets on your Desktop.

It implements the ObjectDock Docklet host interface and can load pretty much any docklets built for ObjectDock.

A few things are not implemented at this time:

  • Attention animations (such as glow or bounce)
  • Export (running as a gadget is not tested and might not be working properly)

 

Right now, only ObjectDock docklets are supported, but support for Y’z Dock and maybe AveDesk desklets is planned.

 

Download here.

.Net 2.0 support for ObjectDock

Posted by Julien on February 23rd, 2009

Runtime SDK-PreviewIt’s been available for some time from Wincustomize but I never did any big announcement. The old .Net  docklet for ObjectDock was compiled with .Net 1.0 and thus wasn’t working on newer version of the Framework. It also had problems on Vista with plugin registration which didn’t work with UAC on.

The new version is compiled with .Net 2.0 and should run correctly on Vista. I recently published a small update with support for ContextMenuStrip for docklet context menus, a check for older versions of the SDK so that docklets can specify a minimum supported SDK version and a workaround for the broken OnDropFiles in ObjectDock. There is also two new Host methods exposed (DoClickAnimation and RemoveSelf).

Download

The .Net 2.0 runtime docklet is available from Wincustomize and you can download it here.

Animator Script Component for DesktopX

Posted by Julien on February 1st, 2009

Preview I have this animation script I wrote 2 years ago for a widget (that I never finished), and I recently got back to work on a package tracking widget that is going to use some part of it. Still 70% of the script is never going to be used and I don’t want to throw it away, especially if it can help other people.

I’ve noticed a lot of questions on how to animate groups of objects, and everybody seems to write semi-custom code over and over. My script takes the form of a Script Component (an external script file you reference in your DesktopX script), which means it can be reused without cut&pasting dozens of lines of code every time.

Let me give you an example. In the script below Animator is the main object (already initialized, 3 lines of code, not of interest here). The last argument of each XXXAnim.Init methods is a callback that you can use to call a function when the animation is done. It’s especially interesting if you need to coordinate several complex animations. I’ve added variables so you can understand what each Init call does, but in practice the script would be a little bit simpler.


opacity = 75
length_fade = 1500
delay_fade = 500
toX = 300
toY = 300
length_move = 5000
delay_move  = 0
 
Set fadeAnim = CreateObject("DXScriptLibrary.FadeAnimation")
Set moveAnim = CreateObject("DXScriptLibrary.MoveAnimation")
 
fadeAnim.Init DesktopX.Object("My_Object_Layer"), opacity, length_fade, delay_fade, Animator.EaseNone, ""
moveAnim.Init DesktopX.Object("My_Object_Layer"), toX, toY, length_move, delay_move, Animator.EaseIn, ""
 
Animator.Add Array(fadeAnim, moveAnim)
Animator.Start

So, what this code does is prepare 2 animations with different length and start time, give them to the animator component and then start the animations. The Animator object will automatically manage the animations, starting each one after the delay (and of course fade will apply to all child objects). You can also add a new animation while the previous ones are playing, it will be handled transparently, adjusting delays and total animation length.

As a bonus, you can specify the easing type. In the example, the object will start to move slowly and speed up as it moves through the animation.

There are 4 different animation objects (Fade, Move, Rotate, Resize) and 5 types of easing (EaseIn, EaseOut, EaseInOut, EaseOutElasticBig, BackOut). Everything is in separate components with minimal dependencies, so adding new stuff is relatively easy should you wish to so (new easing types for example)

Download from here.