Gtk2::Editable3pm
Wrapper for gtkeditable
Hierarchy
Glib::Interface+----Gtk2::Editable
Methods
string = $editable->get_chars ($start_pos, $end_pos)
•
|
|
|---|---|
•
|
|
$editable->copy_clipboard
$editable->cut_clipboard
$editable->delete_selection
$editable->delete_text ($start_pos, $end_pos)
•
|
|
|---|---|
•
|
|
boolean = $editable->get_editable
$editable->set_editable ($is_editable)
- •
-
$is_editable(boolean)
new_position = $editable->insert_text (new_text, position)
•
|
|
|---|---|
•
|
... (list) |
$editable->paste_clipboard
integer = $editable->get_position
$editable->set_position ($position)
- •
-
$position(integer)
$editable->select_region ($start, $end)
•
|
|
|---|---|
•
|
|
(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 startreturn; # 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.
Releases
7 releases since Debian 3.1 (Sarge); the text changed 6 times.