Friday 14 August 2009

Nodoka Rewrite – initial code builds and works

So, don't expect much. Just that I've finally got to making first piece of the Nodoka rewrite work. I've spent the whole day today figuring the GTK internals of button focus drawing and finally managed to get a result that works as I want it to work with all the gtkrc settings I can think of.

First, it's totally misleading that when interior focus is turned off, position and dimensions of widgets change (even though the canvas on which we draw remains same) between focused and unfocused states... Took me some time to figure out how exactly this happens and how to get rid of it from the point of view of drawing functions. All the GtkWidget::x/ythickness, GtkWidget::focus-line-width, GtkWidget::focus-padding and GtkWidget::interior-focus feels sort of like black magic to me… Also to preserve some compactness off the theme, while maintaining good configurability of the focus ring I've introduced focus_padding engine theme to allow bigger paddings for inner focus while maintaining same widget dimensions. I still need to handle the two different padding settings in style functions properly instead of letting the drawing functions handle it...

Well, to not only talk, here are some screenshots. As you see, nothing but button is implemented, so it's not really a good candidate for updating your gtk-nodoka-engine, but in case people want to try it or hack on it, the source is available.

Wednesday 12 August 2009

Echo New Icon GTK Ready

I've finally got the design from my previous blogpost implemented. Writing gtk applications in ruby is as fun as in C, but making the widgets behave (especially in terms of positioning/size) as I'd like them to seems unbelievably hard. My workflow was this time a bit different from usual, as I was just adding the widgets one by one, with the help of glade researched what to set and how in order to be where they are and when the layout was ready implemented the signals. LOL, the result file was, despite being only 150 lines long, pretty hard to read. >_< So next step was to properly outline the program design – most importantly I've prepared myself a diagram with widgets relations – and implement it. Of course, the source is now much more readable, but also a bit long – not counting the licence at the start, it's about 240 lines.

Next I was thinking what is the best way to present it to user. Burying it in menus is suboptimal, having to launch it by hand isn't exactly useful as well, but adding it to nautilus' pop-up menu (just like e.g. nautilus-open-terminal extension does) feels about right. The problem is, of course, that nautilus extensions can be written either in C or python, but my app is in ruby. The decision what do wasn't hard – writing ruby bindings to nautilus extensions is out of my league and I'd like to keep all the echo-artist scripts architecture independent if possible, so I went with python. I'd say I like ruby more, but at the same time I must emphasize that making conclusions based on 40 lines of code is out of question :-) The nautilus extension is available in git as well. Now, I've prepared packages for people who want to start using it already at put them in my fedorapeople space because I don't want to update the echo-artist package in Fedora repos until it is in good enough shape.

I've prepared a short screen-cast to showcase the new functionality:

Download the video to see in your favourite video player.

Sunday 9 August 2009

Echo New Icon GUI Script Design Idea

In Echo Project we strongly recommend to create new icon using the echo-icon-new script which does some of the work, that an artist would need to do, behind the scenes. Today I've started thinking about writing a GTK version of the script so that the usage would be even easier. Here's my initial design idea of the GUI (click to see in original size):


Now, two issues arise:
  • How good is this layout from usability POV?
  • As I've never done GTK app, how to actually create this layout, preferably in ruby?


Both feedback for the first question and help for the second question is appreciated.

Tuesday 4 August 2009

Constantine Wallpapers Package

UPDATE: The packages are now in koji. Per frequent request I've moved Constantine Statue to default from extras.

I've just put together initial packages for Fedora Constantine release. Their contents is based on the initial feedback we received on the design-list. The packages are on my fedorapeople page and this is what will your background selector have after installing both of them:

Feedback welcomed preferably on the design-list, alternatively you can comment in this blog post. To further clarify, the two wallpapers (mosiaco and underwater mosaic) that are included in the main package are our current candidates for the default wallpaper. Please note that they are very early work and in the final release will look a lot better ;-) The rest that is in the -extras package are wallpapers that we are considering as extras – in Fedora 12 we are going to include four additional wallpapers targeted at specific audiences.

Saturday 1 August 2009