Older blog entries for kristian (starting at number 26)

Work on my whirl2il thing is progressing:

kris@rainbow-colored-lizard:/tmp$ cat > foo.c
static int get_return_val (void)             
        return 23;
int main (void)
        int i = get_return_val ();
        return i;
kris@rainbow-colored-lizard:/tmp$ /source/open64/osprey1.0/targia32_ia64_nodebug/gccfe/gfec foo.c > /dev/null
kris@rainbow-colored-lizard:/tmp$ ~kris/projects/whirl2il/whirl2il foo.B > foo.il
kris@rainbow-colored-lizard:/tmp$ cat foo.il 
.module 'foo.B'
.method public static int32 get_return_val() cil managed {
        ldc.i4 23
.method public static int32 main() cil managed {
        .locals init (
                int32 i
        call int32 get_return_val()
kris@rainbow-colored-lizard:/tmp$ ilasm foo.il
Assembling 'foo.il' , no listing file, to exe --> 'foo.exe'
Compilation succeeded
kris@rainbow-colored-lizard:/tmp$ mono foo.exe
kris@rainbow-colored-lizard:/tmp$ echo $?

A lot of things changed. Didn't touch gtk+ for months, and I am not really interested in GNOME hacking anymore. Though I might come back at some point. Meanwhile I hacked on a personal project, but I got bored with that too for a bit (but I will surely continue with it one day).

I finally have a new project to work on. First I wanted to write a GTK-based tagtool in C#. But for that I need C# bindings for taglib. I was wondering if there was an automatic C++ to C# binding generator yet, but apparently there isn't. Then Miguel talked me into writing a WHIRL to IL translator, which sounds really interesting. So I am just going to try it. So that is my new project. Once I finish it, I can write my tagtool-thing.

Also, for some reason I started to like OSX on my iBook so much (I used to really hate it before) that I decided to reinstall my iBook with one big OSX partition, instead of dual boot OSX/debian. Now I also want a desktop Mac. I guess I will buy a dual G4 or a G5 one day.

There are plans to attend both GUADEC and Akademy this year. But I am not really sure yet.

Long time no update blah blah blah. Had fun holidays; made exams; etc. I have nothing more interesting to tell except that I am going to take a break from GNOME for an undecided amount of time.

11 Oct 2003 (updated 11 Oct 2003 at 15:34 UTC) »

Still busy with university and jobs blah blah blah.

Did manage to get all my new objects/widgets in GTK+ HEAD and write API doc comments for them. Which I am happy about. I also got some good feedback from mpesenti, who is the first victim to try to use GtkComboBoxEntry and GtkEntryCompletion. He also had a lot of good feedback when I was trying to design the entry combo/completion part of the combo box/option menu replacement, which I really appreciate. I think we made the completion stuff rock.

Since all my new stuff is in, I hope to get back to TreeView. I have too many plans for TreeView for 2.4. I need to make a good list first and punt a lot.

One of the reasons why GtkComboBox is cooler than GtkOptionMenu :) :

!  1 files changed, 4 insertions(+), 14 deletions(-)
Index: textview.c
RCS file: /cvs/gnome/gtk+/demos/gtk-demo/textview.c,v
retrieving revision 1.18
diff -u -p -r1.18 textview.c
--- textview.c  5 Aug 2003 19:16:01 -0000       1.18
+++ textview.c  10 Oct 2003 17:15:50 -0000
@@ -399,21 +399,11 @@ attach_widgets (GtkTextView *text_view)
       else if (i == 1)
-          GtkWidget *menu_item;
-          GtkWidget *menu;
+          widget = gtk_combo_box_new_text ();
-          menu = gtk_menu_new ();
-          widget = gtk_option_menu_new ();
-          menu_item = gtk_menu_item_new_with_label ("Option 1");
-          gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-          menu_item = gtk_menu_item_new_with_label ("Option 2");
-          gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-          menu_item = gtk_menu_item_new_with_label ("Option 3");
-          gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-          gtk_option_menu_set_menu (GTK_OPTION_MENU (widget), menu);
+          gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 1");
+          gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 2");
+          gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 3");

[edit: I forgot some google-fu for Jonathan Blandford.]

Time to update this thing again. I've been busy (jobs and university) so forgot to update this. But I didn't have much to tell anyway.

Anyway, I managed to fix a good bunch of TreeView bugs for GTK+ 2.2.3. Almost all TreeView bugs which were possible to fix in a stable release got fixed ;). The Leftovers are for GTK+ 2.4.x. But of course I managed to screw up a tiny thing, so I ended up rolling a GTK+ 2.2.4. I even fixed a menu scrolling problem when I was bored.

So right now I spend most of my free time working on GTK+ 2.4.x. This week I committed my table menu patch and my patch which fixes up DnD in TreeView. Single row DnD finally works right (for example TreeStore reordering was broken and you couldn't drop rows on empty views ...). I guess I should also try implementing multi-row DnD for 2.4. When I have time that is.

Now the table menu patch is in I should work on getting the combo box ready to land. I also wrote the fixed height optimization patch for TreeView, which seems to help a lot. That will probably land this weekend or otherwise somewhere next week. All other new bits in GTK+ 2.4.x are shaping up too. Which is pretty exciting.

Though I hope I will have enough time to hack on GTK+ 2.4. Two sysadmin jobs next to university require a good amount of time ...

aes: The problem you are describing is not a gtk+ bug :). What happens is that GtkButton puts a (button-spanning) input-only window over the button. If you put buttons inside a button, they will never receive events, because all of those are being catched by the button-spanning input-only window of the "parent button".
14 Jul 2003 (updated 14 Jul 2003 at 21:49 UTC) »

More GTK+ hacking. Wrote more GtkTreeView patches. It looks like they are going to get reviewed today. Then I will land all of it and GtkTreeView will be okay for 2.2 (a bit late, but oh well). I guess I need to get Owen to let me do a release :)

