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
Code sh : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
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/