static void filename_cell_data_func (GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, FMListView *view) { char *text; char *color; GdkRGBA rgba; GtkTreePath *path, *hover_path; PangoUnderline underline; gtk_tree_model_get (model, iter, FM_LIST_MODEL_FILENAME, &text, -1); gtk_tree_model_get (model, iter, FM_LIST_MODEL_COLOR, &color, -1); if (color != NULL) { gdk_rgba_parse (&rgba, color); //rgba.alpha = 0.85; } /*if (color) { GList *lrenderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT(column)); GList *l; for (l=lrenderers; l != NULL; l=l->next) g_object_set(l->data, "cell-background", color, NULL); g_list_free (lrenderers); } g_free (color);*/ underline = PANGO_UNDERLINE_NONE; if (exo_tree_view_get_single_click (EXO_TREE_VIEW (view->tree))) { path = gtk_tree_model_get_path (model, iter); hover_path = exo_tree_view_get_hover_path (EXO_TREE_VIEW (view->tree)); if (hover_path == NULL || gtk_tree_path_compare (path, hover_path)) { underline = PANGO_UNDERLINE_NONE; } else { underline = PANGO_UNDERLINE_SINGLE; } gtk_tree_path_free (path); } g_object_set (G_OBJECT (renderer), "text", text, "underline", underline, //"cell-background", color, "cell-background-rgba", &rgba, NULL); g_free (text); }
static void exo_tree_view_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExoTreeView *tree_view = EXO_TREE_VIEW (object); switch (prop_id) { case PROP_SINGLE_CLICK: g_value_set_boolean (value, exo_tree_view_get_single_click (tree_view)); break; case PROP_SINGLE_CLICK_TIMEOUT: g_value_set_uint (value, exo_tree_view_get_single_click_timeout (tree_view)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }