Opened 14 years ago

Closed 14 years ago

#1613 closed Enhancement (invalid)

Use GtkBuilder to design user interface

Reported by: LucaFerretti Owned by: charles
Priority: Normal Milestone: None Set
Component: GTK+ Client Version: 1.41
Severity: Minor Keywords:


Starting from version 2.12, GTK+ provides the ability to build user interface from an XML definition, see GtkBuilder. It's like the old, good libglade, but better and directly integrated in GTK+.

IMHO could be interesting use GtkBuilder in Transmission, in order to separate the UI design from code at least for various Transmission dialogs.

I can work on this, 'cause GtkBuilder could be also really useful for ticket #1561 (better a11y support): many a11y issues could be directly resolved in XML UI description.

The only problems I can see are:

  • Recent GTK+ - Transmission is very conservative in using recent stuff, the currently used GTK+ version is 2.6, we should jump to 2.12. However GTK-2-12 was released on September 2007, I think it's old enought to be available on distros.
  • Latest Glade3 - In order to produce a valid XML UI description you need the latest Glade3 available. Well, you could write XML files by hand, by a RAD tool is better, I suppose :) But note this is a development-side issue, not a run- or compile-time issue: you need latest glade only to ensure to have proper XML UI files, because previous glade3 versions had some issue saving GtkBuilder files.

So, is it OK to start porting Transmission to GtkBuilder now (before fix a11y stuff), or we'll never use GtkBuilder (building all UI in C code)?

Change History (4)

comment:1 Changed 14 years ago by LucaFerretti

Other problem:

  • GTK+ 2.12 requires glib 2.14 - So we should increase GLIB_MINIMUM too.

comment:2 Changed 14 years ago by charles

  • Type changed from Bug to Enhancement

What problem does this solve?

comment:3 Changed 14 years ago by charles

To answer your question about #1561, I'd really rather see patches for that directly. Transmission's low requirement for gtk/glib versions is intentional.

comment:4 Changed 14 years ago by charles

  • Resolution set to invalid
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.