Index: trunk/src/core/io_event.cc
===================================================================
--- trunk/src/core/io_event.cc	(revision 504)
+++ trunk/src/core/io_event.cc	(revision 505)
@@ -71,29 +71,33 @@
 
 	db->create_type<key_event>()
-		.field( "ascii",   &key_event::ascii )
-		.field( "code",    &key_event::code )
-		.field( "shift",   &key_event::shift )
-		.field( "control", &key_event::control )
-		.field( "alt",     &key_event::alt )
-		.field( "pressed", &key_event::pressed );
+		.field( "window_id",&key_event::window_id )
+		.field( "ascii",    &key_event::ascii )
+		.field( "code",     &key_event::code )
+		.field( "shift",    &key_event::shift )
+		.field( "control",  &key_event::control )
+		.field( "alt",      &key_event::alt )
+		.field( "pressed",  &key_event::pressed );
 
 	db->create_type<mouse_button_event>()
-		.field( "x",       &mouse_button_event::x )
-		.field( "y",       &mouse_button_event::y )
-		.field( "button",  &mouse_button_event::button )
-		.field( "pressed", &mouse_button_event::pressed )
-		.field( "code",    &mouse_button_event::code );
+		.field( "window_id",&mouse_button_event::window_id )
+		.field( "x",        &mouse_button_event::x )
+		.field( "y",        &mouse_button_event::y )
+		.field( "button",   &mouse_button_event::button )
+		.field( "pressed",  &mouse_button_event::pressed )
+		.field( "code",     &mouse_button_event::code );
 
 	db->create_type<mouse_move_event>()
-		.field( "x",       &mouse_move_event::x )
-		.field( "y",       &mouse_move_event::y )
-		.field( "rx",      &mouse_move_event::rx )
-		.field( "ry",      &mouse_move_event::ry )
-		.field( "pressed", &mouse_move_event::pressed )
-		.field( "code",    &mouse_move_event::code );
+		.field( "window_id",&mouse_move_event::window_id )
+		.field( "x",        &mouse_move_event::x )
+		.field( "y",        &mouse_move_event::y )
+		.field( "rx",       &mouse_move_event::rx )
+		.field( "ry",       &mouse_move_event::ry )
+		.field( "pressed",  &mouse_move_event::pressed )
+		.field( "code",     &mouse_move_event::code );
 
 	db->create_type<mouse_wheel_event>()
-		.field( "x",       &mouse_wheel_event::x )
-		.field( "y",       &mouse_wheel_event::y );
+		.field( "window_id",&mouse_wheel_event::window_id )
+		.field( "x",        &mouse_wheel_event::x )
+		.field( "y",        &mouse_wheel_event::y );
 
 	db->create_type<pad_button_event>()
Index: trunk/src/core/types.cc
===================================================================
--- trunk/src/core/types.cc	(revision 504)
+++ trunk/src/core/types.cc	(revision 505)
@@ -3,4 +3,5 @@
 #include "nv/interface/clear_state.hh"
 #include "nv/interface/render_state.hh"
+#include "nv/stl/string.hh"
 
 using namespace nv;
@@ -26,4 +27,9 @@
 	db->create_type<ivec3>();
 	db->create_type<ivec4>();
+	db->create_type<quat>();
+	db->create_type<string32>();
+	db->create_type<string64>();
+	db->create_type<string128>();
+	db->create_type<string256>();
 
 	db->create_type<color_mask>()
