[evolution] Adapt ETree to latest gtk+-3.0 API.



commit a103158cee1af3f5f979d855cb9cbc0331a35237
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sat Jan 15 10:31:59 2011 -0500

    Adapt ETree to latest gtk+-3.0 API.

 widgets/table/e-tree.c |  105 ++++++++++++++++++++++++++---------------------
 widgets/table/e-tree.h |    5 --
 2 files changed, 58 insertions(+), 52 deletions(-)
---
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 39bfd40..4471514 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -98,7 +98,11 @@ enum {
 	PROP_DRAW_FOCUS,
 	PROP_ETTA,
 	PROP_UNIFORM_ROW_HEIGHT,
-	PROP_ALWAYS_SEARCH
+	PROP_ALWAYS_SEARCH,
+	PROP_HADJUSTMENT,
+	PROP_VADJUSTMENT,
+	PROP_HSCROLL_POLICY,
+	PROP_VSCROLL_POLICY
 };
 
 enum {
@@ -248,7 +252,8 @@ static void hover_off (ETree *et);
 static void hover_on (ETree *et, gint x, gint y);
 static void context_destroyed (gpointer data, GObject *ctx);
 
-G_DEFINE_TYPE (ETree, e_tree, GTK_TYPE_TABLE)
+G_DEFINE_TYPE_WITH_CODE (ETree, e_tree, GTK_TYPE_TABLE,
+			 G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL))
 
 static void
 et_disconnect_from_etta (ETree *et)
@@ -1915,6 +1920,30 @@ et_get_property (GObject *object,
 	case PROP_ALWAYS_SEARCH:
 		g_value_set_boolean (value, etree->priv->always_search);
 		break;
+	case PROP_HADJUSTMENT:
+		if (etree->priv->table_canvas)
+			g_object_get_property (G_OBJECT (etree->priv->table_canvas), "hadjustment", value);
+		else
+			g_value_set_object (value, NULL);
+		break;
+	case PROP_VADJUSTMENT:
+		if (etree->priv->table_canvas)
+			g_object_get_property (G_OBJECT (etree->priv->table_canvas), "vadjustment", value);
+		else
+			g_value_set_object (value, NULL);
+		break;
+	case PROP_HSCROLL_POLICY:
+		if (etree->priv->table_canvas)
+			g_object_get_property (G_OBJECT (etree->priv->table_canvas), "hscroll-policy", value);
+		else
+			g_value_set_enum (value, 0);
+		break;
+	case PROP_VSCROLL_POLICY:
+		if (etree->priv->table_canvas)
+			g_object_get_property (G_OBJECT (etree->priv->table_canvas), "vscroll-policy", value);
+		else
+			g_value_set_enum (value, 0);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -1986,32 +2015,23 @@ et_set_property (GObject *object,
 		etree->priv->always_search = g_value_get_boolean (value);
 		clear_current_search_col (etree);
 		break;
-	}
-}
-
-static void
-set_scroll_adjustments   (ETree *tree,
-			  GtkAdjustment *hadjustment,
-			  GtkAdjustment *vadjustment)
-{
-	if (vadjustment != NULL)
-		gtk_adjustment_set_step_increment (vadjustment, 20);
-
-	if (hadjustment != NULL)
-		gtk_adjustment_set_step_increment (hadjustment, 20);
 
-	/* XXX This can be called after our dispose() method has run. */
-	if (tree->priv->table_canvas != NULL) {
-		GtkScrollable *scrollable;
-
-		scrollable = GTK_SCROLLABLE (tree->priv->table_canvas);
-		gtk_scrollable_set_hadjustment (scrollable, hadjustment);
-		gtk_scrollable_set_vadjustment (scrollable, vadjustment);
-
-		if (tree->priv->header_canvas != NULL) {
-			scrollable = GTK_SCROLLABLE (tree->priv->header_canvas);
-			gtk_scrollable_set_hadjustment (scrollable, hadjustment);
-		}
+	case PROP_HADJUSTMENT:
+		if (etree->priv->table_canvas)
+			g_object_set_property (G_OBJECT (etree->priv->table_canvas), "hadjustment", value);
+		break;
+	case PROP_VADJUSTMENT:
+		if (etree->priv->table_canvas)
+			g_object_set_property (G_OBJECT (etree->priv->table_canvas), "vadjustment", value);
+		break;
+	case PROP_HSCROLL_POLICY:
+		if (etree->priv->table_canvas)
+			g_object_set_property (G_OBJECT (etree->priv->table_canvas), "hscroll-policy", value);
+		break;
+	case PROP_VSCROLL_POLICY:
+		if (etree->priv->table_canvas)
+			g_object_set_property (G_OBJECT (etree->priv->table_canvas), "vscroll-policy", value);
+		break;
 	}
 }
 
