gpointing-device-settings r8 - in trunk: . data modules po src test



Author: hiikezoe
Date: Wed Feb 25 06:51:55 2009
New Revision: 8
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=8&view=rev

Log:
added UI for touchpad from GSynaptics.

Added:
   trunk/data/touchpad.ui
   trunk/modules/gpds-touchpad-ui.c
      - copied, changed from r7, /trunk/modules/gpds-trackpoint-ui.c
Modified:
   trunk/.gitignore
   trunk/data/Makefile.am
   trunk/modules/Makefile.am
   trunk/modules/gpds-trackpoint-ui.c
   trunk/po/POTFILES.in
   trunk/src/gpointing-device-settings.c
   trunk/test/gpds-test-suite.c
   trunk/test/run-test.sh
   trunk/test/test-module.c
   trunk/test/test-ui.c

Modified: trunk/.gitignore
==============================================================================
--- trunk/.gitignore	(original)
+++ trunk/.gitignore	Wed Feb 25 06:51:55 2009
@@ -21,6 +21,6 @@
 mkinstalldirs
 po/Makefile.in.in
 po/POTFILES
-po/gtrackpoint.pot
+po/gpointing-device-settings.pot
 po/stamp-it
 src/gpointing-device-settings

Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am	(original)
+++ trunk/data/Makefile.am	Wed Feb 25 06:51:55 2009
@@ -1,4 +1,6 @@
 uidir   = $(datadir)/$(PACKAGE)/ui
-ui_DATA = trackpoint.ui
+ui_DATA = 		\
+	trackpoint.ui	\
+	touchpad.ui
 
 EXTRA_DIST = $(ui_DATA)

