This patch add the --enable-libmokoui2 configure flag to tangoGPS
that allows the usage of the openmoko-finger scroll feature in
gtk windows.

Author: Treviño AKA Marco Trevisan - mail@3v1n0.net

diff -ur tangogps-0.9.3.old/configure.in tangogps-0.9.3/configure.in
--- tangogps-0.9.3.old/configure.in	2008-08-25 10:22:44.000000000 +0200
+++ tangogps-0.9.3/configure.in	2008-09-10 17:50:21.000000000 +0200
@@ -27,6 +27,22 @@
 AC_SUBST(PACKAGE_CFLAGS)
 AC_SUBST(PACKAGE_LIBS)
 
+AM_CONDITIONAL(USE_OPENMOKO_UI, test "x$enable_libmokoui2" = "xyes")
+AC_ARG_ENABLE(libmokoui2,
+[AC_HELP_STRING([--enable-libmokoui2],
+	[compile with libmokoui2 support])],
+	enable_libmokoui2="$enableval", enable_libmokoui2="no")
+
+if test "x$enable_libmokoui2" = "xyes"; then
+	PKG_CHECK_MODULES(LIBMOKOUI2, [libmokoui2 >= 0.3], , )
+
+	if test "x$enable_libmokoui2" = "xyes"; then
+		AC_DEFINE(USE_OPENMOKO_UI, 1, [Define if we're using libmokoui2.])
+		AC_SUBST(OPENMOKO_UI_CFLAGS)
+		AC_SUBST(OPENMOKO_UI_LIBS)
+	fi
+fi
+
 
 dnl Set PACKAGE_LOCALE_DIR in config.h.
 if test "x${prefix}" = "xNONE"; then
diff -ur tangogps-0.9.3.old/src/interface.c tangogps-0.9.3/src/interface.c
--- tangogps-0.9.3.old/src/interface.c	2008-08-25 10:25:54.000000000 +0200
+++ tangogps-0.9.3/src/interface.c	2008-09-10 18:30:06.000000000 +0200
@@ -17,6 +17,10 @@
 #include "interface.h"
 #include "support.h"
 
+#ifdef USE_MOKOUI
+#include <moko-finger-scroll.h>
+#endif
+
 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
   g_object_set_data_full (G_OBJECT (component), name, \
     gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
@@ -350,12 +354,16 @@
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1);
   gtk_misc_set_padding (GTK_MISC (label1), 0, 15);
 
+#ifdef USE_MOKOUI
+  scrolledwindow6 = moko_finger_scroll_new ();
+#else
   scrolledwindow6 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+#endif
   gtk_widget_show (scrolledwindow6);
   gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow6);
   gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), scrolledwindow6,
                                       TRUE, TRUE, GTK_PACK_START);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 
   viewport4 = gtk_viewport_new (NULL, NULL);
   gtk_widget_show (viewport4);
@@ -659,11 +667,15 @@
   gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), hbox11,
                                       TRUE, TRUE, GTK_PACK_START);
 
+#ifdef USE_MOKOUI
+  scrolledwindow2 = moko_finger_scroll_new ();
+#else
   scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+#endif
   gtk_widget_show (scrolledwindow2);
   gtk_box_pack_start (GTK_BOX (hbox11), scrolledwindow2, TRUE, TRUE, 0);
   gtk_widget_set_size_request (scrolledwindow2, 475, -1);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
 
   viewport2 = gtk_viewport_new (NULL, NULL);
   gtk_widget_show (viewport2);
@@ -979,11 +991,15 @@
   gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), hbox30,
                                       TRUE, TRUE, GTK_PACK_START);
 
+#ifdef USE_MOKOUI
+  scrolledwindow1 = moko_finger_scroll_new ();
+#else
   scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+#endif
   gtk_widget_show (scrolledwindow1);
   gtk_box_pack_start (GTK_BOX (hbox30), scrolledwindow1, TRUE, TRUE, 0);
   gtk_widget_set_size_request (scrolledwindow1, 475, -1);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
 
   viewport1 = gtk_viewport_new (NULL, NULL);
   gtk_widget_show (viewport1);
@@ -2442,10 +2458,14 @@
   window4 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window4), _("unused cols"));
 
+#ifdef USE_MOKOUI
+  scrolledwindow4 = moko_finger_scroll_new ();
+#else
   scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_SHADOW_IN);
+#endif
   gtk_widget_show (scrolledwindow4);
   gtk_container_add (GTK_CONTAINER (window4), scrolledwindow4);
