GTK+を使用してプログラムを作る場合、ウインドウを開いてその中に色々なオブジェクト(例えばボタンなど)を配置してプログラムを作ります。この様々なオブジェクトのことをwidget(ウィジェット)といいます。
widgetを定義する場合、例えばintの変数を定義する場合と同じようにプログラムの最初に、
GtkWidget *foo;
といった感じで定義します。この時点ではまだこれはwidgetであるというだけでこれがボタンになるのかウインドウになるのかはわかりません。これはプログラムの中で決めていきます。
例えば、fooをウインドウとして扱いたい場合、gtk_window_new()関数を使用します。
foo=gtk_window_new(GTK_WINDOW_TOPLEVEL);
これで、fooはウインドウとして扱えます。
キャスト演算子とは例えばint型の「i」をdouble型として扱いたい場合などにプログラム中で
(double)i
と使用するものでした。GTK+のwidgetの場合は少し違った表記となります。型名を括弧の中に書くのではなく、変数名を括弧の中に入れて使用します。
GTK_WINDOW(foo)
widgetの種類は大文字で表記します。
これをせずに、widget名をそのまま使ってもエラーとはなりませんが、警告はでます。
gtk_window_set_title(foo,"Program"); /* 警告がでます */ gtk_window_set_title(GTK_WINDOW(foo),"Program"); /* 警告はでません */
さて、widgetを定義しただけでは、デスクトップ上に「表示」はされません。表示させるにはgtk_widget_show()関数を使用します。引数としてwidget名を書けばよいです。
gtk_widget_show(foo);
これで、fooが表示されます。