GTK+ / как изменить атрибуты текстовых элементов GtkListStore?
/*
Есть список (GtkListStore), заполненный тремя элементами.
Никак не могу понять, как менять атрибуты (цвет, background, шрифт) текстовых элементов (именно ячеек, не столбцов).
Понимаю что надо определенным образом задать параметры в gtk_list_store_new, gtk_list_store_set,
возможно в gtk_tree_view_column_new_with_attributes, но как?
Если можно, измените приведенный пример так, чтобы первый элемент (123 qwe) имел цвет текста - красный,
второй (456 asd) - background синим,
третий (789 zxc) - шрифт в стиле underline + bold.
*/
enum {
COLUMN_KEY,
COLUMN_ACTION,
NUM_COLUMS
};
//виджет-окно, содержащее список
GtkWidget *scrolled_wnd_with_list_store() {
GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
GtkCellRenderer *cell;
GtkTreeViewColumn *column;
GtkWidget *tree_view = gtk_tree_view_new ();
gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
GtkListStore *model = gtk_list_store_new (NUM_COLUMS, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
gtk_widget_show (tree_view);
GtkTreeIter iter;
//добавляем элементы в ListStore
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "123", COLUMN_ACTION, "qwe", -1);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "456", COLUMN_ACTION, "asd", -1);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "789", COLUMN_ACTION, "zxc", -1);
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("1", cell, "text", COLUMN_KEY, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), GTK_TREE_VIEW_COLUMN (column));
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("2", cell, "text", COLUMN_ACTION, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), GTK_TREE_VIEW_COLUMN (column));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE);
return scrolled_window;
}