summaryrefslogtreecommitdiffstats
path: root/GLDriver.hs
diff options
context:
space:
mode:
Diffstat (limited to 'GLDriver.hs')
-rw-r--r--GLDriver.hs10
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