Added: trunk/data/touchpad.ui
==============================================================================
--- (empty file)
+++ trunk/data/touchpad.ui	Wed Feb 25 06:51:55 2009
@@ -0,0 +1,1653 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">4</property>
+    <property name="lower">0</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">550</property>
+    <property name="lower">50</property>
+    <property name="page_increment">100</property>
+    <property name="step_increment">100</property>
+    <property name="page_size">0</property>
+    <property name="value">100</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="upper">-5</property>
+    <property name="lower">-255</property>
+    <property name="page_increment">50</property>
+    <property name="step_increment">50</property>
+    <property name="page_size">0</property>
+    <property name="value">-5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="upper">-5</property>
+    <property name="lower">-255</property>
+    <property name="page_increment">50</property>
+    <property name="step_increment">50</property>
+    <property name="page_size">0</property>
+    <property name="value">-5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment5">
+    <property name="upper">-30</property>
+    <property name="lower">-330</property>
+    <property name="page_increment">60</property>
+    <property name="step_increment">60</property>
+    <property name="page_size">0</property>
+    <property name="value">-30</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment6">
+    <property name="upper">200</property>
+    <property name="lower">0</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">40</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment7">
+    <property name="upper">1000</property>
+    <property name="lower">0</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">100</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment8">
+    <property name="upper">1000</property>
+    <property name="lower">0</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">900</property>
+  </object>
+  <object class="GtkLabel" id ="main-widget-label">
+    <property name="visible">True</property>
+    <property name="label" translatable="yes">TouchPad</property>
+  </object>
+  <object class="GtkVBox" id="main-widget">
+    <property name="visible">True</property>
+    <property name="homogeneous">False</property>
+    <property name="spacing">0</property>
+    <child>
+      <object class="GtkNotebook" id="prefs_widget">
+        <property name="border_width">5</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="show_tabs">True</property>
+        <property name="show_border">True</property>
+        <property name="tab_pos">GTK_POS_TOP</property>
+        <property name="scrollable">False</property>
+        <property name="enable_popup">False</property>
+        <child>
+          <object class="GtkVBox" id="vbox18">
+            <property name="border_width">12</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkFrame" id="touchpad_frame">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment12">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">6</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkVBox" id="touchpad_box">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">0</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox19">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="label44">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">_Sensitivity: </property>
+                                <property name="use_underline">True</property>
+                                <property name="use_markup">False</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="mnemonic_widget">sensitivity_scale</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label39">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Low&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHScale" id="sensitivity_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="draw_value">False</property>
+                                <property name="value_pos">GTK_POS_TOP</property>
+                                <property name="digits">1</property>
+                                <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+                                <property name="inverted">False</property>
+                                <property name="adjustment">adjustment1</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label40">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;High&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkCheckButton" id="touchpad_check">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <property name="active">False</property>
+                    <property name="inconsistent">False</property>
+                    <property name="draw_indicator">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label46">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Enable _Touchpad&lt;/b&gt;</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">True</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="tab_expand">False</property>
+            <property name="tab_fill">True</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label34">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">General</property>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkVBox" id="tapping_vbox">
+            <property name="border_width">12</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkFrame" id="tapping_frame">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment3">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">6</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkVBox" id="tapping_box">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="label31">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Tapping time: </property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">False</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label25">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Short&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHScale" id="tapping_time_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="draw_value">False</property>
+                                <property name="value_pos">GTK_POS_TOP</property>
+                                <property name="digits">0</property>
+                                <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+                                <property name="inverted">False</property>
+                                <property name="adjustment">adjustment2</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label26">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Long&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="faster_tapping_check">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Enable _faster tapping</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkCheckButton" id="tapping_check">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <property name="active">False</property>
+                    <property name="inconsistent">False</property>
+                    <property name="draw_indicator">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label47">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Enable _Tapping&lt;/b&gt;</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_markup">True</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="tab_expand">False</property>
+            <property name="tab_fill">True</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label2">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">Tapping</property>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_CENTER</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkVBox" id="scrolling_vbox">
+            <property name="border_width">12</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment8">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">6</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox19">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkCheckButton" id="vertical_scroll_check">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Enable _vertical scrolling</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="vertical_scroll_box">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="slow_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Slow&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">1</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHScale" id="vertical_scroll_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="draw_value">False</property>
+                                <property name="value_pos">GTK_POS_RIGHT</property>
+                                <property name="digits">1</property>
+                                <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+                                <property name="inverted">False</property>
+                                <property name="adjustment">adjustment3</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="fast_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Fast&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="horizontal_scroll_check">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Enable _horizontal scrolling</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="horizontal_scroll_box">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="low_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Slow&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">1</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHScale" id="horizontal_scroll_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="draw_value">False</property>
+                                <property name="value_pos">GTK_POS_TOP</property>
+                                <property name="digits">0</property>
+                                <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+                                <property name="inverted">False</property>
+                                <property name="adjustment">adjustment4</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="high_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;i&gt;Fast&lt;/i&gt;</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="circular_scroll_check">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Enable Ci_rcular scrolling</property>
+                            <property name="use_underline">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                            <property name="active">False</property>
+                            <property name="inconsistent">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="circular_scroll_box">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox25">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label21">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">&lt;i&gt;Slow&lt;/i&gt;</property>
+                                    <property name="use_underline">False</property>
+                                    <property name="use_markup">True</property>
+                                    <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">1</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                    <property name="width_chars">-1</property>
+                                    <property name="single_line_mode">False</property>
+                                    <property name="angle">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHScale" id="circular_scroll_scale">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="draw_value">False</property>
+                                    <property name="value_pos">GTK_POS_TOP</property>
+                                    <property name="digits">0</property>
+                                    <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+                                    <property name="inverted">False</property>
+                                    <property name="adjustment">adjustment5</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label22">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">&lt;i&gt;Fast&lt;/i&gt;</property>
+                                    <property name="use_underline">False</property>
+                                    <property name="use_markup">True</property>
+                                    <property name="justify">GTK_JUSTIFY_CENTER</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                    <property name="width_chars">-1</property>
+                                    <property name="single_line_mode">False</property>
+                                    <property name="angle">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label45">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Start point of circular scrolling:</property>
+                                <property name="use_underline">False</property>
+                                <property name="use_markup">False</property>
+                                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                <property name="wrap">False</property>
+                                <property name="selectable">False</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xpad">0</property>
+                                <property name="ypad">0</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                <property name="width_chars">-1</property>
+                                <property name="single_line_mode">False</property>
+                                <property name="angle">0</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment11">
+                                <property name="visible">True</property>
+                                <property name="xalign">0.5</property>
+                                <property name="yalign">0.5</property>
+                                <property name="xscale">1</property>
+                                <property name="yscale">1</property>
+                                <property name="top_padding">0</property>
+                                <property name="bottom_padding">0</property>
+                                <property name="left_padding">48</property>
+                                <property name="right_padding">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox22">
+                                    <property name="visible">True</property>
+                                    <property name="homogeneous">False</property>
+                                    <property name="spacing">0</property>
+                                    <child>
+                                      <object class="GtkFrame" id="frame9">
+                                        <property name="visible">True</property>
+                                        <property name="label_xalign">0</property>
+                                        <property name="label_yalign">0.5</property>
+                                        <property name="shadow_type">GTK_SHADOW_OUT</property>
+                                        <child>
+                                          <object class="GtkTable" id="table1">
+                                            <property name="border_width">1</property>
+                                            <property name="visible">True</property>
+                                            <property name="n_rows">3</property>
+                                            <property name="n_columns">3</property>
+                                            <property name="homogeneous">True</property>
+                                            <property name="row_spacing">1</property>
+                                            <property name="column_spacing">1</property>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_top_left_corner_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="right_attach">1</property>
+                                                <property name="top_attach">0</property>
+                                                <property name="bottom_attach">1</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_top_edge_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="right_attach">2</property>
+                                                <property name="top_attach">0</property>
+                                                <property name="bottom_attach">1</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_top_right_corner_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="right_attach">3</property>
+                                                <property name="top_attach">0</property>
+                                                <property name="bottom_attach">1</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_left_edge_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="right_attach">1</property>
+                                                <property name="top_attach">1</property>
+                                                <property name="bottom_attach">2</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_bottom_left_corner_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">0</property>
+                                                <property name="right_attach">1</property>
+                                                <property name="top_attach">2</property>
+                                                <property name="bottom_attach">3</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_bottom_edge_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="right_attach">2</property>
+                                                <property name="top_attach">2</property>
+                                                <property name="bottom_attach">3</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_bottom_right_corner_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="right_attach">3</property>
+                                                <property name="top_attach">2</property>
+                                                <property name="bottom_attach">3</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkToggleButton" id="trigger_right_edge_toggle">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                                <property name="active">False</property>
+                                                <property name="inconsistent">False</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">2</property>
+                                                <property name="right_attach">3</property>
+                                                <property name="top_attach">1</property>
+                                                <property name="bottom_attach">2</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkButton" id="trigger_all_corners_button">
+                                                <property name="width_request">22</property>
+                                                <property name="height_request">22</property>
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="label" translatable="yes"/>
+                                                <property name="use_underline">True</property>
+                                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                                <property name="focus_on_click">True</property>
+                                              </object>
+                                              <packing>
+                                                <property name="left_attach">1</property>
+                                                <property name="right_attach">2</property>
+                                                <property name="top_attach">1</property>
+                                                <property name="bottom_attach">2</property>
+                                                <property name="x_options">fill</property>
+                                                <property name="y_options"/>
+                                              </packing>
+                                            </child>
+                                          </object>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="padding">0</property>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label19">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Scrolling&lt;/b&gt;</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">True</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">False</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                    <property name="width_chars">-1</property>
+                    <property name="single_line_mode">False</property>
+                    <property name="angle">0</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox12">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkFrame" id="frame">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="label_yalign">0.5</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment10">
+                        <property name="visible">True</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xscale">1</property>
+                        <property name="yscale">1</property>
+                        <property name="top_padding">6</property>
+                        <property name="bottom_padding">0</property>
+                        <property name="left_padding">12</property>
+                        <property name="right_padding">0</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox17">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">0</property>
+                            <child>
+                              <object class="GtkCheckButton" id="continue_scrolling_check">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">continue scrolling</property>
+                                <property name="use_underline">True</property>
+                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                <property name="focus_on_click">True</property>
+                                <property name="active">False</property>
+                                <property name="inconsistent">False</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="cursor_movement_check">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">cursor movement</property>
+                                <property name="use_underline">True</property>
+                                <property name="relief">GTK_RELIEF_NORMAL</property>
+                                <property name="focus_on_click">True</property>
+                                <property name="active">False</property>
+                                <property name="inconsistent">False</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label30">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;On an edge&lt;/b&gt;</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">True</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="tab_expand">False</property>
+            <property name="tab_fill">True</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label3">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">Scrolling</property>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_CENTER</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkVBox" id="accel_factor_vbox">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkFrame" id="accel_factor_frame">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment15">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">0</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox28">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label59">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Acceleration:</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label60">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;None&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHScale" id="accel_factor_scale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="draw_value">False</property>
+                            <property name="value_pos">GTK_POS_TOP</property>
+                            <property name="digits">1</property>
+                            <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+                            <property name="inverted">False</property>
+                            <property name="adjustment">adjustment6</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label61">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;High&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="min_speed_frame">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment14">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">0</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox27">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label52">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Min Speed:</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label54">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;Slow&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHScale" id="min_speed_scale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="draw_value">False</property>
+                            <property name="value_pos">GTK_POS_TOP</property>
+                            <property name="digits">1</property>
+                            <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+                            <property name="inverted">False</property>
+                            <property name="adjustment">adjustment7</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label56">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;Fast&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="max_speed_frame">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="label_yalign">0.5</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment13">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">0</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">12</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox26">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label51">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Max Speed:</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">False</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label53">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;Slow&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHScale" id="max_speed_scale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="draw_value">False</property>
+                            <property name="value_pos">GTK_POS_TOP</property>
+                            <property name="digits">1</property>
+                            <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+                            <property name="inverted">False</property>
+                            <property name="adjustment">adjustment8</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label55">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;i&gt;Fast&lt;/i&gt;</property>
+                            <property name="use_underline">False</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">GTK_JUSTIFY_LEFT</property>
+                            <property name="wrap">False</property>
+                            <property name="selectable">False</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                            <property name="width_chars">-1</property>
+                            <property name="single_line_mode">False</property>
+                            <property name="angle">0</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="tab_expand">False</property>
+            <property name="tab_fill">True</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label57">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">Acceleration</property>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+</interface>

Modified: trunk/modules/Makefile.am
==============================================================================
--- trunk/modules/Makefile.am	(original)
+++ trunk/modules/Makefile.am	Wed Feb 25 06:51:55 2009
@@ -12,10 +12,12 @@
   -no-undefined -export-dynamic $(LIBTOOL_EXPORT_OPTIONS)
 
 gpds_module_LTLIBRARIES = 	\
-	trackpoint.la
+	trackpoint.la		\
+	touchpad.la
 
 LIBS =					\
 	$(top_builddir)/src/libgpds.la	\
 	$(GTK_LIBS)
 
 trackpoint_la_SOURCES = gpds-trackpoint-ui.c
+touchpad_la_SOURCES = gpds-touchpad-ui.c

Copied: trunk/modules/gpds-touchpad-ui.c (from r7, /trunk/modules/gpds-trackpoint-ui.c)
==============================================================================
--- /trunk/modules/gpds-trackpoint-ui.c	(original)
+++ trunk/modules/gpds-touchpad-ui.c	Wed Feb 25 06:51:55 2009
@@ -28,39 +28,31 @@
 #include "gpds-xinput.h"
 #include "gpds-module-impl.h"
 
-#define DEVICE_NAME "TPPS/2 IBM TrackPoint"
-#define MIDDLE_BUTTON_EMULATION "Middle Button Emulation"
-#define MIDDLE_BUTTON_TIMEOUT "Middle Button Timeout"
-#define WHEEL_EMULATION "Wheel Emulation"
-#define WHEEL_EMULATION_INERTIA "Wheel Emulation Inertia"
-#define WHEEL_EMULATION_X_AXIS "Wheel Emulation X Axis"
-#define WHEEL_EMULATION_Y_AXIS "Wheel Emulation Y Axis"
-#define WHEEL_EMULATION_TIMEOUT "Wheel Emulation Timeout"
-#define WHEEL_EMULATION_BUTTON "Wheel Emulation Button"
-#define DRAG_LOCK_BUTTONS "Drag Lock Buttons"
-
-#define GPDS_TYPE_TRACK_POINT_UI            gpds_type_track_point_ui
-#define GPDS_TRACK_POINT_UI(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GPDS_TYPE_TRACK_POINT_UI, GpdsTrackPointUI))
-#define GPDS_TRACK_POINT_UI_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GPDS_TYPE_TRACK_POINT_UI, GpdsTrackPointUIClass))
-#define G_IS_TRACK_POINT_UI(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GPDS_TYPE_TRACK_POINT_UI))
-#define G_IS_TRACK_POINT_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GPDS_TYPE_TRACK_POINT_UI))
-#define GPDS_TRACK_POINT_UI_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), GPDS_TYPE_TRACK_POINT_UI, GpdsTrackPointUIClass))
+#define DEVICE_NAME "SynPS/2 Synaptics TouchPad"
 
