Re: setting color of some of the rows in a TreeView
- From: BoÅtjan ÅpetiÄ <igzebedze auch eu org>
- To: "GTK2-Perl List" <gtk-perl-list gnome org>
- Subject: Re: setting color of some of the rows in a TreeView
- Date: Fri, 22 Apr 2005 10:09:46 +0200
On Fri, 22 Apr 2005 09:51:45 +0300, Gabor Szabo <szabgab gmail com> wrote:
I have been fighting with for some time now but I could not find the answer.
How can I set the color of some of the rows in a TreeView ?
I don't mean the alternating colors, I have a few that I would like to
stand out.
i do it with custom data function for cell renderer:
my $clist = Gtk2::ListStore->new(@types);
$tv->set_rules_hint(1);
$tv->set_model($clist);
for (my $i = 0; $i < @{$order}; $i++) {
my $renderer = Gtk2::CellRendererText->new ;
$renderer->set('editable' => TRUE);
$renderer->set('mode' => 'editable');
$renderer->signal_connect ('edited' => sub {
my ($cell,$text_path,$new_text,$i) = @_;
my $tree = $tv->get_model;
my $iter = $tree->get_iter_from_string($text_path);
if (defined $iter) {
#my $old_text = $tree->get($iter,$i);
$tree->set($iter,$i,$new_text);
}
},$i);
my $title = ${$order}[$i];
my $cl = Gtk2::TreeViewColumn->new_with_attributes('',$renderer,'text' => $i);
$tv->append_column($cl);
$cl->set_clickable(1);
$cl->set_resizable(0);
$cl->set_sort_column_id($i);
$cl->set_title($title);
$tv->get_model->set_sort_func($i,\&sort_by_color,$i);
# ----->
$cl->set_cell_data_func($renderer, sub {
my ($column, $cell, $model, $iter, $title) = @_;
my $color = 'white';
my ($cursor) = $tv->get_cursor;
my $entry = $entries{$title};
if (!defined $entry) { $entry = ""; }
my $text = $cell->get('text');
if ((defined $entry) and (defined $text) and ($text ne "")) {
if ($text =~ /$entry/i) {
$color = 'orange';
}
}
$cell->set (background => $color);
}, $title);
# <------
}
regards, bostjan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]