Object +-- Widget +-- Editable
Le widget éditable est la classe de base de tous les widgets d'édition de texte.
Cette classe ne peut être instanciée ( il n'y a pas de fonction new()
) et fournit uniquement les fonctionnalités communes aux widgets textes.
Tous les widgets qui éditent du texte vous permettent de sélectionner une région de texte avec :
$editable->select_region( $start, $end );
Ou le texte sélectionné est composé des caractères de la position $start
jusqu'à la position $end non inclus. Si $end est négatif, alors
il compte à rebours à partir de la fin du texte.
Du texte peut être inséré à une certaine position en utilisant :
$editable->insert_text( $new_text, $position );
$new_text est la chaîne à insérer et $position la position où
il faut placer le texte.
Des caractères peuvent être effacés avec :
$editable->delete_text( $start, $pos );
Comme pour select_region, les caractères à effacer sont compris entre
$start et $end.
Vous pouvez récupérer des caractères avec :
$editable->get_chars( $start, $end );
Si vous avez sélectionné du texte, vous pouvez le couper et le placer dans le bloc note avec :
$editable->cut_clipboard();
Cela prend les caractères sélectionnés pour les placer dans le bloc note et les efface du widget éditable.
Vous pouvez aussi copier le texte sélectionné dans le bloc note.
$editable->copy_clipboard();
Les caractères sont copiés dans le bloc note mais pas effacé du widget éditable.
Le texte du bloc note peut être collé dans le widget éditable à l'endroit où se trouve le curseur :
$editable->paste_clipboard();
Pour effacer le texte sélectionné :
$editable->delete_selection();
La position du curseur peut être déclarée et retrouvée avec :
$editable->set_position( $position ); $editable->get_position();
Les widgets éditables peuvent être en lecture seule ou bien éditable :
$editable->set_editable( $is_editable );
$is_editable est une valeur vraie ou fausse qui détermine si le widget
éditable peut être édité ou non par l'utilisateur.
Le widget éditable possède un grand nombre de signaux disponibles qui sont : 'changed' 'insert-text' 'delete-text' 'activate' 'set-editable' 'move-cursor' 'move-word' 'move-page' 'move-to-row' 'move-to-column' 'kill-char' 'kill-word' 'kill-line' 'cut-clipboard' 'copy-clipboard' 'paste-clipboard'
L'utilisation de ces signaux devrait être évidente. Si vous avez une question
sur leur utilisation, consulter la documentation GTK. Le seul commentaire que
je ferais est que vous pouvez émettre le signal 'changed' en appelant
la fonction :
$editable->changed();