-typedef struct _GpdsTrackPointUI GpdsTrackPointUI;
-typedef struct _GpdsTrackPointUIClass GpdsTrackPointUIClass;
+#define GPDS_TYPE_TOUCHPAD_UI            gpds_type_touchpad_ui
+#define GPDS_TOUCHPAD_UI(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GPDS_TYPE_TOUCHPAD_UI, GpdsTouchpadUI))
+#define GPDS_TOUCHPAD_UI_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GPDS_TYPE_TOUCHPAD_UI, GpdsTouchpadUIClass))
+#define G_IS_TOUCHPAD_UI(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GPDS_TYPE_TOUCHPAD_UI))
+#define G_IS_TOUCHPAD_UI_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GPDS_TYPE_TOUCHPAD_UI))
+#define GPDS_TOUCHPAD_UI_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), GPDS_TYPE_TOUCHPAD_UI, GpdsTouchpadUIClass))
 
-struct _GpdsTrackPointUI
+typedef struct _GpdsTouchpadUI GpdsTouchpadUI;
+typedef struct _GpdsTouchpadUIClass GpdsTouchpadUIClass;
+
+struct _GpdsTouchpadUI
 {
     GpdsUI parent;
     GpdsXInput *xinput;
+    gchar *ui_file_path;
 };
 
