SoC :: Ribbons :: Weekly Report #12

19 08 2007


The pencil is down, tomorrow is the official commit date for Summer of Code.

This week has been pretty productive. Since last week, the following stuff have been completed:

  • The gallery is now completed.
  • Popup gallery, a gallery can be expanded in a popup window. On the other side, I could not find a way to detect when the mouse click on another window in order to close the popup. Consequently, the popup is closed as soon as a tile is clicked.
  • I have implemented a toggle button, and created a BaseButton which is used to share methods common to both ToggleButton and Button.
  • ToolBox and FlowLayoutContainer have been completed. The former is used to layout child widgets across several rows, but all widgets receives the same height. This height corresponds to the height of the tallest child. The FlowLayoutContainer does not have that limitation, but is less space efficient when the height of the container is fixed (using HeightRequest).
  • The theme of Button has been greatly improved.
  • Several bug fixes.

I would like to say that the Summer of Code has been a fantastic experience. I would have liked to build a better sample application, but I have experimented more difficulties than expected while developing the library.

For those who worry about the platform compatibility, I have only tested it on two development desktops on Arch Linux, Linux 2.6, GNOME 2.18, One has Beryl, while the other does not.

I hope that I have answered to all questions in a meaningful way during the development. I know that I have not communicated much, except through weekly reports, but from my past experience with open source, I know that the Read The F****** Manual is a really important rule to let developers work instead of answering to dumb questions.

In the screencast below, you may notice flickering in the selected tile. I think it is a bug in Cairo because by replacing the following lines in Ribbon\Theme.cs:

LinearGradient grad = new LinearGradient (bodyAllocation.X, bodyAllocation.Y, bodyAllocation.X, bodyAllocation.Y + bodyAllocation.Height);
grad.AddColorStop (0.00, new Color (0.9922, 0.7373, 0.4353));
grad.AddColorStop (0.27, new Color (0.9961, 0.8039, 0.5569));
grad.AddColorStop (0.33, new Color (0.9961, 0.7255, 0.4078));
grad.AddColorStop (1.00, new Color (0.9843, 0.8980, 0.6313));
cr.Pattern = grad;
cr.Rectangle (bodyAllocation);
cr.Fill ();


cr.Color = new Color (0.99, 0.80, 0.50);
cr.Rectangle (bodyAllocation);
cr.Fill ();

The flickering vanishes.

A screenshot of the latest sample can be found at Ribbons-20070819

A screencast is available at

It is time to relax a little bit now šŸ˜€

Laurent Debacker.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: