diff options
Diffstat (limited to 'GLDriver.hs')
-rw-r--r-- | GLDriver.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/GLDriver.hs b/GLDriver.hs index f4dca5e..ce84563 100644 --- a/GLDriver.hs +++ b/GLDriver.hs @@ -6,10 +6,10 @@ module GLDriver ( Driver(..) , SomeEvent(..) , fromEvent , QuitEvent(..) - --, ResizeEvent(..) , Key(..) , KeyPressEvent(..) , KeyReleaseEvent(..) + , MouseMotionEvent(..) ) where import Data.Typeable @@ -23,7 +23,7 @@ class Driver a where swapBuffers :: a -> IO () - nextEvent :: a -> IO (Maybe SomeEvent) + nextEvent :: a -> IO (a, Maybe SomeEvent) data SomeDriver = forall d. Driver d => SomeDriver d @@ -32,7 +32,7 @@ instance Driver SomeDriver where initGL (SomeDriver d) = initGL d >>= return . SomeDriver deinitGL (SomeDriver d) = deinitGL d swapBuffers (SomeDriver d) = swapBuffers d - nextEvent (SomeDriver d) = nextEvent d + nextEvent (SomeDriver d) = nextEvent d >>= \(gl, ev) -> return (SomeDriver gl, ev) class (Typeable a, Show a) => Event a @@ -57,3 +57,7 @@ instance Event KeyPressEvent data KeyReleaseEvent = KeyReleaseEvent Key deriving (Typeable, Show) instance Event KeyReleaseEvent + + +data MouseMotionEvent = MouseMotionEvent Float Float deriving (Typeable, Show) +instance Event MouseMotionEvent
\ No newline at end of file |