在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
细节)和名称中带有text
或changed
所有的回调,但没有。
如何找到处理此信号发射的代码?
答
从@何的评论使我认识到多么严重的措辞这个问题的,所以要澄清...
我有一个非常简单的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);
这是信号发射。也许我没有得到你的问题。 –
嘿。感谢您的评论。我明白那是信号发射。我的问题基本上是:我在哪里可以找到处理信号发射的代码?连接到该信号的代码。 – Bridgey
您必须使用g_signal_connect创建它,该代码才会发出信号,然后附加回调来处理它。 –