[gtk+] gtk-demo: Update cursors demo



commit 9b37f5a45ffc812b9a944eed9eeee910ead95a8f
Author: Benjamin Otte <otte redhat com>
Date:   Sun Nov 5 00:04:23 2017 +0100

    gtk-demo: Update cursors demo
    
    It's all glade-ified, hurray!
    It also now properly tests image cursors, named cursors and fallbacks.
    I'm not gonna tell how many bugs I found though.

 demos/gtk-demo/cursors.c           |  144 +--
 demos/gtk-demo/cursors.ui          | 2838 ++++++++++++++++++++++++++++++++++++
 demos/gtk-demo/demo.gresource.xml  |    2 +
 demos/gtk-demo/gtk_logo_cursor.png |  Bin 0 -> 1414 bytes
 4 files changed, 2853 insertions(+), 131 deletions(-)
---
diff --git a/demos/gtk-demo/cursors.c b/demos/gtk-demo/cursors.c
index d684819..39bf801 100644
--- a/demos/gtk-demo/cursors.c
+++ b/demos/gtk-demo/cursors.c
@@ -2,158 +2,40 @@
  *
  * Demonstrates a useful set of available cursors.
  */
-#include <gtk/gtk.h>
-
-static void
-set_cursor (GtkWidget *button, gpointer data)
-{
-  GtkWidget *toplevel;
-  GdkCursor *cursor = data;
-  GdkWindow *window;
-
-  toplevel = gtk_widget_get_toplevel (button);
-  window = gtk_widget_get_window (toplevel);
-  gdk_window_set_cursor (window, cursor);
-}
-
-static GtkWidget *
-add_section (GtkWidget   *box,
-             const gchar *heading)
-{
-  GtkWidget *label;
-  GtkWidget *section;
 
-  label = gtk_label_new (heading);
-  gtk_label_set_xalign (GTK_LABEL (label), 0.0);
-  gtk_widget_set_margin_top (label, 10);
-  gtk_widget_set_margin_bottom (label, 10);
-  gtk_box_pack_start (GTK_BOX (box), label);
-  section = gtk_flow_box_new ();
-  gtk_widget_set_halign (section, GTK_ALIGN_START);
-  gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (section), GTK_SELECTION_NONE);
-  gtk_flow_box_set_min_children_per_line (GTK_FLOW_BOX (section), 2);
-  gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (section), 20);
-  gtk_box_pack_start (GTK_BOX (box), section);
+#include <gtk/gtk.h>
 
-  return section;
-}
+static GtkWidget *window = NULL;
 
 static void
