forked from osmocom/wireshark
Add support for modal message boxes ("simple dialog").
Make the message boxes popped up for errors when selecting a font modal, so that the user has to say "yes, I know, I'll do better next time" before hitting "OK" again, so that you don't get a pile of message boxes. svn path=/trunk/; revision=2485
This commit is contained in:
parent
fedb22f414
commit
677abe54e1
|
@ -1,7 +1,7 @@
|
||||||
/* gui_prefs.c
|
/* gui_prefs.c
|
||||||
* Dialog box for GUI preferences
|
* Dialog box for GUI preferences
|
||||||
*
|
*
|
||||||
* $Id: gui_prefs.c,v 1.20 2000/10/09 06:28:49 guy Exp $
|
* $Id: gui_prefs.c,v 1.21 2000/10/09 06:38:36 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@zing.org>
|
* By Gerald Combs <gerald@zing.org>
|
||||||
|
@ -320,9 +320,10 @@ font_browse_ok_cb(GtkWidget *w, GtkFontSelectionDialog *fs)
|
||||||
font_name = g_strdup(gtk_font_selection_dialog_get_font_name(
|
font_name = g_strdup(gtk_font_selection_dialog_get_font_name(
|
||||||
GTK_FONT_SELECTION_DIALOG(fs)));
|
GTK_FONT_SELECTION_DIALOG(fs)));
|
||||||
if (font_name == NULL) {
|
if (font_name == NULL) {
|
||||||
/* No font was selected; let the user know, and don't let
|
/* No font was selected; let the user know, but don't
|
||||||
them accept that non-font. */
|
tear down the font selection dialog, so they can
|
||||||
simple_dialog(ESD_TYPE_CRIT, NULL,
|
try again. */
|
||||||
|
simple_dialog(ESD_TYPE_CRIT | ESD_TYPE_MODAL, NULL,
|
||||||
"You have not selected a font.");
|
"You have not selected a font.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -336,7 +337,7 @@ font_browse_ok_cb(GtkWidget *w, GtkFontSelectionDialog *fs)
|
||||||
/* Oops, that font didn't work.
|
/* Oops, that font didn't work.
|
||||||
Tell the user, but don't tear down the font selection
|
Tell the user, but don't tear down the font selection
|
||||||
dialog, so that they can try again. */
|
dialog, so that they can try again. */
|
||||||
simple_dialog(ESD_TYPE_CRIT, NULL,
|
simple_dialog(ESD_TYPE_CRIT | ESD_TYPE_MODAL, NULL,
|
||||||
"The font you selected cannot be loaded.");
|
"The font you selected cannot be loaded.");
|
||||||
|
|
||||||
g_free(font_name);
|
g_free(font_name);
|
||||||
|
@ -349,7 +350,7 @@ font_browse_ok_cb(GtkWidget *w, GtkFontSelectionDialog *fs)
|
||||||
/* Oops, that font didn't work.
|
/* Oops, that font didn't work.
|
||||||
Tell the user, but don't tear down the font selection
|
Tell the user, but don't tear down the font selection
|
||||||
dialog, so that they can try again. */
|
dialog, so that they can try again. */
|
||||||
simple_dialog(ESD_TYPE_CRIT, NULL,
|
simple_dialog(ESD_TYPE_CRIT | ESD_TYPE_MODAL, NULL,
|
||||||
"The font you selected doesn't have a boldface version.");
|
"The font you selected doesn't have a boldface version.");
|
||||||
|
|
||||||
g_free(font_name);
|
g_free(font_name);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* simple_dialog.c
|
/* simple_dialog.c
|
||||||
* Simple message dialog box routines.
|
* Simple message dialog box routines.
|
||||||
*
|
*
|
||||||
* $Id: simple_dialog.c,v 1.6 2000/08/23 06:56:31 guy Exp $
|
* $Id: simple_dialog.c,v 1.7 2000/10/09 06:38:36 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@zing.org>
|
* By Gerald Combs <gerald@zing.org>
|
||||||
|
@ -76,7 +76,7 @@ simple_dialog(gint type, gint *btn_mask, gchar *msg_format, ...) {
|
||||||
gchar **icon;
|
gchar **icon;
|
||||||
|
|
||||||
/* Main window */
|
/* Main window */
|
||||||
switch (type) {
|
switch (type & ~ESD_TYPE_MODAL) {
|
||||||
case ESD_TYPE_WARN :
|
case ESD_TYPE_WARN :
|
||||||
icon = icon_excl_xpm;
|
icon = icon_excl_xpm;
|
||||||
win = dlg_window_new("Ethereal: Warning");
|
win = dlg_window_new("Ethereal: Warning");
|
||||||
|
@ -92,6 +92,9 @@ simple_dialog(gint type, gint *btn_mask, gchar *msg_format, ...) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type & ESD_TYPE_MODAL)
|
||||||
|
gtk_window_set_modal(GTK_WINDOW(win), TRUE);
|
||||||
|
|
||||||
gtk_container_border_width(GTK_CONTAINER(win), 7);
|
gtk_container_border_width(GTK_CONTAINER(win), 7);
|
||||||
|
|
||||||
gtk_object_set_data(GTK_OBJECT(win), bm_key, btn_mask);
|
gtk_object_set_data(GTK_OBJECT(win), bm_key, btn_mask);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Definitions for dialog box routines with toolkit-independent APIs but
|
* Definitions for dialog box routines with toolkit-independent APIs but
|
||||||
* toolkit-dependent implementations.
|
* toolkit-dependent implementations.
|
||||||
*
|
*
|
||||||
* $Id: simple_dialog.h,v 1.1 2000/01/03 06:59:09 guy Exp $
|
* $Id: simple_dialog.h,v 1.2 2000/10/09 06:38:34 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@zing.org>
|
* By Gerald Combs <gerald@zing.org>
|
||||||
|
@ -32,9 +32,13 @@ extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
/* Dialog type. */
|
/* Dialog type. */
|
||||||
#define ESD_TYPE_INFO 0
|
#define ESD_TYPE_INFO 0x00
|
||||||
#define ESD_TYPE_WARN 1
|
#define ESD_TYPE_WARN 0x01
|
||||||
#define ESD_TYPE_CRIT 2
|
#define ESD_TYPE_CRIT 0x02
|
||||||
|
|
||||||
|
/* Flag to be ORed with the dialog type, to specify that the dialog is
|
||||||
|
to be modal. */
|
||||||
|
#define ESD_TYPE_MODAL 0x04
|
||||||
|
|
||||||
/* Which buttons to display. */
|
/* Which buttons to display. */
|
||||||
#define ESD_BTN_OK 0
|
#define ESD_BTN_OK 0
|
||||||
|
|
Loading…
Reference in New Issue