ダイアログ

2010年2月11日

ファイル

07-dialog.tar.gz

内容

ダイアログを表示します。

ダイアログの作成は gtk_message_dialog_new() で行います。gtk_dialog_run() でダイアログを表示します。

	dialog = gtk_message_dialog_new(
	  GTK_WINDOW(win),
    	  GTK_DIALOG_DESTROY_WITH_PARENT,
    	  GTK_MESSAGE_INFO,
    	  GTK_BUTTONS_OK,
    	  "Information");
	gtk_window_set_title(GTK_WINDOW(dialog), "Information");
	gtk_dialog_run(GTK_DIALOG(dialog));
	gtk_widget_destroy(dialog);

gtk_message_dialog_new() の第 3 引数でダイアログのタイプを指定します。上では "情報" ダイアログとしています。第 4 引数ではボタンの種類を指定しています。上では OK ボタンが 1 つ表示されます。ダイアログのタイプには以下のものがあります。

  • GTK_MESSAGE_INFO: "情報" ダイアログ
  • GTK_MESSAGE_ERROR: "エラー" ダイアログ
  • GTK_MESSAGE_QUESTION: "質問" ダイアログ
  • GTK_MESSAGE_WARNING: "警告" ダイアログ

"質問" ダイアログなどで、YES/NO ボタンを指定するには、次のようにします。

	dialog = gtk_message_dialog_new(
	  GTK_WINDOW(win),
	  GTK_DIALOG_DESTROY_WITH_PARENT,
	  GTK_MESSAGE_QUESTION,
	  GTK_BUTTONS_YES_NO,
	  "Question");
	gtk_window_set_title(GTK_WINDOW(dialog), "Question");
	r = gtk_dialog_run(GTK_DIALOG(dialog));

	if(r == GTK_RESPONSE_YES){
		printf("YES\n");
	}else{
		printf("NO\n");
	}

	gtk_widget_destroy(dialog);

gtk_dialog_run() の返り値でどちらが押されたかがわかります。

About ダイアログを作る関数も用意されています。

	dialog = gtk_about_dialog_new();
	gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog), "dialog");
	gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), "0.1");
	gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),
	  "2010 (c) Yuu kasuga");
	gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog),
	  "dialog example");
	gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog),
	  "http://www.geocities.jp/penguinitis2002/");
	gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dialog), p);

プログラムの情報を指定すると、それにもとづいて About ダイアログを作ってくれます。表示はいままでどおり gtk_dialog_run() で行います。

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