3.1.2 コールバック関数を使うための準備


#include "modclbk.as"
    newclbk3 cb_win_delete_event, 3, *on_win_delete_event, CLBKMODE_CDECL@

 冒頭は、modclbk.asを利用してコールバック関数を使えるようにするためのスクリプトです。

 newclbk3命令は、3つ目の引数に指定されたラベルから始まるサブルーチンをコールバック関数として設定して、そのポインタを1つ目の引数に代入します。この変数は、2.4で説明した、シグナルとコールバック関数を関連付けるための処理に必要になります。

 2つ目の引数に指定するコールバック関数の引数の数は、GTK+添付マニュアルのウィジェットごとのリファレンスのページで、コールバック関数に関連付けするシグナルの項目で確認することができます。例えば、delete-eventシグナルは、今回使っているGtkWindowウィジェットの先祖クラスであるGtkWidgetに属しているので、"\share\gtk-doc\html\gtk3\GtkWidget.html"のページに載っています。

 4つ目の引数のCLBKMODE_CDECLはmodclbk.as内で定義されている定数で、サブルーチンでコールバック関数の引数を正常に使用するために必要です。

 今回のプログラムでは、winという名前の変数に代入されたGtkWindowウィジェットでdelete-eventシグナルが発生した時に実行する処理をコールバック関数として書く必要があるので、それに沿って変数やラベルの名前を決めています。

Prev - Table of contents - Next