Xfce Wiki

Sub domains

Gtk 2-to-3 Migration Guide

Gtk Symbol Check

  • Python script that checks your C source code for deprecated symbols and lists them
  • Enables you to quickly assess the TODO for a Gtk3 port
  • Usage: “python3 GtkSymbolCheck.py –gtk_version 3.14 –hide-not-found $folder”

Deprecations until Gtk3.14

  • GTK_STOCK: Use normal translatable strings and icons instead.
  • Starting with gtk+-3.10 (by this commit), menu accelerators can no longer be changed with gtk-can-change-accels. Possible alternatives yet to be considered: Reimplement that code in custom GtkImageMenuItem, or use a separate dialog like other apps do (using GtkCellRendererAccel and gtk3-Accelerator-Maps). This especially affects thunar which uses this functionality to assign shortcuts to custom actions. If we only want to support this and not editing all other accels, it would be enough to provide a shortcut assign button in the custom actions configuration dialog.
Old Widget New Widget
GtkAlignment None. Use padding and margin in GtkWidget (e.g. GtkBox with margin-start)
GtkHBox GtkBox
GtkHButtonBox GtkButtonBox (might be deprecated in one of the next releases)
GtkHScale GtkScale
GtkImageMenuItem GtkMenuItem, packed with GtkBox that holds GtkImage and GtkLabel
GtkTable GtkGrid
GtkVBox GtkBox
GtkVScale GtkScale

New Widgets in Gtk3 that we might want to use

  • GtkListBox (e.g. for settings; is searchable)
  • GtkStack (as replacement for GtkNotebook in some contexts)
  • GtkSwitch (instead of GtkCheckButton in some cases)
  • GtkPopover for simple single-button menus