<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Graphics.UI.Gtk.Gdk.EventM</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Graphics-UI-Gtk-Gdk-EventM.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Graphics-UI-Gtk-Gdk-EventM.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">gtk-0.12.0: Binding to the Gtk+ graphical user interface library.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable (depends on GHC)</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>gtk2hs-users\@lists.sourceforge.net</td></tr></table><p class="caption">Graphics.UI.Gtk.Gdk.EventM</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Detail </a></li><li><a href="#g:2">Event monad and type tags </a></li><li><a href="#g:3">Accessor functions for event information </a></li><li><a href="#g:4">Auxilliary Definitions </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Types and accessors to examine information in events. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:EventM">EventM</a> t a = <a href="/usr/share/doc/ghc/html/libraries/mtl-2.0.1.0/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> t) <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:EAny">EAny</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EKey">EKey</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EButton">EButton</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EScroll">EScroll</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EMotion">EMotion</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EExpose">EExpose</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EVisibility">EVisibility</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:ECrossing">ECrossing</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EFocus">EFocus</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EConfigure">EConfigure</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EProperty">EProperty</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EProximity">EProximity</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EWindowState">EWindowState</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EOwnerChange">EOwnerChange</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:EGrabBroken">EGrabBroken</a> </li><li class="src short"><a href="#v:eventWindow">eventWindow</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="Graphics-UI-Gtk-Gdk-DrawWindow.html#t:DrawWindow">DrawWindow</a></li><li class="src short"><a href="#v:eventSent">eventSent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventCoordinates">eventCoordinates</a> :: HasCoordinates t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:eventRootCoordinates">eventRootCoordinates</a> :: HasRootCoordinates t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>)</li><li class="src short"><a href="#v:eventModifier">eventModifier</a> :: HasModifier t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a>]</li><li class="src short"><a href="#v:eventModifierAll">eventModifierAll</a> :: HasModifier t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a>]</li><li class="src short"><a href="#v:eventTime">eventTime</a> :: HasTime t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a></li><li class="src short"><a href="#v:eventKeyVal">eventKeyVal</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyVal">KeyVal</a></li><li class="src short"><a href="#v:eventKeyName">eventKeyName</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><a href="#v:eventHardwareKeycode">eventHardwareKeycode</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyCode">KeyCode</a></li><li class="src short"><a href="#v:eventKeyboardGroup">eventKeyboardGroup</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Word.html#t:Word8">Word8</a></li><li class="src short"><a href="#v:eventButton">eventButton</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:MouseButton">MouseButton</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Click">Click</a> <ul class="subs"><li>= <a href="#v:SingleClick">SingleClick</a> </li><li>| <a href="#v:DoubleClick">DoubleClick</a> </li><li>| <a href="#v:TripleClick">TripleClick</a> </li><li>| <a href="#v:ReleaseClick">ReleaseClick</a> </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ScrollDirection">ScrollDirection</a> <ul class="subs"><li>= <a href="#v:ScrollUp">ScrollUp</a> </li><li>| <a href="#v:ScrollDown">ScrollDown</a> </li><li>| <a href="#v:ScrollLeft">ScrollLeft</a> </li><li>| <a href="#v:ScrollRight">ScrollRight</a> </li></ul></li><li class="src short"><a href="#v:eventScrollDirection">eventScrollDirection</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ScrollDirection">ScrollDirection</a></li><li class="src short"><a href="#v:eventIsHint">eventIsHint</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventArea">eventArea</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EExpose">EExpose</a> <a href="Graphics-UI-Gtk-Gdk-Events.html#t:Rectangle">Rectangle</a></li><li class="src short"><a href="#v:eventRegion">eventRegion</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EExpose">EExpose</a> <a href="Graphics-UI-Gtk-Gdk-Region.html#t:Region">Region</a></li><li class="src short"><a href="#v:eventVisibilityState">eventVisibilityState</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EVisibility">EVisibility</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:VisibilityState">VisibilityState</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CrossingMode">CrossingMode</a> <ul class="subs"><li>= <a href="#v:CrossingNormal">CrossingNormal</a> </li><li>| <a href="#v:CrossingGrab">CrossingGrab</a> </li><li>| <a href="#v:CrossingUngrab">CrossingUngrab</a> </li><li>| <a href="#v:CrossingGtkGrab">CrossingGtkGrab</a> </li><li>| <a href="#v:CrossingGtkUngrab">CrossingGtkUngrab</a> </li><li>| <a href="#v:CrossingStateChanged">CrossingStateChanged</a> </li></ul></li><li class="src short"><a href="#v:eventCrossingMode">eventCrossingMode</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:CrossingMode">CrossingMode</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:NotifyType">NotifyType</a> <ul class="subs"><li>= <a href="#v:NotifyAncestor">NotifyAncestor</a> </li><li>| <a href="#v:NotifyVirtual">NotifyVirtual</a> </li><li>| <a href="#v:NotifyInferior">NotifyInferior</a> </li><li>| <a href="#v:NotifyNonlinear">NotifyNonlinear</a> </li><li>| <a href="#v:NotifyNonlinearVirtual">NotifyNonlinearVirtual</a> </li><li>| <a href="#v:NotifyUnknown">NotifyUnknown</a> </li></ul></li><li class="src short"><a href="#v:eventNotifyType">eventNotifyType</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:NotifyType">NotifyType</a></li><li class="src short"><a href="#v:eventCrossingFocus">eventCrossingFocus</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventFocusIn">eventFocusIn</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EFocus">EFocus</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventPosition">eventPosition</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EConfigure">EConfigure</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><a href="#v:eventSize">eventSize</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EConfigure">EConfigure</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:WindowState">WindowState</a> <ul class="subs"><li>= <a href="#v:WindowStateWithdrawn">WindowStateWithdrawn</a> </li><li>| <a href="#v:WindowStateIconified">WindowStateIconified</a> </li><li>| <a href="#v:WindowStateMaximized">WindowStateMaximized</a> </li><li>| <a href="#v:WindowStateSticky">WindowStateSticky</a> </li><li>| <a href="#v:WindowStateFullscreen">WindowStateFullscreen</a> </li><li>| <a href="#v:WindowStateAbove">WindowStateAbove</a> </li><li>| <a href="#v:WindowStateBelow">WindowStateBelow</a> </li></ul></li><li class="src short"><a href="#v:eventWindowStateChanged">eventWindowStateChanged</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EWindowState">EWindowState</a> [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a>]</li><li class="src short"><a href="#v:eventWindowState">eventWindowState</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EWindowState">EWindowState</a> [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a>]</li><li class="src short"><a href="#v:eventChangeReason">eventChangeReason</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:OwnerChange">OwnerChange</a></li><li class="src short"><a href="#v:eventSelection">eventSelection</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-General-Selection.html#t:SelectionTag">SelectionTag</a></li><li class="src short"><a href="#v:eventSelectionTime">eventSelectionTime</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a></li><li class="src short"><a href="#v:eventKeyboardGrab">eventKeyboardGrab</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventImplicit">eventImplicit</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:eventGrabWindow">eventGrabWindow</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-Gtk-Gdk-DrawWindow.html#t:DrawWindow">DrawWindow</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:Modifier">Modifier</a> <ul class="subs"><li>= <a href="#v:Shift">Shift</a> </li><li>| <a href="#v:Lock">Lock</a> </li><li>| <a href="#v:Control">Control</a> </li><li>| <a href="#v:Alt">Alt</a> </li><li>| <a href="#v:Alt2">Alt2</a> </li><li>| <a href="#v:Alt3">Alt3</a> </li><li>| <a href="#v:Alt4">Alt4</a> </li><li>| <a href="#v:Alt5">Alt5</a> </li><li>| <a href="#v:Button1">Button1</a> </li><li>| <a href="#v:Button2">Button2</a> </li><li>| <a href="#v:Button3">Button3</a> </li><li>| <a href="#v:Button4">Button4</a> </li><li>| <a href="#v:Button5">Button5</a> </li><li>| <a href="#v:Super">Super</a> </li><li>| <a href="#v:Hyper">Hyper</a> </li><li>| <a href="#v:Meta">Meta</a> </li><li>| <a href="#v:Release">Release</a> </li><li>| <a href="#v:ModifierMask">ModifierMask</a> </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:TimeStamp">TimeStamp</a> = <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Word.html#t:Word32">Word32</a></li><li class="src short"><a href="#v:currentTime">currentTime</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a></li><li class="src short"><a href="#v:tryEvent">tryEvent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a> -> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:stopEvent">stopEvent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li></ul></div><div id="interface"><h1 id="g:1">Detail </h1><div class="doc"><p>This modules provides a monad that encapsulates the information in an event. </p><p>The events a widget can receive are defined in <a href="Graphics-UI-Gtk-Abstract-Widget.html#7">Graphics.UI.Gtk.Abstract.Widget</a>. Every event carries additional information which is accessible through functions in the <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a></code> monad. For instance, every event is associated with a <code>Graphics.UI.Gtk.Gdk.DrawWindow.DrawWindow</code> which is accessed using the <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventWindow">eventWindow</a></code> accessor function. Other information is only available in one specific event. For example, the area that has to be redrawn, accessed by <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventArea">eventArea</a></code> is only available in the <code>Graphics.UI.Gtk.Abstract.Widget.exposeEvent</code>. Indeed, you can only call <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventArea">eventArea</a></code> if the first type parameter of <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a></code> is the phantom type <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EExpose">EExpose</a></code>. (A phantom type is a type for which no values exist and which is only used to enforce certain constraints on the usage of functions such as <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventArea">eventArea</a></code>.) Some information is available in several but not all events. In order to express these constraints the module defines type classes whose names start with <code>Has...</code> but which are not exported, implying that no new instance can be created. (They could be called phantom type classes.) For instance, the mouse pointer coordinates can be retrieved using the function <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventCoordinates">eventCoordinates</a></code> which requires that the first type parameter of <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a></code> is in the class <code>HasCoordinates</code>. The module supplies instance of class <code>HasCoordinates</code> for the types <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a></code>, <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a></code>, <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a></code> and <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a></code>. Thus for all events that require an <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a></code> action with one of the types above, the accessor function <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventCoordinates">eventCoordinates</a></code> may be used. </p><p>Note that an event handler must always returns <code>True</code> if the event was handled or <code>False</code> if the event should be dealt with by another event handler. For instance, a handler for a key press should return <code>False</code> if the pressed key is not one of those that the widget reacts to. In this case the event is passed to the parent widgets. This ensures that pressing, say, <code>Alt-F</code> opens the file menu even if the current input focus is in a text entry widget. In order to facilitate writing handlers that may abort handling an event, this module provides the function <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:tryEvent">tryEvent</a></code>. This function catches pattern match exceptions and returns <code>False</code>. If the signal successfully runs to its end, it returns <code>True</code>. A typical use is as follows: </p><pre> widget `on` keyPressEvent $ tryEvent $ do [Control] <- eventModifier "Return" <- eventKeyName liftIO $ putStrLn "Ctrl-Return pressed" </pre><p>The rationale is that the action will throw an exception if the two event functions <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventModifier">eventModifier</a></code> and <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventKeyName">eventKeyName</a></code> return something else than what is stated in the pattern. When no exception is thrown, execution continues to the last statement where the event is processed, here we merely print a message. Note that the return value of this statement must be <code>()</code> since <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:tryEvent">tryEvent</a></code> always assumes that the function handeled the event if no exception is thrown. A handler wrapped by <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:tryEvent">tryEvent</a></code> can also indicate that it cannot handle the given event by calling <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:stopEvent">stopEvent</a></code>. </p><p>Finally, not that the <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a></code> monad wraps the <code>IO</code> monad. As such you can (and usually have to) use <code>liftIO</code> to execute <code>IO</code> functions. </p></div><h1 id="g:2">Event monad and type tags </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:EventM" class="def">EventM</a> t a = <a href="/usr/share/doc/ghc/html/libraries/mtl-2.0.1.0/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> t) <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EventM" class="link">Source</a></p><div class="doc"><p>A monad providing access to data in an event. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EAny" class="def">EAny</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EAny" class="link">Source</a></p><div class="doc"><p>A tag for events that do not carry any event-specific information. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EKey" class="def">EKey</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EKey" class="link">Source</a></p><div class="doc"><p>A tag for <em>key</em> events. </p></div><div class="subs instances"><p id="control.i:EKey" class="caption collapser" onclick="toggleSection('i:EKey')">Instances</p><div id="section.i:EKey" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasModifier <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EButton" class="def">EButton</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EButton" class="link">Source</a></p><div class="doc"><p>A tag for <em>Button</em> events. </p></div><div class="subs instances"><p id="control.i:EButton" class="caption collapser" onclick="toggleSection('i:EButton')">Instances</p><div id="section.i:EButton" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasModifier <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasRootCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EScroll" class="def">EScroll</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EScroll" class="link">Source</a></p><div class="doc"><p>A tag for <em>Scroll</em> events. </p></div><div class="subs instances"><p id="control.i:EScroll" class="caption collapser" onclick="toggleSection('i:EScroll')">Instances</p><div id="section.i:EScroll" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasModifier <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasRootCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EMotion" class="def">EMotion</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EMotion" class="link">Source</a></p><div class="doc"><p>A tag for <em>Motion</em> events. </p></div><div class="subs instances"><p id="control.i:EMotion" class="caption collapser" onclick="toggleSection('i:EMotion')">Instances</p><div id="section.i:EMotion" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasModifier <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasRootCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EExpose" class="def">EExpose</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EExpose" class="link">Source</a></p><div class="doc"><p>A tag for <em>Expose</em> events. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EVisibility" class="def">EVisibility</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EVisibility" class="link">Source</a></p><div class="doc"><p>A tag for <em>Visibility</em> events. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ECrossing" class="def">ECrossing</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#ECrossing" class="link">Source</a></p><div class="doc"><p>A tag for <em>Crossing</em> events. </p></div><div class="subs instances"><p id="control.i:ECrossing" class="caption collapser" onclick="toggleSection('i:ECrossing')">Instances</p><div id="section.i:ECrossing" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasModifier <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasRootCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a></td><td class="doc empty"> </td></tr><tr><td class="src">HasCoordinates <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EFocus" class="def">EFocus</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EFocus" class="link">Source</a></p><div class="doc"><p>A tag for <em>Focus</em> events. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EConfigure" class="def">EConfigure</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EConfigure" class="link">Source</a></p><div class="doc"><p>A tag for <em>Configure</em> events. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EProperty" class="def">EProperty</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EProperty" class="link">Source</a></p><div class="doc"><p>A tag for <em>Property</em> events. </p></div><div class="subs instances"><p id="control.i:EProperty" class="caption collapser" onclick="toggleSection('i:EProperty')">Instances</p><div id="section.i:EProperty" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EProperty">EProperty</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EProximity" class="def">EProximity</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EProximity" class="link">Source</a></p><div class="doc"><p>A tag for <em>Proximity</em> events. </p></div><div class="subs instances"><p id="control.i:EProximity" class="caption collapser" onclick="toggleSection('i:EProximity')">Instances</p><div id="section.i:EProximity" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EProximity">EProximity</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EWindowState" class="def">EWindowState</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EWindowState" class="link">Source</a></p><div class="doc"><p>A tag for <em>WindowState</em> event. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EOwnerChange" class="def">EOwnerChange</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EOwnerChange" class="link">Source</a></p><div class="doc"><p>A tag for <em>OwnerChange</em> events. </p></div><div class="subs instances"><p id="control.i:EOwnerChange" class="caption collapser" onclick="toggleSection('i:EOwnerChange')">Instances</p><div id="section.i:EOwnerChange" class="show"><table><tr><td class="src">HasTime <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EGrabBroken" class="def">EGrabBroken</a> <a href="src/Graphics-UI-Gtk-Gdk-EventM.html#EGrabBroken" class="link">Source</a></p><div class="doc"><p>A tag for <em>GrabBroken</em> events. </p></div></div><h1 id="g:3">Accessor functions for event information </h1><div class="top"><p class="src"><a name="v:eventWindow" class="def">eventWindow</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="Graphics-UI-Gtk-Gdk-DrawWindow.html#t:DrawWindow">DrawWindow</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventWindow" class="link">Source</a></p><div class="doc"><p>Retrieve the <code>Graphics.UI.Gtk.Gdk.DrawWindow.DrawWindow</code> that this event relates to. </p></div></div><div class="top"><p class="src"><a name="v:eventSent" class="def">eventSent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventSent" class="link">Source</a></p><div class="doc"><p>Query if this event was sent sent explicitly by the application (rather than being generated by human interaction). </p></div></div><div class="top"><p class="src"><a name="v:eventCoordinates" class="def">eventCoordinates</a> :: HasCoordinates t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>)<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventCoordinates" class="link">Source</a></p><div class="doc"><p>Retrieve the <code>(x,y)</code> coordinates of the mouse. </p></div></div><div class="top"><p class="src"><a name="v:eventRootCoordinates" class="def">eventRootCoordinates</a> :: HasRootCoordinates t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a>)<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventRootCoordinates" class="link">Source</a></p><div class="doc"><p>Retrieve the <code>(x,y)</code> coordinates of the mouse relative to the root (origin) of the screen. </p></div></div><div class="top"><p class="src"><a name="v:eventModifier" class="def">eventModifier</a> :: HasModifier t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a>]<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventModifier" class="link">Source</a></p><div class="doc"><p>Query the modifier keys that were depressed when the event happened. Sticky modifiers such as CapsLock are omitted in the return value. Use <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventModifierAll">eventModifierAll</a></code> your application requires all modifiers. </p></div></div><div class="top"><p class="src"><a name="v:eventModifierAll" class="def">eventModifierAll</a> :: HasModifier t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a>]<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventModifierAll" class="link">Source</a></p><div class="doc"><p>Query the modifier keys that were depressed when the event happened. The result includes sticky modifiers such as CapsLock. Normally, <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:eventModifier">eventModifier</a></code> is more appropriate in applications. </p></div></div><div class="top"><p class="src"><a name="v:eventTime" class="def">eventTime</a> :: HasTime t => <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> t <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventTime" class="link">Source</a></p><div class="doc"><p>Query the time when the event occurred. </p></div></div><div class="top"><p class="src"><a name="v:eventKeyVal" class="def">eventKeyVal</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyVal">KeyVal</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventKeyVal" class="link">Source</a></p><div class="doc"><p>The key value. See <code><a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyVal">KeyVal</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:eventKeyName" class="def">eventKeyName</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventKeyName" class="link">Source</a></p><div class="doc"><p>The key value as a string. See <code><a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyVal">KeyVal</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:eventHardwareKeycode" class="def">eventHardwareKeycode</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="Graphics-UI-Gtk-Gdk-Keys.html#t:KeyCode">KeyCode</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventHardwareKeycode" class="link">Source</a></p><div class="doc"><p>The hardware key code. </p></div></div><div class="top"><p class="src"><a name="v:eventKeyboardGroup" class="def">eventKeyboardGroup</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EKey">EKey</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Word.html#t:Word8">Word8</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventKeyboardGroup" class="link">Source</a></p><div class="doc"><p>The keyboard group. </p></div></div><div class="top"><p class="src"><a name="v:eventButton" class="def">eventButton</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EButton">EButton</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:MouseButton">MouseButton</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventButton" class="link">Source</a></p><div class="doc"><p>Query the mouse buttons. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Click" class="def">Click</a> <a href="src/Graphics-UI-Gtk-General-Enums.html#Click" class="link">Source</a></p><div class="doc"><p>Type of mouse click </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SingleClick" class="def">SingleClick</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:DoubleClick" class="def">DoubleClick</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:TripleClick" class="def">TripleClick</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ReleaseClick" class="def">ReleaseClick</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Click" class="caption collapser" onclick="toggleSection('i:Click')">Instances</p><div id="section.i:Click" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Click">Click</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Click">Click</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Click">Click</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ScrollDirection" class="def">ScrollDirection</a> <a href="src/Graphics-UI-Gtk-Gdk-Enums.html#ScrollDirection" class="link">Source</a></p><div class="doc"><p>in which direction was scrolled? </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ScrollUp" class="def">ScrollUp</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ScrollDown" class="def">ScrollDown</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ScrollLeft" class="def">ScrollLeft</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ScrollRight" class="def">ScrollRight</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ScrollDirection" class="caption collapser" onclick="toggleSection('i:ScrollDirection')">Instances</p><div id="section.i:ScrollDirection" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ScrollDirection">ScrollDirection</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ScrollDirection">ScrollDirection</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ScrollDirection">ScrollDirection</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:eventScrollDirection" class="def">eventScrollDirection</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EScroll">EScroll</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ScrollDirection">ScrollDirection</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventScrollDirection" class="link">Source</a></p><div class="doc"><p>Query the direction of scrolling. </p></div></div><div class="top"><p class="src"><a name="v:eventIsHint" class="def">eventIsHint</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EMotion">EMotion</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventIsHint" class="link">Source</a></p><div class="doc"><p>Check if the motion event is only a hint rather than the full mouse movement information. </p></div></div><div class="top"><p class="src"><a name="v:eventArea" class="def">eventArea</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EExpose">EExpose</a> <a href="Graphics-UI-Gtk-Gdk-Events.html#t:Rectangle">Rectangle</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventArea" class="link">Source</a></p><div class="doc"><p>Query a bounding box of the region that needs to be updated. </p></div></div><div class="top"><p class="src"><a name="v:eventRegion" class="def">eventRegion</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EExpose">EExpose</a> <a href="Graphics-UI-Gtk-Gdk-Region.html#t:Region">Region</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventRegion" class="link">Source</a></p><div class="doc"><p>Query the region that needs to be updated. </p></div></div><div class="top"><p class="src"><a name="v:eventVisibilityState" class="def">eventVisibilityState</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EVisibility">EVisibility</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:VisibilityState">VisibilityState</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventVisibilityState" class="link">Source</a></p><div class="doc"><p>Get the visibility status of a window. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:CrossingMode" class="def">CrossingMode</a> <a href="src/Graphics-UI-Gtk-Gdk-Enums.html#CrossingMode" class="link">Source</a></p><div class="doc"><p>How focus is crossing the widget. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CrossingNormal" class="def">CrossingNormal</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CrossingGrab" class="def">CrossingGrab</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CrossingUngrab" class="def">CrossingUngrab</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CrossingGtkGrab" class="def">CrossingGtkGrab</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CrossingGtkUngrab" class="def">CrossingGtkUngrab</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CrossingStateChanged" class="def">CrossingStateChanged</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CrossingMode" class="caption collapser" onclick="toggleSection('i:CrossingMode')">Instances</p><div id="section.i:CrossingMode" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:CrossingMode">CrossingMode</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:CrossingMode">CrossingMode</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:CrossingMode">CrossingMode</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:eventCrossingMode" class="def">eventCrossingMode</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:CrossingMode">CrossingMode</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventCrossingMode" class="link">Source</a></p><div class="doc"><p>Get the mode of the mouse cursor crossing a window. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:NotifyType" class="def">NotifyType</a> <a href="src/Graphics-UI-Gtk-Gdk-Enums.html#NotifyType" class="link">Source</a></p><div class="doc"><p>Information on from what level of the widget hierarchy the mouse cursor came. </p><dl><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyAncestor">NotifyAncestor</a></code></dt><dd> The window is entered from an ancestor or left towards an ancestor. </dd><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyVirtual">NotifyVirtual</a></code></dt><dd> The pointer moves between an ancestor and an inferior of the window. </dd><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyInferior">NotifyInferior</a></code></dt><dd> The window is entered from an inferior or left towards an inferior. </dd><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyNonlinear">NotifyNonlinear</a></code></dt><dd> The window is entered from or left towards a window which is neither an ancestor nor an inferior. </dd><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyNonlinearVirtual">NotifyNonlinearVirtual</a></code></dt><dd> The pointer moves between two windows which are not ancestors of each other and the window is part of the ancestor chain between one of these windows and their least common ancestor. </dd><dt><code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:NotifyUnknown">NotifyUnknown</a></code></dt><dd> The level change does not fit into any of the other categories or could not be determined. </dd></dl></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NotifyAncestor" class="def">NotifyAncestor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NotifyVirtual" class="def">NotifyVirtual</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NotifyInferior" class="def">NotifyInferior</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NotifyNonlinear" class="def">NotifyNonlinear</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NotifyNonlinearVirtual" class="def">NotifyNonlinearVirtual</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NotifyUnknown" class="def">NotifyUnknown</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:NotifyType" class="caption collapser" onclick="toggleSection('i:NotifyType')">Instances</p><div id="section.i:NotifyType" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:NotifyType">NotifyType</a></td><td class="doc"><p>Determine if child widget may be overdrawn. </p></td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:NotifyType">NotifyType</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:NotifyType">NotifyType</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:eventNotifyType" class="def">eventNotifyType</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:NotifyType">NotifyType</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventNotifyType" class="link">Source</a></p><div class="doc"><p>Get the notify type of the mouse cursor crossing a window. </p></div></div><div class="top"><p class="src"><a name="v:eventCrossingFocus" class="def">eventCrossingFocus</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:ECrossing">ECrossing</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventCrossingFocus" class="link">Source</a></p><div class="doc"><p>Query if the window has the focus or is an inferior window. </p></div></div><div class="top"><p class="src"><a name="v:eventFocusIn" class="def">eventFocusIn</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EFocus">EFocus</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventFocusIn" class="link">Source</a></p><div class="doc"><p>Query if a window gained focus (<code>True</code>) or lost the focus (<code>False</code>). </p></div></div><div class="top"><p class="src"><a name="v:eventPosition" class="def">eventPosition</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EConfigure">EConfigure</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>)<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventPosition" class="link">Source</a></p><div class="doc"><p>Get the <code>(x,y)</code> position of the window within the parent window. </p></div></div><div class="top"><p class="src"><a name="v:eventSize" class="def">eventSize</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EConfigure">EConfigure</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>)<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventSize" class="link">Source</a></p><div class="doc"><p>Get the new size of the window as <code>(width,height)</code>. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:WindowState" class="def">WindowState</a> <a href="src/Graphics-UI-Gtk-Gdk-Enums.html#WindowState" class="link">Source</a></p><div class="doc"><p>The state a <code>DrawWindow</code> is in. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WindowStateWithdrawn" class="def">WindowStateWithdrawn</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateIconified" class="def">WindowStateIconified</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateMaximized" class="def">WindowStateMaximized</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateSticky" class="def">WindowStateSticky</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateFullscreen" class="def">WindowStateFullscreen</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateAbove" class="def">WindowStateAbove</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:WindowStateBelow" class="def">WindowStateBelow</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:WindowState" class="caption collapser" onclick="toggleSection('i:WindowState')">Instances</p><div id="section.i:WindowState" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a></td><td class="doc"><p>These are hints for the window manager that indicate what type of function the window has. The window manager can use this when determining decoration and behaviour of the window. The hint must be set before mapping the window. </p><p>See the extended window manager hints specification for more details about window types. </p></td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/glib-0.12.0/System-Glib-Flags.html#t:Flags">Flags</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:eventWindowStateChanged" class="def">eventWindowStateChanged</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EWindowState">EWindowState</a> [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a>]<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventWindowStateChanged" class="link">Source</a></p><div class="doc"><p>Query which window state bits have changed. </p></div></div><div class="top"><p class="src"><a name="v:eventWindowState" class="def">eventWindowState</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EWindowState">EWindowState</a> [<a href="Graphics-UI-Gtk-Gdk-EventM.html#t:WindowState">WindowState</a>]<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventWindowState" class="link">Source</a></p><div class="doc"><p>Query the new window state. </p></div></div><div class="top"><p class="src"><a name="v:eventChangeReason" class="def">eventChangeReason</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:OwnerChange">OwnerChange</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventChangeReason" class="link">Source</a></p><div class="doc"><p>Query why a seleciton changed its owner. </p></div></div><div class="top"><p class="src"><a name="v:eventSelection" class="def">eventSelection</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-General-Selection.html#t:SelectionTag">SelectionTag</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventSelection" class="link">Source</a></p><div class="doc"><p>Query what selection changed its owner. </p></div></div><div class="top"><p class="src"><a name="v:eventSelectionTime" class="def">eventSelectionTime</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EOwnerChange">EOwnerChange</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventSelectionTime" class="link">Source</a></p><div class="doc"><p>Query the time when the selection was taken over. </p></div></div><div class="top"><p class="src"><a name="v:eventKeyboardGrab" class="def">eventKeyboardGrab</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventKeyboardGrab" class="link">Source</a></p><div class="doc"><p>Check if a keyboard (<code>True</code>) or a mouse pointer grap (<code>False</code>) was broken. </p></div></div><div class="top"><p class="src"><a name="v:eventImplicit" class="def">eventImplicit</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventImplicit" class="link">Source</a></p><div class="doc"><p>Check if a grab was broken implicitly. </p></div></div><div class="top"><p class="src"><a name="v:eventGrabWindow" class="def">eventGrabWindow</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EGrabBroken">EGrabBroken</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-Gtk-Gdk-DrawWindow.html#t:DrawWindow">DrawWindow</a>)<a href="src/Graphics-UI-Gtk-Gdk-EventM.html#eventGrabWindow" class="link">Source</a></p><div class="doc"><p>Get the new window that owns the grab or <code>Nothing</code> if the window is not part of this application. </p></div></div><h1 id="g:4">Auxilliary Definitions </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Modifier" class="def">Modifier</a> <a href="src/Graphics-UI-Gtk-Gdk-Enums.html#Modifier" class="link">Source</a></p><div class="doc"><p>Keyboard modifiers that are depressed when the user presses a key or a mouse button. </p><ul><li> This data type is used to build lists of modifers that were active during an event. </li><li> The <a href="Apple.html">Apple</a> key on Macintoshs is mapped to <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Alt2">Alt2</a></code> and the <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Meta">Meta</a></code> key (if available). </li><li> Since Gtk 2.10, there are also <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Super">Super</a></code>, <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Hyper">Hyper</a></code> and <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Meta">Meta</a></code> modifiers which are simply generated from <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Alt">Alt</a></code> .. <code>Compose</code> modifier keys, depending on the mapping used by the windowing system. Due to one key being mapped to e.g. <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Alt2">Alt2</a></code> and <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:Meta">Meta</a></code>, you shouldn't pattern match directly against a certain key but check whether a key is in the list using the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-List.html#v:elem">elem</a></code> function, say. </li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Shift" class="def">Shift</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Lock" class="def">Lock</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Control" class="def">Control</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Alt" class="def">Alt</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Alt2" class="def">Alt2</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Alt3" class="def">Alt3</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Alt4" class="def">Alt4</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Alt5" class="def">Alt5</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Button1" class="def">Button1</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Button2" class="def">Button2</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Button3" class="def">Button3</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Button4" class="def">Button4</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Button5" class="def">Button5</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Super" class="def">Super</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Hyper" class="def">Hyper</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Meta" class="def">Meta</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Release" class="def">Release</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ModifierMask" class="def">ModifierMask</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Modifier" class="caption collapser" onclick="toggleSection('i:Modifier')">Instances</p><div id="section.i:Modifier" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Enum">Enum</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/glib-0.12.0/System-Glib-Flags.html#t:Flags">Flags</a> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:Modifier">Modifier</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TimeStamp" class="def">TimeStamp</a> = <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Word.html#t:Word32">Word32</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#TimeStamp" class="link">Source</a></p><div class="doc"><p>The time (in milliseconds) when an event happened. This is used mostly for ordering events and responses to events. </p></div></div><div class="top"><p class="src"><a name="v:currentTime" class="def">currentTime</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:TimeStamp">TimeStamp</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#currentTime" class="link">Source</a></p><div class="doc"><p>Represents the current time, and can be used anywhere a time is expected. </p></div></div><div class="top"><p class="src"><a name="v:tryEvent" class="def">tryEvent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a> -> <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#tryEvent" class="link">Source</a></p><div class="doc"><p>Execute an event handler and assume it handled the event unless it threw a pattern match exception. </p></div></div><div class="top"><p class="src"><a name="v:stopEvent" class="def">stopEvent</a> :: <a href="Graphics-UI-Gtk-Gdk-EventM.html#t:EventM">EventM</a> any <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-UI-Gtk-Gdk-EventM.html#stopEvent" class="link">Source</a></p><div class="doc"><p>Explicitly stop the handling of an event. This function should only be called inside a handler that is wrapped with <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:tryEvent">tryEvent</a></code>. (It merely throws a bogus pattern matching error which <code><a href="Graphics-UI-Gtk-Gdk-EventM.html#v:tryEvent">tryEvent</a></code> interprets as if the handler does not handle the event.) </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>