ポップアップメニュー

2010年2月11日

ファイル

05-popup.tar.gz

使い方

ウインドウ上で右クリックすると、ポップアップメニューが表示されます。

内容

ポップアップメニューを表示します。メニューの作り方は、普通のメニューと同じです。メニューバーがいらないだけです。

	menu = gtk_menu_new();

	miSeparator = gtk_separator_menu_item_new();
	gtk_menu_shell_append(GTK_MENU_SHELL(menu), miSeparator);

	miQuit = gtk_menu_item_new_with_label("Quit");
	gtk_menu_shell_append(GTK_MENU_SHELL(menu), miQuit);

	g_signal_connect(miQuit, "activate", G_CALLBACK(gtk_main_quit), NULL);

マウスの右クリックでメニューが表示されるように、"button-press-event" を拾います。

	g_signal_connect(win,
	  "button-press-event", G_CALLBACK(buttonPress), menu);

最後の引数でメニューを渡しています。

コールバック関数で以下のようにします。

gboolean buttonPress(GtkWidget *widget, GdkEventButton *event, GtkWidget *menu)
{
	if(event->button == 3){
		gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
		  event->button, event->time);
		return TRUE;
	}

	return FALSE;
}

返り値として TRUE を返していますが、「処理は行ったので、これ以上なにもしなくていいよ」という意味です。

GTK+ プログラミング 目次へ