Gtk2::Editable

NAME

Gtk2::Editable − wrapper for GtkEditable

HIERARCHY

Glib::Interface
+−−−−Gtk2::Editable

METHODS

string = $editable−>get_chars ($start_pos, $end_pos)

$start_pos (integer)

$end_pos (integer)

$editable−>copy_clipboard
$editable−>cut_clipboard
$editable−>delete_selection
$editable−>delete_text ($start_pos, $end_pos)

$start_pos (integer)

$end_pos (integer)

boolean = $editable−>get_editable
$editable−>set_editable ($is_editable)

$is_editable (boolean)

new_position = $editable−>insert_text (new_text, position)

$new_text (string)

... (list)

$editable−>paste_clipboard
integer = $editable−>get_position
$editable−>set_position ($position)

$position (integer)

$editable−>select_region ($start, $end)

$start (integer)

$end (integer)

(start, end) = $editable−>get_selection_bounds
Returns integers, start and end.

SIGNALS

changed (Gtk2::Editable)
delete-text
(Gtk2::Editable, integer, integer)
insert-text
(Gtk2::Editable, string, integer, gpointer)

The "insert−text" signal handler can optionally alter the text to be inserted. It may

Return no values for no change. Be sure to end with an empty "return".

sub my_insert_text_handler {
my ($widget, $text, $len, $pos, $userdata) = @_;
print "inserting '$text' at char position '$pos'\n";
return; # no values
}

Return two values "($text, $pos)" which are the new text and character position.

sub my_insert_text_handler {
my ($widget, $text, $len, $pos, $userdata) = @_;
return (uc($text), $pos); # force to upper case
}

Return no values and modify the text in $_[1] and/or position in $_[3]. For example,

sub my_insert_text_handler {
$_[1] = uc($_[1]); # force to upper case
$_[3] = 0; # force position to the start
return; # no values
}

Note that currently in a Perl subclass of a "Gtk2::Editable" widget, a class closure (ie. class default signal handler) for "insert−text" does not work this way. It instead sees the C level "($text, $len, $pos_pointer)", where $pos_pointer is a machine address and cannot be used easily. Hopefully this will change in the future. A "signal_chain_from_overridden" with the args as passed works, but for anything else the suggestion is to use a "signal_connect" instead.

SEE ALSO

Gtk2, Glib::Interface

COPYRIGHT

Copyright (C) 2003−2011 by the gtk2−perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.