[gtk+] inspector: Add a switch for simulating touch



commit 7fa4d60bf3408d7c773fe8e84f6e610324e15bf9
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jul 10 10:11:10 2014 -0400

    inspector: Add a switch for simulating touch
    
    This makes it easy to test test touchscreen features with a
    plain old mouse.

 gtk/inspector/general.c  |   26 ++++++++++++++++++++++++++
 gtk/inspector/general.ui |   41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)
---
diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
index 29fcf97..ae8b2d7 100644
--- a/gtk/inspector/general.c
+++ b/gtk/inspector/general.c
@@ -51,6 +51,7 @@ struct _GtkInspectorGeneralPrivate
   GtkWidget *gtk_path;
   GtkWidget *gtk_exe_prefix;
   GtkWidget *gtk_data_prefix;
+  GtkWidget *touchscreen_switch;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorGeneral, gtk_inspector_general, GTK_TYPE_BOX)
@@ -136,12 +137,36 @@ init_env (GtkInspectorGeneral *gen)
 }
 
 static void
+update_touchscreen (GtkSwitch *sw, GParamSpec *pspec, GtkInspectorGeneral *gen)
+{
+  GtkDebugFlag flags;
+
+  flags = gtk_get_debug_flags ();
+
+  if (gtk_switch_get_active (sw))
+    flags |= GTK_DEBUG_TOUCHSCREEN;
+  else
+    flags &= ~GTK_DEBUG_TOUCHSCREEN;
+
+  gtk_set_debug_flags (flags);
+}
+
+static void
+init_touch (GtkInspectorGeneral *gen)
+{
+  gtk_switch_set_active (GTK_SWITCH (gen->priv->touchscreen_switch), (gtk_get_debug_flags () & 
GTK_DEBUG_TOUCHSCREEN) != 0);
+  g_signal_connect (gen->priv->touchscreen_switch, "notify::active",
+                    G_CALLBACK (update_touchscreen), gen);
+}
+
+static void
 gtk_inspector_general_init (GtkInspectorGeneral *gen)
 {
   gen->priv = gtk_inspector_general_get_instance_private (gen);
   gtk_widget_init_template (GTK_WIDGET (gen));
   init_version (gen);
   init_env (gen);
+  init_touch (gen);
 }
 
 static void
@@ -158,6 +183,7 @@ gtk_inspector_general_class_init (GtkInspectorGeneralClass *klass)
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_path);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_exe_prefix);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_data_prefix);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, touchscreen_switch);
 }
 
 // vim: set et sw=2 ts=2:
diff --git a/gtk/inspector/general.ui b/gtk/inspector/general.ui
index 44ee02f..1f7ef9d 100644
--- a/gtk/inspector/general.ui
+++ b/gtk/inspector/general.ui
@@ -250,6 +250,45 @@
         </child>
       </object>
     </child>
+    <child>
+      <object class="GtkFrame" id="touch_frame">
+        <property name="visible">True</property>
+        <property name="halign">center</property>
+        <child>
+          <object class="GtkListBox">
+            <property name="visible">True</property>
+            <property name="selection-mode">none</property>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="orientation">horizontal</property>
+                <property name="margin">10</property>
+                <property name="spacing">40</property>
+                <child>
+                  <object class="GtkLabel" id="touchscreen_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Simulate touchscreen</property>
+                    <property name="halign">start</property>
+                    <property name="valign">baseline</property>
+                    <property name="xalign">0.0</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSwitch" id="touchscreen_switch">
+                    <property name="visible">True</property>
+                    <property name="halign">end</property>
+                    <property name="valign">baseline</property>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
   </template>
   <object class="GtkSizeGroup">
     <property name="mode">horizontal</property>
@@ -262,6 +301,7 @@
       <widget name="gtk_path_label"/>
       <widget name="gtk_exe_prefix_label"/>
       <widget name="gtk_data_prefix_label"/>
+      <widget name="touchscreen_label"/>
     </widgets>
   </object>
   <object class="GtkSizeGroup">
@@ -269,6 +309,7 @@
     <widgets>
       <widget name="version_frame"/>
       <widget name="env_frame"/>
+      <widget name="touch_frame"/>
     </widgets>
   </object>
 </interface>


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