在Gtk中处理'text-changed :: insert'信号的代码在哪里?

问题描述:

我想跟踪一些代码在Gtk。我得这部分gtkentryaccessible.c在Gtk中处理'text-changed :: insert'信号的代码在哪里?

g_signal_emit_by_name (accessible, 
         "text-changed::insert", 
         *position - length, 
         length); 

但我不能找到一个text-changed::insert信号回调。

我试图谷歌,荷兰国际集团,我已经克隆了编码git的回购,并试图grepping的信号名称(与不insert细节)和名称中带有textchanged所有的回调,但没有。

如何找到处理此信号发射的代码?

+0

这是信号发射。也许我没有得到你的问题。 –

+0

嘿。感谢您的评论。我明白那是信号发射。我的问题基本上是:我在哪里可以找到处理信号发射的代码?连接到该信号的代码。 – Bridgey

+0

您必须使用g_signal_connect创建它,该代码才会发出信号,然后附加回调来处理它。 –

@何的评论使我认识到多么严重的措辞这个问题的,所以要澄清...

我有一个非常简单的C编程',使下面的调用:

gtk_entry_set_text(GTK_ENTRY(entry), "thisisthetext"); 

我试图跟踪这条线如何导致文本实际上在控制中被更新 - 可能一路进入X的源代码。

所以,我跟着调用...

  • 根据gtkentry.c,gtk_entry_set_text实际上调用gtk_editable_delete_text后跟gtk_editable_insert_text
  • 然后,根据gtkeditable.c,gtk_editable_insert_text调用do_insert_text
  • 等等...

我跟着它错误,结束了在问题g_signal_emit_by_name(...)功能。所以我很困惑这个函数是如何被调用的。答案当然不是。

这个问题不再需要。我已经将文本插入到btree中,仍在gtk代码中,具体为gtktextbuffer.c

_gtk_text_btree_insert (iter, text, len);