fix fatal error messages

This commit is contained in:
Eduardo Bart 2012-01-06 18:15:41 -02:00
parent f3c0260ea2
commit f41e1e75cd
5 changed files with 11 additions and 9 deletions

View File

@ -22,14 +22,10 @@
#include "logger.h"
#include "eventdispatcher.h"
#include <framework/platform/platformwindow.h>
Logger g_logger;
Logger::Logger()
{
}
void Logger::log(Fw::LogLevel level, std::string message)
{
const static std::string logPrefixes[] = { "", "", "WARNING: ", "ERROR: ", "FATAL ERROR: " };
@ -43,8 +39,10 @@ void Logger::log(Fw::LogLevel level, std::string message)
if(m_onLog)
m_onLog(level, message, now);
if(level == Fw::LogFatal)
throw std::runtime_error(message);
if(level == Fw::LogFatal) {
g_window.displayFatalError(message);
exit(-1);
}
}
void Logger::logFunc(Fw::LogLevel level, const std::string& message, std::string prettyFunction)

View File

@ -37,8 +37,6 @@ class Logger
typedef std::function<void(Fw::LogLevel, std::string, std::size_t)> OnLogCallback;
public:
Logger();
void log(Fw::LogLevel level, std::string message);
void logFunc(Fw::LogLevel level, const std::string& message, std::string prettyFunction);

View File

@ -43,6 +43,7 @@ public:
virtual void poll() = 0;
virtual void swapBuffers() = 0;
virtual void showMouse() = 0;
virtual void displayFatalError(const std::string& message) { }
virtual void hideMouse() = 0;
virtual void setTitle(const std::string& title) = 0;

View File

@ -618,3 +618,7 @@ std::string WIN32Window::getPlatformType()
return "WIN32-WGL";
}
void WIN32Window::displayFatalError(const std::string& message)
{
MessageBoxA(m_window, message.c_str(), "FATAL ERROR", MB_OK | MB_ICONERROR);
}

View File

@ -58,6 +58,7 @@ public:
void swapBuffers();
void showMouse();
void hideMouse();
void displayFatalError(const std::string& message);
void setTitle(const std::string& title);
void setMinimumSize(const Size& minimumSize);