Introducing GeditOverlay/GeditAnimatedOverlay

5:27 pm Uncategorized

GeditOverlay is a new GtkContainer similar to GtkFixed but that only allows you to put the childs in specific positions, north-west/east, south-west/east etc. Apart from this, this container is based on the main-widget idea. Where all the requesitions and allocations are proxied from the main widget or relative widget attached.

The idea of this was in my summer of code when I decided to port the monodevelop’s animated popup to C. With the new solitudes that I had in the last weeks to make it animation-less we decided to improve it a little and create a GeditOverlay (without any animation) and GeditAnimatedOverlay that inherits from GeditOverlay and helps to provide animation specifics to the widgets implementing the GeditAnimatable interface.

To use this new widgets you can check it out from the gedit repository. The main classes are:

  • GeditOverlay: main container
  • GeditOverlayChild: this is the widget added to GeditOverlay. You will only want to create this widget if you want to animate it or make it themeable in some way. Usually you don’t have to care about it as GeditOverlay creates it for you if you are not passing one widget of this type.
  • GeditAnimatedOverlay: container inheriting from GeditOverlay where you can add widget implementing GeditAnimatable
  • GeditFloatingSlider: widget inheriting from GeditOverlayChild and implementing GeditAnimatable that provides a slide/in/out animation
  • NautilusFloatingBar: (this one in the nautilus repository) which inherits from GeditOverlayChild and provides a themed floating widget and loading visualizations

Also say that currently there are already a few applications using this: gedit, epiphany and nautilus and we hope to get it included in gtk+ 3.2

I would also like to thank Xan and Cosimo for all the help provided on making this code more polished and fixing a lot of bugs.

7 Responses

  1. Alexandre Franke Says:

    No screencast :( ?

  2. nacho Says:

    In my previous post you can find a screencast about it.

  3. Alexandre Franke Says:

    Oops, sorry then :$

  4. Stefan Kost Says:

    Hmm, the previous post is about “In the Python hackfest 2011″ and does neither contain a screencast :/

  5. nacho Says:

    http://blogs.gnome.org/nacho/2010/08/10/gsoc-weekly-report-11/ <- this one

  6. Iocane powder » Blog Archive » The Web comes to GNOME, ready or not Says:

    [...] a GtkInfobar to inform of session restoration, a Chrome-like floating statusbar (implemented with GeditOverlay) instead of the pixel-eating traditional GtkStatusbar, we let the old, big and hardcoded [...]

  7. The Web comes to GNOME, ready or not | Maemo Nokia N900 Says:

    [...] a GtkInfobar to inform of session restoration, a Chrome-like floating statusbar (implemented with GeditOverlay) instead of the pixel-eating traditional GtkStatusbar, we let the old, big and hardcoded [...]