Sophie

Sophie

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

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>dist/build/Graphics/UI/Gtk/Gdk/DrawWindow.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a>
<a name="line-2"></a><span class='hs-comment'>{-# LINE 2 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-3"></a><span class='hs-comment'>-- -*-haskell-*-</span>
<a name="line-4"></a><span class='hs-comment'>-- GIMP Toolkit (GTK) DrawWindow</span>
<a name="line-5"></a><span class='hs-comment'>--</span>
<a name="line-6"></a><span class='hs-comment'>-- Author : Axel Simon</span>
<a name="line-7"></a><span class='hs-comment'>--</span>
<a name="line-8"></a><span class='hs-comment'>-- Created: 5 November 2002</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- Copyright (C) 2002-2005 Axel Simon</span>
<a name="line-11"></a><span class='hs-comment'>--</span>
<a name="line-12"></a><span class='hs-comment'>-- This library is free software; you can redistribute it and/or</span>
<a name="line-13"></a><span class='hs-comment'>-- modify it under the terms of the GNU Lesser General Public</span>
<a name="line-14"></a><span class='hs-comment'>-- License as published by the Free Software Foundation; either</span>
<a name="line-15"></a><span class='hs-comment'>-- version 2.1 of the License, or (at your option) any later version.</span>
<a name="line-16"></a><span class='hs-comment'>--</span>
<a name="line-17"></a><span class='hs-comment'>-- This library is distributed in the hope that it will be useful,</span>
<a name="line-18"></a><span class='hs-comment'>-- but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="line-19"></a><span class='hs-comment'>-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="line-20"></a><span class='hs-comment'>-- Lesser General Public License for more details.</span>
<a name="line-21"></a><span class='hs-comment'>--</span>
<a name="line-22"></a><span class='hs-comment'>-- |</span>
<a name="line-23"></a><span class='hs-comment'>-- Maintainer : gtk2hs-users@lists.sourceforge.net</span>
<a name="line-24"></a><span class='hs-comment'>-- Stability : provisional</span>
<a name="line-25"></a><span class='hs-comment'>-- Portability : portable (depends on GHC)</span>
<a name="line-26"></a><span class='hs-comment'>--</span>
<a name="line-27"></a><span class='hs-comment'>-- A 'DrawWindow' is a rectangular region on the screen.</span>
<a name="line-28"></a><span class='hs-comment'>--</span>
<a name="line-29"></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'>DrawWindow</span> <span class='hs-layout'>(</span>
<a name="line-30"></a><span class='hs-comment'>-- A 'DrawWindow' is used to implement high-level objects such as 'Widget' and</span>
<a name="line-31"></a><span class='hs-comment'>-- 'Window' on the Gtk+ level.</span>
<a name="line-32"></a><span class='hs-comment'>--</span>
<a name="line-33"></a><span class='hs-comment'>-- Most widgets draws its content into a 'DrawWindow', in particular</span>
<a name="line-34"></a><span class='hs-comment'>-- 'DrawingArea' is nothing but a widget that contains a 'DrawWindow'.</span>
<a name="line-35"></a><span class='hs-comment'>-- This object derives from 'Drawable' which defines the basic drawing</span>
<a name="line-36"></a><span class='hs-comment'>-- primitives.</span>
<a name="line-37"></a>
<a name="line-38"></a><span class='hs-comment'>-- * Class Hierarchy</span>
<a name="line-39"></a><span class='hs-comment'>-- |</span>
<a name="line-40"></a><span class='hs-comment'>-- @</span>
<a name="line-41"></a><span class='hs-comment'>-- | 'GObject'</span>
<a name="line-42"></a><span class='hs-comment'>-- | +----'Drawable'</span>
<a name="line-43"></a><span class='hs-comment'>-- | +----DrawWindow</span>
<a name="line-44"></a><span class='hs-comment'>-- @</span>
<a name="line-45"></a><span class='hs-comment'>--</span>
<a name="line-46"></a>
<a name="line-47"></a><span class='hs-comment'>-- * Types</span>
<a name="line-48"></a>  <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>,</span>
<a name="line-49"></a>  <span class='hs-conid'>DrawWindowClass</span><span class='hs-layout'>,</span>
<a name="line-50"></a>  <span class='hs-varid'>castToDrawWindow</span><span class='hs-layout'>,</span> <span class='hs-varid'>gTypeDrawWindow</span><span class='hs-layout'>,</span>
<a name="line-51"></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-52"></a>  <span class='hs-conid'>NativeWindowId</span><span class='hs-layout'>,</span>
<a name="line-53"></a>  <span class='hs-varid'>toNativeWindowId</span><span class='hs-layout'>,</span>
<a name="line-54"></a>  <span class='hs-varid'>fromNativeWindowId</span><span class='hs-layout'>,</span>
<a name="line-55"></a><span class='hs-comment'>-- * Methods</span>
<a name="line-56"></a>  <span class='hs-varid'>drawWindowGetState</span><span class='hs-layout'>,</span>
<a name="line-57"></a>  <span class='hs-varid'>drawWindowScroll</span><span class='hs-layout'>,</span>
<a name="line-58"></a>  <span class='hs-varid'>drawWindowClear</span><span class='hs-layout'>,</span>
<a name="line-59"></a>  <span class='hs-varid'>drawWindowClearArea</span><span class='hs-layout'>,</span>
<a name="line-60"></a>  <span class='hs-varid'>drawWindowClearAreaExpose</span><span class='hs-layout'>,</span>
<a name="line-61"></a>  <span class='hs-varid'>drawWindowRaise</span><span class='hs-layout'>,</span>
<a name="line-62"></a>  <span class='hs-varid'>drawWindowLower</span><span class='hs-layout'>,</span>
<a name="line-63"></a>  <span class='hs-varid'>drawWindowBeginPaintRect</span><span class='hs-layout'>,</span>
<a name="line-64"></a>  <span class='hs-varid'>drawWindowBeginPaintRegion</span><span class='hs-layout'>,</span>
<a name="line-65"></a>  <span class='hs-varid'>drawWindowEndPaint</span><span class='hs-layout'>,</span>
<a name="line-66"></a>  <span class='hs-varid'>drawWindowInvalidateRect</span><span class='hs-layout'>,</span>
<a name="line-67"></a>  <span class='hs-varid'>drawWindowInvalidateRegion</span><span class='hs-layout'>,</span>
<a name="line-68"></a>  <span class='hs-varid'>drawWindowGetUpdateArea</span><span class='hs-layout'>,</span>
<a name="line-69"></a>  <span class='hs-varid'>drawWindowFreezeUpdates</span><span class='hs-layout'>,</span>
<a name="line-70"></a>  <span class='hs-varid'>drawWindowThawUpdates</span><span class='hs-layout'>,</span>
<a name="line-71"></a>  <span class='hs-varid'>drawWindowProcessUpdates</span><span class='hs-layout'>,</span>
<a name="line-72"></a>
<a name="line-73"></a>  <span class='hs-varid'>drawWindowSetAcceptFocus</span><span class='hs-layout'>,</span>
<a name="line-74"></a>
<a name="line-75"></a>  <span class='hs-varid'>drawWindowShapeCombineMask</span><span class='hs-layout'>,</span>
<a name="line-76"></a>  <span class='hs-varid'>drawWindowShapeCombineRegion</span><span class='hs-layout'>,</span>
<a name="line-77"></a>  <span class='hs-varid'>drawWindowSetChildShapes</span><span class='hs-layout'>,</span>
<a name="line-78"></a>  <span class='hs-varid'>drawWindowMergeChildShapes</span><span class='hs-layout'>,</span>
<a name="line-79"></a>  <span class='hs-varid'>drawWindowGetPointer</span><span class='hs-layout'>,</span>
<a name="line-80"></a>  <span class='hs-varid'>drawWindowGetPointerPos</span><span class='hs-layout'>,</span>
<a name="line-81"></a>  <span class='hs-varid'>drawWindowGetOrigin</span><span class='hs-layout'>,</span>
<a name="line-82"></a>  <span class='hs-varid'>drawWindowForeignNew</span><span class='hs-layout'>,</span>
<a name="line-83"></a>  <span class='hs-varid'>drawWindowGetDefaultRootWindow</span><span class='hs-layout'>,</span>
<a name="line-84"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-85"></a>
<a name="line-86"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>liftM</span><span class='hs-layout'>)</span>
<a name="line-87"></a>
<a name="line-88"></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-89"></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> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span><span class='hs-layout'>)</span>
<a name="line-90"></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-91"></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>
<a name="line-92"></a><span class='hs-comment'>{-# LINE 91 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-93"></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>
<a name="line-94"></a><span class='hs-comment'>{-# LINE 92 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-95"></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>
<a name="line-96"></a><span class='hs-comment'>{-# LINE 93 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-97"></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'>EventM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Modifier</span><span class='hs-layout'>,</span> <span class='hs-varid'>eventRegion</span><span class='hs-layout'>)</span>
<a name="line-98"></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>
<a name="line-99"></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'>Abstract</span><span class='hs-varop'>.</span><span class='hs-conid'>Widget</span> <span class='hs-layout'>(</span><span class='hs-varid'>widgetSetDoubleBuffered</span><span class='hs-layout'>)</span>
<a name="line-100"></a>
<a name="line-101"></a>
<a name="line-102"></a><span class='hs-comment'>{-# LINE 98 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-103"></a>
<a name="line-104"></a><a name="drawWindowGetState"></a><span class='hs-comment'>-- | Gets the bitwise OR of the currently active drawWindow state flags, from</span>
<a name="line-105"></a><span class='hs-comment'>-- the 'WindowState' enumeration.</span>
<a name="line-106"></a><span class='hs-comment'>--</span>
<a name="line-107"></a><span class='hs-definition'>drawWindowGetState</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-108"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>WindowState</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ returns @DrawWindow@ flags</span>
<a name="line-109"></a><span class='hs-definition'>drawWindowGetState</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-110"></a>  <span class='hs-varid'>liftM</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-varop'>$</span>
<a name="line-111"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_get_state</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-112"></a><span class='hs-comment'>{-# LINE 107 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-113"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-114"></a>
<a name="line-115"></a><a name="drawWindowScroll"></a><span class='hs-comment'>-- | Scroll the contents of @DrawWindow@.</span>
<a name="line-116"></a><span class='hs-comment'>--</span>
<a name="line-117"></a><span class='hs-comment'>-- * Scroll both, pixels and children, by the given amount.</span>
<a name="line-118"></a><span class='hs-comment'>-- @DrawWindow@ itself does not move. Portions of the window that the</span>
<a name="line-119"></a><span class='hs-comment'>-- scroll operation brings inm from offscreen areas are invalidated. The</span>
<a name="line-120"></a><span class='hs-comment'>-- invalidated region may be bigger than what would strictly be necessary. (For</span>
<a name="line-121"></a><span class='hs-comment'>-- X11, a minimum area will be invalidated if the window has no subwindows, or</span>
<a name="line-122"></a><span class='hs-comment'>-- if the edges of the window's parent do not extend beyond the edges of the</span>
<a name="line-123"></a><span class='hs-comment'>-- drawWindow. In other cases, a multi-step process is used to scroll the window</span>
<a name="line-124"></a><span class='hs-comment'>-- which may produce temporary visual artifacts and unnecessary invalidations.)</span>
<a name="line-125"></a><span class='hs-comment'>--</span>
<a name="line-126"></a><span class='hs-definition'>drawWindowScroll</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-127"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @dx@ - Amount to scroll in the X direction</span>
<a name="line-128"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @dy@ - Amount to scroll in the Y direction</span>
<a name="line-129"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-130"></a><span class='hs-definition'>drawWindowScroll</span> <span class='hs-varid'>self</span> <span class='hs-varid'>dx</span> <span class='hs-varid'>dy</span> <span class='hs-keyglyph'>=</span>
<a name="line-131"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_scroll</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-132"></a><span class='hs-comment'>{-# LINE 126 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-133"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-134"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>dx</span><span class='hs-layout'>)</span>
<a name="line-135"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>dy</span><span class='hs-layout'>)</span>
<a name="line-136"></a>
<a name="line-137"></a>
<a name="line-138"></a><a name="drawWindowClear"></a><span class='hs-comment'>-- | Clears an entire @DrawWindow@ to the background color or background pixmap.</span>
<a name="line-139"></a><span class='hs-comment'>--</span>
<a name="line-140"></a><span class='hs-definition'>drawWindowClear</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-141"></a><span class='hs-definition'>drawWindowClear</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-142"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_clear</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-143"></a><span class='hs-comment'>{-# LINE 136 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-144"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-145"></a>
<a name="line-146"></a><a name="drawWindowClearArea"></a><span class='hs-comment'>-- | Clears an area of @DrawWindow@ to the background color or background pixmap.</span>
<a name="line-147"></a><span class='hs-comment'>--</span>
<a name="line-148"></a><span class='hs-definition'>drawWindowClearArea</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-149"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @x@ - x coordinate of rectangle to clear</span>
<a name="line-150"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @y@ - y coordinate of rectangle to clear</span>
<a name="line-151"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @width@ - width of rectangle to clear</span>
<a name="line-152"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @height@ - height of rectangle to clear</span>
<a name="line-153"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-154"></a><span class='hs-definition'>drawWindowClearArea</span> <span class='hs-varid'>self</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-varid'>width</span> <span class='hs-varid'>height</span> <span class='hs-keyglyph'>=</span>
<a name="line-155"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-varid'>arg5</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_clear_area</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-varid'>arg5</span><span class='hs-layout'>)</span>
<a name="line-156"></a><span class='hs-comment'>{-# LINE 148 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-157"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-158"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
<a name="line-159"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
<a name="line-160"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>width</span><span class='hs-layout'>)</span>
<a name="line-161"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>height</span><span class='hs-layout'>)</span>
<a name="line-162"></a>
<a name="line-163"></a><a name="drawWindowClearAreaExpose"></a><span class='hs-comment'>-- | Like 'drawWindowClearArea', but also generates an expose event for the</span>
<a name="line-164"></a><span class='hs-comment'>-- cleared area.</span>
<a name="line-165"></a><span class='hs-comment'>--</span>
<a name="line-166"></a><span class='hs-definition'>drawWindowClearAreaExpose</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-167"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @x@ - x coordinate of rectangle to clear</span>
<a name="line-168"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @y@ - y coordinate of rectangle to clear</span>
<a name="line-169"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @width@ - width of rectangle to clear</span>
<a name="line-170"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @height@ - height of rectangle to clear</span>
<a name="line-171"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-172"></a><span class='hs-definition'>drawWindowClearAreaExpose</span> <span class='hs-varid'>self</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-varid'>width</span> <span class='hs-varid'>height</span> <span class='hs-keyglyph'>=</span>
<a name="line-173"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-varid'>arg5</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_clear_area_e</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-varid'>arg5</span><span class='hs-layout'>)</span>
<a name="line-174"></a><span class='hs-comment'>{-# LINE 165 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-175"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-176"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span>
<a name="line-177"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
<a name="line-178"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>width</span><span class='hs-layout'>)</span>
<a name="line-179"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>height</span><span class='hs-layout'>)</span>
<a name="line-180"></a>
<a name="line-181"></a><a name="drawWindowRaise"></a><span class='hs-comment'>-- | Raises @DrawWindow@ to the top of the Z-order (stacking order), so that other</span>
<a name="line-182"></a><span class='hs-comment'>-- drawWindows with the same parent drawWindow appear below @DrawWindow@. This is true</span>
<a name="line-183"></a><span class='hs-comment'>-- whether or not the drawWindows are visible.</span>
<a name="line-184"></a><span class='hs-comment'>--</span>
<a name="line-185"></a><span class='hs-comment'>-- If @DrawWindow@ is a toplevel, the window manager may choose to deny the</span>
<a name="line-186"></a><span class='hs-comment'>-- request to move the drawWindow in the Z-order, 'drawWindowRaise' only requests the</span>
<a name="line-187"></a><span class='hs-comment'>-- restack, does not guarantee it.</span>
<a name="line-188"></a><span class='hs-comment'>--</span>
<a name="line-189"></a><span class='hs-definition'>drawWindowRaise</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-190"></a><span class='hs-definition'>drawWindowRaise</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-191"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_raise</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-192"></a><span class='hs-comment'>{-# LINE 182 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-193"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-194"></a>
<a name="line-195"></a><span class='hs-comment'>-- | Lowers @DrawWindow@ to the bottom of the Z-order (stacking order), so that</span>
<a name="line-196"></a><span class='hs-comment'>-- other windows with the same parent window appear above @DrawWindow@. This is</span>
<a name="line-197"></a><span class='hs-comment'>-- true whether or not the other windows are visible.</span>
<a name="line-198"></a><span class='hs-comment'>--</span>
<a name="line-199"></a><span class='hs-comment'>-- If @DrawWindow@ is a toplevel, the window manager may choose to deny the</span>
<a name="line-200"></a><span class='hs-comment'>-- request to move the drawWindow in the Z-order, 'drawWindowLower' only</span>
<a name="line-201"></a><span class='hs-comment'>-- requests the restack, does not guarantee it.</span>
<a name="line-202"></a><span class='hs-comment'>--</span>
<a name="line-203"></a><span class='hs-comment'>-- Note that a widget is raised automatically when it is mapped, thus you</span>
<a name="line-204"></a><span class='hs-comment'>-- need to call 'drawWindowLower' after</span>
<a name="line-205"></a>        <span class='hs-comment'>-- 'Graphics.UI.Gtk.Abstract.Widget.widgetShow' if the window should</span>
<a name="line-206"></a><a name="drawWindowLower"></a><span class='hs-comment'>-- not appear above other windows.</span>
<a name="line-207"></a><span class='hs-comment'>--</span>
<a name="line-208"></a><span class='hs-definition'>drawWindowLower</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-209"></a><span class='hs-definition'>drawWindowLower</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-210"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_lower</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-211"></a><span class='hs-comment'>{-# LINE 200 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-212"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-213"></a>
<a name="line-214"></a><a name="drawWindowRegisterDnd"></a><span class='hs-comment'>-- | Registers a drawWindow as a potential drop destination.</span>
<a name="line-215"></a><span class='hs-comment'>--</span>
<a name="line-216"></a><span class='hs-definition'>drawWindowRegisterDnd</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-217"></a><span class='hs-definition'>drawWindowRegisterDnd</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-218"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_register_dnd</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-219"></a><span class='hs-comment'>{-# LINE 207 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-220"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-221"></a>
<a name="line-222"></a><a name="drawWindowBeginPaintRect"></a><span class='hs-comment'>-- | A convenience wrapper around 'drawWindowBeginPaintRegion' which creates a</span>
<a name="line-223"></a><span class='hs-comment'>-- rectangular region for you.</span>
<a name="line-224"></a><span class='hs-comment'>--</span>
<a name="line-225"></a><span class='hs-comment'>-- * See 'drawWindowBeginPaintRegion' for details.</span>
<a name="line-226"></a><span class='hs-comment'>--</span>
<a name="line-227"></a><span class='hs-definition'>drawWindowBeginPaintRect</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-228"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Rectangle</span> <span class='hs-comment'>-- ^ @rectangle@ - rectangle you intend to draw to</span>
<a name="line-229"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-230"></a><span class='hs-definition'>drawWindowBeginPaintRect</span> <span class='hs-varid'>self</span> <span class='hs-varid'>rectangle</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>with</span> <span class='hs-varid'>rectangle</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>rectPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-231"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_begin_paint_rect</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>castPtr</span> <span class='hs-varid'>rectPtr</span><span class='hs-layout'>)</span>
<a name="line-232"></a>
<a name="line-233"></a><a name="drawWindowBeginPaintRegion"></a><span class='hs-comment'>-- | Indicate that you are beginning the process of redrawing @region@.</span>
<a name="line-234"></a><span class='hs-comment'>--</span>
<a name="line-235"></a><span class='hs-comment'>-- * A</span>
<a name="line-236"></a><span class='hs-comment'>-- backing store (offscreen buffer) large enough to contain @region@ will be</span>
<a name="line-237"></a><span class='hs-comment'>-- created. The backing store will be initialized with the background color or</span>
<a name="line-238"></a><span class='hs-comment'>-- background pixmap for @DrawWindow@. Then, all drawing operations performed on</span>
<a name="line-239"></a><span class='hs-comment'>-- @DrawWindow@ will be diverted to the backing store. When you call</span>
<a name="line-240"></a><span class='hs-comment'>-- 'drawWindowEndPaint', the backing store will be copied to @DrawWindow@, making it</span>
<a name="line-241"></a><span class='hs-comment'>-- visible onscreen. Only the part of @DrawWindow@ contained in @region@ will be</span>
<a name="line-242"></a><span class='hs-comment'>-- modified; that is, drawing operations are clipped to @region@.</span>
<a name="line-243"></a><span class='hs-comment'>--</span>
<a name="line-244"></a><span class='hs-comment'>-- The net result of all this is to remove flicker, because the user sees</span>
<a name="line-245"></a><span class='hs-comment'>-- the finished product appear all at once when you call 'drawWindowEndPaint'. If</span>
<a name="line-246"></a><span class='hs-comment'>-- you draw to @DrawWindow@ directly without calling 'drawWindowBeginPaintRegion', the</span>
<a name="line-247"></a><span class='hs-comment'>-- user may see flicker as individual drawing operations are performed in</span>
<a name="line-248"></a><span class='hs-comment'>-- sequence. The clipping and background-initializing features of</span>
<a name="line-249"></a><span class='hs-comment'>-- 'drawWindowBeginPaintRegion' are conveniences for the programmer, so you can</span>
<a name="line-250"></a><span class='hs-comment'>-- avoid doing that work yourself.</span>
<a name="line-251"></a><span class='hs-comment'>--</span>
<a name="line-252"></a><span class='hs-comment'>-- When using GTK+, the widget system automatically places calls to</span>
<a name="line-253"></a><span class='hs-comment'>-- 'drawWindowBeginPaintRegion' and 'drawWindowEndPaint' around emissions of the</span>
<a name="line-254"></a><span class='hs-comment'>-- @expose_event@ signal. That is, if you\'re writing an expose event handler,</span>
<a name="line-255"></a><span class='hs-comment'>-- you can assume that the exposed area in 'eventRegion' has already been</span>
<a name="line-256"></a><span class='hs-comment'>-- cleared to the window background, is already set as the clip region, and</span>
<a name="line-257"></a><span class='hs-comment'>-- already has a backing store. Therefore in most cases, application code need</span>
<a name="line-258"></a><span class='hs-comment'>-- not call 'drawWindowBeginPaintRegion'. (You can disable the automatic calls</span>
<a name="line-259"></a><span class='hs-comment'>-- around expose events on a widget-by-widget basis by calling</span>
<a name="line-260"></a><span class='hs-comment'>-- 'widgetSetDoubleBuffered'.)</span>
<a name="line-261"></a><span class='hs-comment'>--</span>
<a name="line-262"></a><span class='hs-comment'>-- If you call this function multiple times before calling the matching</span>
<a name="line-263"></a><span class='hs-comment'>-- 'drawWindowEndPaint', the backing stores are pushed onto a stack.</span>
<a name="line-264"></a><span class='hs-comment'>-- 'drawWindowEndPaint' copies the topmost backing store onscreen, subtracts the</span>
<a name="line-265"></a><span class='hs-comment'>-- topmost region from all other regions in the stack, and pops the stack. All</span>
<a name="line-266"></a><span class='hs-comment'>-- drawing operations affect only the topmost backing store in the stack. One</span>
<a name="line-267"></a><span class='hs-comment'>-- matching call to 'drawWindowEndPaint' is required for each call to</span>
<a name="line-268"></a><span class='hs-comment'>-- 'drawWindowBeginPaintRegion'.</span>
<a name="line-269"></a><span class='hs-comment'>--</span>
<a name="line-270"></a><span class='hs-definition'>drawWindowBeginPaintRegion</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-271"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Region</span> <span class='hs-comment'>-- ^ @region@ - region you intend to draw to</span>
<a name="line-272"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-273"></a><span class='hs-definition'>drawWindowBeginPaintRegion</span> <span class='hs-varid'>self</span> <span class='hs-varid'>region</span> <span class='hs-keyglyph'>=</span>
<a name="line-274"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Region</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg2</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr2</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_begin_paint_region</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>argPtr2</span><span class='hs-layout'>)</span>
<a name="line-275"></a><span class='hs-comment'>{-# LINE 262 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-276"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-277"></a>     <span class='hs-varid'>region</span>
<a name="line-278"></a>
<a name="line-279"></a><a name="drawWindowEndPaint"></a><span class='hs-comment'>-- | Signal that drawing has finished.</span>
<a name="line-280"></a><span class='hs-comment'>--</span>
<a name="line-281"></a><span class='hs-comment'>-- * Indicates that the backing store created by the most recent call to</span>
<a name="line-282"></a><span class='hs-comment'>-- 'drawWindowBeginPaintRegion' should be copied onscreen and deleted, leaving the</span>
<a name="line-283"></a><span class='hs-comment'>-- next-most-recent backing store or no backing store at all as the active</span>
<a name="line-284"></a><span class='hs-comment'>-- paint region. See 'drawWindowBeginPaintRegion' for full details. It is an error</span>
<a name="line-285"></a><span class='hs-comment'>-- to call this function without a matching 'drawWindowBeginPaintRegion' first.</span>
<a name="line-286"></a><span class='hs-comment'>--</span>
<a name="line-287"></a><span class='hs-definition'>drawWindowEndPaint</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-288"></a><span class='hs-definition'>drawWindowEndPaint</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-289"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_end_paint</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-290"></a><span class='hs-comment'>{-# LINE 276 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-291"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-292"></a>
<a name="line-293"></a><a name="drawWindowInvalidateRect"></a><span class='hs-comment'>-- | A convenience wrapper around 'drawWindowInvalidateRegion' which invalidates a</span>
<a name="line-294"></a><span class='hs-comment'>-- rectangular region. See 'drawWindowInvalidateRegion' for details.</span>
<a name="line-295"></a><span class='hs-comment'>--</span>
<a name="line-296"></a><span class='hs-definition'>drawWindowInvalidateRect</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-297"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Rectangle</span> <span class='hs-comment'>-- ^ @rect@ - rectangle to invalidate</span>
<a name="line-298"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @invalidateChildren@ - whether to also invalidate</span>
<a name="line-299"></a>                      <span class='hs-comment'>-- child drawWindows</span>
<a name="line-300"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-301"></a><span class='hs-definition'>drawWindowInvalidateRect</span> <span class='hs-varid'>self</span> <span class='hs-varid'>rect</span> <span class='hs-varid'>invalidateChildren</span> <span class='hs-keyglyph'>=</span>
<a name="line-302"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>rect</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>rectPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-303"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_invalidate_rect</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-304"></a><span class='hs-comment'>{-# LINE 289 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-305"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-306"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castPtr</span> <span class='hs-varid'>rectPtr</span><span class='hs-layout'>)</span>
<a name="line-307"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromBool</span> <span class='hs-varid'>invalidateChildren</span><span class='hs-layout'>)</span>
<a name="line-308"></a>
<a name="line-309"></a><a name="drawWindowInvalidateRegion"></a><span class='hs-comment'>-- | Adds @region@ to the update area for @DrawWindow@. The update area is the</span>
<a name="line-310"></a><span class='hs-comment'>-- region that needs to be redrawn, or \"dirty region.\". During the</span>
<a name="line-311"></a><span class='hs-comment'>-- next idle period of the main look, an expose even for this region</span>
<a name="line-312"></a><span class='hs-comment'>-- will be created. An application would normally redraw</span>
<a name="line-313"></a><span class='hs-comment'>-- the contents of @DrawWindow@ in response to those expose events.</span>
<a name="line-314"></a><span class='hs-comment'>--</span>
<a name="line-315"></a><span class='hs-comment'>-- The @invalidateChildren@ parameter controls whether the region of each</span>
<a name="line-316"></a><span class='hs-comment'>-- child drawWindow that intersects @region@ will also be invalidated. If @False@,</span>
<a name="line-317"></a><span class='hs-comment'>-- then the update area for child drawWindows will remain unaffected.</span>
<a name="line-318"></a><span class='hs-comment'>--</span>
<a name="line-319"></a><span class='hs-definition'>drawWindowInvalidateRegion</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-320"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Region</span> <span class='hs-comment'>-- ^ @region@ - a "Region"</span>
<a name="line-321"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @invalidateChildren@ - @True@ to also invalidate child</span>
<a name="line-322"></a>                   <span class='hs-comment'>-- drawWindows</span>
<a name="line-323"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-324"></a><span class='hs-definition'>drawWindowInvalidateRegion</span> <span class='hs-varid'>self</span> <span class='hs-varid'>region</span> <span class='hs-varid'>invalidateChildren</span> <span class='hs-keyglyph'>=</span>
<a name="line-325"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Region</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg2</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr2</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_invalidate_region</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>argPtr2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-326"></a><span class='hs-comment'>{-# LINE 310 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-327"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-328"></a>     <span class='hs-varid'>region</span>
<a name="line-329"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromBool</span> <span class='hs-varid'>invalidateChildren</span><span class='hs-layout'>)</span>
<a name="line-330"></a>
<a name="line-331"></a><a name="drawWindowGetUpdateArea"></a><span class='hs-comment'>-- | Ask for the dirty region of this window.</span>
<a name="line-332"></a><span class='hs-comment'>--</span>
<a name="line-333"></a><span class='hs-comment'>-- * Transfers ownership of the update area from @DrawWindow@ to the caller of the</span>
<a name="line-334"></a><span class='hs-comment'>-- function. That is, after calling this function, @DrawWindow@ will no longer have</span>
<a name="line-335"></a><span class='hs-comment'>-- an invalid\/dirty region; the update area is removed from @DrawWindow@ and</span>
<a name="line-336"></a><span class='hs-comment'>-- handed to you. If this window has no update area, 'drawWindowGetUpdateArea' returns 'Nothing'.</span>
<a name="line-337"></a><span class='hs-comment'>--</span>
<a name="line-338"></a><span class='hs-definition'>drawWindowGetUpdateArea</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-339"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ returns the update area for @DrawWindow@</span>
<a name="line-340"></a><span class='hs-definition'>drawWindowGetUpdateArea</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-341"></a>  <span class='hs-varid'>reg</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_get_update_area</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-342"></a>  <span class='hs-keyword'>if</span> <span class='hs-varid'>reg</span><span class='hs-varop'>==</span><span class='hs-varid'>nullPtr</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>return</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>liftM</span> <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>makeNewRegion</span> <span class='hs-varid'>reg</span><span class='hs-layout'>)</span>
<a name="line-343"></a>
<a name="line-344"></a><a name="drawWindowFreezeUpdates"></a><span class='hs-comment'>-- | Temporarily freezes a drawWindow such that it won\'t receive expose events.</span>
<a name="line-345"></a><span class='hs-comment'>-- * The drawWindow will begin receiving expose events again when</span>
<a name="line-346"></a><span class='hs-comment'>-- 'drawWindowThawUpdates'</span>
<a name="line-347"></a><span class='hs-comment'>-- is called. If 'drawWindowFreezeUpdates' has been called more than once,</span>
<a name="line-348"></a><span class='hs-comment'>-- 'drawWindowThawUpdates' must be called an equal number of times to begin</span>
<a name="line-349"></a><span class='hs-comment'>-- processing exposes.</span>
<a name="line-350"></a><span class='hs-comment'>--</span>
<a name="line-351"></a><span class='hs-definition'>drawWindowFreezeUpdates</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-352"></a><span class='hs-definition'>drawWindowFreezeUpdates</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-353"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_freeze_updates</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-354"></a><span class='hs-comment'>{-# LINE 337 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-355"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-356"></a>
<a name="line-357"></a><a name="drawWindowThawUpdates"></a><span class='hs-comment'>-- | Thaws a drawWindow frozen with 'drawWindowFreezeUpdates'.</span>
<a name="line-358"></a><span class='hs-comment'>--</span>
<a name="line-359"></a><span class='hs-definition'>drawWindowThawUpdates</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-360"></a><span class='hs-definition'>drawWindowThawUpdates</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-361"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_thaw_updates</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-362"></a><span class='hs-comment'>{-# LINE 344 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-363"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-364"></a>
<a name="line-365"></a><a name="drawWindowProcessUpdates"></a><span class='hs-comment'>-- | Sends one or more expose events to @DrawWindow@.</span>
<a name="line-366"></a><span class='hs-comment'>--</span>
<a name="line-367"></a><span class='hs-comment'>-- * The areas in each expose</span>
<a name="line-368"></a><span class='hs-comment'>-- event will cover the entire update area for the window (see</span>
<a name="line-369"></a><span class='hs-comment'>-- 'drawWindowInvalidateRegion' for details). Normally Gtk calls</span>
<a name="line-370"></a><span class='hs-comment'>-- 'drawWindowProcessUpdates' on your behalf, so there's no need to call this</span>
<a name="line-371"></a><span class='hs-comment'>-- function unless you want to force expose events to be delivered immediately</span>
<a name="line-372"></a><span class='hs-comment'>-- and synchronously (vs. the usual case, where Gtk delivers them in an idle</span>
<a name="line-373"></a><span class='hs-comment'>-- handler). Occasionally this is useful to produce nicer scrolling behavior,</span>
<a name="line-374"></a><span class='hs-comment'>-- for example.</span>
<a name="line-375"></a><span class='hs-comment'>--</span>
<a name="line-376"></a><span class='hs-definition'>drawWindowProcessUpdates</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-377"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @updateChildren@ - whether to also process updates for child</span>
<a name="line-378"></a>          <span class='hs-comment'>-- drawWindows</span>
<a name="line-379"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-380"></a><span class='hs-definition'>drawWindowProcessUpdates</span> <span class='hs-varid'>self</span> <span class='hs-varid'>updateChildren</span> <span class='hs-keyglyph'>=</span>
<a name="line-381"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_process_updates</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-382"></a><span class='hs-comment'>{-# LINE 363 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-383"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-384"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromBool</span> <span class='hs-varid'>updateChildren</span><span class='hs-layout'>)</span>
<a name="line-385"></a>
<a name="line-386"></a>
<a name="line-387"></a><a name="drawWindowSetAcceptFocus"></a><span class='hs-comment'>-- | Setting @acceptFocus@ to @False@ hints the desktop environment that the</span>
<a name="line-388"></a><span class='hs-comment'>-- window doesn\'t want to receive input focus.</span>
<a name="line-389"></a><span class='hs-comment'>--</span>
<a name="line-390"></a><span class='hs-comment'>-- On X, it is the responsibility of the drawWindow manager to interpret this</span>
<a name="line-391"></a><span class='hs-comment'>-- hint. ICCCM-compliant drawWindow manager usually respect it.</span>
<a name="line-392"></a><span class='hs-comment'>--</span>
<a name="line-393"></a><span class='hs-comment'>-- * Available since Gdk version 2.4</span>
<a name="line-394"></a><span class='hs-comment'>--</span>
<a name="line-395"></a><span class='hs-definition'>drawWindowSetAcceptFocus</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-396"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @acceptFocus@ - @True@ if the drawWindow should receive input focus</span>
<a name="line-397"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-398"></a><span class='hs-definition'>drawWindowSetAcceptFocus</span> <span class='hs-varid'>self</span> <span class='hs-varid'>acceptFocus</span> <span class='hs-keyglyph'>=</span>
<a name="line-399"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_set_accept_focus</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-400"></a><span class='hs-comment'>{-# LINE 380 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-401"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-402"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromBool</span> <span class='hs-varid'>acceptFocus</span><span class='hs-layout'>)</span>
<a name="line-403"></a>
<a name="line-404"></a>
<a name="line-405"></a><a name="drawWindowShapeCombineMask"></a><span class='hs-comment'>-- | Applies a shape mask to window. Pixels in window corresponding to set</span>
<a name="line-406"></a><span class='hs-comment'>-- bits in the mask will be visible; pixels in window corresponding to</span>
<a name="line-407"></a><span class='hs-comment'>-- unset bits in the mask will be transparent. This gives a non-rectangular</span>
<a name="line-408"></a><span class='hs-comment'>-- window.</span>
<a name="line-409"></a><span class='hs-comment'>--</span>
<a name="line-410"></a><span class='hs-comment'>-- * If @mask@ is @Nothing@, the shape mask will be unset, and the x\/y parameters</span>
<a name="line-411"></a><span class='hs-comment'>-- are not used. The @mask@ must be a bitmap, that is, a 'Pixmap' of depth</span>
<a name="line-412"></a><span class='hs-comment'>-- one.</span>
<a name="line-413"></a><span class='hs-comment'>--</span>
<a name="line-414"></a><span class='hs-comment'>-- * On the X11 platform, this uses an X server extension which is widely</span>
<a name="line-415"></a><span class='hs-comment'>-- available on most common platforms, but not available on very old</span>
<a name="line-416"></a><span class='hs-comment'>-- X servers, and occasionally the implementation will be buggy.</span>
<a name="line-417"></a><span class='hs-comment'>-- On servers without the shape extension, this function will do nothing.</span>
<a name="line-418"></a><span class='hs-comment'>-- On the Win32 platform the functionality is always present.</span>
<a name="line-419"></a><span class='hs-comment'>--</span>
<a name="line-420"></a><span class='hs-comment'>-- * This function works on both toplevel and child windows.</span>
<a name="line-421"></a><span class='hs-comment'>--</span>
<a name="line-422"></a><span class='hs-definition'>drawWindowShapeCombineMask</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-423"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Pixmap</span> <span class='hs-comment'>-- ^ @mask@ - region of drawWindow to be non-transparent</span>
<a name="line-424"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @offsetX@ - X position of @shapeRegion@ in @DrawWindow@</span>
<a name="line-425"></a>                   <span class='hs-comment'>-- coordinates</span>
<a name="line-426"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @offsetY@ - Y position of @shapeRegion@ in @DrawWindow@</span>
<a name="line-427"></a>                   <span class='hs-comment'>-- coordinates</span>
<a name="line-428"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-429"></a><span class='hs-definition'>drawWindowShapeCombineMask</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-conid'>Pixmap</span> <span class='hs-varid'>mask</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varid'>offsetX</span> <span class='hs-varid'>offsetY</span> <span class='hs-keyglyph'>=</span>
<a name="line-430"></a>  <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>mask</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>maskPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-431"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_shape_combine_mask</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-432"></a><span class='hs-comment'>{-# LINE 411 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-433"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-434"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castPtr</span> <span class='hs-varid'>maskPtr</span><span class='hs-layout'>)</span>
<a name="line-435"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetX</span><span class='hs-layout'>)</span>
<a name="line-436"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetY</span><span class='hs-layout'>)</span>
<a name="line-437"></a><span class='hs-definition'>drawWindowShapeCombineMask</span> <span class='hs-varid'>self</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>offsetX</span> <span class='hs-varid'>offsetY</span> <span class='hs-keyglyph'>=</span>
<a name="line-438"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_shape_combine_mask</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-439"></a><span class='hs-comment'>{-# LINE 417 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-440"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-441"></a>     <span class='hs-varid'>nullPtr</span>
<a name="line-442"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetX</span><span class='hs-layout'>)</span>
<a name="line-443"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetY</span><span class='hs-layout'>)</span>
<a name="line-444"></a>
<a name="line-445"></a>
<a name="line-446"></a><a name="drawWindowShapeCombineRegion"></a><span class='hs-comment'>-- | Makes pixels in @DrawWindow@ outside @shapeRegion@ transparent.</span>
<a name="line-447"></a><span class='hs-comment'>--</span>
<a name="line-448"></a><span class='hs-comment'>-- * Makes pixels in @DrawWindow@ outside @shapeRegion@ transparent, so that</span>
<a name="line-449"></a><span class='hs-comment'>-- the window may be nonrectangular.</span>
<a name="line-450"></a><span class='hs-comment'>--</span>
<a name="line-451"></a><span class='hs-comment'>-- If @shapeRegion@ is 'Nothing', the shape will be unset, so the whole</span>
<a name="line-452"></a><span class='hs-comment'>-- 'DrawWindow' will be opaque again. The parameters @offsetX@ and @offsetY@</span>
<a name="line-453"></a><span class='hs-comment'>-- are ignored if @shapeRegion@ is 'Nothing'.</span>
<a name="line-454"></a><span class='hs-comment'>--</span>
<a name="line-455"></a><span class='hs-comment'>-- On the X11 platform, this uses an X server extension which is widely</span>
<a name="line-456"></a><span class='hs-comment'>-- available on most common platforms, but not available on very old X servers,</span>
<a name="line-457"></a><span class='hs-comment'>-- and occasionally the implementation will be buggy. On servers without the</span>
<a name="line-458"></a><span class='hs-comment'>-- shape extension, this function will do nothing.</span>
<a name="line-459"></a><span class='hs-comment'>--</span>
<a name="line-460"></a><span class='hs-comment'>-- This function works on both toplevel and child drawWindows.</span>
<a name="line-461"></a><span class='hs-comment'>--</span>
<a name="line-462"></a><span class='hs-definition'>drawWindowShapeCombineRegion</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-463"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>Region</span> <span class='hs-comment'>-- ^ @shapeRegion@ - region of drawWindow to be non-transparent</span>
<a name="line-464"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @offsetX@ - X position of @shapeRegion@ in @DrawWindow@</span>
<a name="line-465"></a>                   <span class='hs-comment'>-- coordinates</span>
<a name="line-466"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @offsetY@ - Y position of @shapeRegion@ in @DrawWindow@</span>
<a name="line-467"></a>                   <span class='hs-comment'>-- coordinates</span>
<a name="line-468"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-469"></a><span class='hs-definition'>drawWindowShapeCombineRegion</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>reg</span><span class='hs-layout'>)</span> <span class='hs-varid'>offsetX</span> <span class='hs-varid'>offsetY</span> <span class='hs-keyglyph'>=</span>
<a name="line-470"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Region</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg2</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr2</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_shape_combine_region</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>argPtr2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-471"></a><span class='hs-comment'>{-# LINE 448 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-472"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-473"></a>     <span class='hs-varid'>reg</span>
<a name="line-474"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetX</span><span class='hs-layout'>)</span>
<a name="line-475"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetY</span><span class='hs-layout'>)</span>
<a name="line-476"></a><span class='hs-definition'>drawWindowShapeCombineRegion</span> <span class='hs-varid'>self</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>offsetX</span> <span class='hs-varid'>offsetY</span> <span class='hs-keyglyph'>=</span>
<a name="line-477"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Region</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg2</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr2</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_shape_combine_region</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>argPtr2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-478"></a><span class='hs-comment'>{-# LINE 454 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-479"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-480"></a>     <span class='hs-layout'>(</span><span class='hs-conid'>Region</span> <span class='hs-varid'>nullForeignPtr</span><span class='hs-layout'>)</span>
<a name="line-481"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetX</span><span class='hs-layout'>)</span>
<a name="line-482"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>offsetY</span><span class='hs-layout'>)</span>
<a name="line-483"></a>
<a name="line-484"></a><a name="drawWindowSetChildShapes"></a><span class='hs-comment'>-- | Sets the shape mask of @DrawWindow@ to the union of shape masks for all</span>
<a name="line-485"></a><span class='hs-comment'>-- children of @DrawWindow@, ignoring the shape mask of @DrawWindow@ itself. Contrast</span>
<a name="line-486"></a><span class='hs-comment'>-- with 'drawWindowMergeChildShapes' which includes the shape mask of @DrawWindow@ in</span>
<a name="line-487"></a><span class='hs-comment'>-- the masks to be merged.</span>
<a name="line-488"></a><span class='hs-comment'>--</span>
<a name="line-489"></a><span class='hs-definition'>drawWindowSetChildShapes</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-490"></a><span class='hs-definition'>drawWindowSetChildShapes</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-491"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_set_child_shapes</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-492"></a><span class='hs-comment'>{-# LINE 467 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-493"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-494"></a>
<a name="line-495"></a><a name="drawWindowMergeChildShapes"></a><span class='hs-comment'>-- | Merges the shape masks for any child drawWindows into the shape mask for</span>
<a name="line-496"></a><span class='hs-comment'>-- @DrawWindow@. i.e. the union of all masks for @DrawWindow@ and its children will</span>
<a name="line-497"></a><span class='hs-comment'>-- become the new mask for @DrawWindow@. See 'drawWindowShapeCombineMask'.</span>
<a name="line-498"></a><span class='hs-comment'>--</span>
<a name="line-499"></a><span class='hs-comment'>-- This function is distinct from 'drawWindowSetChildShapes' because it includes</span>
<a name="line-500"></a><span class='hs-comment'>-- @DrawWindow@'s shape mask in the set of shapes to be merged.</span>
<a name="line-501"></a><span class='hs-comment'>--</span>
<a name="line-502"></a><span class='hs-definition'>drawWindowMergeChildShapes</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-503"></a><span class='hs-definition'>drawWindowMergeChildShapes</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-504"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_merge_child_shapes</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-505"></a><span class='hs-comment'>{-# LINE 479 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-506"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-507"></a>
<a name="line-508"></a><a name="drawWindowGetPointer"></a><span class='hs-comment'>-- Superseded by 'drawWindowGetPointerPos', won't be removed.</span>
<a name="line-509"></a><span class='hs-comment'>-- Obtains the current pointer position and modifier state.</span>
<a name="line-510"></a><span class='hs-comment'>--</span>
<a name="line-511"></a><span class='hs-comment'>-- * The position is</span>
<a name="line-512"></a><span class='hs-comment'>-- given in coordinates relative to the given window.</span>
<a name="line-513"></a><span class='hs-comment'>--</span>
<a name="line-514"></a><span class='hs-comment'>-- * The return value is @Just (same, x, y, mod)@ where @same@ is @True@</span>
<a name="line-515"></a><span class='hs-comment'>-- if the passed in window is the window over which the mouse currently</span>
<a name="line-516"></a><span class='hs-comment'>-- resides.</span>
<a name="line-517"></a><span class='hs-comment'>--</span>
<a name="line-518"></a><span class='hs-comment'>-- * The return value is @Nothing@ if the mouse cursor is over a different</span>
<a name="line-519"></a><span class='hs-comment'>-- application.</span>
<a name="line-520"></a><span class='hs-comment'>--</span>
<a name="line-521"></a><span class='hs-definition'>drawWindowGetPointer</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-522"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-conid'>Bool</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Modifier</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-523"></a><span class='hs-definition'>drawWindowGetPointer</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-524"></a>  <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>xPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>yPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>mPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-525"></a>  <span class='hs-varid'>winPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_get_pointer</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-526"></a>     <span class='hs-varid'>xPtr</span> <span class='hs-varid'>yPtr</span> <span class='hs-varid'>mPtr</span>
<a name="line-527"></a>  <span class='hs-keyword'>if</span> <span class='hs-varid'>winPtr</span><span class='hs-varop'>==</span><span class='hs-varid'>nullPtr</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>return</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyword'>else</span> <span class='hs-keyword'>do</span>
<a name="line-528"></a>  <span class='hs-varid'>same</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-layout'>(</span><span class='hs-varid'>unDrawWindow</span> <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>dPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-529"></a>          <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>winPtr</span><span class='hs-varop'>==</span><span class='hs-varid'>dPtr</span><span class='hs-layout'>)</span>
<a name="line-530"></a>  <span class='hs-varid'>x</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>xPtr</span>
<a name="line-531"></a>  <span class='hs-varid'>y</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>yPtr</span>
<a name="line-532"></a>  <span class='hs-varid'>m</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>mPtr</span>
<a name="line-533"></a>  <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>same</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>y</span><span class='hs-layout'>,</span>
<a name="line-534"></a>                <span class='hs-varid'>toFlags</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-535"></a>
<a name="line-536"></a><a name="drawWindowGetPointerPos"></a><span class='hs-comment'>-- | Obtains the current pointer position and modifier state.</span>
<a name="line-537"></a><span class='hs-comment'>--</span>
<a name="line-538"></a><span class='hs-comment'>-- * The position is</span>
<a name="line-539"></a><span class='hs-comment'>-- given in coordinates relative to the given window.</span>
<a name="line-540"></a><span class='hs-comment'>--</span>
<a name="line-541"></a><span class='hs-comment'>-- * The return value is @(Just win, x, y, mod)@ where @win@ is the</span>
<a name="line-542"></a><span class='hs-comment'>-- window over which the mouse currently resides and @mod@ denotes</span>
<a name="line-543"></a><span class='hs-comment'>-- the keyboard modifiers currently being depressed.</span>
<a name="line-544"></a><span class='hs-comment'>--</span>
<a name="line-545"></a><span class='hs-comment'>-- * The return value is @Nothing@ for the window if the mouse cursor is</span>
<a name="line-546"></a><span class='hs-comment'>-- not over a known window.</span>
<a name="line-547"></a><span class='hs-comment'>--</span>
<a name="line-548"></a><span class='hs-definition'>drawWindowGetPointerPos</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindowClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-549"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</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-550"></a><span class='hs-definition'>drawWindowGetPointerPos</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-551"></a>  <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>xPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>yPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>mPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-552"></a>  <span class='hs-varid'>winPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_get_pointer</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-553"></a>     <span class='hs-varid'>xPtr</span> <span class='hs-varid'>yPtr</span> <span class='hs-varid'>mPtr</span>
<a name="line-554"></a>  <span class='hs-varid'>x</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>xPtr</span>
<a name="line-555"></a>  <span class='hs-varid'>y</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>yPtr</span>
<a name="line-556"></a>  <span class='hs-varid'>m</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>mPtr</span>
<a name="line-557"></a>  <span class='hs-varid'>mWin</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>winPtr</span><span class='hs-varop'>==</span><span class='hs-varid'>nullPtr</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>return</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>liftM</span> <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
<a name="line-558"></a>    <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkDrawWindow</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varid'>winPtr</span><span class='hs-layout'>)</span>
<a name="line-559"></a>  <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>mWin</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>y</span><span class='hs-layout'>,</span> <span class='hs-varid'>toFlags</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-560"></a>
<a name="line-561"></a>
<a name="line-562"></a><a name="drawWindowGetOrigin"></a><span class='hs-comment'>-- | Obtains the position of a window in screen coordinates.</span>
<a name="line-563"></a><span class='hs-comment'>--</span>
<a name="line-564"></a><span class='hs-comment'>-- You can use this to help convert a position between screen coordinates and</span>
<a name="line-565"></a><span class='hs-comment'>-- local 'DrawWindow' relative coordinates.</span>
<a name="line-566"></a><span class='hs-comment'>--</span>
<a name="line-567"></a><span class='hs-definition'>drawWindowGetOrigin</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>DrawWindow</span>
<a name="line-568"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ @(x, y)@</span>
<a name="line-569"></a><span class='hs-definition'>drawWindowGetOrigin</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-570"></a>  <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>xPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-571"></a>  <span class='hs-varid'>alloca</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>yPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-572"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>DrawWindow</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gdk_window_get_origin</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-573"></a><span class='hs-comment'>{-# LINE 546 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-574"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toDrawWindow</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-575"></a>    <span class='hs-varid'>xPtr</span>
<a name="line-576"></a>    <span class='hs-varid'>yPtr</span>
<a name="line-577"></a>  <span class='hs-varid'>x</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>xPtr</span>
<a name="line-578"></a>  <span class='hs-varid'>y</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>yPtr</span>
<a name="line-579"></a>  <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>x</span><span class='hs-layout'>,</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>y</span><span class='hs-layout'>)</span>
<a name="line-580"></a>
<a name="line-581"></a>
<a name="line-582"></a><a name="drawWindowForeignNew"></a><span class='hs-comment'>-- | Get the handle to an exising window of the windowing system. The</span>
<a name="line-583"></a><span class='hs-comment'>-- passed-in handle is a reference to a native window, that is, an Xlib XID</span>
<a name="line-584"></a><span class='hs-comment'>-- for X windows and a HWND for Win32.</span>
<a name="line-585"></a><span class='hs-definition'>drawWindowForeignNew</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>NativeWindowId</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span>
<a name="line-586"></a><span class='hs-definition'>drawWindowForeignNew</span> <span class='hs-varid'>anid</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>maybeNull</span> <span class='hs-layout'>(</span><span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkDrawWindow</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span>
<a name="line-587"></a>  <span class='hs-varid'>liftM</span> <span class='hs-varid'>castPtr</span> <span class='hs-varop'>$</span> <span class='hs-varid'>gdk_window_foreign_new</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromNativeWindowId</span> <span class='hs-varid'>anid</span><span class='hs-layout'>)</span>
<a name="line-588"></a>
<a name="line-589"></a><a name="drawWindowGetDefaultRootWindow"></a><span class='hs-comment'>-- | Obtains the root window (parent all other windows are inside) for the default display and screen.</span>
<a name="line-590"></a><span class='hs-definition'>drawWindowGetDefaultRootWindow</span> <span class='hs-keyglyph'>::</span>
<a name="line-591"></a>  <span class='hs-conid'>IO</span> <span class='hs-conid'>DrawWindow</span> <span class='hs-comment'>-- ^ returns the default root window</span>
<a name="line-592"></a><span class='hs-definition'>drawWindowGetDefaultRootWindow</span> <span class='hs-keyglyph'>=</span>
<a name="line-593"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkDrawWindow</span> <span class='hs-varop'>$</span>
<a name="line-594"></a>  <span class='hs-varid'>gdk_get_default_root_window</span>
<a name="line-595"></a><span class='hs-comment'>{-# LINE 567 "./Graphics/UI/Gtk/Gdk/DrawWindow.chs" #-}</span>
<a name="line-596"></a>
<a name="line-597"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_get_state"</span>
<a name="line-598"></a>  <span class='hs-varid'>gdk_window_get_state</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-599"></a>
<a name="line-600"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_scroll"</span>
<a name="line-601"></a>  <span class='hs-varid'>gdk_window_scroll</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-602"></a>
<a name="line-603"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_clear"</span>
<a name="line-604"></a>  <span class='hs-varid'>gdk_window_clear</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-605"></a>
<a name="line-606"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_clear_area"</span>
<a name="line-607"></a>  <span class='hs-varid'>gdk_window_clear_area</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-608"></a>
<a name="line-609"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_clear_area_e"</span>
<a name="line-610"></a>  <span class='hs-varid'>gdk_window_clear_area_e</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-611"></a>
<a name="line-612"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_raise"</span>
<a name="line-613"></a>  <span class='hs-varid'>gdk_window_raise</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-614"></a>
<a name="line-615"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_lower"</span>
<a name="line-616"></a>  <span class='hs-varid'>gdk_window_lower</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-617"></a>
<a name="line-618"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_register_dnd"</span>
<a name="line-619"></a>  <span class='hs-varid'>gdk_window_register_dnd</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-620"></a>
<a name="line-621"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_begin_paint_rect"</span>
<a name="line-622"></a>  <span class='hs-varid'>gdk_window_begin_paint_rect</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-623"></a>
<a name="line-624"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_begin_paint_region"</span>
<a name="line-625"></a>  <span class='hs-varid'>gdk_window_begin_paint_region</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-626"></a>
<a name="line-627"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_end_paint"</span>
<a name="line-628"></a>  <span class='hs-varid'>gdk_window_end_paint</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-629"></a>
<a name="line-630"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_invalidate_rect"</span>
<a name="line-631"></a>  <span class='hs-varid'>gdk_window_invalidate_rect</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-632"></a>
<a name="line-633"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_invalidate_region"</span>
<a name="line-634"></a>  <span class='hs-varid'>gdk_window_invalidate_region</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-635"></a>
<a name="line-636"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_get_update_area"</span>
<a name="line-637"></a>  <span class='hs-varid'>gdk_window_get_update_area</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-638"></a>
<a name="line-639"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_freeze_updates"</span>
<a name="line-640"></a>  <span class='hs-varid'>gdk_window_freeze_updates</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-641"></a>
<a name="line-642"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_thaw_updates"</span>
<a name="line-643"></a>  <span class='hs-varid'>gdk_window_thaw_updates</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-644"></a>
<a name="line-645"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_process_updates"</span>
<a name="line-646"></a>  <span class='hs-varid'>gdk_window_process_updates</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-647"></a>
<a name="line-648"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_set_accept_focus"</span>
<a name="line-649"></a>  <span class='hs-varid'>gdk_window_set_accept_focus</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-650"></a>
<a name="line-651"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_shape_combine_mask"</span>
<a name="line-652"></a>  <span class='hs-varid'>gdk_window_shape_combine_mask</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-653"></a>
<a name="line-654"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_shape_combine_region"</span>
<a name="line-655"></a>  <span class='hs-varid'>gdk_window_shape_combine_region</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Region</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-656"></a>
<a name="line-657"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_set_child_shapes"</span>
<a name="line-658"></a>  <span class='hs-varid'>gdk_window_set_child_shapes</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-659"></a>
<a name="line-660"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_merge_child_shapes"</span>
<a name="line-661"></a>  <span class='hs-varid'>gdk_window_merge_child_shapes</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-662"></a>
<a name="line-663"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_get_pointer"</span>
<a name="line-664"></a>  <span class='hs-varid'>gdk_window_get_pointer</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-665"></a>
<a name="line-666"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_get_origin"</span>
<a name="line-667"></a>  <span class='hs-varid'>gdk_window_get_origin</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-668"></a>
<a name="line-669"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_window_foreign_new"</span>
<a name="line-670"></a>  <span class='hs-varid'>gdk_window_foreign_new</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>CUInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-671"></a>
<a name="line-672"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gdk_get_default_root_window"</span>
<a name="line-673"></a>  <span class='hs-varid'>gdk_get_default_root_window</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>DrawWindow</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
</pre></body>
</html>