-add_button (GtkWidget   *section,
-            const gchar *css_name)
+on_destroy (gpointer data)
 {
-  GtkWidget *image, *button;
-  GdkCursor *cursor;
-
-  cursor = gdk_cursor_new_from_name (css_name, NULL);
-  if (cursor == NULL)
-    image = gtk_image_new_from_icon_name ("image-missing", GTK_ICON_SIZE_MENU);
-  else
-    {
-      gchar *path;
-
-      path = g_strdup_printf ("/cursors/%s_cursor.png", css_name);
-      g_strdelimit (path, "-", '_');
-      image = gtk_image_new_from_resource (path);
-      g_free (path);
-    }
-  gtk_widget_set_size_request (image, 32, 32);
-  button = gtk_button_new ();
-  gtk_container_add (GTK_CONTAINER (button), image);
-  gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button");
-  g_signal_connect (button, "clicked", G_CALLBACK (set_cursor), cursor);
-
-  gtk_widget_set_tooltip_text (button, css_name);
-  gtk_container_add (GTK_CONTAINER (section), button);
+  window = NULL;
 }
 
 GtkWidget *
 do_cursors (GtkWidget *do_widget)
 {
-  static GtkWidget *window = NULL;
-
   if (!window)
     {
-      GtkWidget *sw;
-      GtkWidget *box;
-      GtkWidget *section;
+      GtkBuilder *builder;
 
-      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      builder = gtk_builder_new_from_resource ("/cursors/cursors.ui");
+      gtk_builder_connect_signals (builder, NULL);
+      window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
       gtk_window_set_display (GTK_WINDOW (window),
                               gtk_widget_get_display (do_widget));
-      gtk_window_set_title (GTK_WINDOW (window), "Cursors");
-      gtk_window_set_default_size (GTK_WINDOW (window), 500, 500);
-
       g_signal_connect (window, "destroy",
-                        G_CALLBACK (gtk_widget_destroyed),
-                        &window);
-
-      sw = gtk_scrolled_window_new (NULL, NULL);
-      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-                                      GTK_POLICY_NEVER,
-                                      GTK_POLICY_AUTOMATIC);
-      gtk_container_add (GTK_CONTAINER (window), sw);
-      box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-      g_object_set (box,
-                    "margin-start", 20,
-                    "margin-end", 20,
-                    "margin-bottom", 10,
-                    NULL);
-      gtk_container_add (GTK_CONTAINER (sw), box);
-
-      section = add_section (box, "General");
-      add_button (section, "default");
-      add_button (section, "none");
-
-      section = add_section (box, "Link & Status");
-      add_button (section, "context-menu");
-      add_button (section, "help");
-      add_button (section, "pointer");
-      add_button (section, "progress");
-      add_button (section, "wait");
-
-      section = add_section (box, "Selection");
-      add_button (section, "cell");
-      add_button (section, "crosshair");
-      add_button (section, "text");
-      add_button (section, "vertical-text");
-
-      section = add_section (box, "Drag & Drop");
-      add_button (section, "alias");
-      add_button (section, "copy");
-      add_button (section, "move");
-      add_button (section, "no-drop");
-      add_button (section, "not-allowed");
-      add_button (section, "grab");
-      add_button (section, "grabbing");
-
-      section = add_section (box, "Resize & Scrolling");
-      add_button (section, "all-scroll");
-      add_button (section, "col-resize");
-      add_button (section, "row-resize");
-      add_button (section, "n-resize");
-      add_button (section, "e-resize");
-      add_button (section, "s-resize");
-      add_button (section, "w-resize");
-      add_button (section, "ne-resize");
-      add_button (section, "nw-resize");
-      add_button (section, "se-resize");
-      add_button (section, "sw-resize");
-      add_button (section, "ew-resize");
-      add_button (section, "ns-resize");
-      add_button (section, "nesw-resize");
-      add_button (section, "nwse-resize");
-
-      section = add_section (box, "Zoom");
-      add_button (section, "zoom-in");
-      add_button (section, "zoom-out");
+                        G_CALLBACK (on_destroy), NULL);
+      g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref);
     }
 
   if (!gtk_widget_get_visible (window))
     gtk_widget_show (window);
   else
-    gtk_widget_destroy (window);
-
+    {
+      gtk_widget_destroy (window);
+    }
 
   return window;
 }
