Gtk2::Editable(3) User Contributed Perl Documentation Gtk2::Editable(3) NAME Gtk2::Editable - wrapper for GtkEditable HIERARCHY Glib::Interface +----Gtk2::Editable METHODS string = $editable->get_chars ($start_pos, $end_pos) o $start_pos (integer) o $end_pos (integer) $editable->copy_clipboard $editable->cut_clipboard $editable->delete_selection $editable->delete_text ($start_pos, $end_pos) o $start_pos (integer) o $end_pos (integer) boolean = $editable->get_editable $editable->set_editable ($is_editable) o $is_editable (boolean) new_position = $editable->insert_text (new_text, position) o $new_text (string) o ... (list) $editable->paste_clipboard integer = $editable->get_position $editable->set_position ($position) o $position (integer) $editable->select_region ($start, $end) o $start (integer) o $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 o 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 } o 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 } o 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. perl v5.38.0 2023-07-25 Gtk2::Editable(3)