The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Gtk2::Ex::CellRendererWrappedText - Widget for displaying and editing multi-line text entries in a TreeView

SYNOPSIS

 use Gtk2::Ex::CellRendererWrappedText;
 
 $treeview->new( $model );
 
 $cell = Gtk2::CellRender

 $cell = Gtk2::Ex::CellRendererWrappedText->new;
 
 $cell->set( editable => 1 );
 
 $cell->set( wrap_mode => 'word' );
 
 $cell->set( wrap_width => 400 );
 
 $cell->signal_connect (edited => sub {
                my ($cell, $text_path, $new_text, $model) = @_;
                my $path = Gtk2::TreePath->new_from_string ($text_path);
                my $iter = $model->get_iter ($path);
                $model->set ($iter, 1, $new_text);
        }, $model);

 $column = Gtk2::TreeViewColumn->new_with_attributes( 'Wrapped', $cell, text => 1 );
 
 $column->set_resizable( 1 );
 
 $view->append_column ($column);
 

WIDGET HIERARCHY

Glib::Object
+-- Glib::InitiallyUnowned
....+-- Gtk2::Object
........+-- Gtk2::CellRenderer
............+-- Gtk2::CellRendererText
................+ Gtk2::Ex::CellRendererWrappedText

DESCRIPTION

Gtk2::Ex::CellRendererWrappedText is a Gtk2::CellRendererText that automatically updates the wrap-width of the of the renderer when it is resized so that it always expands or shrinks to the avaialble area.

This module also handles editing of strings that span multiple lines by using a TextView instead of an Entry as CellRendererText does.

Pressing <Esc> whil in edit mode cancels the edit. Pressing <Enter> moves to the next line. Pressing <Ctrl+Enter> or focusing out of the renderer finishes editing and emits the 'edited' signal.

BUGS & CAVEATS

Using this module produces this warning:

    GLib-GObject-CRITICAL **: Object class Gtk2__Ex__CellRendererWrappedText__TextView
    doesn't implement property 'editing-canceled' from interface 'GtkCellEditable' at ...

This is only a warning, and a known issue with Gtk+ and the Gtk2-Perl bindings that will not affect behaviour of the widget.

See this post for more information:

http://old.nabble.com/Having-issues-porting-a-CellRenderer---CellEditable-to-Gtk3-td34129064.html

AUTHOR

Jeffrey Ray Hallock <jeffrey.hallock at gmail dot com>

Some code adapted from Muppet's customrenderer.pl script included in the Gtk2 examples directory.

COPYRIGHT & LICENSE

Copyright (c) 2010-2012 Jeffrey Ray Hallock.

    This is free software, licensed under:

    The Artistic License 2.0 (GPL Compatible)