{-# LINE 1 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Graphics.UI.Gtk.Gdk.Events (
Modifier(..),
TimeStamp,
currentTime,
Event(..),
EventButton,
EventScroll,
EventMotion,
EventExpose,
EventKey,
EventConfigure,
EventCrossing,
EventFocus,
EventProperty,
EventProximity,
EventVisibility,
EventWindowState,
EventGrabBroken,
marshExposeRect,
marshalEvent,
VisibilityState(..),
CrossingMode(..),
NotifyType(..),
WindowState(..),
ScrollDirection(..),
MouseButton(..),
Click(..),
Rectangle(..)
) where
import System.IO.Unsafe (unsafeInterleaveIO)
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Flags
import Graphics.UI.Gtk.Gdk.Keys (KeyVal, keyvalToChar, keyvalName)
{-# LINE 77 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
import Graphics.UI.Gtk.Gdk.Enums (Modifier(..),
VisibilityState(..),
CrossingMode(..),
NotifyType(..),
WindowState(..),
ScrollDirection(..))
import Graphics.UI.Gtk.General.Enums (MouseButton(..), Click(..))
import Graphics.UI.Gtk.General.Structs (Rectangle(..))
type TimeStamp = Word32
currentTime :: TimeStamp
currentTime :: TimeStamp
currentTime = TimeStamp
0
{-# LINE 95 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
type EventButton = Event
type EventScroll = Event
type EventMotion = Event
type EventExpose = Event
type EventKey = Event
type EventConfigure = Event
type EventCrossing = Event
type EventFocus = Event
type EventProperty = Event
type EventProximity = Event
type EventVisibility = Event
type EventWindowState = Event
type EventGrabBroken = Event
data Event =
Event { Event -> Bool
eventSent :: Bool }
| Expose {
eventSent :: Bool,
Event -> Rectangle
eventArea :: Rectangle,
{-# LINE 204 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
Event -> Int
eventCount :: Int }
| Motion {
eventSent :: Bool,
Event -> TimeStamp
eventTime :: TimeStamp,
Event -> Double
eventX,Event -> Double
eventY :: Double,
Event -> [Modifier]
eventModifier :: [Modifier],
Event -> Bool
eventIsHint :: Bool,
Event -> Double
eventXRoot,
Event -> Double
eventYRoot :: Double }
| Button {
eventSent :: Bool,
Event -> Click
eventClick :: Click,
eventTime :: TimeStamp,
eventX,eventY :: Double,
eventModifier :: [Modifier],
Event -> MouseButton
eventButton :: MouseButton,
eventXRoot,
eventYRoot :: Double }
| Key {
Event -> Bool
eventRelease :: Bool,
eventSent :: Bool,
eventTime :: TimeStamp,
eventModifier :: [Modifier],
Event -> Bool
eventWithCapsLock :: Bool,
Event -> Bool
eventWithNumLock :: Bool,
Event -> Bool
eventWithScrollLock :: Bool,
Event -> TimeStamp
eventKeyVal :: KeyVal,
Event -> DefaultGlibString
eventKeyName :: DefaultGlibString,
Event -> Maybe Char
eventKeyChar :: Maybe Char }
| Crossing {
eventSent :: Bool,
eventTime :: TimeStamp,
eventX,eventY :: Double,
eventXRoot,
eventYRoot :: Double,
Event -> Bool
eventLeaves :: Bool,
Event -> CrossingMode
eventCrossingMode :: CrossingMode,
Event -> NotifyType
eventNotifyType :: NotifyType,
eventModifier :: [Modifier]}
| Focus {
eventSent :: Bool,
Event -> Bool
eventInFocus :: Bool}
| Configure {
eventSent :: Bool,
Event -> Int
eventXParent :: Int,
Event -> Int
eventYParent :: Int,
Event -> Int
eventWidth :: Int,
Event -> Int
eventHeight :: Int}
| Visibility {
eventSent :: Bool,
Event -> VisibilityState
eventVisible :: VisibilityState }
| Scroll {
eventSent :: Bool,
eventTime :: TimeStamp,
eventX,eventY :: Double,
Event -> ScrollDirection
eventDirection :: ScrollDirection,
eventXRoot,
eventYRoot :: Double}
| WindowState {
eventSent :: Bool,
Event -> [WindowState]
eventWindowMask :: [WindowState],
Event -> [WindowState]
eventWindowState :: [WindowState]}
| Proximity {
eventSent :: Bool,
eventTime :: TimeStamp,
Event -> Bool
eventInContact :: Bool
} deriving Int -> Event -> ShowS
[Event] -> ShowS
Event -> String
(Int -> Event -> ShowS)
-> (Event -> String) -> ([Event] -> ShowS) -> Show Event
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Event -> ShowS
showsPrec :: Int -> Event -> ShowS
$cshow :: Event -> String
show :: Event -> String
$cshowList :: [Event] -> ShowS
showList :: [Event] -> ShowS
Show
marshalEvent :: Ptr Event -> IO Event
marshalEvent :: Ptr Event -> IO Event
marshalEvent Ptr Event
ptr = do
(Int32
eType::Int32) <- (\Ptr Event
hsc_ptr -> Ptr Event -> Int -> IO Int32
forall b. Ptr b -> Int -> IO Int32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr Event
hsc_ptr Int
0) Ptr Event
ptr
{-# LINE 391 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(case eType of
0 -> marshAny
{-# LINE 393 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
1 -> marshAny
{-# LINE 394 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
2 -> marshExpose
{-# LINE 395 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
3 -> marshMotion
{-# LINE 396 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
4 -> marshButton SingleClick
{-# LINE 397 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
5 -> marshButton DoubleClick
{-# LINE 398 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
6 -> marshButton TripleClick
{-# LINE 399 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
7 -> marshButton ReleaseClick
{-# LINE 400 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
8 -> marshKey False
{-# LINE 401 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
9 -> marshKey True
{-# LINE 402 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
10 -> marshCrossing False
{-# LINE 403 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
11 -> marshCrossing True
{-# LINE 404 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
12 -> marshFocus
{-# LINE 405 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
13 -> marshConfigure
{-# LINE 406 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
14 -> marshAny
{-# LINE 407 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
15 -> marshAny
{-# LINE 408 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
20 -> marshProximity True
{-# LINE 410 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
21 -> marshProximity False
{-# LINE 411 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
29-> marshVisibility
{-# LINE 412 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
31 -> marshScroll
{-# LINE 413 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
32 -> marshWindowState
{-# LINE 414 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
code -> \_ -> fail $
"marshalEvent: unhandled event type " ++ show code ++
"\nplease report this as a bug to gtk2hs-devel@lists.sourceforge.net"
) ptr
marshAny :: Ptr b -> IO Event
marshAny Ptr b
ptr = do
(Int8
sent ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 421 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return Event {
eventSent = toBool sent
}
marshExpose :: Ptr b -> IO Event
marshExpose Ptr b
ptr = do
(Int32
2::Int32) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int32
forall b. Ptr b -> Int -> IO Int32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
0) Ptr b
ptr
{-# LINE 427 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(sent_ ::Int8) <- (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 428 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(area_ ::Rectangle) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 429 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
{-# LINE 434 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(Int32
count_ ::Int32) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int32
forall b. Ptr b -> Int -> IO Int32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
32) Ptr b
ptr
{-# LINE 435 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Expose {
eventSent = toBool sent_,
eventArea = area_,
{-# LINE 441 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
eventCount = fromIntegral count_}
{-# LINE 447 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
marshExposeRect :: Ptr Event -> IO Rectangle
marshExposeRect :: Ptr Event -> IO Rectangle
marshExposeRect Ptr Event
ptr = do
(Int32
2::Int32) <- (\Ptr Event
hsc_ptr -> Ptr Event -> Int -> IO Int32
forall b. Ptr b -> Int -> IO Int32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr Event
hsc_ptr Int
0) Ptr Event
ptr
{-# LINE 451 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(area_ ::Rectangle) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 452 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return area_
marshMotion :: Ptr b -> IO Event
marshMotion Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 456 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 457 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(x_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 458 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(y_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 459 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(modif_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 460 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(isHint_ ::Int16) <- (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 461 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(xRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 462 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(yRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 463 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Motion {
eventSent = toBool sent_,
eventTime = fromIntegral time_,
eventX = realToFrac x_,
eventY = realToFrac y_,
eventModifier = (toFlags . fromIntegral) modif_,
eventIsHint = toBool isHint_,
eventXRoot = realToFrac xRoot_,
eventYRoot = realToFrac yRoot_}
marshButton :: Click -> Ptr b -> IO Event
marshButton Click
but Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 475 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 476 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(x_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 477 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(y_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 478 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(modif_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 479 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(button_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 480 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(xRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 481 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(yRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 482 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Button {
eventClick = but,
eventSent = toBool sent_,
eventTime = fromIntegral time_,
eventX = realToFrac x_,
eventY = realToFrac y_,
eventModifier = (toFlags . fromIntegral) modif_,
eventButton = (toEnum.fromIntegral) button_,
eventXRoot = realToFrac xRoot_,
eventYRoot = realToFrac yRoot_}
marshKey :: Bool -> Ptr b -> IO Event
marshKey Bool
up Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 496 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 497 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(modif_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 498 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(keyval_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 499 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(Int32
length_ ::Int32) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int32
forall b. Ptr b -> Int -> IO Int32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
24) Ptr b
ptr
{-# LINE 501 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
keyChar <- keyvalToChar keyval_
DefaultGlibString
keyName <- IO DefaultGlibString -> IO DefaultGlibString
forall a. IO a -> IO a
unsafeInterleaveIO (IO DefaultGlibString -> IO DefaultGlibString)
-> IO DefaultGlibString -> IO DefaultGlibString
forall a b. (a -> b) -> a -> b
$ TimeStamp -> IO DefaultGlibString
keyvalName TimeStamp
keyval_
Event -> IO Event
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Event -> IO Event) -> Event -> IO Event
forall a b. (a -> b) -> a -> b
$ Key {
eventRelease :: Bool
eventRelease = Bool
up,
eventSent :: Bool
eventSent = Int8 -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool Int8
sent_,
eventTime :: TimeStamp
eventTime = TimeStamp -> TimeStamp
forall a b. (Integral a, Num b) => a -> b
fromIntegral TimeStamp
time_,
eventModifier :: [Modifier]
eventModifier = (Int -> [Modifier]
forall a. Flags a => Int -> [a]
toFlags (Int -> [Modifier])
-> (TimeStamp -> Int) -> TimeStamp -> [Modifier]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TimeStamp -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) TimeStamp
modif_,
eventWithCapsLock :: Bool
eventWithCapsLock = (TimeStamp
modif_ TimeStamp -> TimeStamp -> TimeStamp
forall a. Bits a => a -> a -> a
.&. TimeStamp
2)TimeStamp -> TimeStamp -> Bool
forall a. Eq a => a -> a -> Bool
/=TimeStamp
0,
{-# LINE 509 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
eventWithNumLock = (modif_ .&. 16)/=0,
{-# LINE 510 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
eventWithScrollLock = (modif_ .&. 32)/=0,
{-# LINE 511 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
eventKeyVal = keyval_,
eventKeyName :: DefaultGlibString
eventKeyName = DefaultGlibString
keyName,
eventKeyChar :: Maybe Char
eventKeyChar = Maybe Char
keyChar }
marshCrossing :: Bool -> Ptr b -> IO Event
marshCrossing Bool
leave Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 517 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 518 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(x_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 519 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(y_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 520 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(modif_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 64) ptr
{-# LINE 521 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(xRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 522 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(yRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 44) ptr
{-# LINE 523 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(cMode_ ::Word32)
{-# LINE 524 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 52) ptr
{-# LINE 525 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(nType_ ::Word32)
{-# LINE 526 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 527 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(modif_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 64) ptr
{-# LINE 528 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Crossing {
eventSent = toBool sent_,
eventTime = fromIntegral time_,
eventX = realToFrac x_,
eventY = realToFrac y_,
eventXRoot = realToFrac xRoot_,
eventYRoot = realToFrac yRoot_,
eventLeaves = leave,
eventCrossingMode = (toEnum.fromIntegral) cMode_,
eventNotifyType = (toEnum.fromIntegral) nType_,
eventModifier = (toFlags . fromIntegral) modif_}
marshFocus :: Ptr b -> IO Event
marshFocus Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 543 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(inFocus_::Int16) <- (\hsc_ptr -> peekByteOff hsc_ptr 10) ptr
{-# LINE 544 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Focus {
eventSent = toBool sent_,
eventInFocus= toBool inFocus_}
marshConfigure :: Ptr b -> IO Event
marshConfigure Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 550 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(xPar_ ::Int32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 551 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(yPar_ ::Int32) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 552 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(width_ ::Int32) <- (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 553 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(height_ ::Int32) <- (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 554 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Configure {
eventSent = toBool sent_,
eventXParent = fromIntegral xPar_,
eventYParent = fromIntegral yPar_,
eventWidth = fromIntegral width_,
eventHeight = fromIntegral height_}
marshProximity :: Bool -> Ptr b -> IO Event
marshProximity Bool
contact Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 572 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 573 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Proximity {
eventSent = toBool sent_,
eventTime = fromIntegral time_,
eventInContact = contact}
marshVisibility :: Ptr b -> IO Event
marshVisibility Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 580 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(state_ ::Word32)
{-# LINE 581 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 582 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Visibility {
eventSent = toBool sent_,
eventVisible= (toEnum.fromIntegral) state_}
marshScroll :: Ptr b -> IO Event
marshScroll Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 588 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(time_ ::Word32) <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 589 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(x_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 590 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(y_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 591 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(direc_ ::Word32)
{-# LINE 592 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 593 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(xRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 44) ptr
{-# LINE 594 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(yRoot_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 52) ptr
{-# LINE 595 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ Scroll {
eventSent = toBool sent_,
eventTime = fromIntegral time_,
eventX = realToFrac x_,
eventY = realToFrac y_,
eventDirection = (toEnum.fromIntegral) direc_,
eventXRoot = realToFrac xRoot_,
eventYRoot = realToFrac yRoot_}
marshWindowState :: Ptr b -> IO Event
marshWindowState Ptr b
ptr = do
(Int8
sent_ ::Int8) <- (\Ptr b
hsc_ptr -> Ptr b -> Int -> IO Int8
forall b. Ptr b -> Int -> IO Int8
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr b
hsc_ptr Int
8) Ptr b
ptr
{-# LINE 607 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(wMask_ ::Word32)
{-# LINE 608 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 609 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
(wState_ ::Word32)
{-# LINE 610 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
<- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 611 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}
return $ WindowState {
eventSent = toBool sent_,
eventWindowMask = (toFlags.fromIntegral) wMask_,
eventWindowState = (toFlags.fromIntegral) wState_}