GTKはこのGSEAL
オプションを使用して、誰かがWidget-structにアクセスできないようにします。Cでのオブジェクト指向プログラミングのため、他の言語と同じようにget-functionsを使用する必要があります。
の値ごとにget-functionがないため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