Example #1
0
int ZLGtkDialogManager::internalBox(const gchar *icon, const std::string &title, const std::string &message, const ZLResourceKey &button0, const ZLResourceKey &button1, const ZLResourceKey &button2) const {
	GtkDialog *dialog = createGtkDialog(title);

	if (!button0.Name.empty()) {
		gtk_dialog_add_button(dialog, gtkString(buttonName(button0)).c_str(), 0);
	}
	if (!button1.Name.empty()) {
		gtk_dialog_add_button(dialog, gtkString(buttonName(button1)).c_str(), 1);
	}
	if (!button2.Name.empty()) {
		gtk_dialog_add_button(dialog, gtkString(buttonName(button2)).c_str(), 2);
	}

	GtkWidget *contents = gtk_hbox_new(false, 10);
	gtk_container_set_border_width(GTK_CONTAINER(contents), 10);

	GtkWidget *image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_DIALOG);
	gtk_misc_set_alignment(GTK_MISC(image), 0.5, 0.0);

	GtkWidget *label = gtk_label_new(message.c_str());
	gtk_label_set_line_wrap(GTK_LABEL(label), true);
	gtk_box_pack_start(GTK_BOX(contents), image, false, false, 0);
	gtk_box_pack_start(GTK_BOX(contents), label, true, true, 0);
	gtk_box_pack_start(GTK_BOX(dialog->vbox), contents, true, true, 0);
	gtk_widget_show_all(GTK_WIDGET(dialog));
	gint response = gtk_dialog_run(dialog);
	destroyGtkDialog(dialog);

	return (response < 0) ? -1 : response;
}
ZLGtkOpenFileDialog::~ZLGtkOpenFileDialog() {
	destroyGtkDialog(myDialog);
}
ZLGtkDialog::~ZLGtkDialog() {
    destroyGtkDialog(myDialog);
}