Animating GtkVBox

Using a GtkVBox widget is the most common way to show and hide objects in a GTK+ application.
However, the current behavior sometimes feel like watching a illusionist perform a show. Things suddenly appear and disappear in and out of thin air.
Therefore Hagen decided to create some code to animate the GtkVBox widget in these situations.

Hagen describes the process in his blog:

“First I derived from so the original implementation is not touched directly. Then I slightly modified the size_alloc function by saving the computed GtkAllocations and removing direct calls of gtk_widget_size_allocate. I modified add and remove so I can start the animation at the right time. I also added a function called my_vbox_pack_start_n which inserts a widget at a given position so one is able to preserve the original packaging order. You trigger the animation by simply adding or removing widgets to the vertical box as usual.”

You can also watch the higher quality ogg file.

Eager to try it out?
git clone git://github.com/troja84/af.git
and see the files:
tests/myvbox_a.h, tests/myvbox_a.c ,tests/test-vbox-animated.c

more animations

Now with actual GTK+ widgets instead of just pictures.

Slider animation

Hagen Schink, who currently does his internship here at Imendio is looking into bringing animation to GTK+, building upon the work of Carlos animation framework.

Here is a preview of his current experiments:



You can check out his animation framework branch that contains the code of slider app with:
git clone git://github.com/troja84/af.git

And for Carlos Master branch: git clone git://git.imendio.com/carlos/animation-framework.git

Getting the timing of your animations right

Timing is everything, and when dealing with animations it’s crutial to get it right.

Check out Robert Penner’s easing demo to test what works best for you.

Introducing Devhelp Assistant

Richard recently added a cool function to Devhelp trunk, which makes Emacs extra helpful when coding, always showing you the documentation you need. It should work well with all gtk-doc generated reference docs (like GTK+ & friends).

Watch the screencast
Watch the screencast.

You can get hold of devhelp trunk using:
svn co http://svn.gnome.org/svn/devhelp/trunk devhelp
Note that Devhelp trunk requires webkit instead of gecko.

buglist.py - an easier way to handle bug lists

Writing bug lists usually means lots of browsing through bugzilla web interfaces and endless copy & pasting.

Tim decided to do something about it, so here is buglist.py (v0.4)

It knows a good number of bugzillas, such as the ones from GNOME, FreeDesktop, Maemo, Nokia, OpenedHand, GCC, LibC and Mozilla. More bugzilla URLs can easily be added, and it handles HTTPS authentication that some of the corporate bugzilla installations require.

This is how it works in action:

    echo "junktext 556578 moretext 516885 " | buglist.py gnome
    http://bugzilla.gnome.org/buglist.cgi?bug_id=516885,556578
     516885 - Add RGBA support
     556578 - GIMP windows stay on top of other windows

The Manju Project

Widget theming have been a tricky beast for way too long. The designers, the ones who are experts in look and feel, currently find it way too hard. We hope to change this.
The Manju project aims at creating graphical widget toolkit themes from SVG files in a toolkit independent fashion.
It combines the idea of a pixmap theme engine, Jimmac’s “One Canvas Workflow”, SVG markup features and Inkscape export functionality to fully automate the creation of a scalable and stretchable pixmap theme from an SVG source.

Announcing the GTK+ OS X framework

We’re happy to announce the GTK+ Framework for Mac OS X. This means getting started with GTK+ development on your Mac is as easy as saying 1, 2, 3!

Just download the framework, install it, launch XCode and you’re ready to go!

You can find the latest version of the installer on our GTK+ on OS X website.

Launching the Imendio Laboratories

Welcome to the Imendio Laboratories!

Here we will blog about our ongoing software experiments and other stuff we find interesting.