-struct _GpdsTrackPointUIClass
+struct _GpdsTouchpadUIClass
 {
     GpdsUIClass parent_class;
 };
 
-static GType gpds_type_track_point_ui = 0;
+static GType gpds_type_touchpad_ui = 0;
 static GpdsUIClass *parent_class;
 
 static void       dispose            (GObject *object);
@@ -70,7 +62,7 @@
 static GtkWidget *get_label_widget   (GpdsUI  *ui, GError **error);
 
 static void
-class_init (GpdsTrackPointUIClass *klass)
+class_init (GpdsTouchpadUIClass *klass)
 {
     GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
     GpdsUIClass *ui_class = GPDS_UI_CLASS(klass);
@@ -84,10 +76,21 @@
     ui_class->get_label_widget   = get_label_widget;
 }
 
+static const gchar *
+get_ui_file_directory (void)
+{
+    const gchar *dir;
+
+    dir = g_getenv("GPDS_UI_FILE_DIR");
+    return dir ? dir : GPDS_UI_FILEDIR;
+}
+
 static void
-init (GpdsTrackPointUI *ui)
+init (GpdsTouchpadUI *ui)
 {
     ui->xinput = NULL;
+    ui->ui_file_path = 
+        g_build_filename(get_ui_file_directory(), "touchpad.ui", NULL);
 }
 
 static void
@@ -95,21 +98,21 @@
 {
     static const GTypeInfo info =
         {
-            sizeof (GpdsTrackPointUIClass),
+            sizeof (GpdsTouchpadUIClass),
             (GBaseInitFunc) NULL,
             (GBaseFinalizeFunc) NULL,
             (GClassInitFunc) class_init,
             NULL,           /* class_finalize */
             NULL,           /* class_data */
-            sizeof(GpdsTrackPointUI),
+            sizeof(GpdsTouchpadUI),
             0,
             (GInstanceInitFunc) init,
         };
 
-    gpds_type_track_point_ui =
+    gpds_type_touchpad_ui =
         g_type_module_register_type(type_module,
                                     GPDS_TYPE_UI,
-                                    "GpdsTrackPointUI",
+                                    "GpdsTouchpadUI",
                                     &info, 0);
 }
 
@@ -119,10 +122,10 @@
     GList *registered_types = NULL;
 
     register_type(type_module);
-    if (gpds_type_track_point_ui)
+    if (gpds_type_touchpad_ui)
         registered_types =
             g_list_prepend(registered_types,
-                           (gchar *)g_type_name(gpds_type_track_point_ui));
+                           (gchar *)g_type_name(gpds_type_touchpad_ui));
 
     return registered_types;
 }
@@ -135,18 +138,20 @@
 G_MODULE_EXPORT GObject *
 GPDS_MODULE_IMPL_INSTANTIATE (void)
 {
-    return g_object_new(GPDS_TYPE_TRACK_POINT_UI, NULL);
+    return g_object_new(GPDS_TYPE_TOUCHPAD_UI, NULL);
 }
 
 static void
 dispose (GObject *object)
 {
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(object);
+    GpdsTouchpadUI *ui = GPDS_TOUCHPAD_UI(object);
 
     if (ui->xinput) {
         g_object_unref(ui->xinput);
         ui->xinput = NULL;
     }
+    g_free(ui->ui_file_path);
+
     if (G_OBJECT_CLASS(parent_class)->dispose)
         G_OBJECT_CLASS(parent_class)->dispose(object);
 }
