[Xfce4-commits] <exo:stephan/gtk3> Add required gtk3 properties.

Nick Schermer noreply at xfce.org
Tue May 15 20:16:03 CEST 2012


Updating branch refs/heads/stephan/gtk3
         to 2f9b32103fea0bd0a9b98eca3f4b187ff6f0cb2e (commit)
       from 2b5d4a6c5518cfecc6e09eedcdbded958f615ea5 (commit)

commit 2f9b32103fea0bd0a9b98eca3f4b187ff6f0cb2e
Author: Nick Schermer <nick at xfce.org>
Date:   Tue May 15 20:14:34 2012 +0200

    Add required gtk3 properties.

 exo/exo-icon-view.c |   59 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c
index d995849..b2e652c 100644
--- a/exo/exo-icon-view.c
+++ b/exo/exo-icon-view.c
@@ -93,6 +93,12 @@ enum
   PROP_SINGLE_CLICK_TIMEOUT,
   PROP_ENABLE_SEARCH,
   PROP_SEARCH_COLUMN,
+
+  /* For scrollable interface */
+  PROP_HADJUSTMENT,
+  PROP_VADJUSTMENT,
+  PROP_HSCROLL_POLICY,
+  PROP_VSCROLL_POLICY
 };
 
 /* Signal identifiers */
@@ -567,6 +573,11 @@ struct _ExoIconViewPrivate
 
   /* ExoIconViewFlags */
   guint flags;
+
+  /* GtkScrollablePolicy needs to be checked when
+   * driving the scrollable adjustment values */
+  GtkScrollablePolicy hscroll_policy;
+  GtkScrollablePolicy vscroll_policy;
 };
 
 
@@ -1072,6 +1083,12 @@ exo_icon_view_class_init (ExoIconViewClass *klass)
                   GTK_TYPE_MOVEMENT_STEP,
                   G_TYPE_INT);
 
+  /* Scrollable interface properties */
+  g_object_class_override_property (gobject_class, PROP_HADJUSTMENT,    "hadjustment");
+  g_object_class_override_property (gobject_class, PROP_VADJUSTMENT,    "vadjustment");
+  g_object_class_override_property (gobject_class, PROP_HSCROLL_POLICY, "hscroll-policy");
+  g_object_class_override_property (gobject_class, PROP_VSCROLL_POLICY, "vscroll-policy");
+
   /* Key bindings */
   gtkbinding_set = gtk_binding_set_by_class (klass);
   gtk_binding_entry_add_signal (gtkbinding_set, GDK_KEY_a, GDK_CONTROL_MASK, "select-all", 0);
@@ -1307,6 +1324,22 @@ exo_icon_view_get_property (GObject      *object,
       g_value_set_enum (value, priv->layout_mode);
       break;
 
+    case PROP_HADJUSTMENT:
+      g_value_set_object (value, priv->hadjustment);
+      break;
+
+    case PROP_VADJUSTMENT:
+      g_value_set_object (value, priv->vadjustment);
+      break;
+
+    case PROP_HSCROLL_POLICY:
+      g_value_set_enum (value, priv->hscroll_policy);
+      break;
+
+    case PROP_VSCROLL_POLICY:
+      g_value_set_enum (value, priv->vscroll_policy);
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1385,6 +1418,24 @@ exo_icon_view_set_property (GObject      *object,
       exo_icon_view_set_layout_mode (icon_view, g_value_get_enum (value));
       break;
 
+    case PROP_HADJUSTMENT:
+      exo_icon_view_set_adjustments (icon_view, g_value_get_object (value), NULL);
+      break;
+      
+    case PROP_VADJUSTMENT:
+      exo_icon_view_set_adjustments (icon_view, NULL, g_value_get_object (value));
+      break;
+      
+    case PROP_HSCROLL_POLICY:
+      icon_view->priv->hscroll_policy = g_value_get_enum (value);
+      gtk_widget_queue_resize (GTK_WIDGET (icon_view));
+      break;
+      
+    case PROP_VSCROLL_POLICY:
+      icon_view->priv->vscroll_policy = g_value_get_enum (value);
+      gtk_widget_queue_resize (GTK_WIDGET (icon_view));
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2709,7 +2760,7 @@ exo_icon_view_update_rubberband_selection (ExoIconView *icon_view)
 
   if (G_LIKELY (changed))
     g_signal_emit (G_OBJECT (icon_view), icon_view_signals[SELECTION_CHANGED], 0);
-#endif 
+#endif
 }
 
 
@@ -6845,9 +6896,9 @@ exo_icon_view_drag_begin (GtkWidget      *widget,
   path = gtk_tree_path_new_from_indices (g_list_index (icon_view->priv->items, item), -1);
   icon = exo_icon_view_create_drag_icon (icon_view, path);
   gtk_tree_path_free (path);
-  
+
   cairo_surface_set_device_offset (icon, -x, -y);
-  
+
   gtk_drag_set_icon_surface (context, icon);
 
   cairo_surface_destroy (icon);
@@ -7476,7 +7527,7 @@ exo_icon_view_create_drag_icon (ExoIconView *icon_view,
       if (G_UNLIKELY (idx == item_idx))
         {
           item = lp->data;
-          
+
           rect.x = item->area.x;
           rect.y = item->area.y;
           rect.width = item->area.width;


More information about the Xfce4-commits mailing list