Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 677c1b5134368504c2e447757584d19e > files > 1008

ghc-gtk-devel-0.11.2-5.fc14.i686.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>dist/build/Graphics/UI/Gtk/Gdk/Events.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>{-# LINE 1 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-2"></a><span class='hs-comment'>{-# LANGUAGE ScopedTypeVariables #-}</span>
<a name="line-3"></a><span class='hs-comment'>{-# LINE 2 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-4"></a><span class='hs-comment'>-- -*-haskell-*-</span>
<a name="line-5"></a>
<a name="line-6"></a>
<a name="line-7"></a><span class='hs-comment'>{-# LINE 5 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-8"></a>
<a name="line-9"></a><span class='hs-comment'>{-# LINE 6 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-10"></a>
<a name="line-11"></a><span class='hs-comment'>--  GIMP Toolkit (GTK) GDK Events</span>
<a name="line-12"></a><span class='hs-comment'>--</span>
<a name="line-13"></a><span class='hs-comment'>--  Author : Axel Simon</span>
<a name="line-14"></a><span class='hs-comment'>--</span>
<a name="line-15"></a><span class='hs-comment'>--  Created: 27 April 2001</span>
<a name="line-16"></a><span class='hs-comment'>--</span>
<a name="line-17"></a><span class='hs-comment'>--  Copyright (C) 2001-2005 Axel Simon</span>
<a name="line-18"></a><span class='hs-comment'>--</span>
<a name="line-19"></a><span class='hs-comment'>--  This library is free software; you can redistribute it and/or</span>
<a name="line-20"></a><span class='hs-comment'>--  modify it under the terms of the GNU Lesser General Public</span>
<a name="line-21"></a><span class='hs-comment'>--  License as published by the Free Software Foundation; either</span>
<a name="line-22"></a><span class='hs-comment'>--  version 2.1 of the License, or (at your option) any later version.</span>
<a name="line-23"></a><span class='hs-comment'>--</span>
<a name="line-24"></a><span class='hs-comment'>--  This library is distributed in the hope that it will be useful,</span>
<a name="line-25"></a><span class='hs-comment'>--  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="line-26"></a><span class='hs-comment'>--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="line-27"></a><span class='hs-comment'>--  Lesser General Public License for more details.</span>
<a name="line-28"></a><span class='hs-comment'>--</span>
<a name="line-29"></a><span class='hs-comment'>-- |</span>
<a name="line-30"></a><span class='hs-comment'>-- Maintainer  : gtk2hs-users\@lists.sourceforge.net</span>
<a name="line-31"></a><span class='hs-comment'>-- Stability   : deprecated</span>
<a name="line-32"></a><span class='hs-comment'>-- Portability : portable (depends on GHC)</span>
<a name="line-33"></a><span class='hs-comment'>--</span>
<a name="line-34"></a><span class='hs-comment'>-- Definiton of a record that contains event information. Deprecated in</span>
<a name="line-35"></a><span class='hs-comment'>-- favor of 'Graphics.UI.Gtk.Gdk.EventM' and not exported by Gtk.hs.</span>
<a name="line-36"></a><span class='hs-comment'>--</span>
<a name="line-37"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Gdk</span><span class='hs-varop'>.</span><span class='hs-conid'>Events</span> <span class='hs-layout'>(</span>
<a name="line-38"></a>  <span class='hs-conid'>Modifier</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>		<span class='hs-comment'>-- a mask of control keys</span>
<a name="line-39"></a>  <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-40"></a>  <span class='hs-varid'>currentTime</span><span class='hs-layout'>,</span>
<a name="line-41"></a>
<a name="line-42"></a>  <span class='hs-comment'>-- | Deprecated way of conveying event information.</span>
<a name="line-43"></a>  <span class='hs-conid'>Event</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>		<span class='hs-comment'>-- information in event callbacks from Gdk</span>
<a name="line-44"></a>  <span class='hs-conid'>EventButton</span><span class='hs-layout'>,</span>
<a name="line-45"></a>  <span class='hs-conid'>EventScroll</span><span class='hs-layout'>,</span>
<a name="line-46"></a>  <span class='hs-conid'>EventMotion</span><span class='hs-layout'>,</span>
<a name="line-47"></a>  <span class='hs-conid'>EventExpose</span><span class='hs-layout'>,</span>
<a name="line-48"></a>  <span class='hs-conid'>EventKey</span><span class='hs-layout'>,</span>
<a name="line-49"></a>  <span class='hs-conid'>EventConfigure</span><span class='hs-layout'>,</span>
<a name="line-50"></a>  <span class='hs-conid'>EventCrossing</span><span class='hs-layout'>,</span>
<a name="line-51"></a>  <span class='hs-conid'>EventFocus</span><span class='hs-layout'>,</span>
<a name="line-52"></a>  <span class='hs-conid'>EventProperty</span><span class='hs-layout'>,</span>
<a name="line-53"></a>  <span class='hs-conid'>EventProximity</span><span class='hs-layout'>,</span>
<a name="line-54"></a>  <span class='hs-conid'>EventVisibility</span><span class='hs-layout'>,</span>
<a name="line-55"></a>  <span class='hs-conid'>EventWindowState</span><span class='hs-layout'>,</span>
<a name="line-56"></a>  <span class='hs-conid'>EventGrabBroken</span><span class='hs-layout'>,</span>
<a name="line-57"></a>
<a name="line-58"></a>  <span class='hs-varid'>marshExposeRect</span><span class='hs-layout'>,</span>
<a name="line-59"></a>
<a name="line-60"></a>  <span class='hs-comment'>-- selector functions</span>
<a name="line-61"></a>  <span class='hs-varid'>marshalEvent</span><span class='hs-layout'>,</span>		<span class='hs-comment'>-- convert a pointer to an event data structure</span>
<a name="line-62"></a>  <span class='hs-comment'>-- used data structures</span>
<a name="line-63"></a>  <span class='hs-conid'>VisibilityState</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-64"></a>  <span class='hs-conid'>CrossingMode</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-65"></a>  <span class='hs-conid'>NotifyType</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-66"></a>  <span class='hs-conid'>WindowState</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-67"></a>  <span class='hs-conid'>ScrollDirection</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-68"></a>  <span class='hs-conid'>MouseButton</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-69"></a>  <span class='hs-conid'>Click</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-70"></a>  <span class='hs-conid'>Rectangle</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-71"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-72"></a>
<a name="line-73"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Unsafe</span> <span class='hs-layout'>(</span><span class='hs-varid'>unsafeInterleaveIO</span><span class='hs-layout'>)</span>
<a name="line-74"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>FFI</span>
<a name="line-75"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>Flags</span>
<a name="line-76"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>GObject</span> <span class='hs-layout'>(</span> <span class='hs-varid'>makeNewGObject</span> <span class='hs-layout'>)</span>
<a name="line-77"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Gdk</span><span class='hs-varop'>.</span><span class='hs-conid'>Keys</span>		<span class='hs-layout'>(</span><span class='hs-conid'>KeyVal</span><span class='hs-layout'>,</span> <span class='hs-varid'>keyvalToChar</span><span class='hs-layout'>,</span> <span class='hs-varid'>keyvalName</span><span class='hs-layout'>)</span>
<a name="line-78"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Gdk</span><span class='hs-varop'>.</span><span class='hs-conid'>Region</span>       <span class='hs-layout'>(</span><span class='hs-conid'>Region</span><span class='hs-layout'>,</span> <span class='hs-varid'>makeNewRegion</span><span class='hs-layout'>)</span>
<a name="line-79"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Gdk</span><span class='hs-varop'>.</span><span class='hs-conid'>Enums</span>	<span class='hs-layout'>(</span><span class='hs-conid'>Modifier</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-80"></a>                                         <span class='hs-conid'>VisibilityState</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-81"></a>					 <span class='hs-conid'>CrossingMode</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-82"></a>					 <span class='hs-conid'>NotifyType</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-83"></a>					 <span class='hs-conid'>WindowState</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-84"></a>					 <span class='hs-conid'>ScrollDirection</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-85"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>General</span><span class='hs-varop'>.</span><span class='hs-conid'>Enums</span>	<span class='hs-layout'>(</span><span class='hs-conid'>MouseButton</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Click</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-86"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>General</span><span class='hs-varop'>.</span><span class='hs-conid'>Structs</span>	<span class='hs-layout'>(</span><span class='hs-conid'>Rectangle</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-87"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>,</span> <span class='hs-varid'>mkDrawWindow</span> <span class='hs-layout'>)</span>
<a name="line-88"></a>
<a name="line-89"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Bits</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>.|.</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>.&amp;.</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>testBit</span><span class='hs-layout'>,</span> <span class='hs-varid'>shiftL</span><span class='hs-layout'>,</span> <span class='hs-varid'>shiftR</span><span class='hs-layout'>)</span>
<a name="line-90"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>catMaybes</span><span class='hs-layout'>)</span>
<a name="line-91"></a>
<a name="line-92"></a>
<a name="line-93"></a><a name="TimeStamp"></a><span class='hs-comment'>-- | The time (in milliseconds) when an event happened. This is used mostly</span>
<a name="line-94"></a><a name="TimeStamp"></a><span class='hs-comment'>-- for ordering events and responses to events.</span>
<a name="line-95"></a><a name="TimeStamp"></a><span class='hs-comment'>--</span>
<a name="line-96"></a><a name="TimeStamp"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>TimeStamp</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Word32</span>
<a name="line-97"></a><span class='hs-comment'>-- TODO: make this a newtype</span>
<a name="line-98"></a>
<a name="line-99"></a><a name="currentTime"></a><span class='hs-comment'>-- | Represents the current time, and can be used anywhere a time is expected.</span>
<a name="line-100"></a><span class='hs-definition'>currentTime</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span>
<a name="line-101"></a><span class='hs-definition'>currentTime</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
<a name="line-102"></a><span class='hs-comment'>{-# LINE 98 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-103"></a>
<a name="line-104"></a><span class='hs-comment'>-- Note on Event:</span>
<a name="line-105"></a><span class='hs-comment'>-- * 'Event' can communicate a small array of data to another widget. This</span>
<a name="line-106"></a><span class='hs-comment'>--   functionality is not bound as it can be done easier in Haskell.</span>
<a name="line-107"></a><span class='hs-comment'>--</span>
<a name="line-108"></a><span class='hs-comment'>-- * EventDND is not implemented as registering a DND source or sink</span>
<a name="line-109"></a><span class='hs-comment'>--   should be easier and sufficient for everything.</span>
<a name="line-110"></a><span class='hs-comment'>--</span>
<a name="line-111"></a><span class='hs-comment'>-- * EventProperty is not bound since it involves Atoms and its hard to see</span>
<a name="line-112"></a><span class='hs-comment'>--   how a Haskell application should extract the data. It should be possible</span>
<a name="line-113"></a><span class='hs-comment'>--   to connect directly to property-changed signals. If there is a need</span>
<a name="line-114"></a><span class='hs-comment'>--   to monitor a property for which there is no signal we could add</span>
<a name="line-115"></a><span class='hs-comment'>--   a trigger for just that property.</span>
<a name="line-116"></a><span class='hs-comment'>--</span>
<a name="line-117"></a><span class='hs-comment'>-- * EventSelection - I don\'t quite see how this works, so not bound.</span>
<a name="line-118"></a><span class='hs-comment'>--</span>
<a name="line-119"></a><span class='hs-comment'>-- * NoExpose - seems pointless: you copy from a drawable and this signal</span>
<a name="line-120"></a><span class='hs-comment'>--   tells you that it was up-to-date without redrawing. Maybe I'm missing</span>
<a name="line-121"></a><span class='hs-comment'>--   something.</span>
<a name="line-122"></a><span class='hs-comment'>--</span>
<a name="line-123"></a><span class='hs-comment'>-- * EventSetting informs about a change in setting that are shared among</span>
<a name="line-124"></a><span class='hs-comment'>--   several applications. They are probably not relevant to user defined</span>
<a name="line-125"></a><span class='hs-comment'>--   widgets. Anyway they don\'t make sense before GtkSettings isn\'t bound.</span>
<a name="line-126"></a><span class='hs-comment'>--</span>
<a name="line-127"></a><span class='hs-comment'>-- * Property is a TODO. These come from RC files which are useful for</span>
<a name="line-128"></a><span class='hs-comment'>--   custom widgets.</span>
<a name="line-129"></a>
<a name="line-130"></a><a name="EventButton"></a><span class='hs-comment'>-- | An event that contains information on a button press.</span>
<a name="line-131"></a><a name="EventButton"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventButton</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-132"></a>
<a name="line-133"></a><a name="EventScroll"></a><span class='hs-comment'>-- | An event that contains information on scrolling.</span>
<a name="line-134"></a><a name="EventScroll"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventScroll</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-135"></a>
<a name="line-136"></a><a name="EventMotion"></a><span class='hs-comment'>-- | An event that contains information on the movement of the mouse pointer.</span>
<a name="line-137"></a><a name="EventMotion"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventMotion</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-138"></a>
<a name="line-139"></a><a name="EventExpose"></a><span class='hs-comment'>-- | An area of the 'DrawWindow' needs redrawing.</span>
<a name="line-140"></a><a name="EventExpose"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventExpose</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-141"></a>
<a name="line-142"></a><a name="EventKey"></a><span class='hs-comment'>-- | An event that contains information about a key press.</span>
<a name="line-143"></a><a name="EventKey"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventKey</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-144"></a>
<a name="line-145"></a><a name="EventConfigure"></a><span class='hs-comment'>-- | An event that contains the new size of a window.</span>
<a name="line-146"></a><a name="EventConfigure"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventConfigure</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-147"></a>
<a name="line-148"></a><a name="EventCrossing"></a><span class='hs-comment'>-- | Generated when the pointer enters or leaves a window.</span>
<a name="line-149"></a><a name="EventCrossing"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventCrossing</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-150"></a>
<a name="line-151"></a><a name="EventFocus"></a><span class='hs-comment'>-- | An event that informs about a change of the input focus.</span>
<a name="line-152"></a><a name="EventFocus"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventFocus</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-153"></a>
<a name="line-154"></a><a name="EventProperty"></a><span class='hs-comment'>-- | An event that indicates a property of the window changed.</span>
<a name="line-155"></a><a name="EventProperty"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventProperty</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-156"></a>
<a name="line-157"></a><a name="EventProximity"></a><span class='hs-comment'>-- | An event that indicates that the pen of a graphics table is touching or</span>
<a name="line-158"></a><a name="EventProximity"></a><span class='hs-comment'>--   not touching the tablet.</span>
<a name="line-159"></a><a name="EventProximity"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventProximity</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-160"></a>
<a name="line-161"></a><a name="EventVisibility"></a><span class='hs-comment'>-- | Parts of the window have been exposed or obscured.</span>
<a name="line-162"></a><a name="EventVisibility"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventVisibility</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-163"></a>
<a name="line-164"></a><a name="EventWindowState"></a><span class='hs-comment'>-- | The window state has changed.</span>
<a name="line-165"></a><a name="EventWindowState"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventWindowState</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-166"></a>
<a name="line-167"></a><a name="EventGrabBroken"></a><span class='hs-comment'>-- | A grab has been broken by unusual means.</span>
<a name="line-168"></a><a name="EventGrabBroken"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>EventGrabBroken</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Event</span>
<a name="line-169"></a>
<a name="line-170"></a><a name="Event"></a><span class='hs-comment'>-- | Events that are delivered to a widget.</span>
<a name="line-171"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-172"></a><a name="Event"></a><span class='hs-comment'>-- * Any given signal only emits one of these variants as described</span>
<a name="line-173"></a><a name="Event"></a><span class='hs-comment'>--   in 'Graphics.UI.Gtk.Abstract.Widget.Widget'.</span>
<a name="line-174"></a><a name="Event"></a><span class='hs-comment'>--   Many events share common attributes:</span>
<a name="line-175"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-176"></a><a name="Event"></a><span class='hs-comment'>--   * The 'eventSent' attribute is @True@ if the event was not created by the</span>
<a name="line-177"></a><a name="Event"></a><span class='hs-comment'>--      user but by another application.</span>
<a name="line-178"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-179"></a><a name="Event"></a><span class='hs-comment'>--   * The 'eventTime' attribute contains a time in milliseconds when the event</span>
<a name="line-180"></a><a name="Event"></a><span class='hs-comment'>--      happened.</span>
<a name="line-181"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-182"></a><a name="Event"></a><span class='hs-comment'>--   * The 'eventX' and 'eventY' attributes contain the coordinates relative</span>
<a name="line-183"></a><a name="Event"></a><span class='hs-comment'>--      to the 'Graphics.UI.Gtk.Abstract.Gdk.DrawWindow' associated with this</span>
<a name="line-184"></a><a name="Event"></a><span class='hs-comment'>--      widget. The values can contain sub-pixel information if the input</span>
<a name="line-185"></a><a name="Event"></a><span class='hs-comment'>--      device is a graphics tablet or the like.</span>
<a name="line-186"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-187"></a><a name="Event"></a><span class='hs-comment'>--   * The 'eventModifier' attribute denotes what modifier key was pressed</span>
<a name="line-188"></a><a name="Event"></a><span class='hs-comment'>--      during the event.</span>
<a name="line-189"></a><a name="Event"></a><span class='hs-comment'>--</span>
<a name="line-190"></a><a name="Event"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Event</span> <span class='hs-keyglyph'>=</span>
<a name="line-191"></a>  <span class='hs-comment'>-- | An event that is not in one of the more specific categories below. This</span>
<a name="line-192"></a>  <span class='hs-comment'>-- includes delete, destroy, map and unmap events. These events</span>
<a name="line-193"></a>  <span class='hs-comment'>-- have no extra information associated with them.</span>
<a name="line-194"></a>  <span class='hs-conid'>Event</span> <span class='hs-layout'>{</span> <span class='hs-varid'>eventSent</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span> <span class='hs-layout'>}</span>
<a name="line-195"></a>  <span class='hs-comment'>-- | The expose event.</span>
<a name="line-196"></a>  <span class='hs-comment'>--</span>
<a name="line-197"></a>  <span class='hs-comment'>-- * A region of widget that receives this event needs to be redrawn.</span>
<a name="line-198"></a>  <span class='hs-comment'>--   This event is the result of revealing part or all of a window</span>
<a name="line-199"></a>  <span class='hs-comment'>--   or by the application calling functions like</span>
<a name="line-200"></a>  <span class='hs-comment'>--   'Graphics.UI.Gtk.Abstract.Widget.widgetQueueDrawArea'.</span>
<a name="line-201"></a>  <span class='hs-comment'>--</span>
<a name="line-202"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Expose</span> <span class='hs-layout'>{</span>
<a name="line-203"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-204"></a>    <span class='hs-comment'>-- | A bounding box denoting what needs to be updated. For a more</span>
<a name="line-205"></a>    <span class='hs-comment'>-- detailed information on the area that needs redrawing, use the</span>
<a name="line-206"></a>    <span class='hs-comment'>-- next field.</span>
<a name="line-207"></a>    <span class='hs-varid'>eventArea</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Rectangle</span><span class='hs-layout'>,</span>
<a name="line-208"></a>    <span class='hs-comment'>-- | A set of horizontal stripes that denote the invalid area.</span>
<a name="line-209"></a>    <span class='hs-varid'>eventRegion</span>      <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Region</span><span class='hs-layout'>,</span>
<a name="line-210"></a>
<a name="line-211"></a>    <span class='hs-comment'>-- | The number of contiguous 'Expose' events following this</span>
<a name="line-212"></a>    <span class='hs-comment'>--   one. The only use for this is \"exposure compression\", i.e. </span>
<a name="line-213"></a>    <span class='hs-comment'>--   handling all contiguous 'Expose' events in one go, though Gdk</span>
<a name="line-214"></a>    <span class='hs-comment'>--   performs some exposure compression so this is not normally needed.</span>
<a name="line-215"></a>    <span class='hs-varid'>eventCount</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-layout'>}</span>
<a name="line-216"></a>  <span class='hs-comment'>-- | Mouse motion.</span>
<a name="line-217"></a>  <span class='hs-comment'>--</span>
<a name="line-218"></a>  <span class='hs-comment'>-- * Captures the movement of the mouse cursor while it is within the area</span>
<a name="line-219"></a>  <span class='hs-comment'>--   of the widget.</span>
<a name="line-220"></a>  <span class='hs-comment'>--</span>
<a name="line-221"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Motion</span> <span class='hs-layout'>{</span>
<a name="line-222"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-223"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-224"></a>    <span class='hs-varid'>eventX</span><span class='hs-layout'>,</span><span class='hs-varid'>eventY</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>,</span>
<a name="line-225"></a>    <span class='hs-varid'>eventModifier</span> 	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Modifier</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span>
<a name="line-226"></a>    <span class='hs-comment'>-- | Indicate if this event is only a hint of the motion.</span>
<a name="line-227"></a>    <span class='hs-comment'>--</span>
<a name="line-228"></a>    <span class='hs-comment'>-- * If the 'Graphics.UI.Gtk.Abstract.Widget.PointerMotionHintMask'</span>
<a name="line-229"></a>    <span class='hs-comment'>--  is set with 'Data.Array.MArray.widgetAddEvents' then</span>
<a name="line-230"></a>    <span class='hs-comment'>--   mouse positions are only generated each time</span>
<a name="line-231"></a>    <span class='hs-comment'>--  'Graphics.UI.Gtk.Gdk.DrawWindow.drawWindowGetPointer'</span>
<a name="line-232"></a>    <span class='hs-comment'>--   is called. In this case 'eventIsHint' is set to @True@.</span>
<a name="line-233"></a>    <span class='hs-comment'>--</span>
<a name="line-234"></a>    <span class='hs-varid'>eventIsHint</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-235"></a>    <span class='hs-varid'>eventXRoot</span><span class='hs-layout'>,</span>
<a name="line-236"></a>    <span class='hs-varid'>eventYRoot</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span> <span class='hs-layout'>}</span> 
<a name="line-237"></a>  <span class='hs-comment'>-- | A mouse button was pressed or released.</span>
<a name="line-238"></a>  <span class='hs-comment'>--</span>
<a name="line-239"></a>  <span class='hs-comment'>-- * This event is triggered if the mouse button was pressed or released</span>
<a name="line-240"></a>  <span class='hs-comment'>--   while the mouse cursor was within the region of the widget.</span>
<a name="line-241"></a>  <span class='hs-comment'>--</span>
<a name="line-242"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Button</span> <span class='hs-layout'>{</span>
<a name="line-243"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-244"></a>    <span class='hs-comment'>-- | The kind of button press, see 'Click'. Note that double clicks will</span>
<a name="line-245"></a>    <span class='hs-comment'>--   trigger this event with 'eventClick' set to 'SingleClick',</span>
<a name="line-246"></a>    <span class='hs-comment'>--   'ReleaseClick',</span>
<a name="line-247"></a>    <span class='hs-comment'>--   'SingleClick', 'DoubleClick', 'ReleaseClick'. Triple clicks will</span>
<a name="line-248"></a>    <span class='hs-comment'>--   produce this sequence followed by 'SingleClick', 'DoubleClick',</span>
<a name="line-249"></a>    <span class='hs-comment'>--   'TripleClick', 'ReleaseClick'.</span>
<a name="line-250"></a>    <span class='hs-varid'>eventClick</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Click</span><span class='hs-layout'>,</span>
<a name="line-251"></a>    <span class='hs-comment'>-- | The time of the event in milliseconds.</span>
<a name="line-252"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-253"></a>    <span class='hs-varid'>eventX</span><span class='hs-layout'>,</span><span class='hs-varid'>eventY</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>,</span>
<a name="line-254"></a>    <span class='hs-varid'>eventModifier</span>	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Modifier</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span>
<a name="line-255"></a>    <span class='hs-comment'>-- | The button that was pressed.</span>
<a name="line-256"></a>    <span class='hs-varid'>eventButton</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>MouseButton</span><span class='hs-layout'>,</span>
<a name="line-257"></a>    <span class='hs-comment'>-- | The coordinates of the click relative to the screen origin.</span>
<a name="line-258"></a>    <span class='hs-varid'>eventXRoot</span><span class='hs-layout'>,</span>
<a name="line-259"></a>    <span class='hs-varid'>eventYRoot</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span> <span class='hs-layout'>}</span>
<a name="line-260"></a>  <span class='hs-comment'>-- | A key was pressed while the widget had the input focus.</span>
<a name="line-261"></a>  <span class='hs-comment'>--</span>
<a name="line-262"></a>  <span class='hs-comment'>-- * If the widget has the current input focus (see</span>
<a name="line-263"></a>  <span class='hs-comment'>--   'Graphics.UI.Gtk.Abstract.Widget.widgetSetCanFocus')</span>
<a name="line-264"></a>  <span class='hs-comment'>--   it will receive key pressed events. Certain key combinations are of</span>
<a name="line-265"></a>  <span class='hs-comment'>--   no interest to a normal widget like Alt-F to access the file menu.</span>
<a name="line-266"></a>  <span class='hs-comment'>--   For all these keys, the handler must return @False@ to indicate that</span>
<a name="line-267"></a>  <span class='hs-comment'>--   the key stroke should be propagated to the parent widget. At the</span>
<a name="line-268"></a>  <span class='hs-comment'>--   top-level widget, keyboard shortcuts like Alt-F are turned into the</span>
<a name="line-269"></a>  <span class='hs-comment'>--   corresponding signals.</span>
<a name="line-270"></a>  <span class='hs-comment'>--</span>
<a name="line-271"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Key</span> <span class='hs-layout'>{</span>
<a name="line-272"></a>    <span class='hs-comment'>-- | This flag is set if the key was released. This flag makes it possible</span>
<a name="line-273"></a>    <span class='hs-comment'>--   to connect the same handler to</span>
<a name="line-274"></a>    <span class='hs-comment'>--  'Graphics.UI.Gtk.Abstract.Widget.onKeyPress' and</span>
<a name="line-275"></a>    <span class='hs-comment'>--  'Graphics.UI.Gtk.Abstract.Widget.onKeyRelease'.</span>
<a name="line-276"></a>    <span class='hs-varid'>eventRelease</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-277"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-278"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-279"></a>    <span class='hs-varid'>eventModifier</span>	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Modifier</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span>
<a name="line-280"></a>    <span class='hs-comment'>-- | This flag is @True@ if Caps Lock is on while this key was pressed.</span>
<a name="line-281"></a>    <span class='hs-varid'>eventWithCapsLock</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-282"></a>    <span class='hs-comment'>-- | This flag is @True@ if Number Lock is on while this key was pressed.</span>
<a name="line-283"></a>    <span class='hs-varid'>eventWithNumLock</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-284"></a>    <span class='hs-comment'>-- | This flag is @True@ if Scroll Lock is on while this key was pressed.</span>
<a name="line-285"></a>    <span class='hs-varid'>eventWithScrollLock</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-286"></a>    <span class='hs-comment'>-- | A number representing the key that was pressed or released. A more convenient</span>
<a name="line-287"></a>    <span class='hs-comment'>--   interface is provided by the next two fields.</span>
<a name="line-288"></a>    <span class='hs-varid'>eventKeyVal</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>KeyVal</span><span class='hs-layout'>,</span>
<a name="line-289"></a>    <span class='hs-comment'>-- | A string representing the key that was pressed or released.</span>
<a name="line-290"></a>    <span class='hs-comment'>--</span>
<a name="line-291"></a>    <span class='hs-comment'>-- * This string contains a description of the key rather than what</span>
<a name="line-292"></a>    <span class='hs-comment'>--   should appear on screen. For example, pressing "1" on the keypad</span>
<a name="line-293"></a>    <span class='hs-comment'>--   results in "KP_1". Of particular interest are "F1" till "F12",</span>
<a name="line-294"></a>    <span class='hs-comment'>--   for a complete list refer to \"&lt;gdk/gdkkeysyms.h&gt;\" where all</span>
<a name="line-295"></a>    <span class='hs-comment'>--   possible values are defined. The corresponding strings are the</span>
<a name="line-296"></a>    <span class='hs-comment'>--   constants without the GDK_ prefix.</span>
<a name="line-297"></a>    <span class='hs-varid'>eventKeyName</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span><span class='hs-layout'>,</span>
<a name="line-298"></a>    <span class='hs-comment'>-- | A character matching the key that was pressed.</span>
<a name="line-299"></a>    <span class='hs-comment'>--</span>
<a name="line-300"></a>    <span class='hs-comment'>-- * This entry can be used to build up a whole input string.</span>
<a name="line-301"></a>    <span class='hs-comment'>--   The character is @Nothing@ if the key does not correspond to a simple</span>
<a name="line-302"></a>    <span class='hs-comment'>--   unicode character.</span>
<a name="line-303"></a>    <span class='hs-comment'>--</span>
<a name="line-304"></a>    <span class='hs-varid'>eventKeyChar</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Char</span> <span class='hs-layout'>}</span>
<a name="line-305"></a>  <span class='hs-comment'>-- | Mouse cursor crossing event.</span>
<a name="line-306"></a>  <span class='hs-comment'>--</span>
<a name="line-307"></a>  <span class='hs-comment'>-- * This event indicates that the mouse cursor is hovering over this</span>
<a name="line-308"></a>  <span class='hs-comment'>--   widget. It is used to set a widget into the pre-focus state where</span>
<a name="line-309"></a>  <span class='hs-comment'>--   some GUI elements like buttons on a toolbar change their appearance.</span>
<a name="line-310"></a>  <span class='hs-comment'>--</span>
<a name="line-311"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Crossing</span> <span class='hs-layout'>{</span>
<a name="line-312"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-313"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-314"></a>    <span class='hs-varid'>eventX</span><span class='hs-layout'>,</span><span class='hs-varid'>eventY</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>,</span>
<a name="line-315"></a>    <span class='hs-varid'>eventXRoot</span><span class='hs-layout'>,</span>
<a name="line-316"></a>    <span class='hs-varid'>eventYRoot</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>,</span>
<a name="line-317"></a>    <span class='hs-comment'>-- | This flag is false if the widget was entered, it is true when the</span>
<a name="line-318"></a>    <span class='hs-comment'>--   widget the mouse cursor left the widget.</span>
<a name="line-319"></a>    <span class='hs-varid'>eventLeaves</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-320"></a>    <span class='hs-comment'>-- | Kind of enter\/leave event.</span>
<a name="line-321"></a>    <span class='hs-comment'>--</span>
<a name="line-322"></a>    <span class='hs-comment'>-- * The mouse cursor might enter this widget because it grabs the mouse</span>
<a name="line-323"></a>    <span class='hs-comment'>--   cursor for e.g. a modal dialog box.</span>
<a name="line-324"></a>    <span class='hs-comment'>--</span>
<a name="line-325"></a>    <span class='hs-varid'>eventCrossingMode</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>CrossingMode</span><span class='hs-layout'>,</span>
<a name="line-326"></a>    <span class='hs-comment'>-- | Information on from what level of the widget hierarchy the mouse</span>
<a name="line-327"></a>    <span class='hs-comment'>--   cursor came.</span>
<a name="line-328"></a>    <span class='hs-comment'>--</span>
<a name="line-329"></a>    <span class='hs-comment'>-- * See 'NotifyType'.</span>
<a name="line-330"></a>    <span class='hs-comment'>--</span>
<a name="line-331"></a>    <span class='hs-varid'>eventNotifyType</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>NotifyType</span><span class='hs-layout'>,</span>
<a name="line-332"></a>    <span class='hs-varid'>eventModifier</span>	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Modifier</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>}</span>
<a name="line-333"></a>  <span class='hs-comment'>-- | Gaining or loosing input focus.</span>
<a name="line-334"></a>  <span class='hs-comment'>--</span>
<a name="line-335"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Focus</span> <span class='hs-layout'>{</span>
<a name="line-336"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-337"></a>    <span class='hs-comment'>-- | This flag is @True@ if the widget receives the focus and @False@ if</span>
<a name="line-338"></a>    <span class='hs-comment'>-- it just lost the input focus.</span>
<a name="line-339"></a>    <span class='hs-varid'>eventInFocus</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>}</span>
<a name="line-340"></a>  <span class='hs-comment'>-- | The widget\'s size has changed.</span>
<a name="line-341"></a>  <span class='hs-comment'>--</span>
<a name="line-342"></a>  <span class='hs-comment'>-- * In response to this event the application can allocate resources that</span>
<a name="line-343"></a>  <span class='hs-comment'>--   are specific to the size of the widget. It is emitted when the widget</span>
<a name="line-344"></a>  <span class='hs-comment'>--   is shown the first time and on every resize.</span>
<a name="line-345"></a>  <span class='hs-comment'>--</span>
<a name="line-346"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Configure</span> <span class='hs-layout'>{</span>
<a name="line-347"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-348"></a>    <span class='hs-comment'>-- | Position within the parent window.</span>
<a name="line-349"></a>    <span class='hs-varid'>eventXParent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span>
<a name="line-350"></a>    <span class='hs-comment'>-- | Position within the parent window.</span>
<a name="line-351"></a>    <span class='hs-varid'>eventYParent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span>
<a name="line-352"></a>    <span class='hs-varid'>eventWidth</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span>
<a name="line-353"></a>    <span class='hs-varid'>eventHeight</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>}</span>
<a name="line-354"></a>  <span class='hs-comment'>-- | Change of visibility of a widget.</span>
<a name="line-355"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Visibility</span> <span class='hs-layout'>{</span>
<a name="line-356"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-357"></a>    <span class='hs-comment'>-- | Denote what portions of the widget is visible.</span>
<a name="line-358"></a>    <span class='hs-varid'>eventVisible</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>VisibilityState</span> <span class='hs-layout'>}</span>
<a name="line-359"></a>  <span class='hs-comment'>-- | Wheel movement of the mouse.</span>
<a name="line-360"></a>  <span class='hs-comment'>--</span>
<a name="line-361"></a>  <span class='hs-comment'>-- * This action denotes that the content of the widget should be scrolled.</span>
<a name="line-362"></a>  <span class='hs-comment'>--   The event is triggered by the movement of the mouse wheel. Surrounding</span>
<a name="line-363"></a>  <span class='hs-comment'>--   scroll bars are independant of this signal. Most mice do not have</span>
<a name="line-364"></a>  <span class='hs-comment'>--   buttons for horizontal scrolling, hence 'eventDirection' will usually not</span>
<a name="line-365"></a>  <span class='hs-comment'>--   contain 'ScrollLeft' and 'ScrollRight'. Mice with additional</span>
<a name="line-366"></a>  <span class='hs-comment'>--   buttons may not work on X since only five buttons are supported</span>
<a name="line-367"></a>  <span class='hs-comment'>--   (the three main buttons and two for the wheel).</span>
<a name="line-368"></a>  <span class='hs-comment'>--</span>
<a name="line-369"></a>  <span class='hs-comment'>-- * The handler of this signal should update the scroll bars that</span>
<a name="line-370"></a>  <span class='hs-comment'>--   surround this widget which in turn tell this widget to update.</span>
<a name="line-371"></a>  <span class='hs-comment'>--</span>
<a name="line-372"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Scroll</span> <span class='hs-layout'>{</span>
<a name="line-373"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-374"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-375"></a>    <span class='hs-varid'>eventX</span><span class='hs-layout'>,</span><span class='hs-varid'>eventY</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>,</span>
<a name="line-376"></a>    <span class='hs-varid'>eventDirection</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>ScrollDirection</span><span class='hs-layout'>,</span>
<a name="line-377"></a>    <span class='hs-varid'>eventXRoot</span><span class='hs-layout'>,</span>
<a name="line-378"></a>    <span class='hs-varid'>eventYRoot</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Double</span><span class='hs-layout'>}</span>
<a name="line-379"></a>  <span class='hs-comment'>-- | Indicate how the appearance of this window has changed.</span>
<a name="line-380"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>WindowState</span> <span class='hs-layout'>{</span>
<a name="line-381"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-382"></a>    <span class='hs-comment'>-- | The mask indicates which flags have changed.</span>
<a name="line-383"></a>    <span class='hs-varid'>eventWindowMask</span>	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>WindowState</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span>
<a name="line-384"></a>    <span class='hs-comment'>-- | The state indicates the current state of the window.</span>
<a name="line-385"></a>    <span class='hs-varid'>eventWindowState</span>	<span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>WindowState</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>}</span> 
<a name="line-386"></a>  <span class='hs-comment'>-- | The state of the pen of a graphics tablet pen or touchscreen device.</span>
<a name="line-387"></a>  <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Proximity</span> <span class='hs-layout'>{</span>
<a name="line-388"></a>    <span class='hs-varid'>eventSent</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>,</span>
<a name="line-389"></a>    <span class='hs-varid'>eventTime</span>	<span class='hs-keyglyph'>::</span> <span class='hs-conid'>TimeStamp</span><span class='hs-layout'>,</span>
<a name="line-390"></a>    <span class='hs-comment'>-- | Whether the stylus has moved in or out of contact with the tablet.</span>
<a name="line-391"></a>    <span class='hs-varid'>eventInContact</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Bool</span>
<a name="line-392"></a>  <span class='hs-layout'>}</span> <span class='hs-keyword'>deriving</span> <span class='hs-conid'>Show</span>
<a name="line-393"></a>
<a name="line-394"></a><a name="marshalEvent"></a><span class='hs-definition'>marshalEvent</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>Event</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Event</span>
<a name="line-395"></a><span class='hs-definition'>marshalEvent</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-396"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>eType</span><span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-397"></a><span class='hs-comment'>{-# LINE 392 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-398"></a>  <span class='hs-layout'>(</span><span class='hs-keyword'>case</span> <span class='hs-varid'>eType</span> <span class='hs-keyword'>of</span>
<a name="line-399"></a>    <span class='hs-num'>0</span>         <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshAny</span>
<a name="line-400"></a><span class='hs-comment'>{-# LINE 394 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-401"></a>    <span class='hs-num'>1</span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshAny</span>
<a name="line-402"></a><span class='hs-comment'>{-# LINE 395 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-403"></a>    <span class='hs-num'>2</span>		<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshExpose</span>
<a name="line-404"></a><span class='hs-comment'>{-# LINE 396 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-405"></a>    <span class='hs-num'>3</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshMotion</span>
<a name="line-406"></a><span class='hs-comment'>{-# LINE 397 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-407"></a>    <span class='hs-num'>4</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshButton</span> <span class='hs-conid'>SingleClick</span>
<a name="line-408"></a><span class='hs-comment'>{-# LINE 398 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-409"></a>    <span class='hs-num'>5</span>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshButton</span> <span class='hs-conid'>DoubleClick</span>
<a name="line-410"></a><span class='hs-comment'>{-# LINE 399 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-411"></a>    <span class='hs-num'>6</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshButton</span> <span class='hs-conid'>TripleClick</span>
<a name="line-412"></a><span class='hs-comment'>{-# LINE 400 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-413"></a>    <span class='hs-num'>7</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshButton</span> <span class='hs-conid'>ReleaseClick</span>
<a name="line-414"></a><span class='hs-comment'>{-# LINE 401 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-415"></a>    <span class='hs-num'>8</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshKey</span> <span class='hs-conid'>False</span>
<a name="line-416"></a><span class='hs-comment'>{-# LINE 402 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-417"></a>    <span class='hs-num'>9</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshKey</span> <span class='hs-conid'>True</span>
<a name="line-418"></a><span class='hs-comment'>{-# LINE 403 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-419"></a>    <span class='hs-num'>10</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshCrossing</span> <span class='hs-conid'>False</span>
<a name="line-420"></a><span class='hs-comment'>{-# LINE 404 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-421"></a>    <span class='hs-num'>11</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshCrossing</span> <span class='hs-conid'>True</span>
<a name="line-422"></a><span class='hs-comment'>{-# LINE 405 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-423"></a>    <span class='hs-num'>12</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshFocus</span>
<a name="line-424"></a><span class='hs-comment'>{-# LINE 406 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-425"></a>    <span class='hs-num'>13</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshConfigure</span>
<a name="line-426"></a><span class='hs-comment'>{-# LINE 407 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-427"></a>    <span class='hs-num'>14</span>            <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshAny</span>
<a name="line-428"></a><span class='hs-comment'>{-# LINE 408 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-429"></a>    <span class='hs-num'>15</span>          <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshAny</span>    
<a name="line-430"></a><span class='hs-comment'>{-# LINE 409 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-431"></a><span class='hs-comment'>--    #{const GDK_PROPERTY_NOTIFY}-&gt; marshProperty</span>
<a name="line-432"></a>    <span class='hs-num'>20</span>   <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshProximity</span> <span class='hs-conid'>True</span>
<a name="line-433"></a><span class='hs-comment'>{-# LINE 411 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-434"></a>    <span class='hs-num'>21</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshProximity</span> <span class='hs-conid'>False</span>
<a name="line-435"></a><span class='hs-comment'>{-# LINE 412 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-436"></a>    <span class='hs-num'>29</span><span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshVisibility</span>
<a name="line-437"></a><span class='hs-comment'>{-# LINE 413 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-438"></a>    <span class='hs-num'>31</span>		<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshScroll</span>
<a name="line-439"></a><span class='hs-comment'>{-# LINE 414 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-440"></a>    <span class='hs-num'>32</span>	<span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>marshWindowState</span>
<a name="line-441"></a><span class='hs-comment'>{-# LINE 415 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-442"></a>    <span class='hs-varid'>code</span>			<span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>fail</span> <span class='hs-varop'>$</span>
<a name="line-443"></a>      <span class='hs-str'>"marshalEvent: unhandled event type "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>code</span> <span class='hs-varop'>++</span>
<a name="line-444"></a>      <span class='hs-str'>"\nplease report this as a bug to gtk2hs-devel@lists.sourceforge.net"</span>
<a name="line-445"></a>    <span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-446"></a>
<a name="line-447"></a><a name="marshAny"></a><span class='hs-definition'>marshAny</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-448"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-449"></a><span class='hs-comment'>{-# LINE 422 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-450"></a>  <span class='hs-varid'>return</span> <span class='hs-conid'>Event</span> <span class='hs-layout'>{</span>
<a name="line-451"></a>    <span class='hs-varid'>eventSent</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent</span>
<a name="line-452"></a>  <span class='hs-layout'>}</span>
<a name="line-453"></a>
<a name="line-454"></a><a name="marshExpose"></a><span class='hs-definition'>marshExpose</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-455"></a>  <span class='hs-layout'>(</span><span class='hs-num'>2</span><span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-456"></a><span class='hs-comment'>{-# LINE 428 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-457"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-458"></a><span class='hs-comment'>{-# LINE 429 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-459"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>area_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Rectangle</span><span class='hs-layout'>)</span>		<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-460"></a><span class='hs-comment'>{-# LINE 430 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-461"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>reg_</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>28</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-462"></a><span class='hs-comment'>{-# LINE 431 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-463"></a>  <span class='hs-varid'>reg_</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>gdk_region_copy</span> <span class='hs-varid'>reg_</span>
<a name="line-464"></a>  <span class='hs-varid'>region_</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>makeNewRegion</span> <span class='hs-varid'>reg_</span>
<a name="line-465"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>count_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>32</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-466"></a><span class='hs-comment'>{-# LINE 434 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-467"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Expose</span> <span class='hs-layout'>{</span>
<a name="line-468"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-469"></a>    <span class='hs-varid'>eventArea</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>area_</span><span class='hs-layout'>,</span>
<a name="line-470"></a>    <span class='hs-varid'>eventRegion</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>region_</span><span class='hs-layout'>,</span>
<a name="line-471"></a>    <span class='hs-varid'>eventCount</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>count_</span><span class='hs-layout'>}</span>
<a name="line-472"></a>
<a name="line-473"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"gdk_region_copy"</span>
<a name="line-474"></a>  <span class='hs-varid'>gdk_region_copy</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span>
<a name="line-475"></a>
<a name="line-476"></a><a name="marshExposeRect"></a><span class='hs-definition'>marshExposeRect</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>Event</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Rectangle</span>
<a name="line-477"></a><span class='hs-definition'>marshExposeRect</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-478"></a>  <span class='hs-layout'>(</span><span class='hs-num'>2</span><span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-479"></a><span class='hs-comment'>{-# LINE 446 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-480"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>area_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Rectangle</span><span class='hs-layout'>)</span>		<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-481"></a><span class='hs-comment'>{-# LINE 447 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-482"></a>  <span class='hs-varid'>return</span> <span class='hs-varid'>area_</span>
<a name="line-483"></a>
<a name="line-484"></a><a name="marshMotion"></a><span class='hs-definition'>marshMotion</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-485"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-486"></a><span class='hs-comment'>{-# LINE 451 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-487"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-488"></a><span class='hs-comment'>{-# LINE 452 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-489"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>x_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-490"></a><span class='hs-comment'>{-# LINE 453 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-491"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>y_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-492"></a><span class='hs-comment'>{-# LINE 454 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-493"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>36</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-494"></a><span class='hs-comment'>{-# LINE 455 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-495"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>isHint_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int16</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>40</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-496"></a><span class='hs-comment'>{-# LINE 456 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-497"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>xRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>48</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-498"></a><span class='hs-comment'>{-# LINE 457 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-499"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>yRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>56</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-500"></a><span class='hs-comment'>{-# LINE 458 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-501"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Motion</span> <span class='hs-layout'>{</span>
<a name="line-502"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-503"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-504"></a>    <span class='hs-varid'>eventX</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>x_</span><span class='hs-layout'>,</span>
<a name="line-505"></a>    <span class='hs-varid'>eventY</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>y_</span><span class='hs-layout'>,</span>
<a name="line-506"></a>    <span class='hs-varid'>eventModifier</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span> <span class='hs-varop'>.</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>modif_</span><span class='hs-layout'>,</span>
<a name="line-507"></a>    <span class='hs-varid'>eventIsHint</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>isHint_</span><span class='hs-layout'>,</span>
<a name="line-508"></a>    <span class='hs-varid'>eventXRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>xRoot_</span><span class='hs-layout'>,</span>
<a name="line-509"></a>    <span class='hs-varid'>eventYRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>yRoot_</span><span class='hs-layout'>}</span>
<a name="line-510"></a>
<a name="line-511"></a><a name="marshButton"></a><span class='hs-definition'>marshButton</span> <span class='hs-varid'>but</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-512"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-513"></a><span class='hs-comment'>{-# LINE 470 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-514"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-515"></a><span class='hs-comment'>{-# LINE 471 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-516"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>x_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-517"></a><span class='hs-comment'>{-# LINE 472 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-518"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>y_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-519"></a><span class='hs-comment'>{-# LINE 473 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-520"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>36</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-521"></a><span class='hs-comment'>{-# LINE 474 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-522"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>button_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>40</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-523"></a><span class='hs-comment'>{-# LINE 475 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-524"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>xRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>48</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-525"></a><span class='hs-comment'>{-# LINE 476 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-526"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>yRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>56</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-527"></a><span class='hs-comment'>{-# LINE 477 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-528"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Button</span> <span class='hs-layout'>{</span>
<a name="line-529"></a>    <span class='hs-varid'>eventClick</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>but</span><span class='hs-layout'>,</span>
<a name="line-530"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-531"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-532"></a>    <span class='hs-varid'>eventX</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>x_</span><span class='hs-layout'>,</span>
<a name="line-533"></a>    <span class='hs-varid'>eventY</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>y_</span><span class='hs-layout'>,</span>
<a name="line-534"></a>    <span class='hs-varid'>eventModifier</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span> <span class='hs-varop'>.</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>modif_</span><span class='hs-layout'>,</span>
<a name="line-535"></a>    <span class='hs-varid'>eventButton</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toEnum</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>button_</span><span class='hs-layout'>,</span>
<a name="line-536"></a>    <span class='hs-varid'>eventXRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>xRoot_</span><span class='hs-layout'>,</span>
<a name="line-537"></a>    <span class='hs-varid'>eventYRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>yRoot_</span><span class='hs-layout'>}</span>
<a name="line-538"></a>
<a name="line-539"></a>
<a name="line-540"></a><a name="marshKey"></a><span class='hs-definition'>marshKey</span> <span class='hs-varid'>up</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-541"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-542"></a><span class='hs-comment'>{-# LINE 491 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-543"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-544"></a><span class='hs-comment'>{-# LINE 492 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-545"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-546"></a><span class='hs-comment'>{-# LINE 493 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-547"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>keyval_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>20</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-548"></a><span class='hs-comment'>{-# LINE 494 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-549"></a>  
<a name="line-550"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>length_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-551"></a><span class='hs-comment'>{-# LINE 496 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-552"></a>  <span class='hs-varid'>keyChar</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>keyvalToChar</span> <span class='hs-varid'>keyval_</span>
<a name="line-553"></a>  <span class='hs-varid'>keyName</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>unsafeInterleaveIO</span> <span class='hs-varop'>$</span> <span class='hs-varid'>keyvalName</span> <span class='hs-varid'>keyval_</span>
<a name="line-554"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Key</span> <span class='hs-layout'>{</span>
<a name="line-555"></a>    <span class='hs-varid'>eventRelease</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>up</span><span class='hs-layout'>,</span>
<a name="line-556"></a>    <span class='hs-varid'>eventSent</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-557"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-558"></a>    <span class='hs-varid'>eventModifier</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span> <span class='hs-varop'>.</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>modif_</span><span class='hs-layout'>,</span>
<a name="line-559"></a>    <span class='hs-varid'>eventWithCapsLock</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span> <span class='hs-varop'>.&amp;.</span> <span class='hs-num'>2</span><span class='hs-layout'>)</span><span class='hs-varop'>/=</span><span class='hs-num'>0</span><span class='hs-layout'>,</span>
<a name="line-560"></a><span class='hs-comment'>{-# LINE 504 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-561"></a>    <span class='hs-varid'>eventWithNumLock</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span> <span class='hs-varop'>.&amp;.</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span><span class='hs-varop'>/=</span><span class='hs-num'>0</span><span class='hs-layout'>,</span>
<a name="line-562"></a><span class='hs-comment'>{-# LINE 505 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-563"></a>    <span class='hs-varid'>eventWithScrollLock</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span> <span class='hs-varop'>.&amp;.</span> <span class='hs-num'>32</span><span class='hs-layout'>)</span><span class='hs-varop'>/=</span><span class='hs-num'>0</span><span class='hs-layout'>,</span>
<a name="line-564"></a><span class='hs-comment'>{-# LINE 506 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-565"></a>    <span class='hs-varid'>eventKeyVal</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>keyval_</span><span class='hs-layout'>,</span>
<a name="line-566"></a>    <span class='hs-varid'>eventKeyName</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>keyName</span><span class='hs-layout'>,</span>
<a name="line-567"></a>    <span class='hs-varid'>eventKeyChar</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>keyChar</span> <span class='hs-layout'>}</span>
<a name="line-568"></a>
<a name="line-569"></a><a name="marshCrossing"></a><span class='hs-definition'>marshCrossing</span> <span class='hs-varid'>leave</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-570"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-571"></a><span class='hs-comment'>{-# LINE 512 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-572"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-573"></a><span class='hs-comment'>{-# LINE 513 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-574"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>x_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>20</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-575"></a><span class='hs-comment'>{-# LINE 514 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-576"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>y_</span>	   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>28</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-577"></a><span class='hs-comment'>{-# LINE 515 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-578"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>64</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-579"></a><span class='hs-comment'>{-# LINE 516 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-580"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>xRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>36</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-581"></a><span class='hs-comment'>{-# LINE 517 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-582"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>yRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>44</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-583"></a><span class='hs-comment'>{-# LINE 518 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-584"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>cMode_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span> 
<a name="line-585"></a><span class='hs-comment'>{-# LINE 519 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-586"></a>				<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>52</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-587"></a><span class='hs-comment'>{-# LINE 520 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-588"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>nType_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>
<a name="line-589"></a><span class='hs-comment'>{-# LINE 521 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-590"></a>				<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>56</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>  
<a name="line-591"></a><span class='hs-comment'>{-# LINE 522 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-592"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>modif_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>64</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-593"></a><span class='hs-comment'>{-# LINE 523 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-594"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Crossing</span> <span class='hs-layout'>{</span>
<a name="line-595"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-596"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-597"></a>    <span class='hs-varid'>eventX</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>x_</span><span class='hs-layout'>,</span>
<a name="line-598"></a>    <span class='hs-varid'>eventY</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>y_</span><span class='hs-layout'>,</span>
<a name="line-599"></a>    <span class='hs-varid'>eventXRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>xRoot_</span><span class='hs-layout'>,</span>
<a name="line-600"></a>    <span class='hs-varid'>eventYRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>yRoot_</span><span class='hs-layout'>,</span>
<a name="line-601"></a>    <span class='hs-varid'>eventLeaves</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>leave</span><span class='hs-layout'>,</span>
<a name="line-602"></a>    <span class='hs-varid'>eventCrossingMode</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toEnum</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>cMode_</span><span class='hs-layout'>,</span>
<a name="line-603"></a>    <span class='hs-varid'>eventNotifyType</span>    <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toEnum</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>nType_</span><span class='hs-layout'>,</span>
<a name="line-604"></a>    <span class='hs-varid'>eventModifier</span>      <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span> <span class='hs-varop'>.</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>modif_</span><span class='hs-layout'>}</span>
<a name="line-605"></a>
<a name="line-606"></a>
<a name="line-607"></a><a name="marshFocus"></a><span class='hs-definition'>marshFocus</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-608"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-609"></a><span class='hs-comment'>{-# LINE 538 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-610"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>inFocus_</span><span class='hs-keyglyph'>::</span><span class='hs-conid'>Int16</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>10</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-611"></a><span class='hs-comment'>{-# LINE 539 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-612"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Focus</span> <span class='hs-layout'>{</span>
<a name="line-613"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-614"></a>    <span class='hs-varid'>eventInFocus</span><span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>inFocus_</span><span class='hs-layout'>}</span>
<a name="line-615"></a>
<a name="line-616"></a><a name="marshConfigure"></a><span class='hs-definition'>marshConfigure</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-617"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-618"></a><span class='hs-comment'>{-# LINE 545 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-619"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>xPar_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-620"></a><span class='hs-comment'>{-# LINE 546 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-621"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>yPar_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-622"></a><span class='hs-comment'>{-# LINE 547 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-623"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>width_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>20</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-624"></a><span class='hs-comment'>{-# LINE 548 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-625"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>height_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-626"></a><span class='hs-comment'>{-# LINE 549 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-627"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Configure</span> <span class='hs-layout'>{</span>
<a name="line-628"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-629"></a>    <span class='hs-varid'>eventXParent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>xPar_</span><span class='hs-layout'>,</span>
<a name="line-630"></a>    <span class='hs-varid'>eventYParent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>yPar_</span><span class='hs-layout'>,</span>
<a name="line-631"></a>    <span class='hs-varid'>eventWidth</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>width_</span><span class='hs-layout'>,</span>
<a name="line-632"></a>    <span class='hs-varid'>eventHeight</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>height_</span><span class='hs-layout'>}</span>
<a name="line-633"></a>
<a name="line-634"></a><span class='hs-comment'>{-
<a name="line-635"></a>marshProperty ptr = do
<a name="line-636"></a>  (sent_   ::#gtk2hs_type gint8)	&lt;- #{peek GdkEventProperty, send_event} ptr
<a name="line-637"></a>  (time_   ::#gtk2hs_type guint32)	&lt;- #{peek GdkEventProperty, time} ptr
<a name="line-638"></a>  return $ Property {
<a name="line-639"></a>    eventSent   = toBool sent_,
<a name="line-640"></a>    eventTime   = fromIntegral time_}
<a name="line-641"></a>-}</span>
<a name="line-642"></a>
<a name="line-643"></a><a name="marshProximity"></a><span class='hs-definition'>marshProximity</span> <span class='hs-varid'>contact</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-644"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-645"></a><span class='hs-comment'>{-# LINE 567 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-646"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-647"></a><span class='hs-comment'>{-# LINE 568 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-648"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Proximity</span> <span class='hs-layout'>{</span>
<a name="line-649"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-650"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-651"></a>    <span class='hs-varid'>eventInContact</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>contact</span><span class='hs-layout'>}</span>
<a name="line-652"></a>
<a name="line-653"></a><a name="marshVisibility"></a><span class='hs-definition'>marshVisibility</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-654"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-655"></a><span class='hs-comment'>{-# LINE 575 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-656"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>state_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>
<a name="line-657"></a><span class='hs-comment'>{-# LINE 576 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-658"></a>				<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-659"></a><span class='hs-comment'>{-# LINE 577 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-660"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Visibility</span> <span class='hs-layout'>{</span>
<a name="line-661"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-662"></a>    <span class='hs-varid'>eventVisible</span><span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toEnum</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>state_</span><span class='hs-layout'>}</span>
<a name="line-663"></a>
<a name="line-664"></a><a name="marshScroll"></a><span class='hs-definition'>marshScroll</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-665"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-666"></a><span class='hs-comment'>{-# LINE 583 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-667"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>time_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-668"></a><span class='hs-comment'>{-# LINE 584 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-669"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>x_</span>	  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-670"></a><span class='hs-comment'>{-# LINE 585 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-671"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>y_</span>	  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>24</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-672"></a><span class='hs-comment'>{-# LINE 586 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-673"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>direc_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>
<a name="line-674"></a><span class='hs-comment'>{-# LINE 587 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-675"></a>				<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>36</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-676"></a><span class='hs-comment'>{-# LINE 588 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-677"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>xRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>44</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-678"></a><span class='hs-comment'>{-# LINE 589 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-679"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>yRoot_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Double</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>52</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-680"></a><span class='hs-comment'>{-# LINE 590 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-681"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>Scroll</span> <span class='hs-layout'>{</span>
<a name="line-682"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-683"></a>    <span class='hs-varid'>eventTime</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>time_</span><span class='hs-layout'>,</span>
<a name="line-684"></a>    <span class='hs-varid'>eventX</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>x_</span><span class='hs-layout'>,</span>
<a name="line-685"></a>    <span class='hs-varid'>eventY</span>	   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>y_</span><span class='hs-layout'>,</span>
<a name="line-686"></a>    <span class='hs-varid'>eventDirection</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toEnum</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>direc_</span><span class='hs-layout'>,</span>
<a name="line-687"></a>    <span class='hs-varid'>eventXRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>xRoot_</span><span class='hs-layout'>,</span>
<a name="line-688"></a>    <span class='hs-varid'>eventYRoot</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>realToFrac</span> <span class='hs-varid'>yRoot_</span><span class='hs-layout'>}</span>
<a name="line-689"></a>
<a name="line-690"></a>
<a name="line-691"></a><a name="marshWindowState"></a><span class='hs-definition'>marshWindowState</span> <span class='hs-varid'>ptr</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-692"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>sent_</span>   <span class='hs-keyglyph'>::</span><span class='hs-conid'>Int8</span><span class='hs-layout'>)</span>	<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>8</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-693"></a><span class='hs-comment'>{-# LINE 602 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-694"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>wMask_</span>  <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>
<a name="line-695"></a><span class='hs-comment'>{-# LINE 603 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-696"></a>			<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>12</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-697"></a><span class='hs-comment'>{-# LINE 604 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-698"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>wState_</span> <span class='hs-keyglyph'>::</span><span class='hs-conid'>Word32</span><span class='hs-layout'>)</span>
<a name="line-699"></a><span class='hs-comment'>{-# LINE 605 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-700"></a>			<span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>peekByteOff</span> <span class='hs-varid'>hsc_ptr</span> <span class='hs-num'>16</span><span class='hs-layout'>)</span> <span class='hs-varid'>ptr</span>
<a name="line-701"></a><span class='hs-comment'>{-# LINE 606 "Graphics/UI/Gtk/Gdk/Events.hsc" #-}</span>
<a name="line-702"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-conid'>WindowState</span> <span class='hs-layout'>{</span>
<a name="line-703"></a>    <span class='hs-varid'>eventSent</span>   <span class='hs-keyglyph'>=</span> <span class='hs-varid'>toBool</span> <span class='hs-varid'>sent_</span><span class='hs-layout'>,</span>
<a name="line-704"></a>    <span class='hs-varid'>eventWindowMask</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>wMask_</span><span class='hs-layout'>,</span>
<a name="line-705"></a>    <span class='hs-varid'>eventWindowState</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span><span class='hs-varop'>.</span><span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varid'>wState_</span><span class='hs-layout'>}</span>
<a name="line-706"></a>
</pre></body>
</html>