Also landed GtkTreeModelFilter, GtkCellLayout and GtkEntryCompletion in gtk+ HEAD last Friday. The new combobox will follow this week. After that I will work on new features for GtkTreeView.

Projects for the holiday: write gcachegrind, finish the treeview document I was working on, hack on treeview features. Hrm. I hope I can fill 3 weeks with that. Maybe need to come up with some more.

Oh, and I'm still updating my LiveJournal. Never expected I would sort of keep it up to date :).

I should have studied today. But I didn't. So I will do it tomorrow.

If there's time left tomorrow, I will probably start working on my "GtkTreeView architectural reference". Not sure how it is going to look like. It will probably help people in understanding GtkTreeView. However, I do know that it is not going to look like a tutorial, but more like a guide describing the design.

Today was really boring... And I didn't feel like fixing bugs.

I don't know how anymore, but somehow I discovered #commits on FreeNode (I was prolly hinted at GIMPnet). #commits is such a cool idea. I nicked it, and set up a #commits on GIMPnet. Some GNOME hackers and users seem to like the new service, which is good. Kudos to the people who set up #commits at FreeNode.

Then my new GNOME About dialog ended up in GNOME cvs HEAD. Because people seemed to like it. I find it really cool that it got in.

After that I finally took some time to install kcachegrind. What a wonderful tool. I finally understood how to use all those lists and numbers to actually make stuff faster. Kcachegrind visualizes the information very good, especially the source code view totally rocks. I guess I need to write a GUI like this for GTK+ now. Might do it when I am on holiday, because I won't have a real netconn. People suggested me to write it in Python, so I will have to read my book on python first.

Work on my new gtk+ 2.4 features steadily continues. The API for the new ComboBox is about to be finalized. The end result will look really clean (thanks to a bunch of input from Owen and Havoc), it took a long time to get to that, but I'm sort of proud of it actually :). The last days I've been working on the completion mechanism for GtkEntry. That API will also be nice and clean (thanks to input from Owen). I wouldn't have been able to come up which such nice and clean APIs myself. After some GtkTreeModelFilter (another of my 2.4 features :) optimizations, the completion code is fast enough to be really usable.

Somewhere this week, I should put up a list of planned GtkTreeView features for gtk+ 2.4 on the gtk+ 2.4 planning site.

It looks like I will land a not insignificant amount of code in gtk+ 2.4. Something what I find pretty cool and exciting. I finally start to feel useful.

I have been a bit busy partying. But it all settled now (only for a short while hopefully, the more parties the better P:).

Hacking-wise, I spent some time hacking on the new combo box. It's shaping up. Am about to tackle the last difficult bit, which is auto-completion for GtkEntry. Not really sure still which way to take, but I am just going to try sending a proposal and see what people think.

Also did a small hack over the weekend, a new gnome-about dialog. jdub inspired me to do it and came up with the idea to make it look like the new GNOME website. Showed it to some people and most seem to like it. I need to do a bit of work to make the animations a bit smoother, but that's all just finetuning. Oh, and because of it I made to the GNOME Summary. Which is cool I guess.

Talked enough for today.

17 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!