@@ -209,104 +214,14 @@
 }
 
 static void
-cb_middle_button_emulation_toggled (GtkToggleButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    GtkBuilder *builder;
-
-    builder = gpds_ui_get_builder(GPDS_UI(user_data));
-
-    set_toggle_property(ui->xinput, button, MIDDLE_BUTTON_EMULATION);
-    set_widget_sensitivity(builder, "middle_button_emulation_box", button);
-}
-
-static void
-cb_wheel_emulation_toggled (GtkToggleButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    GtkBuilder *builder;
-
-    builder = gpds_ui_get_builder(GPDS_UI(user_data));
-
-    set_toggle_property(ui->xinput, button, WHEEL_EMULATION);
-    set_widget_sensitivity(builder, "wheel_emulation_box", button);
-}
-
-static void
-set_toggle_scroll_property (GpdsXInput *xinput, GtkToggleButton *button,
-                            const gchar *property_name,
-                            gint first_value, gint second_value)
-{
-    GError *error = NULL;
-    gboolean active;
-
-    active = gtk_toggle_button_get_active(button);
-    if (active) {
-        gpds_xinput_set_property(xinput,
-                              property_name,
-                              &error,
-                              first_value, second_value,
-                              NULL);
-    } else {
-        gpds_xinput_set_property(xinput,
-                              property_name,
-                              &error,
-                              -1, -1,
-                              NULL);
-    }
-
-    if (error) {
-        show_error(error);
-        g_error_free(error);
-    }
-}
-
-static void
-cb_wheel_emulation_vertical_toggled (GtkToggleButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_toggle_scroll_property(ui->xinput, button, WHEEL_EMULATION_Y_AXIS, 6, 7);
-}
-
-static void
-cb_wheel_emulation_horizontal_toggled (GtkToggleButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_toggle_scroll_property(ui->xinput, button, WHEEL_EMULATION_X_AXIS, 4, 5);
-}
-
-static void
-cb_wheel_emulation_timeout_value_changed (GtkSpinButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_spin_property(ui->xinput, button, WHEEL_EMULATION_TIMEOUT);
-}
-
-static void
-cb_middle_button_timeout_value_changed (GtkSpinButton *button, gpointer user_data)
-{
-    GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_spin_property(ui->xinput, button, MIDDLE_BUTTON_TIMEOUT);
-}
-
-static void
 setup_signals (GpdsUI *ui, GtkBuilder *builder)
 {
-    GObject *object;
-
 #define CONNECT(object_name, signal_name)                               \
     object = gtk_builder_get_object(builder, #object_name);             \
     g_signal_connect(object, #signal_name,                              \
                      G_CALLBACK(cb_ ## object_name ## _ ## signal_name),\
                      ui)
 
-    CONNECT(middle_button_emulation, toggled);
-    CONNECT(middle_button_timeout, value_changed);
-    CONNECT(wheel_emulation, toggled);
-    CONNECT(wheel_emulation_timeout, value_changed);
-    CONNECT(wheel_emulation_vertical, toggled);
-    CONNECT(wheel_emulation_horizontal, toggled);
-
 #undef CONNECT
 }
 
@@ -390,31 +305,6 @@
 static void
 setup_current_values (GpdsUI *ui, GtkBuilder *builder)
 {
-    GpdsTrackPointUI *track_point_ui = GPDS_TRACK_POINT_UI(ui);
-
-    set_boolean_property(track_point_ui->xinput, MIDDLE_BUTTON_EMULATION,
-                         builder, "middle_button_emulation");
-    set_boolean_property(track_point_ui->xinput, WHEEL_EMULATION,
-                         builder, "wheel_emulation");
-
-    set_integer_property(track_point_ui->xinput, MIDDLE_BUTTON_TIMEOUT,
-                         builder, "middle_button_timeout");
-    set_integer_property(track_point_ui->xinput, WHEEL_EMULATION_TIMEOUT,
-                         builder, "wheel_emulation_timeout");
-
-    set_scroll_property(track_point_ui->xinput, WHEEL_EMULATION_Y_AXIS,
-                        builder, "wheel_emulation_vertical");
-    set_scroll_property(track_point_ui->xinput, WHEEL_EMULATION_X_AXIS,
-                        builder, "wheel_emulation_horizontal");
-}
-
-static const gchar *
-get_build_file_path (void)
-{
-    const gchar *path;
-
-    path = g_getenv("GPDS_TRACK_POINT_UI_FILE_PATH");
-    return path ? path : GPDS_UI_FILEDIR "/trackpoint.ui";
 }
 
 static gboolean
@@ -428,12 +318,12 @@
         return FALSE;
     }
 
-    if (!g_file_test(get_build_file_path(), G_FILE_TEST_EXISTS)) {
+    if (!g_file_test(GPDS_TOUCHPAD_UI(ui)->ui_file_path, G_FILE_TEST_EXISTS)) {
         g_set_error(error,
                     GPDS_UI_ERROR,
                     GPDS_UI_ERROR_NO_UI_FILE,
                     _("%s does not found."),
-                    get_build_file_path());
+                    GPDS_TOUCHPAD_UI(ui)->ui_file_path);
         return FALSE;
     }
 
@@ -447,10 +337,13 @@
 
     builder = gpds_ui_get_builder(ui);
 
-    if (!gtk_builder_add_from_file(builder,  get_build_file_path(), error))
+    if (!gtk_builder_add_from_file(builder, 
+                                   GPDS_TOUCHPAD_UI(ui)->ui_file_path,
+                                   error)) {
         return FALSE;
+    }
 
-    GPDS_TRACK_POINT_UI(ui)->xinput = gpds_xinput_new(DEVICE_NAME);
+    GPDS_TOUCHPAD_UI(ui)->xinput = gpds_xinput_new(DEVICE_NAME);
 
     setup_current_values(ui, builder);
     setup_signals(ui, builder);

Modified: trunk/modules/gpds-trackpoint-ui.c
==============================================================================
--- trunk/modules/gpds-trackpoint-ui.c	(original)
+++ trunk/modules/gpds-trackpoint-ui.c	Wed Feb 25 06:51:55 2009
@@ -53,6 +53,7 @@
 {
     GpdsUI parent;
     GpdsXInput *xinput;
+    gchar *ui_file_path;
 };
 
 struct _GpdsTrackPointUIClass
@@ -84,10 +85,22 @@
     ui_class->get_label_widget   = get_label_widget;
 }
 
