Commit cde300c7 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont
Browse files

dialog: support modal fatal errors

parent 326a3a3c
......@@ -20,6 +20,7 @@
#ifndef VLC_DIALOG_H_
#define VLC_DIALOG_H_
# include <stdarg.h>
/**
* \file vlc_dialog.h
......@@ -34,12 +35,35 @@ typedef struct dialog_fatal_t
{
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))
......
......@@ -92,9 +92,8 @@ static vlc_object_t *dialog_GetProvider (vlc_object_t *obj)
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;
......@@ -112,22 +111,8 @@ void dialog_FatalVa (vlc_object_t *obj, const char *title,
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);
}
......@@ -102,9 +102,9 @@ decode_URI_duplicate
demux_PacketizerDestroy
demux_PacketizerNew
demux_vaControlHelper
dialog_Fatal
dialog_Register
dialog_Unregister
dialog_VFatal
encode_URI_component
EndMD5
EnsureUTF8
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment