# HG changeset patch # User ib # Date 1301049228 0 # Node ID ba432e34dc7e5e575e8ef27a0605eb981b39a01e # Parent 9abc0dbd63142a9f56f24f8366610663a17ebfdc Add message showing function. In some cases it is necessary to show messages to the GUI users as well or they will wonder why the GUI didn't show up. diff -r 9abc0dbd6314 -r ba432e34dc7e gui/interface.c --- a/gui/interface.c Fri Mar 25 09:26:00 2011 +0000 +++ b/gui/interface.c Fri Mar 25 10:33:48 2011 +0000 @@ -1491,3 +1491,25 @@ return result; } + +// NOTE TO MYSELF: This function is nonsense. +// MPlayer should pass messages to the GUI +// which must decide then which message has +// to be shown (MSGL_FATAL, for example). +// But with this function it is at least +// possible to show GUI's very critical or +// abort messages. +void gmp_msg(int mod, int lev, const char *format, ...) +{ + char msg[512]; + va_list va; + + va_start(va, format); + vsnprintf(msg, sizeof(msg), format, va); + va_end(va); + + mp_msg(mod, lev, msg); + + if (mp_msg_test(mod, lev)) + gtkMessageBox(GTK_MB_FATAL, msg); +} diff -r 9abc0dbd6314 -r ba432e34dc7e gui/interface.h --- a/gui/interface.h Fri Mar 25 09:26:00 2011 +0000 +++ b/gui/interface.h Fri Mar 25 10:33:48 2011 +0000 @@ -232,6 +232,7 @@ void gaddlist(char ***list, const char *entry); void gfree(void **p); +void gmp_msg(int mod, int lev, const char *format, ...); char *gstrchr(char *str, int c); int gstrcmp(const char *a, const char *b); char *gstrdup(const char *str); diff -r 9abc0dbd6314 -r ba432e34dc7e gui/skin/skin.c --- a/gui/skin/skin.c Fri Mar 25 09:26:00 2011 +0000 +++ b/gui/skin/skin.c Fri Mar 25 10:33:48 2011 +0000 @@ -23,6 +23,7 @@ #include "cut.h" #include "font.h" #include "gui/app.h" +#include "gui/interface.h" #include "gui/mplayer/widgets.h" #include "config.h" @@ -49,19 +50,13 @@ static void skin_error(const char *format, ...) { char p[512]; - char tmp[512]; va_list ap; va_start(ap, format); vsnprintf(p, sizeof(p), format, ap); va_end(ap); - mp_msg(MSGT_GPLAYER, MSGL_ERR, MSGTR_SKIN_ERRORMESSAGE, linenumber, p); - - if (mp_msg_test(MSGT_GPLAYER, MSGL_ERR)) { - snprintf(tmp, sizeof(tmp), MSGTR_SKIN_ERRORMESSAGE, linenumber, p); - gtkMessageBox(GTK_MB_FATAL, tmp); - } + gmp_msg(MSGT_GPLAYER, MSGL_ERR, MSGTR_SKIN_ERRORMESSAGE, linenumber, p); } #define CHECKDEFLIST(str) \