add dispatcherror

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@71 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-09-30 03:08:26 +00:00
parent 58cbbdb8a4
commit f712ca73d4
3 changed files with 27 additions and 0 deletions

View File

@@ -250,3 +250,26 @@ void MwAddUserHandler(MwWidget handle, const char* key, MwUserHandler handler, v
ind = shgeti(handle->handler, key);
handle->handler[ind].user_data = user_data;
}
static MwErrorHandler error_handler = NULL;
static void* error_user_data = NULL;
void MwSetErrorHandler(MwErrorHandler handler, void* user_data) {
error_handler = handler;
error_user_data = user_data;
}
void MwDispatchError(int code, const char* message) {
if(error_handler != NULL) {
error_handler(code, message, error_user_data);
} else {
#ifdef _WIN32
char buffer[1024];
sprintf(buffer, "Error: %s\r\nCode : %d\r\n\r\nMilsko is exiting.", message, code);
MessageBox(NULL, buffer, "Error", MB_ICONERROR | MB_OK);
#else
fprintf(stderr, "Error: %s\nCode : %d\n\nMilsko is exiting.", message, code);
#endif
exit(1);
}
}