Guadec-2010-Multitouch-mit-Gtk.png

Eine Menge Mäuse

Guadec 2010: Multitouch mit Gtk+

29.07.2010

Auf der Konferenz Guadec hat Carlos Garnacho vom Gnome-Spezialisten Lanedo GmbH gezeigt, wie sich mehrere Zeigegräte in Gtk+-Programmen verarbeiten lassen.

Eingangs stellte der Referent die beiden Szenarien vor, in denen mehrere Zeigegeräte existieren: Neben dem Multitouch mit mehreren Fingern auf einem Touchscreen und höchstens einer Tastatur gibt es auch Multiuser-Anwendungen wie den kollaborativen Editor Gobby. In diesem Fall existieren mehrere Benutzer mit je einem Tastatur-Zeiger-Paar.

Für beide Anwendungen eignet sich Xinput2, das maßgeblich von Peter Hutterer entwickelt wurde. Es verwendet eine Hierarchie von Tastaturen und Zeigegeräten, wobei es Master-Slave-Beziehungen sowie angebundene und ungebundene Zeiger gibt. Auf die Geräte dieser Hierarchie greift der Entwickler mittels Methoden der des Gimp Drawing Kit (GDK) zu, wie Garnacho anhand einiger Zeilen Code demonstrierte.

Im Unterschied zum klassischen Betrieb mit nur einer Maus erhalten nun viele Gtk+-Funktionen und Ereignisse als zusätzliches Argument das auslösende Gerät. Im Multitouch-Betrieb muss der Programmierer zudem ermitteln, welche Finger-Zeiger zur selben Gruppe gehören, wozu er Abstand und Winkel zwischen deren Events auswertet. Umdenken ist auch bei den Enter- und Leave-Ereignissen von Fenstern gefragt: Der erste Zeiger, der ein Fenster betritt, löst Enter, der letzte verlassende löst Leave aus. Auch der Grab auf ein Fenster muss bei Multitouch zwischen mehreren Zeigegeräten aufgeteilt werden.

guadec-2010-multitouch

Ein Fotoalbum diente Carlos Garnacho als eine der Beispielanwendungen für Gtk+-Multitouch.

Zu all diesen Aufgaben zeigte Carlos Garnacho Quelltext und ließ einzelne Demo-Programme laufen. Neben Code für das stabile Gtk+ präsentierte er immer wieder Funktionen aus dem experimentellen Zweig. Dieser Zweig namens "xi2-playground" ist im Gtk+-Repository des Gnome-Projekts zu finden. Damit Anwendungen funktionieren, ist zudem X.org in der Version 7.5 erforderlich. Ein Tipp aus dem Publikum bei der Guadec: Wer keinen Touchscreen besitzt, kann Multitouch-Anwendungen auch mit mehreren USB-Mäusen testen.

( Mathias Huber)