Re: hiding progressbar in a Gtk2::TreeViewColumn
- From: anguila <anguila gmail com>
- To: muppet <scott asofyet org>
- Cc: "gtk-perl-list gnome org List" <gtk-perl-list gnome org>
- Subject: Re: hiding progressbar in a Gtk2::TreeViewColumn
- Date: Sun, 26 Jul 2009 03:04:35 +0200
solved! forgot use Glib qw(TRUE FALSE);
thanks!
On Sat, Jul 25, 2009 at 6:40 PM, muppet
<scott asofyet org> wrote:
On Jul 24, 2009, at 11:34 PM, anguila wrote:
Trying the first option it seems not recognize sensible option:
GLib-GObject-WARNING **: unable to set property `visible' of type `gboolean' from value of type `gchararray'
With the second option it works, but still visible:
$tc_pbar->set_cell_data_func ($pbar,
sub {
my ($column, $cell, $model, $iter) = @_;
my $string = $model->get_string_from_iter ($iter);
if ($string!~/\d:\d:0/) {
# we should show the progress bar
$cell->set (visible => FALSE, value => $value);
Is that a typo? (Should be TRUE here, not FALSE.)
} else {
# we should NOT show the progress bar, so don't
$cell->set (visible => FALSE,value=>22);
print "pbar to off!\n";
}
});
All the 3rd child want to make pbar visible=>false. I tried and i can change the value of all 3rd childs to 22 and it works, but visible=>false doesn't change the state of visibility and i dont understand why because is a attribute og Gtk2::CellRenderer and it should works, but it doesn't.
Any idea?
Perplexing. A quick scan of the gtk+ sources on git.gnome.org shows that the cell's visible property is honored by TreeViewColumn when processing each row, so this should work just fine. I may be misreading that (gtktreeviewcolumn.c is 3755 lines and a web browser is not as good for reading code as vim).
Sanity check: do you have the constants TRUE and FALSE defined? (e.g. from 'use Glib qw(:constants)'). Is strict turned on? If perl is not being properly strict, it may be interpreting the bareword FALSE as a string, and 'FALSE' is not an empty string and therefore is logically true.
What if you set the other properties before setting visible, e.g.
} else {
# we should NOT show the progress bar
$cell->set (text => '', value => 0, width => 0, visible => FALSE);
--
Doing a good job around here is like wetting your pants in a dark suit; you get a warm feeling, but no one notices.
-- unknown
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]