@@ -2353,9 +2373,7 @@ struct _ETreeDragSourceSite
 	GdkModifierType    start_button_mask;
 	GtkTargetList     *target_list;        /* Targets for drag data */
 	GdkDragAction      actions;            /* Possible actions */
-	GdkColormap       *colormap;		 /* Colormap for drag icon */
-	GdkPixmap         *pixmap;             /* Icon for drag data */
-	GdkBitmap         *mask;
+	GdkPixbuf         *pixbuf;             /* Icon for drag data */
 
 	/* Stored button press information to detect drag beginning */
 	gint               state;
@@ -2576,11 +2594,10 @@ et_real_start_drag (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *e
 			info = g_dataset_get_data (context, "gtk-info");
 
 			if (info && !info->icon_window) {
-				if (site->pixmap)
-					gtk_drag_set_icon_pixmap (context,
-								  site->colormap,
-								  site->pixmap,
-								  site->mask, -2, -2);
+				if (site->pixbuf)
+					gtk_drag_set_icon_pixbuf (context,
+								  site->pixbuf,
+								  -2, -2);
 				else
 					gtk_drag_set_icon_default (context);
 			}
@@ -3464,18 +3481,6 @@ e_tree_class_init (ETreeClass *class)
 			      G_TYPE_UINT,
 			      G_TYPE_UINT);
 
-	class->set_scroll_adjustments = set_scroll_adjustments;
-
-	widget_class->set_scroll_adjustments_signal =
-		g_signal_new ("set_scroll_adjustments",
-			      G_OBJECT_CLASS_TYPE (object_class),
-			      G_SIGNAL_RUN_LAST,
-			      G_STRUCT_OFFSET (ETreeClass, set_scroll_adjustments),
-			      NULL, NULL,
-			      e_marshal_NONE__OBJECT_OBJECT,
-			      G_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT,
-			      GTK_TYPE_ADJUSTMENT);
-
 	g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD,
 					 g_param_spec_int ("length_threshold",
 							   "Length Threshold",
@@ -3542,6 +3547,12 @@ e_tree_class_init (ETreeClass *class)
 			G_PARAM_READABLE |
 			G_PARAM_STATIC_STRINGS));
 
+	/* Scrollable interface */
+	g_object_class_override_property (object_class, PROP_HADJUSTMENT,    "hadjustment");
+	g_object_class_override_property (object_class, PROP_VADJUSTMENT,    "vadjustment");
+	g_object_class_override_property (object_class, PROP_HSCROLL_POLICY, "hscroll-policy");
+	g_object_class_override_property (object_class, PROP_VSCROLL_POLICY, "vscroll-policy");
+
 	gal_a11y_e_tree_init ();
 }
 
diff --git a/widgets/table/e-tree.h b/widgets/table/e-tree.h
index 533ab58..6504caf 100644
--- a/widgets/table/e-tree.h
+++ b/widgets/table/e-tree.h
@@ -112,11 +112,6 @@ struct _ETreeClass {
 	gboolean	(*white_space_event)	(ETree *et,
 						 GdkEvent *event);
 
-	void		(*set_scroll_adjustments)
-						(ETree	 *tree,
-						 GtkAdjustment *hadjustment,
-						 GtkAdjustment *vadjustment);
-
 	/* Source side drag signals */
 	void		(*tree_drag_begin)	(ETree	 *tree,
 						 gint row,



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