Bonsoir à tous,
Je bricole sur du code (libre, en GPLv3) autour de l'idée d'un éditeur syntaxique (plus ou moins reflexif). J'utilise GTK3 sous Linux/Debian (Sid ou Experimental) que je connais bien.
Je ne comprends pas comment on peut avoir un segment de texte (avec un tag) qui recoit des événements claviers sans être éditable.
Pour les quelques curieux intéressés, mon code est entièrement disponible via
git clone git://github.com/bstarynk/IaCa.git
Après l'avoir compilé, il faut le lancer (dans le répertoire du source) par
Puis on peut saisir name dans l'entrée textuelle, et activer le menu Edit => Named
Je crée un tag et je l'active par le bout de code suivant (fonction iacafirst_itemrefdisplayer du fichier module/first.c)
1 2 3 4 5 6
|
tagit = gtk_text_buffer_create_tag
(txbuf, NULL, "stretch", PANGO_STRETCH_SEMI_EXPANDED, NULL);
////....
g_signal_connect ((GObject *) tagit, "event",
G_CALLBACK (iacafirst_item_tag_event), itm); |
Et j'insère du texte avec ce tag par
1 2 3 4
|
gtk_text_buffer_insert_with_tags
(txbuf, &txit, nam, -1,
tagit, gtk_text_tag_table_lookup (tagtbl, "itemname"), NULL); |
Mais je ne comprends pas pourquoi les événements clavier ne sont pas reçus par ma fonction iacafirst_item_tag_event (alors que les événements boutons souris le sont). Le GtkTextBuffer est non-éditable.
Cordialement
-- Basile Starynkevitch http://starynkevitch.net/Basile/
Partager