Skip to content
Sbte edited this page Nov 27, 2011 · 7 revisions

Emesene GTK+3 porting guide

This page contains information about the in progress porting.

Important Note: gtk+2 and gtk+3: These two versions can't be used at the same time by a process, if that happens you got a crash.

Docs:

Python Gtk3 tutorial: http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html

GTk3 reference: http://developer.gnome.org/gtk3/3.0/ Version 3.2: http://developer.gnome.org/gtk3/3.2/

Old but still useful javascript introspection docs: http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/index.html

Automatic converting script (helps but quite incomplete): http://git.gnome.org/browse/pygobject/plain/pygi-convert.sh

Gtk3 Theme Changes (CSS themes):

GEdit Plugins (working code examples):

TASKS:

Porting Tasks:

  • Port all gtk code from gtkui and gui.common
  • Port Pango and cairo code to new dinamic bindings (hardest part)
  • Port Papyon to introspection. Can't mix static and dinamic bindings
  • Port indicators to gtk3
  • Port some e3.common bits to GObject dinamic bindings
  • Port plugins to Gtk3
  • Port the UnityLauncher to the UnityLauncherAPI (https://wiki.ubuntu.com/Unity/LauncherAPI)

Important things to be done in after the porting:

  • Replace HBox And VBox uses by Box.
  • Try to use new Grid control intead of complex Box nestings.
  • Replace GtkTable with GtkGrid
  • Add placeholder text to search textbox
  • replace set_alignment with set_halign/set_valign
  • Investigate Theme Changes (Custom css themes)

Clone this wiki locally