gtk-demo: Add support for distance in event_axes
authorStephen Chandler Paul <thatslyude@gmail.com>
Tue, 10 Feb 2015 03:02:08 +0000 (22:02 -0500)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 6 Apr 2016 13:43:29 +0000 (15:43 +0200)
Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
demos/gtk-demo/event_axes.c

index a12168a70b530093b1617636fc2ef53d9966d3ee..f5929e8d49b8f1d8ff96e0c4eafb212d674c3a2c 100644 (file)
@@ -206,7 +206,7 @@ draw_axes_info (cairo_t       *cr,
                 AxesInfo      *info,
                 GtkAllocation *allocation)
 {
-  gdouble pressure, tilt_x, tilt_y, wheel;
+  gdouble pressure, tilt_x, tilt_y, distance, wheel;
   GdkAxisFlags axes = gdk_device_get_axes (info->last_source);
 
   cairo_save (cr);
@@ -258,6 +258,33 @@ draw_axes_info (cairo_t       *cr,
       render_arrow (cr, tilt_x * 100, tilt_y * 100, "Tilt");
     }
 
+  if (axes & GDK_AXIS_FLAG_DISTANCE)
+    {
+      double dashes[] = { 5.0, 5.0 };
+      cairo_text_extents_t extents;
+
+      gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_DISTANCE,
+                           &distance);
+
+      cairo_save (cr);
+
+      cairo_move_to (cr, distance * 100, 0);
+
+      cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
+      cairo_set_dash (cr, dashes, 2, 0.0);
+      cairo_arc (cr, 0, 0, distance * 100, 0, 2 * G_PI);
+      cairo_stroke (cr);
+
+      cairo_move_to (cr, 0, -distance * 100);
+      cairo_text_extents (cr, "Distance", &extents);
+      cairo_rel_move_to (cr, -extents.width / 2, 0);
+      cairo_show_text (cr, "Distance");
+
+      cairo_move_to (cr, 0, 0);
+
+      cairo_restore (cr);
+    }
+
   if (axes & GDK_AXIS_FLAG_WHEEL)
     {
       gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_WHEEL,