#ifndef VLC_DIALOG_H_
#define VLC_DIALOG_H_
+# include <stdarg.h>
/**
* \file vlc_dialog.h
{
const char *title;
const char *message;
+ bool modal;
} dialog_fatal_t;
-VLC_EXPORT( void, dialog_Fatal, (vlc_object_t *, const char *, const char *, ...) ) LIBVLC_FORMAT(3, 4);
+VLC_EXPORT( void, dialog_VFatal, (vlc_object_t *, bool, const char *, const char *, va_list) );
+
+static inline LIBVLC_FORMAT(3, 4)
+void dialog_Fatal (vlc_object_t *obj, const char *title, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start (ap, fmt);
+ dialog_VFatal(obj, false, title, fmt, ap);
+ va_end (ap);
+}
#define dialog_Fatal(o, t, ...) \
dialog_Fatal(VLC_OBJECT(o), t, __VA_ARGS__)
+static inline LIBVLC_FORMAT(3, 4)
+void dialog_FatalWait (vlc_object_t *obj, const char *title,
+ const char *fmt, ...){
+ va_list ap;
+
+ va_start (ap, fmt);
+ dialog_VFatal(obj, true, title, fmt, ap);
+ va_end (ap);
+}
+#define dialog_FatalWait(o, t, ...) \
+ dialog_FatalWait(VLC_OBJECT(o), t, __VA_ARGS__)
+
VLC_EXPORT( int, dialog_Register, (vlc_object_t *) );
VLC_EXPORT( int, dialog_Unregister, (vlc_object_t *) );
#define dialog_Register(o) dialog_Register(VLC_OBJECT(o))
return provider;
}
-static
-void dialog_FatalVa (vlc_object_t *obj, const char *title,
- const char *fmt, va_list ap)
+void dialog_VFatal (vlc_object_t *obj, bool modal, const char *title,
+ const char *fmt, va_list ap)
{
char *text;
if (vasprintf (&text, fmt, ap) == -1)
return;
- dialog_fatal_t dialog = { title, text, };
+ dialog_fatal_t dialog = { title, text, modal, };
var_SetAddress (provider, "dialog-fatal", &dialog);
free (text);
vlc_object_release (provider);
}
-
-#undef dialog_Fatal
-/**
- * Notify the user of some fatal error.
- * This is a fire and forget function.
- */
-void dialog_Fatal (vlc_object_t *obj, const char *title, const char *fmt, ...)
-{
- va_list ap;
-
- va_start (ap, fmt);
- dialog_FatalVa (obj, title, fmt, ap);
- va_end (ap);
-}