メニュー2010年2月11日 | |
![]() ファイル内容メニューを作成します。はじめにメニューバーを作り、それにメニューアイテム、サブメニューを追加し、またそれぞれのサブメニューにメニューアイテム、サブメニューを追加していく、という流れになります。 まず、部品を入れるためのボックスを用意します。 box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(win), box); 縦方向のボックスを作り、ウインドウに追加しています。 メニューバーを作成します。 menubar = gtk_menu_bar_new(); gtk_box_pack_start(GTK_BOX(box), menubar, FALSE, FALSE, 0); ここでは、部品を入れるボックスを用意したので、メニューバーはウインドウにではなくボックスに追加します。ウインドウ - ボックス - メニューバー という入れ子になります。 メニューバーに項目を追加します。
miFile = gtk_menu_item_new_with_label("File");
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), miFile);
メニュー "File" ができます。これに項目を追加するために、サブメニューを設定します。 mFile = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(miFile), mFile); サブメニューにセパレータを追加します。 miSeparator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(mFile), miSeparator); 項目 "Quit" を追加します。
miQuit = gtk_menu_item_new_with_label("Quit");
gtk_menu_shell_append(GTK_MENU_SHELL(mFile), miQuit);
ここで、部品の構造はウインドウ - ボックス - メニュバー - メニューアイテム ("File") - サブメニュー - メニューアイテム (セパレータ, "Quit" となっています。 "Quit" を選んだらプログラムが終了するように、コールバック関数を設定します。 g_signal_connect(miQuit, "activate", G_CALLBACK(gtk_main_quit), NULL); "Quit" にショートカットキー "Ctrl + Q" を設定するため、つぎのようにします。 accelGroup = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(win), accelGroup); ... gtk_widget_add_accelerator(miQuit, "activate", accelGroup, GDK_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); | |
| PENGUINITIS | |