I assume you are taking about Gtk2::SimpleList? It's the only simplelist I know that allows you to access signals.Anyways, perldoc Gtk2::Ex::Simple::List says that it is a Treeview descendent, so you can intercept the "edited" signal of the underlying treestore/treeview. There are a few tutorials around for the treeview/treestore model, google for them. As a start look at this, and remember, the Simple::List has all the methods of the Treeview.
#! /usr/bin/perl -w
use strict;
use Gtk2 '-init';
use Glib qw/TRUE FALSE/;
#standard window creation, placement, and signal connecting
my $window = Gtk2::Window->new('toplevel');
$window->signal_connect('delete_event' => sub { Gtk2->main_quit; });
$window->set_border_width(5);
$window->set_position('center_always');
#this vbox will geturn the bulk of the gui
my $vbox = &ret_vbox();
#add and show the vbox
$window->add($vbox);
$window->show();
#our main event-loop
Gtk2->main();
#######################################
sub ret_vbox {
my $vbox = Gtk2::VBox->new(FALSE,5);
$vbox->set_size_request (300, 300);
#this is one of the provided base Gtk2::TreeModel classes.
my $tree_store = Gtk2::TreeStore->new(qw/Glib::String/);
#fill it with arbitry data
foreach (1..3) {
my $parent_nr = $_;
my $iter = $tree_store->append(undef);
$tree_store->set ($iter,0 => "Parent $parent_nr");
foreach (1..3){
my $iter_child = $tree_store->append($iter);
$tree_store->set ($iter_child,0 => "Child $_ of Parent $pa
+rent_nr");
}
}
#this will create a treeview, specify $tree_store as its model
my $tree_view = Gtk2::TreeView->new($tree_store);
#create a Gtk2::TreeViewColumn to add to $tree_view
my $tree_column = Gtk2::TreeViewColumn->new();
$tree_column->set_title ("Click to sort");
my $renderer = Gtk2::CellRendererText->new;
$renderer->set_property('editable' => TRUE);
$renderer->signal_connect (edited => \&cell_edited, $tree_
+store);
$tree_column->pack_start ($renderer, FALSE);
$tree_column->add_attribute($renderer, text => 0);
#add $tree_column to the treeview
$tree_view->append_column ($tree_column);
$vbox->pack_start($tree_view,TRUE,TRUE,0);
$vbox->show_all();
return $vbox;
}
sub cell_edited {
my ($cell, $path_string, $new_text, $model) = @_;
my $path = Gtk2::TreePath->new_from_string ($path_string);
my $column = $cell->get_data ("column");
my $iter = $model->get_iter ($path);
$model->set_value ($iter, $column, $new_text);
}
|