<?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'>.&.</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 'propertyChanged' 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 \"<gdk/gdkkeysyms.h>\" 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'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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'>-></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}-> marshProperty</span> <a name="line-432"></a> <span class='hs-num'>20</span> <span class='hs-keyglyph'>-></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'>-></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'>-></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'>-></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'>-></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'>-></span> <span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</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'><-</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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'>-></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'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</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'><-</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'>.&.</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'>.&.</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'>.&.</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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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) <- #{peek GdkEventProperty, send_event} ptr <a name="line-637"></a> (time_ ::#gtk2hs_type guint32) <- #{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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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'><-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hsc_ptr</span> <span class='hs-keyglyph'>-></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>