## Migrating from libglade to GtkBuilder

Since version 2.12, GTK+ provides GtkBuilder to construct user interfaces from XML descriptions, similar to the functionality provided by GladeXML in the libglade library.

A good way to start a migration from libglade to GtkBuilder is to run the gtk-builder-convert utility on your glade file, and inspect the resulting output. If your code uses the `root` parameter of `glade_xml_new()`, you may want to split your glade file into multiple GtkBuilder files by using the `--root` option of gtk-builder-convert.

While GtkBuilder strives to be a complete replacement for libglade, there are a number of areas where it is currently still behind libglade:

- GtkBuilder can not construct partial trees, it lacks the equivalent of the `root` parameter of `glade_xml_new()`. Due to the way GtkBuilder parses its input, this is difficult to implement, see bug 447998. As a workaround, you can split your glade file into multiple GtkBuilder input files using the `--root` that was mentioned above.

- GtkBuilder does not yet implement support for accessibility properties. It parses the same <accessibility> elements as libglade, but ignores them. See bug 454983 for the current status of accessibility support in GtkBuilder.

- GtkBuilder supports context information in translatable properties in a slightly different way than libglade. Intltool does not yet support this; see bug 454894 for the current status of intltool support for GtkBuilder files. Thankfully, context in translations is a rarely used feature, and if you are not using it, intltools glade format support works just fine for GtkBuilder files.

More details about migrating from libglade to GtkBuilder will appear here over time...