+static const gchar *
+get_ui_file_directory (void)
+{
+    const gchar *dir;
+
+    dir = g_getenv("GPDS_UI_FILE_DIR");
+    return dir ? dir : GPDS_UI_FILEDIR;
+}
+
 static void
 init (GpdsTrackPointUI *ui)
 {
     ui->xinput = NULL;
+    ui->ui_file_path = g_build_filename(get_ui_file_directory(),
+                                        "trackpoint.ui",
+                                        NULL);
 }
 
 static void
@@ -147,6 +160,8 @@
         g_object_unref(ui->xinput);
         ui->xinput = NULL;
     }
+    g_free(ui->ui_file_path);
+
     if (G_OBJECT_CLASS(parent_class)->dispose)
         G_OBJECT_CLASS(parent_class)->dispose(object);
 }
@@ -408,15 +423,6 @@
                         builder, "wheel_emulation_horizontal");
 }
 
-static const gchar *
-get_build_file_path (void)
-{
-    const gchar *path;
-
-    path = g_getenv("GPDS_TRACK_POINT_UI_FILE_PATH");
-    return path ? path : GPDS_UI_FILEDIR "/trackpoint.ui";
-}
-
 static gboolean
 is_available (GpdsUI *ui, GError **error)
 {
@@ -428,12 +434,13 @@
         return FALSE;
     }
 
-    if (!g_file_test(get_build_file_path(), G_FILE_TEST_EXISTS)) {
+    if (!g_file_test(GPDS_TRACK_POINT_UI(ui)->ui_file_path,
+                     G_FILE_TEST_EXISTS)) {
         g_set_error(error,
                     GPDS_UI_ERROR,
                     GPDS_UI_ERROR_NO_UI_FILE,
                     _("%s does not found."),
-                    get_build_file_path());
+                    GPDS_TRACK_POINT_UI(ui)->ui_file_path);
         return FALSE;
     }
 
