Re: Question about getting values from nested GTK::Boxes
- From: muppet <scott asofyet org>
- To: "Mike Martin" <redtux1 googlemail com>
- Cc: gtk-perl-list gnome org
- Subject: Re: Question about getting values from nested GTK::Boxes
- Date: Wed, 7 Feb 2007 20:36:52 -0500
On Feb 7, 2007, at 9:43 AM, Mike Martin wrote:
I have the following function which gets the values from nested h/ 
vboxes.
[snip code that walks the widget tree]
As you can see I am getting the values several levels deep from
dynamically inserted boxes from a container box
The function works well, but seems very clunky, so my question is
whether there is a better way to do this.
Why not keep a separate list of the entries you want to read?  Build  
the list as the widgets are added, and then you have a reference to  
each one you're actually interested in without having to walk the  
widget tree.
Completely untested example code fragments:
#
# Add a new entry to the box/table/widget tree.  Returns the entry
# that was added (so you can add signals to it), and stores a reference
# to that entry in the list referred to by $toplevel->{entry_list} so  
they
# can be scraped easily, later.
#
sub add_file_entry {
    my ($toplevel, $box, $description) = @_;
    my ($label, $entry) = make_entry_and_label ($description);
    my $hbox = Gtk2::HBox->new;
    $hbox->add ($label);
    $hbox->add ($entry);
    $toplevel->{entry_size_group}->add_widget ($entry);
    my $entry_list = $toplevel->{entry_list};
    push @$entry_list, $entry;
    return $entry;
}
#
# Collect all the filenames from the entries added by add_file_entry().
#
sub collect_file_names {
    my ($toplevel) = @_;
    return map { Glib::filename_from_unicode $_->get_text }
            @{ $toplevel->{entry_list} };
}
I've used variations on this technique in many apps.
--
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]