Я довольно новичок в gtk и совсем не разбираюсь в стилях CSS. Большинство примеров, которые я нашел в Интернете, предполагают, что цвет столбцов / строк дерева можно изменить с помощью CSS-провайдера. Я специально пытаюсь изменить цвет выбранной строки.
С помощью Gtk Inspector мне удалось изменить цвет невыбранных строк дерева в свойствах объекта. Поэтому я думаю, что это можно сделать, но я не могу понять, как это сделать в коде. И я еще не смог найти документацию, которая бы четко объясняла это.
Мой вопрос заключается в том, как реализовать изменение цвета строк с помощью кода CSS и C? Может ли кто-нибудь предложить решение в C или указать мне правильное направление? Я хотел бы сделать код максимально простым.
void on_changed(GtkWidget *widget, gpointer view) // *** row clicked ***
{
GtkTreeIter iter;
GtkTreeModel *model;
gchar *value;
// if the row is clicked then get the new selection
gtk_tree_selection_get_selected(GTK_TREE_SELECTION(widget), &model, &iter); // won't work without this
gtk_tree_model_get(model, &iter, COLUMN_ZERO, &value, -1);
// set column header to selected row text.
GtkTreeViewColumn *col = gtk_tree_view_get_column (view, COLUMN_ZERO);
gtk_tree_view_column_set_title(col, value);
//////////////////////////////////////////////
GtkCssProvider *provider = gtk_css_provider_new ();
GError *error = NULL;
gtk_css_provider_load_from_path (provider,"custom.css", &error);
if(error) { printf("ERROR\n"); g_free(error); }
GtkStyleContext *context = gtk_widget_get_style_context (view);
gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref(provider);
//////////////////////////////////////////
g_free(value);
} //*** End of ON_CHANGED **************