@@ -447,8 +454,11 @@
 
     builder = gpds_ui_get_builder(ui);
 
-    if (!gtk_builder_add_from_file(builder,  get_build_file_path(), error))
+    if (!gtk_builder_add_from_file(builder, 
+                                   GPDS_TRACK_POINT_UI(ui)->ui_file_path,
+                                   error)) {
         return FALSE;
+    }
 
     GPDS_TRACK_POINT_UI(ui)->xinput = gpds_xinput_new(DEVICE_NAME);
 

Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in	(original)
+++ trunk/po/POTFILES.in	Wed Feb 25 06:51:55 2009
@@ -1,2 +1,3 @@
-src/gxinput.c
-[type: gettext/glade]data/gtrackpoint.ui
+src/gpds-xinput.c
+[type: gettext/glade]data/trackpoint.ui
+[type: gettext/glade]data/touchpad.ui

Modified: trunk/src/gpointing-device-settings.c
==============================================================================
--- trunk/src/gpointing-device-settings.c	(original)
+++ trunk/src/gpointing-device-settings.c	Wed Feb 25 06:51:55 2009
@@ -56,7 +56,6 @@
 static void
 append_uis (GtkNotebook *notebook)
 {
-    GError *error = NULL;
     GList *ui_names, *name;
 
     ui_names = gpds_module_collect_names(modules);
@@ -65,6 +64,7 @@
         GpdsUI *ui;
         GtkWidget *widget = NULL;
         GtkWidget *label = NULL;
+        GError *error = NULL;
 
         ui = gpds_ui_new(name->data);
         uis = g_list_prepend(uis, ui);
@@ -73,8 +73,23 @@
             continue;
 
         gpds_ui_build(ui, &error);
-        widget = gpds_ui_get_content_widget(ui, NULL);
-        label = gpds_ui_get_label_widget(ui, NULL);
+        if (error) {
+            g_warning("%s", error->message);
+            g_error_free(error);
+            error = NULL;
+        }
+        widget = gpds_ui_get_content_widget(ui, &error);
+        if (error) {
+            g_warning("%s", error->message);
+            g_error_free(error);
+            error = NULL;
+        }
+        label = gpds_ui_get_label_widget(ui, &error);
+        if (error) {
+            g_warning("%s", error->message);
+            g_error_free(error);
+            error = NULL;
+        }
 
         if (!widget)
             widget = gtk_label_new(error->message);

Modified: trunk/test/gpds-test-suite.c
==============================================================================
--- trunk/test/gpds-test-suite.c	(original)
+++ trunk/test/gpds-test-suite.c	Wed Feb 25 06:51:55 2009
@@ -2,6 +2,7 @@
 #include <gtk/gtk.h>
 
 void gpds_test_warmup (void);
+void gpds_test_cooldown (void);
 
 void
 gpds_test_warmup (void)

Modified: trunk/test/run-test.sh
==============================================================================
--- trunk/test/run-test.sh	(original)
+++ trunk/test/run-test.sh	Wed Feb 25 06:51:55 2009
@@ -21,7 +21,7 @@
 top_dir="$BASE_DIR/.."
 top_dir="`cd $top_dir; pwd`"
 export GPDS_MODULE_DIR="$top_dir/modules/.libs"
-export GPDS_TRACK_POINT_UI_FILE_PATH="$top_dir/data/trackpoint.ui"
+export GPDS_UI_FILE_DIR="$top_dir/data"
 
 if test x"$NO_MAKE" != x"yes"; then
     if which gmake > /dev/null; then

Modified: trunk/test/test-module.c
==============================================================================
--- trunk/test/test-module.c	(original)
+++ trunk/test/test-module.c	Wed Feb 25 06:51:55 2009
@@ -44,6 +44,7 @@
 void
 test_collect_names (void)
 {
+    expected_names = g_list_append(expected_names, "touchpad");
     expected_names = g_list_append(expected_names, "trackpoint");
 
     cut_trace(test_load_modules());

Modified: trunk/test/test-ui.c
==============================================================================
--- trunk/test/test-ui.c	(original)
+++ trunk/test/test-ui.c	Wed Feb 25 06:51:55 2009
@@ -26,7 +26,7 @@
 void
 test_new (void)
 {
-    ui = gpds_ui_new("trackpoint");
+    ui = gpds_ui_new("touchpad");
     cut_assert(ui);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]