Виджеты редактирования - базовый класс всех виджетов этого типа. Этот класс
не нуждается в применении функции new() и только обеспечивает обычные
функциональные возможности к тексту widgets. Все виджеты, в которых можно
редактировать текст, позволяют выделять область текста при помощи функции:
$editable->select_region( $start, $end );
где выделенный текст содержит те символы, которые отмечены с $start и до(не
включая) $end. Если $end отрицательно, то происходит обратный отсчет с конца
текста.
Текст может быть вставлен на определенную позицию при помощи функции
$editable->insert_text( $new_text, $position );
$new_text - текст, который вставляется, $position - позиция, начиная от
которой происходит вставление текста.
Символы могут быть удалены при помощи функции
$editable->delete_text( $start, $pos );
где $start - начальная позиция удаляемого текста и $pos - конечная позиция
удаляемого текста. Если $pos < 0, тогда отсчет удаляемых символов ведется от
конца текста.
Вытащить текст из положения "от" и "до" можно при помощи функции
$editable->get_chars( $start, $end );
Чтобы взять весь текст, находящийся в виджете нужно использовать
$editable->get_chars( 0, -1 );
Если текст выделен, то его можно скопировать в клипбоард при помощи функции
$editable->cut_clipboard();
При копировании текста в клипбоард берутся выделенные символы, помещаются в
клипбоарде и только после этого удаляются из виджета.
Текст в клипбоарде модет быть вставлен в виджет при помощи
$editable->paste_clipboard();
текст будет вставлен в месте, где находится курсор.
Для удаления текста используется функция
$editable->delete_selection();
Положение курсора может быть установлено или изменено при помощи функций
Как работают эти сигналы - очевидно из их названия, если у Вас возникнут
вопросы относительно их применения - читайте описание Gtk. Например чтобы
посать сигнал 'changed' необходимо вызвать функцию $editable->changed().