From d71fc887a97a8bcf6d3b554fec9c88e38965c39f Mon Sep 17 00:00:00 2001 From: adrian17 Date: Sun, 20 Oct 2013 17:42:07 +0200 Subject: [PATCH] Simplified MsgHandler --- Common/Common.h | 4 --- Common/MsgHandler.cpp | 75 +++++++++---------------------------------- Common/MsgHandler.h | 9 ------ 3 files changed, 15 insertions(+), 73 deletions(-) diff --git a/Common/Common.h b/Common/Common.h index e6243d05c3..df4b22acba 100644 --- a/Common/Common.h +++ b/Common/Common.h @@ -137,10 +137,6 @@ private: #define __chdir chdir #endif -// Dummy macro for marking translatable strings that can not be immediately translated. -// wxWidgets does not have a true dummy macro for this. -#define _trans(a) a - #if defined __GNUC__ # if defined __SSE4_2__ # define _M_SSE 0x402 diff --git a/Common/MsgHandler.cpp b/Common/MsgHandler.cpp index 7f15f60f2b..e554dc9beb 100644 --- a/Common/MsgHandler.cpp +++ b/Common/MsgHandler.cpp @@ -15,32 +15,15 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ - - #include "Common.h" // Local #include "StringUtils.h" #include "util/text/utf8.h" +#include + +bool MsgHandler(const char* caption, const char* text, bool yes_no, int Style); -bool DefaultMsgHandler(const char* caption, const char* text, bool yes_no, int Style); -static MsgAlertHandler msg_handler = DefaultMsgHandler; static bool AlertEnabled = true; -std::string DefaultStringTranslator(const char* text); -static StringTranslator str_translator = DefaultStringTranslator; - -// Select which of these functions that are used for message boxes. If -// wxWidgets is enabled we will use wxMsgAlert() that is defined in Main.cpp -void RegisterMsgAlertHandler(MsgAlertHandler handler) -{ - msg_handler = handler; -} - -// Select translation function. For wxWidgets use wxStringTranslator in Main.cpp -void RegisterStringTranslator(StringTranslator translator) -{ - str_translator = translator; -} - // enable/disable the alert handler void SetEnableAlert(bool enable) { @@ -52,48 +35,27 @@ void SetEnableAlert(bool enable) bool MsgAlert(bool yes_no, int Style, const char* format, ...) { // Read message and write it to the log - std::string caption; char buffer[2048]; - static std::string info_caption; - static std::string warn_caption; - static std::string ques_caption; - static std::string crit_caption; + static const char *captions[] = { + "Information", + "Question", + "Warning", + "Critical" + }; - if (!info_caption.length()) - { - info_caption = str_translator(_trans("Information")); - ques_caption = str_translator(_trans("Question")); - warn_caption = str_translator(_trans("Warning")); - crit_caption = str_translator(_trans("Critical")); - } - - switch(Style) - { - case INFORMATION: - caption = info_caption; - break; - case QUESTION: - caption = ques_caption; - break; - case WARNING: - caption = warn_caption; - break; - case CRITICAL: - caption = crit_caption; - break; - } + const char *caption = captions[Style]; va_list args; va_start(args, format); - CharArrayFromFormatV(buffer, sizeof(buffer)-1, str_translator(format).c_str(), args); + CharArrayFromFormatV(buffer, sizeof(buffer)-1, format, args); va_end(args); - ERROR_LOG(MASTER_LOG, "%s: %s", caption.c_str(), buffer); + ERROR_LOG(MASTER_LOG, "%s: %s", caption, buffer); // Don't ignore questions, especially AskYesNo, PanicYesNo could be ignored - if (msg_handler && (AlertEnabled || Style == QUESTION || Style == CRITICAL)) - return msg_handler(caption.c_str(), buffer, yes_no, Style); + if (AlertEnabled || Style == QUESTION || Style == CRITICAL) + return MsgHandler(caption, buffer, yes_no, Style); return true; } @@ -103,7 +65,7 @@ bool MsgAlert(bool yes_no, int Style, const char* format, ...) #endif // Default non library dependent panic alert -bool DefaultMsgHandler(const char* caption, const char* text, bool yes_no, int Style) +bool MsgHandler(const char* caption, const char* text, bool yes_no, int Style) { #ifdef _WIN32 int STYLE = MB_ICONINFORMATION; @@ -120,10 +82,3 @@ bool DefaultMsgHandler(const char* caption, const char* text, bool yes_no, int S return true; #endif } - -// Default (non) translator -std::string DefaultStringTranslator(const char* text) -{ - return text; -} - diff --git a/Common/MsgHandler.h b/Common/MsgHandler.h index b3ac8e4bef..32989fa27b 100644 --- a/Common/MsgHandler.h +++ b/Common/MsgHandler.h @@ -18,8 +18,6 @@ #ifndef _MSGHANDLER_H_ #define _MSGHANDLER_H_ -#include - // Message alerts enum MSG_TYPE { @@ -29,13 +27,6 @@ enum MSG_TYPE CRITICAL }; -typedef bool (*MsgAlertHandler)(const char* caption, const char* text, - bool yes_no, int Style); -typedef std::string (*StringTranslator)(const char* text); - -void RegisterMsgAlertHandler(MsgAlertHandler handler); -void RegisterStringTranslator(StringTranslator translator); - extern bool MsgAlert(bool yes_no, int Style, const char* format, ...) #ifdef __GNUC__ __attribute__((format(printf, 3, 4)))