g_signal_connect
の最後の引数はポインターである必要があるため、コールバック関数に渡される整数を取得するのに最も苦労しています。信号をコールバックに接続する場所は次のとおりです。
for (i=0;i<10;i++)
{
...
gtk_widget_set_events(tab_ebs[i],GDK_BUTTON_PRESS_MASK);
g_signal_connect (G_OBJECT (tab_ebs[i]), "button_press_event", G_CALLBACK (tab_clicked_cb), GINT_TO_POINTER(i));
}
コールバックは次のとおりです。
void tab_clicked_cb (gpointer p)
{
printf("tab #%d clicked\n", GPOINTER_TO_INT(p));
}
stdout で得られるのは、次のようなステートメントです。
tab #6578976 clicked
tab #6579264 clicked
tab #6579552 clicked
tab #6579840 clicked
タブが10個しかないとき。64 ビット システムで整数をコールバック fcn に渡すにはどうすればよいですか? ありがとう。