GTK 使用该GSEAL
选项来阻止某人访问 Widget-struct。太好了,因为C中的目标编程,您应该像在其他语言中一样使用 get-functions。
因为 的每个值都没有获取函数GtkButton
,所以我在修改自己的GtkWidgets
.
我想访问这些值struct _GtkButton
struct _GtkButton
{
....
guint GSEAL (activate_timeout);
guint GSEAL (in_button) : 1;
guint GSEAL (button_down) : 1;
....
}
我想为 , 添加一个on-click
事件mybutton
,在它们被调用之前取消点击事件,所以我决定重新实现:
static void gtk_real_button_pressed(GtkButton *button)
{
if (button->activate_timeout)
return;
button->button_down = TRUE;
gtk_button_update_state(button);
}
static void gtk_real_button_released(GtkButton *button)
{
if (button->button_down)
{
button->button_down = FALSE;
if (button->activate_timeout)
return;
if (button->in_button)
{
// do my own stuff here and maybe don'tcall "gtk_button_clicked(...)"
gtk_button_clicked(button);
}
gtk_button_update_state(button);
}
}
正如我在顶部所说的那样,我现在需要访问button->in_button
例如。任何人都有线索,可以帮助我吗?:)
顺便一提:
guint GSEAL (button_down) : 1;
我不知道: 1
在这种情况下有什么用。:O