View Single Post
daperl's Avatar
Posts: 2,427 | Thanked: 2,986 times | Joined on Dec 2007
#36
Originally Posted by qole View Post
I wish they were using something fast and lightweight for rendering the Conversations window. As soon as you start tweaking the CSS of the page (for instance, to make speech bubbles), the rendering grinds to a crawl.

The smart guys over in the Customize N900 Conversations thread say that it is being rendered with a Gecko engine. Makes me wonder about the pervasiveness of the Gecko engine throughout the UI...
On the technical side, they probably had to go a route like this because all rows in the standard GTK list widgets have to be the same height. And you nailed it: It's a speed thing. These are inexcusable, but known weaknesses of GTK. But I'm still not sure using the Gecko engine was necessary. Currently, I'm recreating some of the mediaplayer functionalty, and I'm using JSON config files to expose Pango markup that I then use in a kind of variable argument printf statement. Here's a clip:

Code:
"list-store" : [
      {"type":"pixbuf",
       "value":["pixbuf","thumbnail-uri",5]},
      {"type":"text",
       "value":["<span size=\"13200\">%s\n","title",3,
                 "<span foreground=\"#a0a0a0\">%s</span></span>","duration",4]}]
I'm sure I could recreate the Conversations UI using a similar technique combined with GtkTables instead of GtkTreeViews. I also combine those JSON config files with GtkBuilder files. This leaves plenty of room for customization and fast scrolling. And no HTML/CSS overkill.
__________________
N9: Go white or go home