コンパイル準備段階として
ここからgladeのコンパイル開始です。
gzip -dc glade-0.5.0.tar.gz|tar xvf - cd glade-0.5.0 patch -p1 < ../glade-0.5.0.patch ./configure --prefix=/usr/X11R6 make su make installちゃんとgladeに依存したパッケージが入っていれば結構おとなしくコンパイルできます。
右側の"プロパティ"とタイトルバーに記述されているウインドウは配置した各ウイジェットにパラメータを与えるものです。
でわ作成開始です。
さらにウイジェットの依存関係を見るためにを選択し、
ベースとなるウインドウはを押し、window1にマウスのポインターを移動する事によって"+"が現れるので、適当な所でマウスの左ボタンを押します。成功すると
パレットウインドウよりを選択し、window1上の適当な所でマウスの左ボタンを押すとボタンが配置されます。ボタンのコーナにある黒い部分をドラッグする事により大きさを変えます。またこの時このボタン名はbutton1と登録されており、そのパラメータがプロパティに示されています。
先ほど同様パレットウインドウよりを選択し、window1上の適当な所でマウスの左ボタンを押すとボタンが配置されます。終了ボタンと同じようにラベルを変え、シグナルを追加します。
ボタン二つができた所で今度はベースウインドウに対してシグナルの定義をおこなう。重要なものが二つありウインドウに対するdestroy信号とウインドウマネージャから来る終了シグナルdelete_eventだ。このプログラムではシグナル"destroy"に対してはハンドラ"quit"を割り当て、シグナル"delete_event"に対してはハンドラ "delete_event"関数を割り当てた。
ウインドウの構築が終了したら今度はこのウインドウ配置内容の保存とソースコードの生成です。メニューにある"ファイル"を選択しその中にある"保存"を選択すればデータがディスクに書き込まれます。このとき保存場所等を聞いてくるので適切な位置にして上げて下さい。
ソースコードが生成された場所までcdで移動していきます。私の場合は ~/Projects/project5でした。この中のディレクトリにsrcがあり作成したウインドウのプログラムがそこに格納されています。先ほど作成したボタンのハンドラとなる関数は./src/callbacks.cにあり、この関数に対して中身を記述する。
void quit (GtkObject *object, gpointer user_data) { gtk_main_quit (); } void on_button2_clicked (GtkButton *button, gpointer user_data) { g_print ("こんにちは\n"); } gboolean delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { g_print ("delete event occurred\n"); /* TRUE を FALSE に変更すればメインウィンドウは "delete_event" * によって破壊される。*/ return (TRUE); /* return FALSE; */ }修正が終ったら
./autogen.sh gmakeと行ない実行プログラムを生成する。ここでgmakeでコンパイルを実行しないとpo/cat-id-tbl.cの生成に失敗しコンパイルが途中で停止するので注意しなければならない。