diff --git a/demos/gtk-demo/cursors.ui b/demos/gtk-demo/cursors.ui
new file mode 100644
index 0000000..df2a030
--- /dev/null
+++ b/demos/gtk-demo/cursors.ui
@@ -0,0 +1,2838 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.94 -->
+  <object class="GdkCursor" id="default_cursor">
+    <property name="name">default</property>
+  </object>
+  <object class="GdkCursor" id="default_cursor_image">
+    <property name="texture">resource:///cursors/default_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">5</property>
+  </object>
+  <object class="GdkCursor" id="default_cursor_fallback">
+    <property name="name">default</property>
+    <property name="fallback">default_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="default_cursor_image_fallback">
+    <property name="texture">resource:///cursors/default_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">5</property>
+    <property name="fallback">default_cursor</property>
+  </object>
+  <object class="GdkCursor" id="none_cursor">
+    <property name="name">none</property>
+  </object>
+  <object class="GdkCursor" id="none_cursor_image">
+    <property name="texture">resource:///cursors/none_cursor.png</property>
+    <property name="hotspot-x">0</property>
+    <property name="hotspot-y">0</property>
+  </object>
+  <object class="GdkCursor" id="none_cursor_fallback">
+    <property name="name">none</property>
+    <property name="fallback">none_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="none_cursor_image_fallback">
+    <property name="texture">resource:///cursors/none_cursor.png</property>
+    <property name="hotspot-x">0</property>
+    <property name="hotspot-y">0</property>
+    <property name="fallback">none_cursor</property>
+  </object>
+  <object class="GdkCursor" id="gtk-logo_cursor">
+    <property name="name">gtk-logo</property>
+  </object>
+  <object class="GdkCursor" id="gtk-logo_cursor_image">
+    <property name="texture">resource:///cursors/gtk_logo_cursor.png</property>
+    <property name="hotspot-x">18</property>
+    <property name="hotspot-y">2</property>
+  </object>
+  <object class="GdkCursor" id="gtk-logo_cursor_fallback">
+    <property name="name">gtk-logo</property>
+    <property name="fallback">gtk-logo_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="gtk-logo_cursor_image_fallback">
+    <property name="texture">resource:///cursors/gtk_logo_cursor.png</property>
+    <property name="hotspot-x">18</property>
+    <property name="hotspot-y">2</property>
+    <property name="fallback">gtk-logo_cursor</property>
+  </object>
+  <object class="GdkCursor" id="context-menu_cursor">
+    <property name="name">context-menu</property>
+  </object>
+  <object class="GdkCursor" id="context-menu_cursor_image">
+    <property name="texture">resource:///cursors/context_menu_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">5</property>
+  </object>
+  <object class="GdkCursor" id="context-menu_cursor_fallback">
+    <property name="name">context-menu</property>
+    <property name="fallback">context-menu_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="context-menu_cursor_image_fallback">
+    <property name="texture">resource:///cursors/context_menu_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">5</property>
+    <property name="fallback">context-menu_cursor</property>
+  </object>
+  <object class="GdkCursor" id="help_cursor">
+    <property name="name">help</property>
+  </object>
+  <object class="GdkCursor" id="help_cursor_image">
+    <property name="texture">resource:///cursors/help_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">27</property>
+  </object>
+  <object class="GdkCursor" id="help_cursor_fallback">
+    <property name="name">help</property>
+    <property name="fallback">help_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="help_cursor_image_fallback">
+    <property name="texture">resource:///cursors/help_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">27</property>
+    <property name="fallback">help_cursor</property>
+  </object>
+  <object class="GdkCursor" id="pointer_cursor">
+    <property name="name">pointer</property>
+  </object>
+  <object class="GdkCursor" id="pointer_cursor_image">
+    <property name="texture">resource:///cursors/pointer_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">9</property>
+  </object>
+  <object class="GdkCursor" id="pointer_cursor_fallback">
+    <property name="name">pointer</property>
+    <property name="fallback">pointer_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="pointer_cursor_image_fallback">
+    <property name="texture">resource:///cursors/pointer_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">9</property>
+    <property name="fallback">pointer_cursor</property>
+  </object>
+  <object class="GdkCursor" id="progress_cursor">
+    <property name="name">progress</property>
+  </object>
+  <object class="GdkCursor" id="progress_cursor_image">
+    <property name="texture">resource:///cursors/progress_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">4</property>
+  </object>
+  <object class="GdkCursor" id="progress_cursor_fallback">
+    <property name="name">progress</property>
+    <property name="fallback">progress_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="progress_cursor_image_fallback">
+    <property name="texture">resource:///cursors/progress_cursor.png</property>
+    <property name="hotspot-x">5</property>
+    <property name="hotspot-y">4</property>
+    <property name="fallback">progress_cursor</property>
+  </object>
+  <object class="GdkCursor" id="wait_cursor">
+    <property name="name">wait</property>
+  </object>
+  <object class="GdkCursor" id="wait_cursor_image">
+    <property name="texture">resource:///cursors/wait_cursor.png</property>
+    <property name="hotspot-x">11</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="wait_cursor_fallback">
+    <property name="name">wait</property>
+    <property name="fallback">wait_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="wait_cursor_image_fallback">
+    <property name="texture">resource:///cursors/wait_cursor.png</property>
+    <property name="hotspot-x">11</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">wait_cursor</property>
+  </object>
+  <object class="GdkCursor" id="cell_cursor">
+    <property name="name">cell</property>
+  </object>
+  <object class="GdkCursor" id="cell_cursor_image">
+    <property name="texture">resource:///cursors/cell_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="cell_cursor_fallback">
+    <property name="name">cell</property>
+    <property name="fallback">cell_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="cell_cursor_image_fallback">
+    <property name="texture">resource:///cursors/cell_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">cell_cursor</property>
+  </object>
+  <object class="GdkCursor" id="crosshair_cursor">
+    <property name="name">crosshair</property>
+  </object>
+  <object class="GdkCursor" id="crosshair_cursor_image">
+    <property name="texture">resource:///cursors/crosshair_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="crosshair_cursor_fallback">
+    <property name="name">crosshair</property>
+    <property name="fallback">crosshair_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="crosshair_cursor_image_fallback">
+    <property name="texture">resource:///cursors/crosshair_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">crosshair_cursor</property>
+  </object>
+  <object class="GdkCursor" id="text_cursor">
+    <property name="name">text</property>
+  </object>
+  <object class="GdkCursor" id="text_cursor_image">
+    <property name="texture">resource:///cursors/text_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="text_cursor_fallback">
+    <property name="name">text</property>
+    <property name="fallback">text_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="text_cursor_image_fallback">
+    <property name="texture">resource:///cursors/text_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">text_cursor</property>
+  </object>
+  <object class="GdkCursor" id="vertical-text_cursor">
+    <property name="name">vertical-text</property>
+  </object>
+  <object class="GdkCursor" id="vertical-text_cursor_image">
+    <property name="texture">resource:///cursors/vertical_text_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="vertical-text_cursor_fallback">
+    <property name="name">vertical-text</property>
+    <property name="fallback">vertical-text_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="vertical-text_cursor_image_fallback">
+    <property name="texture">resource:///cursors/vertical_text_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">vertical-text_cursor</property>
+  </object>
+  <object class="GdkCursor" id="alias_cursor">
+    <property name="name">alias</property>
+  </object>
+  <object class="GdkCursor" id="alias_cursor_image">
+    <property name="texture">resource:///cursors/alias_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="alias_cursor_fallback">
+    <property name="name">alias</property>
+    <property name="fallback">alias_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="alias_cursor_image_fallback">
+    <property name="texture">resource:///cursors/alias_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">alias_cursor</property>
+  </object>
+  <object class="GdkCursor" id="copy_cursor">
+    <property name="name">copy</property>
+  </object>
+  <object class="GdkCursor" id="copy_cursor_image">
+    <property name="texture">resource:///cursors/copy_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="copy_cursor_fallback">
+    <property name="name">copy</property>
+    <property name="fallback">copy_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="copy_cursor_image_fallback">
+    <property name="texture">resource:///cursors/copy_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">copy_cursor</property>
+  </object>
+  <object class="GdkCursor" id="move_cursor">
+    <property name="name">move</property>
+  </object>
+  <object class="GdkCursor" id="move_cursor_image">
+    <property name="texture">resource:///cursors/move_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="move_cursor_fallback">
+    <property name="name">move</property>
+    <property name="fallback">move_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="move_cursor_image_fallback">
+    <property name="texture">resource:///cursors/move_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">move_cursor</property>
+  </object>
+  <object class="GdkCursor" id="no-drop_cursor">
+    <property name="name">no-drop</property>
+  </object>
+  <object class="GdkCursor" id="no-drop_cursor_image">
+    <property name="texture">resource:///cursors/no_drop_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="no-drop_cursor_fallback">
+    <property name="name">no-drop</property>
+    <property name="fallback">no-drop_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="no-drop_cursor_image_fallback">
+    <property name="texture">resource:///cursors/no_drop_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">no-drop_cursor</property>
+  </object>
+  <object class="GdkCursor" id="not-allowed_cursor">
+    <property name="name">not-allowed</property>
+  </object>
+  <object class="GdkCursor" id="not-allowed_cursor_image">
+    <property name="texture">resource:///cursors/not_allowed_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+  </object>
+  <object class="GdkCursor" id="not-allowed_cursor_fallback">
+    <property name="name">not-allowed</property>
+    <property name="fallback">not-allowed_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="not-allowed_cursor_image_fallback">
+    <property name="texture">resource:///cursors/not_allowed_cursor.png</property>
+    <property name="hotspot-x">12</property>
+    <property name="hotspot-y">11</property>
+    <property name="fallback">not-allowed_cursor</property>
+  </object>
+  <object class="GdkCursor" id="grab_cursor">
+    <property name="name">grab</property>
+  </object>
+  <object class="GdkCursor" id="grab_cursor_image">
+    <property name="texture">resource:///cursors/grab_cursor.png</property>
+    <property name="hotspot-x">10</property>
+    <property name="hotspot-y">6</property>
+  </object>
+  <object class="GdkCursor" id="grab_cursor_fallback">
+    <property name="name">grab</property>
+    <property name="fallback">grab_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="grab_cursor_image_fallback">
+    <property name="texture">resource:///cursors/grab_cursor.png</property>
+    <property name="hotspot-x">10</property>
+    <property name="hotspot-y">6</property>
+    <property name="fallback">grab_cursor</property>
+  </object>
+  <object class="GdkCursor" id="grabbing_cursor">
+    <property name="name">grabbing</property>
+  </object>
+  <object class="GdkCursor" id="grabbing_cursor_image">
+    <property name="texture">resource:///cursors/grabbing_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">14</property>
+  </object>
+  <object class="GdkCursor" id="grabbing_cursor_fallback">
+    <property name="name">grabbing</property>
+    <property name="fallback">grabbing_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="grabbing_cursor_image_fallback">
+    <property name="texture">resource:///cursors/grabbing_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">14</property>
+    <property name="fallback">grabbing_cursor</property>
+  </object>
+  <object class="GdkCursor" id="all-scroll_cursor">
+    <property name="name">all-scroll</property>
+  </object>
+  <object class="GdkCursor" id="all-scroll_cursor_image">
+    <property name="texture">resource:///cursors/all_scroll_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="all-scroll_cursor_fallback">
+    <property name="name">all-scroll</property>
+    <property name="fallback">all-scroll_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="all-scroll_cursor_image_fallback">
+    <property name="texture">resource:///cursors/all_scroll_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">all-scroll_cursor</property>
+  </object>
+  <object class="GdkCursor" id="col-resize_cursor">
+    <property name="name">col-resize</property>
+  </object>
+  <object class="GdkCursor" id="col-resize_cursor_image">
+    <property name="texture">resource:///cursors/col_resize_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="col-resize_cursor_fallback">
+    <property name="name">col-resize</property>
+    <property name="fallback">col-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="col-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/col_resize_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">col-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="row-resize_cursor">
+    <property name="name">row-resize</property>
+  </object>
+  <object class="GdkCursor" id="row-resize_cursor_image">
+    <property name="texture">resource:///cursors/row_resize_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">17</property>
+  </object>
+  <object class="GdkCursor" id="row-resize_cursor_fallback">
+    <property name="name">row-resize</property>
+    <property name="fallback">row-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="row-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/row_resize_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">17</property>
+    <property name="fallback">row-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="n-resize_cursor">
+    <property name="name">n-resize</property>
+  </object>
+  <object class="GdkCursor" id="n-resize_cursor_image">
+    <property name="texture">resource:///cursors/n_resize_cursor.png</property>
+    <property name="hotspot-x">17</property>
+    <property name="hotspot-y">7</property>
+  </object>
+  <object class="GdkCursor" id="n-resize_cursor_fallback">
+    <property name="name">n-resize</property>
+    <property name="fallback">n-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="n-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/n_resize_cursor.png</property>
+    <property name="hotspot-x">17</property>
+    <property name="hotspot-y">7</property>
+    <property name="fallback">n-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="e-resize_cursor">
+    <property name="name">e-resize</property>
+  </object>
+  <object class="GdkCursor" id="e-resize_cursor_image">
+    <property name="texture">resource:///cursors/e_resize_cursor.png</property>
+    <property name="hotspot-x">25</property>
+    <property name="hotspot-y">17</property>
+  </object>
+  <object class="GdkCursor" id="e-resize_cursor_fallback">
+    <property name="name">e-resize</property>
+    <property name="fallback">e-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="e-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/e_resize_cursor.png</property>
+    <property name="hotspot-x">25</property>
+    <property name="hotspot-y">17</property>
+    <property name="fallback">e-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="s-resize_cursor">
+    <property name="name">s-resize</property>
+  </object>
+  <object class="GdkCursor" id="s-resize_cursor_image">
+    <property name="texture">resource:///cursors/s_resize_cursor.png</property>
+    <property name="hotspot-x">17</property>
+    <property name="hotspot-y">23</property>
+  </object>
+  <object class="GdkCursor" id="s-resize_cursor_fallback">
+    <property name="name">s-resize</property>
+    <property name="fallback">s-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="s-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/s_resize_cursor.png</property>
+    <property name="hotspot-x">17</property>
+    <property name="hotspot-y">23</property>
+    <property name="fallback">s-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="w-resize_cursor">
+    <property name="name">w-resize</property>
+  </object>
+  <object class="GdkCursor" id="w-resize_cursor_image">
+    <property name="texture">resource:///cursors/w_resize_cursor.png</property>
+    <property name="hotspot-x">8</property>
+    <property name="hotspot-y">17</property>
+  </object>
+  <object class="GdkCursor" id="w-resize_cursor_fallback">
+    <property name="name">w-resize</property>
+    <property name="fallback">w-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="w-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/w_resize_cursor.png</property>
+    <property name="hotspot-x">8</property>
+    <property name="hotspot-y">17</property>
+    <property name="fallback">w-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="ne-resize_cursor">
+    <property name="name">ne-resize</property>
+  </object>
+  <object class="GdkCursor" id="ne-resize_cursor_image">
+    <property name="texture">resource:///cursors/ne_resize_cursor.png</property>
+    <property name="hotspot-x">20</property>
+    <property name="hotspot-y">13</property>
+  </object>
+  <object class="GdkCursor" id="ne-resize_cursor_fallback">
+    <property name="name">ne-resize</property>
+    <property name="fallback">ne-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="ne-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/ne_resize_cursor.png</property>
+    <property name="hotspot-x">20</property>
+    <property name="hotspot-y">13</property>
+    <property name="fallback">ne-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="nw-resize_cursor">
+    <property name="name">nw-resize</property>
+  </object>
+  <object class="GdkCursor" id="nw-resize_cursor_image">
+    <property name="texture">resource:///cursors/nw_resize_cursor.png</property>
+    <property name="hotspot-x">13</property>
+    <property name="hotspot-y">13</property>
+  </object>
+  <object class="GdkCursor" id="nw-resize_cursor_fallback">
+    <property name="name">nw-resize</property>
+    <property name="fallback">nw-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="nw-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/nw_resize_cursor.png</property>
+    <property name="hotspot-x">13</property>
+    <property name="hotspot-y">13</property>
+    <property name="fallback">nw-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="se-resize_cursor">
+    <property name="name">se-resize</property>
+  </object>
+  <object class="GdkCursor" id="se-resize_cursor_image">
+    <property name="texture">resource:///cursors/se_resize_cursor.png</property>
+    <property name="hotspot-x">19</property>
+    <property name="hotspot-y">19</property>
+  </object>
+  <object class="GdkCursor" id="se-resize_cursor_fallback">
+    <property name="name">se-resize</property>
+    <property name="fallback">se-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="se-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/se_resize_cursor.png</property>
+    <property name="hotspot-x">19</property>
+    <property name="hotspot-y">19</property>
+    <property name="fallback">se-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="sw-resize_cursor">
+    <property name="name">sw-resize</property>
+  </object>
+  <object class="GdkCursor" id="sw-resize_cursor_image">
+    <property name="texture">resource:///cursors/sw_resize_cursor.png</property>
+    <property name="hotspot-x">13</property>
+    <property name="hotspot-y">19</property>
+  </object>
+  <object class="GdkCursor" id="sw-resize_cursor_fallback">
+    <property name="name">sw-resize</property>
+    <property name="fallback">sw-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="sw-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/sw_resize_cursor.png</property>
+    <property name="hotspot-x">13</property>
+    <property name="hotspot-y">19</property>
+    <property name="fallback">sw-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="ew-resize_cursor">
+    <property name="name">ew-resize</property>
+  </object>
+  <object class="GdkCursor" id="ew-resize_cursor_image">
+    <property name="texture">resource:///cursors/ew_resize_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+  </object>
+  <object class="GdkCursor" id="ew-resize_cursor_fallback">
+    <property name="name">ew-resize</property>
+    <property name="fallback">ew-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="ew-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/ew_resize_cursor.png</property>
+    <property name="hotspot-x">16</property>
+    <property name="hotspot-y">15</property>
+    <property name="fallback">ew-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="ns-resize_cursor">
+    <property name="name">ns-resize</property>
+  </object>
+  <object class="GdkCursor" id="ns-resize_cursor_image">
+    <property name="texture">resource:///cursors/ns_resize_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">17</property>
+  </object>
+  <object class="GdkCursor" id="ns-resize_cursor_fallback">
+    <property name="name">ns-resize</property>
+    <property name="fallback">ns-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="ns-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/ns_resize_cursor.png</property>
+    <property name="hotspot-x">15</property>
+    <property name="hotspot-y">17</property>
+    <property name="fallback">ns-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="nesw-resize_cursor">
+    <property name="name">nesw-resize</property>
+  </object>
+  <object class="GdkCursor" id="nesw-resize_cursor_image">
+    <property name="texture">resource:///cursors/nesw_resize_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">14</property>
+  </object>
+  <object class="GdkCursor" id="nesw-resize_cursor_fallback">
+    <property name="name">nesw-resize</property>
+    <property name="fallback">nesw-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="nesw-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/nesw_resize_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">14</property>
+    <property name="fallback">nesw-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="nwse-resize_cursor">
+    <property name="name">nwse-resize</property>
+  </object>
+  <object class="GdkCursor" id="nwse-resize_cursor_image">
+    <property name="texture">resource:///cursors/nwse_resize_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">14</property>
+  </object>
+  <object class="GdkCursor" id="nwse-resize_cursor_fallback">
+    <property name="name">nwse-resize</property>
+    <property name="fallback">nwse-resize_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="nwse-resize_cursor_image_fallback">
+    <property name="texture">resource:///cursors/nwse_resize_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">14</property>
+    <property name="fallback">nwse-resize_cursor</property>
+  </object>
+  <object class="GdkCursor" id="zoom-in_cursor">
+    <property name="name">zoom-in</property>
+  </object>
+  <object class="GdkCursor" id="zoom-in_cursor_image">
+    <property name="texture">resource:///cursors/zoom_in_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">13</property>
+  </object>
+  <object class="GdkCursor" id="zoom-in_cursor_fallback">
+    <property name="name">zoom-in</property>
+    <property name="fallback">zoom-in_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="zoom-in_cursor_image_fallback">
+    <property name="texture">resource:///cursors/zoom_in_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">13</property>
+    <property name="fallback">zoom-in_cursor</property>
+  </object>
+  <object class="GdkCursor" id="zoom-out_cursor">
+    <property name="name">zoom-out</property>
+  </object>
+  <object class="GdkCursor" id="zoom-out_cursor_image">
+    <property name="texture">resource:///cursors/zoom_out_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">13</property>
+  </object>
+  <object class="GdkCursor" id="zoom-out_cursor_fallback">
+    <property name="name">zoom-out</property>
+    <property name="fallback">zoom-out_cursor_image</property>
+  </object>
+  <object class="GdkCursor" id="zoom-out_cursor_image_fallback">
+    <property name="texture">resource:///cursors/zoom_out_cursor.png</property>
+    <property name="hotspot-x">14</property>
+    <property name="hotspot-y">13</property>
+    <property name="fallback">zoom-out_cursor</property>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="default_width">300</property>
+    <property name="default_height">300</property>
+    <property name="title">Cursors</property>
+    <child>
+      <object class="GtkScrolledWindow">
+        <property name="hscrollbar-policy">never</property>
+        <property name="vscrollbar-policy">automatic</property>
+        <property name="propagate-natural-height">True</property>
+        <property name="hexpand">True</property>
+        <child>
+          <object class="GtkBox">
+            <property name="orientation">vertical</property>
+            <property name="margin">60</property>
+            <property name="spacing">10</property>
+            <property name="halign">center</property>
+            <child>
+              <object class="GtkFrame">
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/default_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">default</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">default_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "default" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">default_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">default_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "default" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">default_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "default" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/none_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">none</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">none_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "none" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">none_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">none_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "none" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">none_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "none" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/gtk_logo_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">gtk-logo</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">gtk-logo_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "gtk-logo" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">gtk-logo_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">gtk-logo_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "gtk-logo" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">gtk-logo_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "gtk-logo" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="hexpand">True</property>
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property 
name="texture">resource:///cursors/context_menu_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">context-menu</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">context-menu_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "context-menu" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">context-menu_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">context-menu_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "context-menu" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">context-menu_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "context-menu" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/help_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">help</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">help_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "help" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">help_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">help_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "help" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">help_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "help" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/pointer_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">pointer</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">pointer_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "pointer" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">pointer_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">pointer_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "pointer" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">pointer_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "pointer" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/progress_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">progress</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">progress_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "progress" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">progress_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">progress_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "progress" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">progress_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "progress" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/wait_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">wait</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">wait_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "wait" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">wait_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">wait_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "wait" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">wait_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "wait" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="hexpand">True</property>
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/cell_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">cell</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">cell_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "cell" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">cell_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">cell_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "cell" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">cell_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "cell" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/crosshair_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">crosshair</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">crosshair_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "crosshair" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">crosshair_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">crosshair_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "crosshair" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">crosshair_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "crosshair" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/text_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">text</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">text_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "text" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">text_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">text_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "text" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">text_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "text" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property 
name="texture">resource:///cursors/vertical_text_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">vertical-text</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">vertical-text_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "vertical-text" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">vertical-text_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">vertical-text_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "vertical-text" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">vertical-text_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "vertical-text" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="hexpand">True</property>
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/alias_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">alias</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">alias_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "alias" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">alias_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">alias_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "alias" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">alias_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "alias" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/copy_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">copy</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">copy_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "copy" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">copy_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">copy_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "copy" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">copy_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "copy" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/move_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">move</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">move_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "move" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">move_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">move_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "move" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">move_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "move" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/no_drop_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">no-drop</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">no-drop_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "no-drop" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">no-drop_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">no-drop_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "no-drop" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">no-drop_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "no-drop" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property 
name="texture">resource:///cursors/not_allowed_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">not-allowed</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">not-allowed_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "not-allowed" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">not-allowed_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">not-allowed_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "not-allowed" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">not-allowed_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "not-allowed" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/grab_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">grab</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grab_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "grab" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grab_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grab_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "grab" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grab_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "grab" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/grabbing_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">grabbing</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grabbing_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "grabbing" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grabbing_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grabbing_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "grabbing" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">grabbing_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "grabbing" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="hexpand">True</property>
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/all_scroll_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">all-scroll</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">all-scroll_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "all-scroll" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">all-scroll_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">all-scroll_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "all-scroll" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">all-scroll_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "all-scroll" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/col_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">col-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">col-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "col-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">col-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">col-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "col-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">col-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "col-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/row_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">row-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">row-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "row-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">row-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">row-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "row-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">row-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "row-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/n_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">n-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">n-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "n-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">n-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">n-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "n-resize" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">n-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "n-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/e_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">e-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">e-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "e-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">e-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">e-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "e-resize" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">e-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "e-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/s_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">s-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">s-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "s-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">s-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">s-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "s-resize" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">s-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "s-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/w_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">w-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">w-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "w-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">w-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">w-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "w-resize" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">w-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "w-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/ne_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">ne-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ne-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "ne-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ne-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ne-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "ne-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ne-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "ne-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/nw_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">nw-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nw-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "nw-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nw-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nw-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "nw-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nw-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "nw-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/sw_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">sw-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">sw-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "sw-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">sw-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">sw-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "sw-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">sw-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "sw-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/se_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">se-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">se-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "se-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">se-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">se-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "se-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">se-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "se-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/ew_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">ew-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ew-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "ew-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ew-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ew-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "ew-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ew-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "ew-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/ns_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">ns-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ns-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "ns-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ns-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ns-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "ns-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">ns-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "ns-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property 
name="texture">resource:///cursors/nesw_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">nesw-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nesw-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "nesw-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nesw-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nesw-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "nesw-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nesw-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "nesw-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property 
name="texture">resource:///cursors/nwse_resize_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">nwse-resize</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nwse-resize_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "nwse-resize" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nwse-resize_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nwse-resize_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "nwse-resize" named 
cursor falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">nwse-resize_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "nwse-resize" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="hexpand">True</property>
+                <child>
+                  <object class="GtkListBox">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="view"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/zoom_in_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">zoom-in</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-in_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "zoom-in" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-in_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-in_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "zoom-in" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-in_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "zoom-in" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">False</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="margin">10</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="texture">resource:///cursors/zoom_out_cursor.png</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel">
+                                <property name="label">zoom-out</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                                <property name="hexpand">True</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-out_cursor</property>
+                                <property name="tooltip-text" translatable="yes">The "zoom-out" named 
cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-out_cursor_image</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-out_cursor_fallback</property>
+                                <property name="tooltip-text" translatable="yes">The "zoom-out" named cursor 
falling back to an image cursor.</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkFrame">
+                                <property name="width-request">32</property>
+                                <property name="height-request">32</property>
+                                <property name="cursor">zoom-out_cursor_image_fallback</property>
+                                <property name="tooltip-text" translatable="yes">An image cursor falling 
back to the "zoom-out" cursor.</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml
index 64b01a4..c3aef04 100644
--- a/demos/gtk-demo/demo.gresource.xml
+++ b/demos/gtk-demo/demo.gresource.xml
@@ -57,6 +57,7 @@
     <file>reset.css</file>
   </gresource>
   <gresource prefix="/cursors">
+    <file>cursors.ui</file>
     <file>alias_cursor.png</file>
     <file>all_scroll_cursor.png</file>
     <file>cell_cursor.png</file>
@@ -67,6 +68,7 @@
     <file>default_cursor.png</file>
     <file>e_resize_cursor.png</file>
     <file>ew_resize_cursor.png</file>
+    <file>gtk_logo_cursor.png</file>
     <file>grabbing_cursor.png</file>
     <file>grab_cursor.png</file>
     <file>hand_cursor.png</file>
diff --git a/demos/gtk-demo/gtk_logo_cursor.png b/demos/gtk-demo/gtk_logo_cursor.png
new file mode 100644
index 0000000..b25dcb1
Binary files /dev/null and b/demos/gtk-demo/gtk_logo_cursor.png differ


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