From 8d03a3255cd528345f8dba7fb65b76d3f50215d7 Mon Sep 17 00:00:00 2001 From: Maarten Hoogendoorn Date: Fri, 29 Jan 2016 23:11:52 +0100 Subject: [PATCH] Add registration of user events. --- src/sdl2/event.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/sdl2/event.rs b/src/sdl2/event.rs index eea6483a..063798cf 100644 --- a/src/sdl2/event.rs +++ b/src/sdl2/event.rs @@ -103,6 +103,18 @@ impl ::EventSubsystem { } } } + + /// Registers a custom events. + /// If `Ok(nr) = register_event(2);`, then the caller has sucessfully created the custom events `nr` and `nr + 1` + pub fn register_events(&self, nr: u32) -> SdlResult { + let result = unsafe { ll::SDL_RegisterEvents(nr as ::libc::c_int) }; + const ERR_NR:u32 = ::std::u32::MAX - 1; + + match result { + ERR_NR => { Err(ErrorMessage("No more user events can be created; SDL_LASTEVENT reached".to_owned())) }, + _ => Ok(result) + } + } } /// Types of events that can be delivered.