- Move setting _U_ into config.h, because
[obnox/wireshark/wip.git] / alert_box.c
index ecd0f734d720423bfdf5e553c2e58d26db86b479..148f35689c944e2bb843b8cf2428f1ca8c3aed99 100644 (file)
@@ -2,10 +2,10 @@
  * Routines to put up various "standard" alert boxes used in multiple
  * places
  *
- * $Id: alert_box.c,v 1.2 2004/02/11 01:23:23 guy Exp $
+ * $Id$
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
  * Copyright 1998 Gerald Combs
  *
  * This program is free software; you can redistribute it and/or
 # include "config.h"
 #endif
 
+#include <string.h>
+
 #include <glib.h>
 
 #include <epan/filesystem.h>
 #include <epan/dfilter/dfilter.h>
 
-#include "alert_box.h"
+#include "ui/alert_box.h"
+
+#include "ui/simple_dialog.h"
 
-#include "simple_dialog.h"
+/*
+ * Alert box for general errors.
+ */
+void
+failure_alert_box(const char *msg_format, va_list ap)
+{
+  vsimple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, msg_format, ap);
+}
 
 /*
  * Alert box for a failed attempt to open or create a file.
@@ -46,7 +57,7 @@
  * various HIGs suggest that you should, for example, suggest that the
  * user remove files if the file system is full.  Perhaps that's because
  * they're providing guidelines for people less sophisticated than the
- * typical Ethereal user is, but....
+ * typical Wireshark user is, but....
  */
 void
 open_failure_alert_box(const char *filename, int err, gboolean for_writing)
@@ -55,6 +66,53 @@ open_failure_alert_box(const char *filename, int err, gboolean for_writing)
                 file_open_error_message(err, for_writing), filename);
 }
 
+/*
+ * Alert box for a failed attempt to read a file.
+ * "err" is assumed to be a UNIX-style errno.
+ */
+void
+read_failure_alert_box(const char *filename, int err)
+{
+  simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+                "An error occurred while reading from the file \"%s\": %s.",
+                filename, g_strerror(err));
+}
+
+/*
+ * Alert box for a failed attempt to write to a file.
+ * "err" is assumed to be a UNIX-style errno if positive and a
+ * Wiretap error if negative.
+ *
+ * XXX - add explanatory secondary text for at least some of the errors;
+ * various HIGs suggest that you should, for example, suggest that the
+ * user remove files if the file system is full.  Perhaps that's because
+ * they're providing guidelines for people less sophisticated than the
+ * typical Wireshark user is, but....
+ */
+void
+write_failure_alert_box(const char *filename, int err)
+{
+  if (err < 0) {
+    switch (err) {
+
+    case WTAP_ERR_SHORT_WRITE:
+      simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+                    "A full write couldn't be done to the file \"%s\".",
+                    filename);
+      break;
+    
+    default:
+      simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+                    "An error occurred while writing to the file \"%s\": %s.",
+                    filename, wtap_strerror(err));
+      break;
+    }
+  } else {
+    simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+                  file_write_error_message(err), filename);
+  }
+}
+
 /*
  * Alert box for an invalid display filter expression.
  * Assumes "dfilter_error_msg" has been set by "dfilter_compile()" to the
@@ -69,7 +127,7 @@ bad_dfilter_alert_box(const char *dftext)
   simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, 
                 "%s%s%s\n"
                 "\n"
-                "The filter expression \"%s\" is not a valid display filter.\n"
+                "The filter expression \"%s\" isn't a valid display filter.\n"
                 "See the help for a description of the display filter syntax.",
                 simple_dialog_primary_start(), dfilter_error_msg,
                 simple_dialog_primary_end(), dftext);