diff modules/sdl.tp @ 293:2b045d5b673b

Add binding for sdl mouse motion event
author Michael Pavone <pavone@retrodev.com>
date Thu, 24 Jul 2014 09:43:18 -0700
parents 38bbbf74b735
children 4c669942c30d
line wrap: on
line diff
--- a/modules/sdl.tp	Thu Jul 24 09:43:06 2014 -0700
+++ b/modules/sdl.tp	Thu Jul 24 09:43:18 2014 -0700
@@ -181,6 +181,39 @@
 			oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
 			oi32 num!: (mouseButEvent y)
 			mcall: y! 2 empty oi32
+			empty
+		}
+
+		llMessage: populateMouseMotionEvent withVars: {
+			eventPtr <- cpointer ptr
+			empty <- object ptr
+			mouseMotEvent <- SDL_MouseMotionEvent ptr
+			ou32 <- obj_uint32 ptr
+			oi32 <- obj_int32 ptr
+		} andCode: :eventPtr empty {
+			mouseMotEvent <- eventPtr val
+			ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
+			ou32 num!: (mouseMotEvent windowID)
+			mcall: windowID! 2 empty ou32
+			ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
+			ou32 num!: (mouseMotEvent which)
+			mcall: mouseID! 2 empty ou32
+			ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
+			ou32 num!: (mouseMotEvent state)
+			mcall: buttonState! 2 empty ou32
+			oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
+			oi32 num!: (mouseMotEvent x)
+			mcall: x! 2 empty oi32
+			oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
+			oi32 num!: (mouseMotEvent y)
+			mcall: y! 2 empty oi32
+			oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
+			oi32 num!: (mouseMotEvent xrel)
+			mcall: xRel! 2 empty oi32
+			oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
+			oi32 num!: (mouseMotEvent yrel)
+			mcall: yRel! 2 empty oi32
+			empty
 		}
 	}
 
@@ -303,6 +336,33 @@
 	_eventConstructors set: (_events mouseDown) mouseButtonEvent
 	_eventConstructors set: (_events mouseUp) mouseButtonEvent
 
+	_eventConstructors set: (_events mouseMotion) :typ tstamp eventPtr {
+		_helper populateMouseMotionEvent: eventPtr #{
+			type <- typ
+			timeStamp <- tstamp
+			windowID <- 0u32
+			mouseID <- 0u32
+			buttonState <- 0u32
+			x <- 0
+			y <- 0
+			xRel <- 0
+			yRel <- 0
+		}
+	}
+
+	/*
+	_eventConstructors set: (_events mouseWheel) :type tstamp eventPtr {
+		_helper populateMouseWheelEvent: eventPtr #{
+			type <- typ
+			timeStamp <- tstamp
+			windowID <- 0u32
+			mouseID <- 0u32
+			x <- 0
+			y <- 0
+		}
+	}
+	*/
+
 	_makeTexture <- :rendptr texptr {
 		#{
 			includeSystemHeader: "SDL.h"