-  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_SHADOW_IN);
 
   treeview1 = gtk_tree_view_new ();
   gtk_widget_show (treeview1);
@@ -2777,10 +2797,14 @@
   gtk_widget_show (vbox33);
   gtk_container_add (GTK_CONTAINER (window6), vbox33);
 
+#ifdef USE_MOKOUI
+  scrolledwindow5 = moko_finger_scroll_new ();
+#else
   scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+#endif
   gtk_widget_show (scrolledwindow5);
   gtk_box_pack_start (GTK_BOX (vbox33), scrolledwindow5, TRUE, TRUE, 0);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
 
   viewport3 = gtk_viewport_new (NULL, NULL);
   gtk_widget_show (viewport3);
@@ -2881,11 +2905,15 @@
   gtk_box_pack_start (GTK_BOX (vbox28), label106, FALSE, FALSE, 7);
   gtk_misc_set_alignment (GTK_MISC (label106), 0, 0.5);
 
+#ifdef USE_MOKOUI
+  scrolledwindow3 = moko_finger_scroll_new ();
+#else
   scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow3);
-  gtk_box_pack_start (GTK_BOX (vbox28), scrolledwindow3, TRUE, TRUE, 0);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN);
+#endif
+  gtk_widget_show (scrolledwindow3);
+  gtk_box_pack_start (GTK_BOX (vbox28), scrolledwindow3, TRUE, TRUE, 0);
 
   textview1 = gtk_text_view_new ();
   gtk_widget_show (textview1);
@@ -3143,10 +3171,14 @@
   gtk_widget_show (vbox36);
   gtk_container_add (GTK_CONTAINER (window10), vbox36);
 
+#ifdef USE_MOKOUI
+  scrolledwindow7 = moko_finger_scroll_new ();
+#else
   scrolledwindow7 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow7), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+#endif
   gtk_widget_show (scrolledwindow7);
   gtk_box_pack_start (GTK_BOX (vbox36), scrolledwindow7, TRUE, TRUE, 0);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow7), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
 
   viewport5 = gtk_viewport_new (NULL, NULL);
   gtk_widget_show (viewport5);
@@ -3245,11 +3277,15 @@
   gtk_box_pack_start (GTK_BOX (vbox37), label124, FALSE, FALSE, 7);
   gtk_misc_set_alignment (GTK_MISC (label124), 0, 0.5);
 
+#ifdef USE_MOKOUI
+  scrolledwindow8 = moko_finger_scroll_new ();
+#else
   scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow8);
-  gtk_box_pack_start (GTK_BOX (vbox37), scrolledwindow8, TRUE, TRUE, 0);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_SHADOW_IN);
+#endif
+  gtk_widget_show (scrolledwindow8);
+  gtk_box_pack_start (GTK_BOX (vbox37), scrolledwindow8, TRUE, TRUE, 0);
 
   textview2 = gtk_text_view_new ();
   gtk_widget_show (textview2);
Solo in tangogps-0.9.3/src: interface.o
Solo in tangogps-0.9.3/src: .libs
Solo in tangogps-0.9.3/src: main.o
Solo in tangogps-0.9.3/src: Makefile
diff -ur tangogps-0.9.3.old/src/Makefile.am tangogps-0.9.3/src/Makefile.am
--- tangogps-0.9.3.old/src/Makefile.am	2008-06-04 21:50:59.000000000 +0200
+++ tangogps-0.9.3/src/Makefile.am	2008-09-10 18:22:54.000000000 +0200
@@ -7,10 +7,16 @@
 INCLUDES = \
 	$(PACKAGE_CFLAGS)
 
+if USE_OPENMOKO_UI
+OMUI_CFLAGS = $(LIBMOKOUI2_CFLAGS) -DUSE_MOKOUI
+OMUI_LDADD = $(LIBMOKOUI2_LIBS)
+endif
+
 AM_CFLAGS =\
 	 -DRELEASE -DHAVE_CONFIG_H\
 	 -Wall\
-	 -O2
+	 -O2 \
+	  $(OMUI_CFLAGS)
 
 bin_PROGRAMS = tangogps
 
@@ -50,5 +56,5 @@
 
 tangogps_LDADD =  \
 	$(PACKAGE_LIBS)\
-	 -lcurl -lgthread-2.0 -lgconf-2 -lsqlite3
+	 -lcurl -lgthread-2.0 -lgconf-2 -lsqlite3 $(OMUI_LDADD)
 
