Adapt ETree to latest gtk+-3.0 API.

This commit is contained in:
Matthew Barnes
2011-01-15 10:31:59 -05:00
parent 310069df2f
commit a103158cee
2 changed files with 58 additions and 52 deletions

View File

@ -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 ();
}

View File

@ -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,