]> git.sesse.net Git - vlc/blob - include/vlc_dialog.h
dialog_Login: simple replacement for intf_UserLoginPassword
[vlc] / include / vlc_dialog.h
1 /*****************************************************************************
2  * vlc_dialog.h: user interaction dialogs
3  *****************************************************************************
4  * Copyright (C) 2009 RĂ©mi Denis-Courmont
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20
21 #ifndef VLC_DIALOG_H_
22 #define VLC_DIALOG_H_
23 # include <stdarg.h>
24
25 /**
26  * \file vlc_dialog.h
27  * User interaction dialog APIs
28  */
29
30 /**
31  * A fatal error dialog.
32  * No response expected from the user.
33  */
34 typedef struct dialog_fatal_t
35 {
36     const char *title;
37     const char *message;
38     bool modal;
39 } dialog_fatal_t;
40
41 VLC_EXPORT( void, dialog_VFatal, (vlc_object_t *, bool, const char *, const char *, va_list) );
42
43 static inline LIBVLC_FORMAT(3, 4)
44 void dialog_Fatal (vlc_object_t *obj, const char *title, const char *fmt, ...)
45 {
46      va_list ap;
47
48      va_start (ap, fmt);
49      dialog_VFatal(obj, false, title, fmt, ap);
50      va_end (ap);
51 }
52 #define dialog_Fatal(o, t, ...) \
53         dialog_Fatal(VLC_OBJECT(o), t, __VA_ARGS__)
54
55 static inline LIBVLC_FORMAT(3, 4)
56 void dialog_FatalWait (vlc_object_t *obj, const char *title,
57                        const char *fmt, ...){
58      va_list ap;
59
60      va_start (ap, fmt);
61      dialog_VFatal(obj, true, title, fmt, ap);
62      va_end (ap);
63 }
64 #define dialog_FatalWait(o, t, ...) \
65         dialog_FatalWait(VLC_OBJECT(o), t, __VA_ARGS__)
66
67 /**
68  * A login dialog.
69  */
70 typedef struct dialog_login_t
71 {
72     const char *title;
73     const char *message;
74     char **username;
75     char **password;
76 } dialog_login_t;
77
78 VLC_EXPORT( void, dialog_Login, (vlc_object_t *, char **, char **, const char *, const char *) );
79 #define dialog_Login(o, u, p, t, m) \
80         dialog_Login(VLC_OBJECT(o), u, p, t, m)
81
82 VLC_EXPORT( int, dialog_Register, (vlc_object_t *) );
83 VLC_EXPORT( int, dialog_Unregister, (vlc_object_t *) );
84 #define dialog_Register(o) dialog_Register(VLC_OBJECT(o))
85 #define dialog_Unregister(o) dialog_Unregister(VLC_OBJECT(o))
86
87 #endif