ステータスバー2010年2月11日 | |
![]() ファイル内容ステータスバーを使ってみます。ツールバーのボタンの上にマウスポインタを置くと、ステータスバーに説明が表示されるようにしてみましょう。 ここでは、部品としてツールバー、テキストビュー、ステータスバーを置きます。テキストビューではスクロールバーを使えるようにします。スクロールバーを使うには、スクロールウインドウを用意し、その中にテキストビューを入れます。 scrollWin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollWin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollWin), GTK_SHADOW_IN); gtk_table_attach(GTK_TABLE(table), scrollWin, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); textView = gtk_text_view_new(); gtk_widget_grab_focus(textView); gtk_container_add(GTK_CONTAINER(scrollWin), textView); さて、ステータスバーを用意します。 statusbar = gtk_statusbar_new(); ツールバーのボタンの上のマウスポインタの出入りを検出するために、"enter" イベントと "leave" イベントを拾います。ステータスバーの表示を変更するために、コールバック関数にステータスバーを渡します。 g_signal_connect(buttonIcon, "enter", G_CALLBACK(buttonEnter), statusbar); g_signal_connect(buttonIcon, "leave", G_CALLBACK(buttonLeave), statusbar); ステータスバーの表示の設定は次のように行います。
void buttonEnter(GtkWidget *widget, GtkWidget *statusbar)
{
int id;
const char *str = "toggle button";
id = gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar), "");
gtk_statusbar_push(GTK_STATUSBAR(statusbar), id, str);
}
void buttonLeave(GtkWidget *widget, GtkWidget *statusbar)
{
int id;
id = gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar), "");
gtk_statusbar_pop(GTK_STATUSBAR(statusbar), id);
}
buttonEnter() で文字列をステータスバーのスタックに積み上げ、buttonLeave() でスタックから取り除いています。 | |
| PENGUINITIS | |