Mercurial > pidgin
diff src/dialogs.c @ 3427:8fa61405af2b
[gaim-migrate @ 3453]
Who never commits anything *now*, Etan?
I changed most of the error message text around. If you think any of it
should be different, just let me know, or send a patch.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 25 Aug 2002 10:51:24 +0000 |
parents | 3cd2fbddf95a |
children | 7a3f16a375a5 |
line wrap: on
line diff
--- a/src/dialogs.c Sun Aug 25 06:08:15 2002 +0000 +++ b/src/dialogs.c Sun Aug 25 10:51:24 2002 +0000 @@ -551,55 +551,69 @@ /* The dialog for getting an error */ /*------------------------------------------------------------------------*/ -GtkWidget *do_error_dialog(char *message, char *title) +GtkWidget *do_error_dialog(char *primary, char *secondary, int type) { GtkWidget *d; GtkWidget *label; GtkWidget *close; GtkWidget *img = NULL; - /* -#if GTK_CHECK_VERSION(1,3,0) - char *filename; + GtkWidget *hbox; + char labeltext[1024 * 2]; + char *filename = NULL; + + /* These are the GTK stock dialog icons with our little Gaim logo on top. + * Inspired by the GIMP. */ switch (type){ case GAIM_LOGO: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); - break; - case GAIM_INFO: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); - break; - case GAIM_WARNING: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); - break; - case GAIM_ERROR: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); - break; - case GAIM_QUESTION: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); - break; + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); + break; + case GAIM_INFO: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); + break; + case GAIM_WARNING: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); + break; + case GAIM_ERROR: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); + break; + /* case GAIM_QUESTION: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); + break; + */ + } + if (filename) { + img = gtk_image_new_from_file(filename); + gtk_misc_set_alignment(GTK_MISC(img), 0, 0); } - img = gtk_image_new_from_file(filename); -#endif - */ - - d = gtk_dialog_new(); - gtk_window_set_policy(GTK_WINDOW(d), FALSE, FALSE, TRUE); - gtk_widget_realize(d); - label = gtk_label_new(message); + d = gtk_dialog_new_with_buttons(NULL, NULL, GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT); + g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL); + + gtk_container_set_border_width (GTK_CONTAINER(d), 6); + gtk_window_set_resizable(GTK_WINDOW(d), FALSE); + gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE); + gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(d)->vbox), 12); + gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(d)->vbox), 6); + + hbox = gtk_hbox_new(FALSE, 12); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox); + if (filename) { + gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); + } + gtk_widget_show(img); + + g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : ""); + + label = gtk_label_new(NULL); + gtk_label_set_markup(GTK_LABEL(label), labeltext); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_widget_show(label); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5); - - close = picture_button(d, _("Close"), cancel_xpm); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), close, FALSE, FALSE, 5); - - gtk_container_set_border_width(GTK_CONTAINER(d), 5); - gtk_window_set_title(GTK_WINDOW(d), title); - gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), d); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + + gtk_widget_show(hbox); aol_icon(d->window); gtk_widget_show(d); - gtk_widget_grab_focus(close); return d; } @@ -1543,7 +1557,7 @@ struct buddy_pounce *bp; if (strlen(gtk_entry_get_text(GTK_ENTRY(b->nameentry))) == 0) { - do_error_dialog(_("Please enter a buddy to pounce."), _("Buddy Pounce Error")); + do_error_dialog(_("Please enter a buddy to pounce."), NULL, GAIM_ERROR); return; } @@ -2109,12 +2123,12 @@ new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); if (g_strcasecmp(new1, new2)) { - do_error_dialog(_("New Passwords Do Not Match"), _("Gaim - Change Password Error")); + do_error_dialog(_("New Passwords Do Not Match"), NULL, GAIM_ERROR); return; } if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { - do_error_dialog(_("Fill out all fields completely"), _("Gaim - Change Password Error")); + do_error_dialog(_("Fill out all fields completely"), NULL, GAIM_ERROR); return; } @@ -3428,14 +3442,15 @@ { if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { /* We shouldn't allow a blank title */ - do_error_dialog(_("You cannot create an away message with a blank title"), - _("Gaim - Error")); + do_error_dialog(_("You cannot save an away message with a blank title"), + _("Please give the message a title, or choose \"Make Away\" to use " + "without saving."), GAIM_ERROR); return 0; } if ((gtk_text_get_length(GTK_TEXT(ca->text)) == 0) && (type <= 1)) { /* We shouldn't allow a blank message */ - do_error_dialog(_("You cannot create an empty away message"), _("Gaim - Error")); + do_error_dialog(_("You cannot create an empty away message"), NULL, GAIM_ERROR); return 0; } @@ -3915,15 +3930,15 @@ if ((fp_new = fopen(path, "w")) == NULL) { g_snprintf(error, BUF_LONG, - "Can't open file %s for writing - %s", path, strerror(errno)); - do_error_dialog(error, "Error"); + _("Couldn't write to %s."), path); + do_error_dialog(error, strerror(errno), GAIM_ERROR); return; } if ((fp_old = fopen(filename, "r")) == NULL) { g_snprintf(error, BUF_LONG, - "Can't open file %s for reading - %s", filename, strerror(errno)); - do_error_dialog(error, "Error"); + _("Couldn't write to %s."), filename); + do_error_dialog(error, strerror(errno), GAIM_ERROR); fclose(fp_new); return; } @@ -3978,8 +3993,8 @@ g_free(tmp); if ((remove(filename)) == -1) { - g_snprintf(buf, 256, _("Unable to remove file %s - %s"), filename, strerror(errno)); - do_error_dialog(buf, _("Error")); + g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); } window = gtk_object_get_user_data(GTK_OBJECT(w)); @@ -4054,8 +4069,8 @@ g_free(tmp); } if ((fp = fopen(filename, "r")) == NULL) { - g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); - do_error_dialog(buf, "Error!"); + g_snprintf(buf, BUF_LONG, "Couldn't open log file %s.", filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); return; } @@ -4185,8 +4200,8 @@ g_snprintf(filename, 256, "%s/logs/%s.log", tmp, normalize(name)); g_free(tmp); if ((fp = fopen(filename, "r")) == NULL) { - g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); - do_error_dialog(buf, "Error!"); + g_snprintf(buf, BUF_LONG, "Couldn't open log file %s", filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); return; } @@ -4603,8 +4618,7 @@ gdk_window_set_group(w, mainwindow->window); #endif } - -#if GTK_CHECK_VERSION(1,3,0) + GtkWidget *pixbuf_button(char *text, char *iconfile) { GtkWidget *button, *image, *label, *bbox; @@ -4628,7 +4642,7 @@ gtk_widget_show_all(bbox); return button; } -#endif + GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) {