Sophie

Sophie

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

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/General/Clipboard.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/General/Clipboard.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) Clipboard</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: 26 March 2007</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- Copyright (C) 2007 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'>-- I removed all definitions for the clipboard by Juergen Nicklisch since</span>
<a name="line-23"></a><span class='hs-comment'>-- the way the clipboards were selected didn't tie in with the Selection</span>
<a name="line-24"></a><span class='hs-comment'>-- module.</span>
<a name="line-25"></a><span class='hs-comment'>--</span>
<a name="line-26"></a><span class='hs-comment'>-- |</span>
<a name="line-27"></a><span class='hs-comment'>-- Maintainer : gtk2hs-users@lists.sourceforge.net</span>
<a name="line-28"></a><span class='hs-comment'>-- Stability : provisional</span>
<a name="line-29"></a><span class='hs-comment'>-- Portability : portable (depends on GHC)</span>
<a name="line-30"></a><span class='hs-comment'>--</span>
<a name="line-31"></a><span class='hs-comment'>-- Storing data on clipboards</span>
<a name="line-32"></a><span class='hs-comment'>--</span>
<a name="line-33"></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'>General</span><span class='hs-varop'>.</span><span class='hs-conid'>Clipboard</span> <span class='hs-layout'>(</span>
<a name="line-34"></a>
<a name="line-35"></a><span class='hs-comment'>-- * Detail</span>
<a name="line-36"></a><span class='hs-comment'>--</span>
<a name="line-37"></a><span class='hs-comment'>-- | The 'Clipboard' object represents a clipboard of data shared between</span>
<a name="line-38"></a><span class='hs-comment'>-- different processes or between different widgets in the same process. Each</span>
<a name="line-39"></a><span class='hs-comment'>-- clipboard is identified by a 'SelectionTag' which itself is an 'Atom'. The</span>
<a name="line-40"></a><span class='hs-comment'>-- default clipboard corresponds to the 'selectionClipboard' tag; another</span>
<a name="line-41"></a><span class='hs-comment'>-- commonly used clipboard is the 'selectionPrimary' tag, which, in X,</span>
<a name="line-42"></a><span class='hs-comment'>-- traditionally contains the currently selected text.</span>
<a name="line-43"></a><span class='hs-comment'>--</span>
<a name="line-44"></a><span class='hs-comment'>-- To support having a number of different formats on the clipboard at the</span>
<a name="line-45"></a><span class='hs-comment'>-- same time, the clipboard mechanism allows providing callbacks instead of</span>
<a name="line-46"></a><span class='hs-comment'>-- the actual data. When you set the contents of the clipboard, you can either</span>
<a name="line-47"></a><span class='hs-comment'>-- supply the data directly (via functions like 'clipboardSetText'), or you</span>
<a name="line-48"></a><span class='hs-comment'>-- can supply a callback to be called at a later time when the data is needed</span>
<a name="line-49"></a><span class='hs-comment'>-- (via 'clipboardSetWithData'). Providing a callback also avoids having to</span>
<a name="line-50"></a><span class='hs-comment'>-- make copies of the data when it is not needed.</span>
<a name="line-51"></a><span class='hs-comment'>--</span>
<a name="line-52"></a><span class='hs-comment'>-- Setting clipboard data is done using 'clipboardSetWithData' and</span>
<a name="line-53"></a><span class='hs-comment'>-- 'clipboardSetWithOwner'. Both functions are quite similar; the choice</span>
<a name="line-54"></a><span class='hs-comment'>-- between the two depends mostly on which is more convenient in a particular</span>
<a name="line-55"></a><span class='hs-comment'>-- situation. The former is most useful when you want to have a blob of data</span>
<a name="line-56"></a><span class='hs-comment'>-- with callbacks to convert it into the various data types that you</span>
<a name="line-57"></a><span class='hs-comment'>-- advertise. When the @clearFunc@ you provided is called, you simply free the</span>
<a name="line-58"></a><span class='hs-comment'>-- data blob. The latter is more useful when the contents of clipboard reflect</span>
<a name="line-59"></a><span class='hs-comment'>-- the internal state of a 'GObject' (As an example, for the</span>
<a name="line-60"></a><span class='hs-comment'>-- 'selectionPrimary' clipboard, when an entry widget provides the clipboard's</span>
<a name="line-61"></a><span class='hs-comment'>-- contents the contents are simply the text within the selected region.) If</span>
<a name="line-62"></a><span class='hs-comment'>-- the contents change, the entry widget can call 'clipboardSetWithOwner' to</span>
<a name="line-63"></a><span class='hs-comment'>-- update the timestamp for clipboard ownership, without having to worry about</span>
<a name="line-64"></a><span class='hs-comment'>-- @clearFunc@ being called.</span>
<a name="line-65"></a><span class='hs-comment'>--</span>
<a name="line-66"></a><span class='hs-comment'>-- Requesting the data from the clipboard is essentially asynchronous. If the</span>
<a name="line-67"></a><span class='hs-comment'>-- contents of the clipboard are provided within the same process, then a</span>
<a name="line-68"></a><span class='hs-comment'>-- direct function call will be made to retrieve the data, but if they are</span>
<a name="line-69"></a><span class='hs-comment'>-- provided by another process, then the data needs to be retrieved from the</span>
<a name="line-70"></a><span class='hs-comment'>-- other process, which may take some time. To avoid blocking the user</span>
<a name="line-71"></a><span class='hs-comment'>-- interface, the call to request the selection, 'clipboardRequestContents'</span>
<a name="line-72"></a><span class='hs-comment'>-- takes a callback that will be called when the contents are received (or</span>
<a name="line-73"></a><span class='hs-comment'>-- when the request fails.) If you don't want to deal with providing a</span>
<a name="line-74"></a><span class='hs-comment'>-- separate callback, you can also use 'clipboardWaitForContents'. What this</span>
<a name="line-75"></a><span class='hs-comment'>-- does is run the GLib main loop recursively waiting for the contents. This</span>
<a name="line-76"></a><span class='hs-comment'>-- can simplify the code flow, but you still have to be aware that other</span>
<a name="line-77"></a><span class='hs-comment'>-- callbacks in your program can be called while this recursive mainloop is</span>
<a name="line-78"></a><span class='hs-comment'>-- running.</span>
<a name="line-79"></a><span class='hs-comment'>--</span>
<a name="line-80"></a><span class='hs-comment'>-- Along with the functions to get the clipboard contents as an arbitrary data</span>
<a name="line-81"></a><span class='hs-comment'>-- chunk, there are also functions to retrieve it as text,</span>
<a name="line-82"></a><span class='hs-comment'>-- 'clipboardRequestText' and 'clipboardWaitForText'. These functions take</span>
<a name="line-83"></a><span class='hs-comment'>-- care of determining which formats are advertised by the clipboard provider,</span>
<a name="line-84"></a><span class='hs-comment'>-- asking for the clipboard in the best available format and converting the</span>
<a name="line-85"></a><span class='hs-comment'>-- its content.</span>
<a name="line-86"></a>
<a name="line-87"></a><span class='hs-comment'>-- * Class Hierarchy</span>
<a name="line-88"></a><span class='hs-comment'>--</span>
<a name="line-89"></a><span class='hs-comment'>-- |</span>
<a name="line-90"></a><span class='hs-comment'>-- @</span>
<a name="line-91"></a><span class='hs-comment'>-- | 'GObject'</span>
<a name="line-92"></a><span class='hs-comment'>-- | +----Clipboard</span>
<a name="line-93"></a><span class='hs-comment'>-- @</span>
<a name="line-94"></a>
<a name="line-95"></a><span class='hs-comment'>-- * Types</span>
<a name="line-96"></a>  <span class='hs-conid'>Clipboard</span><span class='hs-layout'>,</span>
<a name="line-97"></a>  <span class='hs-conid'>ClipboardClass</span><span class='hs-layout'>,</span>
<a name="line-98"></a>  <span class='hs-varid'>castToClipboard</span><span class='hs-layout'>,</span> <span class='hs-varid'>gTypeClipboard</span><span class='hs-layout'>,</span>
<a name="line-99"></a>  <span class='hs-varid'>toClipboard</span><span class='hs-layout'>,</span>
<a name="line-100"></a>
<a name="line-101"></a><span class='hs-comment'>-- * Constants</span>
<a name="line-102"></a>  <span class='hs-varid'>selectionPrimary</span><span class='hs-layout'>,</span>
<a name="line-103"></a>  <span class='hs-varid'>selectionSecondary</span><span class='hs-layout'>,</span>
<a name="line-104"></a>  <span class='hs-varid'>selectionClipboard</span><span class='hs-layout'>,</span>
<a name="line-105"></a>
<a name="line-106"></a><span class='hs-comment'>-- * Methods</span>
<a name="line-107"></a>  <span class='hs-varid'>clipboardGet</span><span class='hs-layout'>,</span>
<a name="line-108"></a>
<a name="line-109"></a>  <span class='hs-varid'>clipboardGetForDisplay</span><span class='hs-layout'>,</span>
<a name="line-110"></a>  <span class='hs-varid'>clipboardGetDisplay</span><span class='hs-layout'>,</span>
<a name="line-111"></a>
<a name="line-112"></a>  <span class='hs-varid'>clipboardSetWithData</span><span class='hs-layout'>,</span>
<a name="line-113"></a><span class='hs-comment'>{-
<a name="line-114"></a>  clipboardSetWithOwner,
<a name="line-115"></a>  clipboardGetOwner,
<a name="line-116"></a>  clipboardClear,
<a name="line-117"></a>-}</span>
<a name="line-118"></a>  <span class='hs-varid'>clipboardSetText</span><span class='hs-layout'>,</span>
<a name="line-119"></a>
<a name="line-120"></a>  <span class='hs-varid'>clipboardSetImage</span><span class='hs-layout'>,</span>
<a name="line-121"></a>
<a name="line-122"></a>  <span class='hs-varid'>clipboardRequestContents</span><span class='hs-layout'>,</span>
<a name="line-123"></a>  <span class='hs-varid'>clipboardRequestText</span><span class='hs-layout'>,</span>
<a name="line-124"></a>
<a name="line-125"></a>  <span class='hs-varid'>clipboardRequestImage</span><span class='hs-layout'>,</span>
<a name="line-126"></a>
<a name="line-127"></a>
<a name="line-128"></a>  <span class='hs-varid'>clipboardRequestTargets</span><span class='hs-layout'>,</span>
<a name="line-129"></a>
<a name="line-130"></a>  <span class='hs-varid'>clipboardRequestRichText</span><span class='hs-layout'>,</span>
<a name="line-131"></a>
<a name="line-132"></a>
<a name="line-133"></a>
<a name="line-134"></a>  <span class='hs-varid'>clipboardSetCanStore</span><span class='hs-layout'>,</span>
<a name="line-135"></a>  <span class='hs-varid'>clipboardStore</span><span class='hs-layout'>,</span>
<a name="line-136"></a>
<a name="line-137"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-138"></a>
<a name="line-139"></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-140"></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'>UTFString</span>
<a name="line-141"></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-142"></a><span class='hs-comment'>{-# LINE 141 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-143"></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'>DNDTypes</span> <span class='hs-layout'>(</span><span class='hs-conid'>SelectionTag</span><span class='hs-layout'>,</span> <span class='hs-conid'>TargetTag</span><span class='hs-layout'>,</span>
<a name="line-144"></a>  <span class='hs-varid'>atomNew</span><span class='hs-layout'>,</span> <span class='hs-conid'>Atom</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-145"></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'>Selection</span> <span class='hs-layout'>(</span><span class='hs-conid'>InfoId</span><span class='hs-layout'>,</span> <span class='hs-conid'>SelectionDataM</span><span class='hs-layout'>)</span>
<a name="line-146"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>General</span><span class='hs-varop'>.</span><span class='hs-conid'>Structs</span> <span class='hs-layout'>(</span>
<a name="line-147"></a>  <span class='hs-varid'>selectionPrimary</span><span class='hs-layout'>,</span>
<a name="line-148"></a>  <span class='hs-varid'>selectionSecondary</span><span class='hs-layout'>,</span>
<a name="line-149"></a>  <span class='hs-varid'>selectionClipboard</span><span class='hs-layout'>,</span>
<a name="line-150"></a>  <span class='hs-varid'>withTargetEntries</span><span class='hs-layout'>)</span>
<a name="line-151"></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-152"></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-varop'>.</span><span class='hs-conid'>Trans</span> <span class='hs-layout'>(</span> <span class='hs-varid'>liftIO</span> <span class='hs-layout'>)</span>
<a name="line-153"></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-varop'>.</span><span class='hs-conid'>Reader</span> <span class='hs-layout'>(</span><span class='hs-varid'>runReaderT</span><span class='hs-layout'>,</span> <span class='hs-varid'>ask</span><span class='hs-layout'>)</span>
<a name="line-154"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>IORef</span> <span class='hs-layout'>(</span> <span class='hs-varid'>newIORef</span><span class='hs-layout'>,</span> <span class='hs-varid'>readIORef</span><span class='hs-layout'>,</span> <span class='hs-varid'>writeIORef</span> <span class='hs-layout'>)</span>
<a name="line-155"></a>
<a name="line-156"></a>
<a name="line-157"></a><span class='hs-comment'>{-# LINE 155 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-158"></a>
<a name="line-159"></a>
<a name="line-160"></a><span class='hs-comment'>--------------------</span>
<a name="line-161"></a><span class='hs-comment'>-- Methods</span>
<a name="line-162"></a>
<a name="line-163"></a><a name="clipboardGet"></a><span class='hs-comment'>-- %hash c:d8d1 d:febf</span>
<a name="line-164"></a><span class='hs-comment'>-- | Returns the clipboard object for the given selection. See</span>
<a name="line-165"></a><span class='hs-comment'>-- 'clipboardGetForDisplay' for complete details.</span>
<a name="line-166"></a><span class='hs-comment'>--</span>
<a name="line-167"></a><span class='hs-definition'>clipboardGet</span> <span class='hs-keyglyph'>::</span>
<a name="line-168"></a>  <span class='hs-conid'>SelectionTag</span> <span class='hs-comment'>-- ^ @selection@ - a 'SelectionTag' which</span>
<a name="line-169"></a>                 <span class='hs-comment'>-- identifies the clipboard to use.</span>
<a name="line-170"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Clipboard</span> <span class='hs-comment'>-- ^ returns the appropriate clipboard object. If no</span>
<a name="line-171"></a>                 <span class='hs-comment'>-- clipboard already exists, a new one will be created. Once a</span>
<a name="line-172"></a>                 <span class='hs-comment'>-- clipboard object has been created, it is persistent.</span>
<a name="line-173"></a><span class='hs-definition'>clipboardGet</span> <span class='hs-layout'>(</span><span class='hs-conid'>Atom</span> <span class='hs-varid'>selection</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-174"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkClipboard</span> <span class='hs-varop'>$</span>
<a name="line-175"></a>  <span class='hs-varid'>gtk_clipboard_get</span> <span class='hs-varid'>selection</span>
<a name="line-176"></a>
<a name="line-177"></a>
<a name="line-178"></a><a name="clipboardGetForDisplay"></a><span class='hs-comment'>-- %hash c:251 d:39fa</span>
<a name="line-179"></a><span class='hs-comment'>-- | Returns the clipboard object for the given selection. Cut\/copy\/paste</span>
<a name="line-180"></a><span class='hs-comment'>-- menu items and keyboard shortcuts should use the default clipboard,</span>
<a name="line-181"></a><span class='hs-comment'>-- returned by passing 'selectionClipboard' for @selection@. The</span>
<a name="line-182"></a><span class='hs-comment'>-- currently-selected object or text should be provided on the clipboard</span>
<a name="line-183"></a><span class='hs-comment'>-- identified by 'selectionPrimary'. Cut\/copy\/paste menu items conceptually</span>
<a name="line-184"></a><span class='hs-comment'>-- copy the contents of the 'selectionPrimary' clipboard to the default</span>
<a name="line-185"></a><span class='hs-comment'>-- clipboard, i.e. they copy the selection to what the user sees as the</span>
<a name="line-186"></a><span class='hs-comment'>-- clipboard.</span>
<a name="line-187"></a><span class='hs-comment'>--</span>
<a name="line-188"></a><span class='hs-comment'>-- See</span>
<a name="line-189"></a><span class='hs-comment'>-- &lt;http:</span>
<a name="line-190"></a><span class='hs-comment'>-- discussion of the 'selectionClipboard' vs. 'selectionPrimary' selections</span>
<a name="line-191"></a><span class='hs-comment'>-- under the X window system. On Win32 the 'selectionPrimary' clipboard is</span>
<a name="line-192"></a><span class='hs-comment'>-- essentially ignored.</span>
<a name="line-193"></a><span class='hs-comment'>--</span>
<a name="line-194"></a><span class='hs-comment'>-- It's possible to have arbitrary named clipboards; if you do invent new</span>
<a name="line-195"></a><span class='hs-comment'>-- clipboards, you should prefix the selection name with an underscore</span>
<a name="line-196"></a><span class='hs-comment'>-- (because the ICCCM requires that nonstandard atoms are</span>
<a name="line-197"></a><span class='hs-comment'>-- underscore-prefixed), and namespace it as well. For example, if your</span>
<a name="line-198"></a><span class='hs-comment'>-- application called \"Foo\" has a special-purpose clipboard, you could</span>
<a name="line-199"></a><span class='hs-comment'>-- create it using 'Graphics.UI.Gtk.General.Selection.atomNew'</span>
<a name="line-200"></a><span class='hs-comment'>-- \"_FOO_SPECIAL_CLIPBOARD\".</span>
<a name="line-201"></a><span class='hs-comment'>--</span>
<a name="line-202"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.2</span>
<a name="line-203"></a><span class='hs-comment'>--</span>
<a name="line-204"></a><span class='hs-definition'>clipboardGetForDisplay</span> <span class='hs-keyglyph'>::</span>
<a name="line-205"></a>    <span class='hs-conid'>Display</span> <span class='hs-comment'>-- ^ @display@ - the display for which the clipboard is to be</span>
<a name="line-206"></a>                 <span class='hs-comment'>-- retrieved or created</span>
<a name="line-207"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>SelectionTag</span> <span class='hs-comment'>-- ^ @selection@ - a 'SelectionTag' which</span>
<a name="line-208"></a>                 <span class='hs-comment'>-- identifies the clipboard to use.</span>
<a name="line-209"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Clipboard</span> <span class='hs-comment'>-- ^ returns the appropriate clipboard object. If no</span>
<a name="line-210"></a>                 <span class='hs-comment'>-- clipboard already exists, a new one will be created. Once a</span>
<a name="line-211"></a>                 <span class='hs-comment'>-- clipboard object has been created, it is persistent.</span>
<a name="line-212"></a><span class='hs-definition'>clipboardGetForDisplay</span> <span class='hs-varid'>display</span> <span class='hs-layout'>(</span><span class='hs-conid'>Atom</span> <span class='hs-varid'>selection</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-213"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkClipboard</span> <span class='hs-varop'>$</span>
<a name="line-214"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Display</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'>gtk_clipboard_get_for_display</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-215"></a><span class='hs-comment'>{-# LINE 212 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-216"></a>    <span class='hs-varid'>display</span> <span class='hs-varid'>selection</span>
<a name="line-217"></a>
<a name="line-218"></a><a name="clipboardGetDisplay"></a><span class='hs-comment'>-- %hash c:3931 d:93f1</span>
<a name="line-219"></a><span class='hs-comment'>-- | Gets the 'Display' associated with @clipboard@</span>
<a name="line-220"></a><span class='hs-comment'>--</span>
<a name="line-221"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.2</span>
<a name="line-222"></a><span class='hs-comment'>--</span>
<a name="line-223"></a><span class='hs-definition'>clipboardGetDisplay</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-224"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Display</span> <span class='hs-comment'>-- ^ returns the 'Display' associated with @clipboard@</span>
<a name="line-225"></a><span class='hs-definition'>clipboardGetDisplay</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-226"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkDisplay</span> <span class='hs-varop'>$</span>
<a name="line-227"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_get_display</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-228"></a><span class='hs-comment'>{-# LINE 224 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-229"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-230"></a>
<a name="line-231"></a>
<a name="line-232"></a><span class='hs-comment'>-- The memory management of the ClipboardGetFunc and ClipboardClearFunc sucks badly</span>
<a name="line-233"></a><span class='hs-comment'>-- in that there is no consistent way in which the latter could free the function</span>
<a name="line-234"></a><span class='hs-comment'>-- closure of the former, since it is *not* called when the data of the same</span>
<a name="line-235"></a><span class='hs-comment'>-- object is changed. What we do is that we store the function pointers as attributes</span>
<a name="line-236"></a><span class='hs-comment'>-- of the Clipboard. Overwriting or finalizing these attributes will call their</span>
<a name="line-237"></a><span class='hs-comment'>-- destructors and thereby free them. Thus, by setting these attributes each time we</span>
<a name="line-238"></a><span class='hs-comment'>-- install new data functions, we cuningly finalized the previous closures. Hooray.</span>
<a name="line-239"></a>
<a name="line-240"></a><a name="getFuncQuark"></a><span class='hs-comment'>{-# NOINLINE getFuncQuark #-}</span>
<a name="line-241"></a><span class='hs-definition'>getFuncQuark</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Quark</span>
<a name="line-242"></a><span class='hs-definition'>getFuncQuark</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unsafePerformIO</span> <span class='hs-varop'>$</span> <span class='hs-varid'>quarkFromString</span> <span class='hs-str'>"hsClipboardGetFuncClosure"</span>
<a name="line-243"></a>
<a name="line-244"></a><a name="clearFuncQuark"></a><span class='hs-comment'>{-# NOINLINE clearFuncQuark #-}</span>
<a name="line-245"></a><span class='hs-definition'>clearFuncQuark</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Quark</span>
<a name="line-246"></a><span class='hs-definition'>clearFuncQuark</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unsafePerformIO</span> <span class='hs-varop'>$</span> <span class='hs-varid'>quarkFromString</span> <span class='hs-str'>"hsClipboardClearFuncClosure"</span>
<a name="line-247"></a>
<a name="line-248"></a><a name="clipboardSetWithData"></a><span class='hs-comment'>-- %hash c:c65a d:b402</span>
<a name="line-249"></a><span class='hs-comment'>-- | Virtually sets the contents of the specified clipboard by providing a</span>
<a name="line-250"></a><span class='hs-comment'>-- list of supported formats for the clipboard data and a function to call to</span>
<a name="line-251"></a><span class='hs-comment'>-- get the actual data when it is requested.</span>
<a name="line-252"></a><span class='hs-comment'>--</span>
<a name="line-253"></a><span class='hs-definition'>clipboardSetWithData</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-254"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>TargetTag</span><span class='hs-layout'>,</span> <span class='hs-conid'>InfoId</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ @targets@ - a list containing information</span>
<a name="line-255"></a>                              <span class='hs-comment'>-- about the available forms for the clipboard</span>
<a name="line-256"></a>                              <span class='hs-comment'>-- data</span>
<a name="line-257"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>InfoId</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>SelectionDataM</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-258"></a>                              <span class='hs-comment'>-- ^ @getFunc@ - function to call to get the</span>
<a name="line-259"></a>                              <span class='hs-comment'>-- actual clipboard data, should call</span>
<a name="line-260"></a>                              <span class='hs-comment'>-- 'selectionDataSet'.</span>
<a name="line-261"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span> <span class='hs-comment'>-- ^ @clearFunc@ - when the clipboard contents</span>
<a name="line-262"></a>                              <span class='hs-comment'>-- are set again, this function will be called,</span>
<a name="line-263"></a>                              <span class='hs-comment'>-- and @getFunc@ will not be subsequently called.</span>
<a name="line-264"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ returns @True@ if setting the clipboard</span>
<a name="line-265"></a>                              <span class='hs-comment'>-- data succeeded.</span>
<a name="line-266"></a><span class='hs-definition'>clipboardSetWithData</span> <span class='hs-varid'>self</span> <span class='hs-varid'>targets</span> <span class='hs-varid'>getFunc</span> <span class='hs-varid'>clearFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-267"></a>  <span class='hs-varid'>gFunPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardGetFunc</span>
<a name="line-268"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>sPtr</span> <span class='hs-varid'>info</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>runReaderT</span> <span class='hs-layout'>(</span><span class='hs-varid'>getFunc</span> <span class='hs-varid'>info</span><span class='hs-layout'>)</span> <span class='hs-varid'>sPtr</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-269"></a>  <span class='hs-varid'>cFunPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardClearFunc</span>
<a name="line-270"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>clearFunc</span><span class='hs-layout'>)</span>
<a name="line-271"></a>  <span class='hs-varid'>res</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>withTargetEntries</span> <span class='hs-varid'>targets</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>nTargets</span> <span class='hs-varid'>targets</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-272"></a>    <span class='hs-varid'>liftM</span> <span class='hs-varid'>toBool</span> <span class='hs-varop'>$</span>
<a name="line-273"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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-varid'>arg6</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'>gtk_clipboard_set_with_data</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-varid'>arg6</span><span class='hs-layout'>)</span>
<a name="line-274"></a><span class='hs-comment'>{-# LINE 269 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-275"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-276"></a>      <span class='hs-varid'>targets</span>
<a name="line-277"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>nTargets</span><span class='hs-layout'>)</span>
<a name="line-278"></a>      <span class='hs-varid'>gFunPtr</span>
<a name="line-279"></a>      <span class='hs-varid'>cFunPtr</span>
<a name="line-280"></a>      <span class='hs-varid'>nullPtr</span>
<a name="line-281"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>GObject</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'>g_object_set_qdata_full</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'>toGObject</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span> <span class='hs-varid'>getFuncQuark</span>
<a name="line-282"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castFunPtrToPtr</span> <span class='hs-varid'>gFunPtr</span><span class='hs-layout'>)</span> <span class='hs-varid'>destroyFunPtr</span>
<a name="line-283"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>GObject</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'>g_object_set_qdata_full</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'>toGObject</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span> <span class='hs-varid'>clearFuncQuark</span>
<a name="line-284"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castFunPtrToPtr</span> <span class='hs-varid'>cFunPtr</span><span class='hs-layout'>)</span> <span class='hs-varid'>destroyFunPtr</span>
<a name="line-285"></a>  <span class='hs-varid'>return</span> <span class='hs-varid'>res</span>
<a name="line-286"></a>
<a name="line-287"></a><a name="ClipboardGetFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardGetFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>CUInt</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-288"></a><a name="ClipboardClearFunc"></a><span class='hs-comment'>{-# LINE 282 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-289"></a><a name="ClipboardClearFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardClearFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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><span class='hs-layout'>)</span>
<a name="line-290"></a><span class='hs-comment'>{-# LINE 283 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-291"></a>
<a name="line-292"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardGetFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-293"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CUInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardGetFunc</span>
<a name="line-294"></a>
<a name="line-295"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardClearFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-296"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardClearFunc</span>
<a name="line-297"></a>
<a name="line-298"></a><a name="clipboardSetWithOwner"></a><span class='hs-comment'>-- %hash c:e778 d:7b3f</span>
<a name="line-299"></a><span class='hs-comment'>-- | Virtually sets the contents of the specified clipboard by providing a</span>
<a name="line-300"></a><span class='hs-comment'>-- list of supported formats for the clipboard data and a function to call to</span>
<a name="line-301"></a><span class='hs-comment'>-- get the actual data when it is requested.</span>
<a name="line-302"></a><span class='hs-comment'>--</span>
<a name="line-303"></a><span class='hs-comment'>-- The difference between this function and 'clipboardSetWithData' is that</span>
<a name="line-304"></a><span class='hs-comment'>-- a 'GObject' is passed in.</span>
<a name="line-305"></a><span class='hs-comment'>--</span>
<a name="line-306"></a><span class='hs-definition'>clipboardSetWithOwner</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span><span class='hs-layout'>,</span> <span class='hs-conid'>GObjectClass</span> <span class='hs-varid'>owner</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-307"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>TargetTag</span><span class='hs-layout'>,</span> <span class='hs-conid'>InfoId</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ @targets@ - a list containing information</span>
<a name="line-308"></a>                              <span class='hs-comment'>-- about the available forms for the clipboard</span>
<a name="line-309"></a>                              <span class='hs-comment'>-- data</span>
<a name="line-310"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>InfoId</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>SelectionDataM</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-311"></a>                              <span class='hs-comment'>-- ^ @getFunc@ - function to call to get the</span>
<a name="line-312"></a>                              <span class='hs-comment'>-- actual clipboard data, should call</span>
<a name="line-313"></a>                              <span class='hs-comment'>-- 'selectionDataSet'.</span>
<a name="line-314"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span> <span class='hs-comment'>-- ^ @clearFunc@ - when the clipboard contents</span>
<a name="line-315"></a>                              <span class='hs-comment'>-- are set again, this function will be called,</span>
<a name="line-316"></a>                              <span class='hs-comment'>-- and @getFunc@ will not be subsequently called.</span>
<a name="line-317"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>owner</span> <span class='hs-comment'>-- ^ @owner@ - an object that \"owns\" the data.</span>
<a name="line-318"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ returns @True@ if setting the clipboard</span>
<a name="line-319"></a>                              <span class='hs-comment'>-- data succeeded. If setting the clipboard data</span>
<a name="line-320"></a>                              <span class='hs-comment'>-- failed the provided callback functions will be</span>
<a name="line-321"></a>                              <span class='hs-comment'>-- ignored.</span>
<a name="line-322"></a><span class='hs-definition'>clipboardSetWithOwner</span> <span class='hs-varid'>self</span> <span class='hs-varid'>targets</span> <span class='hs-varid'>getFunc</span> <span class='hs-varid'>clearFunc</span> <span class='hs-varid'>owner</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-323"></a>  <span class='hs-varid'>gFunPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardGetFunc</span>
<a name="line-324"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>sPtr</span> <span class='hs-varid'>info</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>runReaderT</span> <span class='hs-layout'>(</span><span class='hs-varid'>getFunc</span> <span class='hs-varid'>info</span><span class='hs-layout'>)</span> <span class='hs-varid'>sPtr</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-325"></a>  <span class='hs-varid'>cFunPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardClearFunc</span>
<a name="line-326"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>clearFunc</span><span class='hs-layout'>)</span>
<a name="line-327"></a>  <span class='hs-varid'>res</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>withTargetEntries</span> <span class='hs-varid'>targets</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>nTargets</span> <span class='hs-varid'>targets</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-328"></a>    <span class='hs-varid'>liftM</span> <span class='hs-varid'>toBool</span> <span class='hs-varop'>$</span>
<a name="line-329"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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-layout'>(</span><span class='hs-conid'>GObject</span> <span class='hs-varid'>arg6</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'>arg6</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr6</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_clipboard_set_with_owner</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-varid'>argPtr6</span><span class='hs-layout'>)</span>
<a name="line-330"></a><span class='hs-comment'>{-# LINE 322 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-331"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-332"></a>      <span class='hs-varid'>targets</span>
<a name="line-333"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>nTargets</span><span class='hs-layout'>)</span>
<a name="line-334"></a>      <span class='hs-varid'>gFunPtr</span>
<a name="line-335"></a>      <span class='hs-varid'>cFunPtr</span>
<a name="line-336"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>toGObject</span> <span class='hs-varid'>owner</span><span class='hs-layout'>)</span>
<a name="line-337"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>GObject</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'>g_object_set_qdata_full</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'>toGObject</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span> <span class='hs-varid'>getFuncQuark</span>
<a name="line-338"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castFunPtrToPtr</span> <span class='hs-varid'>gFunPtr</span><span class='hs-layout'>)</span> <span class='hs-varid'>destroyFunPtr</span>
<a name="line-339"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>GObject</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'>g_object_set_qdata_full</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'>toGObject</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span> <span class='hs-varid'>clearFuncQuark</span>
<a name="line-340"></a>     <span class='hs-layout'>(</span><span class='hs-varid'>castFunPtrToPtr</span> <span class='hs-varid'>cFunPtr</span><span class='hs-layout'>)</span> <span class='hs-varid'>destroyFunPtr</span>
<a name="line-341"></a>  <span class='hs-varid'>return</span> <span class='hs-varid'>res</span>
<a name="line-342"></a>
<a name="line-343"></a><a name="clipboardGetOwner"></a><span class='hs-comment'>-- %hash c:dba2 d:efc2</span>
<a name="line-344"></a><span class='hs-comment'>-- | If the clipboard contents callbacks were set with</span>
<a name="line-345"></a><span class='hs-comment'>-- 'clipboardSetWithOwner', and the 'clipboardSetWithData' or 'clipboardClear'</span>
<a name="line-346"></a><span class='hs-comment'>-- has not subsequently called, returns the owner set by</span>
<a name="line-347"></a><span class='hs-comment'>-- 'clipboardSetWithOwner'.</span>
<a name="line-348"></a><span class='hs-comment'>--</span>
<a name="line-349"></a><span class='hs-definition'>clipboardGetOwner</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-350"></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'>GObject</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ returns the owner of the clipboard, if any; otherwise</span>
<a name="line-351"></a>                        <span class='hs-comment'>-- @Nothing@.</span>
<a name="line-352"></a><span class='hs-definition'>clipboardGetOwner</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-353"></a>  <span class='hs-varid'>maybeNull</span> <span class='hs-layout'>(</span><span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkGObject</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span>
<a name="line-354"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_get_owner</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-355"></a><span class='hs-comment'>{-# LINE 346 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-356"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-357"></a>
<a name="line-358"></a><a name="clipboardClear"></a><span class='hs-comment'>-- %hash c:d6f8 d:486</span>
<a name="line-359"></a><span class='hs-comment'>-- | Clears the contents of the clipboard. Generally this should only be</span>
<a name="line-360"></a><span class='hs-comment'>-- called between the time you call 'clipboardSetWithOwner' or</span>
<a name="line-361"></a><span class='hs-comment'>-- 'clipboardSetWithData', and when the @clearFunc@ you supplied is called.</span>
<a name="line-362"></a><span class='hs-comment'>-- Otherwise, the clipboard may be owned by someone else.</span>
<a name="line-363"></a><span class='hs-comment'>--</span>
<a name="line-364"></a><span class='hs-definition'>clipboardClear</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</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-365"></a><span class='hs-definition'>clipboardClear</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-366"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_clear</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-367"></a><span class='hs-comment'>{-# LINE 357 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-368"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-369"></a>
<a name="line-370"></a><a name="clipboardSetText"></a><span class='hs-comment'>-- %hash c:5211 d:14c6</span>
<a name="line-371"></a><span class='hs-comment'>-- | Sets the contents of the clipboard to the given UTF-8 string. Gtk+ will</span>
<a name="line-372"></a><span class='hs-comment'>-- make a copy of the text and take responsibility for responding for requests</span>
<a name="line-373"></a><span class='hs-comment'>-- for the text, and for converting the text into the requested format.</span>
<a name="line-374"></a><span class='hs-comment'>--</span>
<a name="line-375"></a><span class='hs-definition'>clipboardSetText</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-376"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>String</span> <span class='hs-comment'>-- ^ @text@ - the text to be set as clipboard content</span>
<a name="line-377"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-378"></a><span class='hs-definition'>clipboardSetText</span> <span class='hs-varid'>self</span> <span class='hs-varid'>text</span> <span class='hs-keyglyph'>=</span>
<a name="line-379"></a>  <span class='hs-varid'>withUTFStringLen</span> <span class='hs-varid'>text</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-varid'>textPtr</span><span class='hs-layout'>,</span><span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-380"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_set_text</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-381"></a><span class='hs-comment'>{-# LINE 370 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-382"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-383"></a>    <span class='hs-varid'>textPtr</span>
<a name="line-384"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span>
<a name="line-385"></a>
<a name="line-386"></a>
<a name="line-387"></a><a name="clipboardSetImage"></a><span class='hs-comment'>-- %hash c:5172 d:e4dd</span>
<a name="line-388"></a><span class='hs-comment'>-- | Sets the contents of the clipboard to the given 'Pixbuf'. Gtk+ will take</span>
<a name="line-389"></a><span class='hs-comment'>-- responsibility for responding for requests for the image, and for converting</span>
<a name="line-390"></a><span class='hs-comment'>-- the image into the requested format.</span>
<a name="line-391"></a><span class='hs-comment'>--</span>
<a name="line-392"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.6</span>
<a name="line-393"></a><span class='hs-comment'>--</span>
<a name="line-394"></a><span class='hs-definition'>clipboardSetImage</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-395"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Pixbuf</span> <span class='hs-comment'>-- ^ @pixbuf@ - a 'Pixbuf'</span>
<a name="line-396"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-397"></a><span class='hs-definition'>clipboardSetImage</span> <span class='hs-varid'>self</span> <span class='hs-varid'>pixbuf</span> <span class='hs-keyglyph'>=</span>
<a name="line-398"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Pixbuf</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'>gtk_clipboard_set_image</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>argPtr2</span><span class='hs-layout'>)</span>
<a name="line-399"></a><span class='hs-comment'>{-# LINE 387 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-400"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-401"></a>    <span class='hs-varid'>pixbuf</span>
<a name="line-402"></a>
<a name="line-403"></a>
<a name="line-404"></a><a name="clipboardRequestContents"></a><span class='hs-comment'>-- %hash c:22cd d:f72d</span>
<a name="line-405"></a><span class='hs-comment'>-- | Requests the contents of clipboard as the given target. When the results</span>
<a name="line-406"></a><span class='hs-comment'>-- of the result are later received the supplied callback will be called.</span>
<a name="line-407"></a><span class='hs-comment'>--</span>
<a name="line-408"></a><span class='hs-definition'>clipboardRequestContents</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-409"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TargetTag</span> <span class='hs-comment'>-- ^ @target@ - an atom representing the form</span>
<a name="line-410"></a>                                 <span class='hs-comment'>-- into which the clipboard owner should</span>
<a name="line-411"></a>                                 <span class='hs-comment'>-- convert the selection.</span>
<a name="line-412"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>SelectionDataM</span> <span class='hs-conid'>()</span> <span class='hs-comment'>-- ^ @callback@ - A function to call when the</span>
<a name="line-413"></a>                                 <span class='hs-comment'>-- results are received (or the retrieval</span>
<a name="line-414"></a>                                 <span class='hs-comment'>-- fails). If the retrieval fails,</span>
<a name="line-415"></a>                                 <span class='hs-comment'>-- 'selectionDataIsValid' returns @False@.</span>
<a name="line-416"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-417"></a><span class='hs-definition'>clipboardRequestContents</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>Atom</span> <span class='hs-varid'>target</span><span class='hs-layout'>)</span> <span class='hs-varid'>callback</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-418"></a>  <span class='hs-varid'>cbRef</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>newIORef</span> <span class='hs-varid'>nullFunPtr</span>
<a name="line-419"></a>  <span class='hs-varid'>cbPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardReceivedFunc</span>
<a name="line-420"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>sPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-421"></a>      <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varop'>=&lt;&lt;</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>cbRef</span>
<a name="line-422"></a>      <span class='hs-varid'>runReaderT</span> <span class='hs-varid'>callback</span> <span class='hs-varid'>sPtr</span>
<a name="line-423"></a>      <span class='hs-varid'>return</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-424"></a>  <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>cbRef</span> <span class='hs-varid'>cbPtr</span>
<a name="line-425"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_request_contents</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-426"></a><span class='hs-comment'>{-# LINE 413 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-427"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-428"></a>    <span class='hs-varid'>target</span>
<a name="line-429"></a>    <span class='hs-varid'>cbPtr</span>
<a name="line-430"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-431"></a>
<a name="line-432"></a><a name="ClipboardReceivedFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardReceivedFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-433"></a><span class='hs-comment'>{-# LINE 419 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-434"></a>
<a name="line-435"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardReceivedFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-436"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardReceivedFunc</span>
<a name="line-437"></a>
<a name="line-438"></a><a name="clipboardRequestText"></a><span class='hs-comment'>-- %hash c:7bb1 d:4ef1</span>
<a name="line-439"></a><span class='hs-comment'>-- | Requests the contents of the clipboard as text. When the text is later</span>
<a name="line-440"></a><span class='hs-comment'>-- received, it will be converted if it is stored in a different character set</span>
<a name="line-441"></a><span class='hs-comment'>-- if necessary, and @callback@ will be called.</span>
<a name="line-442"></a><span class='hs-comment'>--</span>
<a name="line-443"></a><span class='hs-comment'>-- The @text@ parameter to @callback@ will contain the resulting text if the</span>
<a name="line-444"></a><span class='hs-comment'>-- request succeeded, or @Nothing@ if it failed. This could happen for various reasons, in</span>
<a name="line-445"></a><span class='hs-comment'>-- particular if the clipboard was empty or if the contents of the clipboard</span>
<a name="line-446"></a><span class='hs-comment'>-- could not be converted into text form.</span>
<a name="line-447"></a><span class='hs-comment'>--</span>
<a name="line-448"></a><span class='hs-definition'>clipboardRequestText</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-449"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ @callback@ - a function to call when</span>
<a name="line-450"></a>                                     <span class='hs-comment'>-- the text is received, or the retrieval</span>
<a name="line-451"></a>                                     <span class='hs-comment'>-- fails. (It will always be called one</span>
<a name="line-452"></a>                                     <span class='hs-comment'>-- way or the other.)</span>
<a name="line-453"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-454"></a><span class='hs-definition'>clipboardRequestText</span> <span class='hs-varid'>self</span> <span class='hs-varid'>callback</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-455"></a>  <span class='hs-varid'>cbRef</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>newIORef</span> <span class='hs-varid'>nullFunPtr</span>
<a name="line-456"></a>  <span class='hs-varid'>cbPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardTextReceivedFunc</span>
<a name="line-457"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>sPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-458"></a>      <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varop'>=&lt;&lt;</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>cbRef</span>
<a name="line-459"></a>      <span class='hs-varid'>mStr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>sPtr</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>
<a name="line-460"></a>        <span class='hs-varid'>liftM</span> <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span> <span class='hs-varid'>peekUTFString</span> <span class='hs-varid'>sPtr</span>
<a name="line-461"></a>      <span class='hs-varid'>callback</span> <span class='hs-varid'>mStr</span><span class='hs-layout'>)</span>
<a name="line-462"></a>  <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>cbRef</span> <span class='hs-varid'>cbPtr</span>
<a name="line-463"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_request_text</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-464"></a><span class='hs-comment'>{-# LINE 449 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-465"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-466"></a>    <span class='hs-varid'>cbPtr</span>
<a name="line-467"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-468"></a>
<a name="line-469"></a><a name="ClipboardTextReceivedFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardTextReceivedFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>CChar</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-470"></a><span class='hs-comment'>{-# LINE 454 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-471"></a>
<a name="line-472"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardTextReceivedFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-473"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>CString</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardTextReceivedFunc</span>
<a name="line-474"></a>
<a name="line-475"></a>
<a name="line-476"></a>
<a name="line-477"></a><a name="clipboardRequestImage"></a><span class='hs-comment'>-- %hash c:3207 d:e3c1</span>
<a name="line-478"></a><span class='hs-comment'>-- | Requests the contents of the clipboard as image. When the image is later</span>
<a name="line-479"></a><span class='hs-comment'>-- received, it will be converted to a 'Pixbuf', and @callback@ will be called.</span>
<a name="line-480"></a><span class='hs-comment'>--</span>
<a name="line-481"></a><span class='hs-comment'>-- The @pixbuf@ parameter to @callback@ will contain the resulting 'Pixbuf'</span>
<a name="line-482"></a><span class='hs-comment'>-- if the request succeeded, or @Nothing@ if it failed. This could happen for various</span>
<a name="line-483"></a><span class='hs-comment'>-- reasons, in particular if the clipboard was empty or if the contents of the</span>
<a name="line-484"></a><span class='hs-comment'>-- clipboard could not be converted into an image.</span>
<a name="line-485"></a><span class='hs-comment'>--</span>
<a name="line-486"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.6</span>
<a name="line-487"></a><span class='hs-comment'>--</span>
<a name="line-488"></a><span class='hs-definition'>clipboardRequestImage</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-489"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>Pixbuf</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ @callback@ - a function to call</span>
<a name="line-490"></a>                                      <span class='hs-comment'>-- when the image is received, or the</span>
<a name="line-491"></a>                                      <span class='hs-comment'>-- retrieval fails. (It will always be</span>
<a name="line-492"></a>                                      <span class='hs-comment'>-- called one way or the other.)</span>
<a name="line-493"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-494"></a><span class='hs-definition'>clipboardRequestImage</span> <span class='hs-varid'>self</span> <span class='hs-varid'>callback</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-495"></a>  <span class='hs-varid'>cbRef</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>newIORef</span> <span class='hs-varid'>nullFunPtr</span>
<a name="line-496"></a>  <span class='hs-varid'>cbPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardImageReceivedFunc</span>
<a name="line-497"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>sPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-498"></a>      <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varop'>=&lt;&lt;</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>cbRef</span>
<a name="line-499"></a>      <span class='hs-varid'>mPixbuf</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>maybeNull</span> <span class='hs-layout'>(</span><span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkPixbuf</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-varid'>sPtr</span><span class='hs-layout'>)</span>
<a name="line-500"></a>      <span class='hs-varid'>callback</span> <span class='hs-varid'>mPixbuf</span><span class='hs-layout'>)</span>
<a name="line-501"></a>  <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>cbRef</span> <span class='hs-varid'>cbPtr</span>
<a name="line-502"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_request_image</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-503"></a><span class='hs-comment'>{-# LINE 486 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-504"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-505"></a>    <span class='hs-varid'>cbPtr</span>
<a name="line-506"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-507"></a>
<a name="line-508"></a><a name="ClipboardImageReceivedFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardImageReceivedFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>Pixbuf</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-509"></a><span class='hs-comment'>{-# LINE 491 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-510"></a>
<a name="line-511"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardImageReceivedFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-512"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>Pixbuf</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardImageReceivedFunc</span>
<a name="line-513"></a>
<a name="line-514"></a>
<a name="line-515"></a>
<a name="line-516"></a>
<a name="line-517"></a><a name="clipboardRequestTargets"></a><span class='hs-comment'>-- %hash c:63f6 d:c0e1</span>
<a name="line-518"></a><span class='hs-comment'>-- | Requests the contents of the clipboard as list of supported targets. When</span>
<a name="line-519"></a><span class='hs-comment'>-- the list is later received, @callback@ will be called.</span>
<a name="line-520"></a><span class='hs-comment'>--</span>
<a name="line-521"></a><span class='hs-comment'>-- The @targets@ parameter to @callback@ will contain the resulting targets</span>
<a name="line-522"></a><span class='hs-comment'>-- if the request succeeded, or @Nothing@ if it failed.</span>
<a name="line-523"></a><span class='hs-comment'>--</span>
<a name="line-524"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.4</span>
<a name="line-525"></a><span class='hs-comment'>--</span>
<a name="line-526"></a><span class='hs-definition'>clipboardRequestTargets</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-527"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>TargetTag</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ @callback@ - a function to call</span>
<a name="line-528"></a>                                        <span class='hs-comment'>-- when the targets are received, or</span>
<a name="line-529"></a>                                        <span class='hs-comment'>-- the retrieval fails. (It will always</span>
<a name="line-530"></a>                                        <span class='hs-comment'>-- be called one way or the other.)</span>
<a name="line-531"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-532"></a><span class='hs-definition'>clipboardRequestTargets</span> <span class='hs-varid'>self</span> <span class='hs-varid'>callback</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-533"></a>  <span class='hs-varid'>cbRef</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>newIORef</span> <span class='hs-varid'>nullFunPtr</span>
<a name="line-534"></a>  <span class='hs-varid'>cbPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardTargetsReceivedFunc</span>
<a name="line-535"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>tPtr</span> <span class='hs-varid'>len</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-536"></a>      <span class='hs-comment'>-- We must free Haskell pointer *in* the callback to avoid segfault.</span>
<a name="line-537"></a>      <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varop'>=&lt;&lt;</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>cbRef</span>
<a name="line-538"></a>      <span class='hs-varid'>mTargets</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>tPtr</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>
<a name="line-539"></a>        <span class='hs-varid'>liftM</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varop'>.</span> <span class='hs-varid'>map</span> <span class='hs-conid'>Atom</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>peekArray</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-varid'>tPtr</span>
<a name="line-540"></a>      <span class='hs-varid'>callback</span> <span class='hs-varid'>mTargets</span><span class='hs-layout'>)</span>
<a name="line-541"></a>  <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>cbRef</span> <span class='hs-varid'>cbPtr</span>
<a name="line-542"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_request_targets</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-543"></a><span class='hs-comment'>{-# LINE 524 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-544"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-545"></a>    <span class='hs-varid'>cbPtr</span>
<a name="line-546"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-547"></a>
<a name="line-548"></a><a name="ClipboardTargetsReceivedFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardTargetsReceivedFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</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-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><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-549"></a><span class='hs-comment'>{-# LINE 529 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-550"></a>
<a name="line-551"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardTargetsReceivedFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-552"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</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-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardTargetsReceivedFunc</span>
<a name="line-553"></a>
<a name="line-554"></a>
<a name="line-555"></a><a name="clipboardRequestRichText"></a><span class='hs-comment'>-- %hash c:5601 d:d6a6</span>
<a name="line-556"></a><span class='hs-comment'>-- | Requests the contents of the clipboard as rich text. When the rich text</span>
<a name="line-557"></a><span class='hs-comment'>-- is later received, @callback@ will be called.</span>
<a name="line-558"></a><span class='hs-comment'>--</span>
<a name="line-559"></a><span class='hs-comment'>-- The @text@ parameter to @callback@ will contain the resulting rich text if</span>
<a name="line-560"></a><span class='hs-comment'>-- the request succeeded, or @Nothing@ if it failed. This function can fail</span>
<a name="line-561"></a><span class='hs-comment'>-- for various reasons, in particular if the clipboard was empty or if the</span>
<a name="line-562"></a><span class='hs-comment'>-- contents of the clipboard could not be converted into rich text form.</span>
<a name="line-563"></a><span class='hs-comment'>--</span>
<a name="line-564"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.10</span>
<a name="line-565"></a><span class='hs-comment'>--</span>
<a name="line-566"></a><span class='hs-definition'>clipboardRequestRichText</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span><span class='hs-layout'>,</span> <span class='hs-conid'>TextBufferClass</span> <span class='hs-varid'>buffer</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-567"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>buffer</span> <span class='hs-comment'>-- ^ @buffer@ - a 'TextBuffer' that determines the supported rich text formats</span>
<a name="line-568"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-conid'>TargetTag</span><span class='hs-layout'>,</span><span class='hs-conid'>String</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ @callback@ - a function to call</span>
<a name="line-569"></a>                                         <span class='hs-comment'>-- when the text is received, or the</span>
<a name="line-570"></a>                                         <span class='hs-comment'>-- retrieval fails. (It will always be</span>
<a name="line-571"></a>                                         <span class='hs-comment'>-- called one way or the other.)</span>
<a name="line-572"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-573"></a><span class='hs-definition'>clipboardRequestRichText</span> <span class='hs-varid'>self</span> <span class='hs-varid'>buffer</span> <span class='hs-varid'>callback</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-574"></a>  <span class='hs-varid'>cbRef</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>newIORef</span> <span class='hs-varid'>nullFunPtr</span>
<a name="line-575"></a>  <span class='hs-varid'>cbPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkClipboardRichTextReceivedFunc</span>
<a name="line-576"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>tPtr</span> <span class='hs-varid'>sPtr</span> <span class='hs-varid'>len</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-577"></a>      <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varop'>=&lt;&lt;</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>cbRef</span>
<a name="line-578"></a>      <span class='hs-varid'>mRes</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>sPtr</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> <span class='hs-keyword'>do</span>
<a name="line-579"></a>        <span class='hs-varid'>str</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peekUTFStringLen</span> <span class='hs-layout'>(</span><span class='hs-varid'>sPtr</span><span class='hs-layout'>,</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span>
<a name="line-580"></a>        <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-conid'>Atom</span> <span class='hs-varid'>tPtr</span><span class='hs-layout'>,</span> <span class='hs-varid'>str</span><span class='hs-layout'>)</span>
<a name="line-581"></a>      <span class='hs-varid'>callback</span> <span class='hs-varid'>mRes</span><span class='hs-layout'>)</span>
<a name="line-582"></a>  <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>cbRef</span> <span class='hs-varid'>cbPtr</span>
<a name="line-583"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>TextBuffer</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'>gtk_clipboard_request_rich_text</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-584"></a><span class='hs-comment'>{-# LINE 563 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-585"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-586"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTextBuffer</span> <span class='hs-varid'>buffer</span><span class='hs-layout'>)</span>
<a name="line-587"></a>    <span class='hs-varid'>cbPtr</span>
<a name="line-588"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-589"></a>
<a name="line-590"></a><a name="ClipboardRichTextReceivedFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>ClipboardRichTextReceivedFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CUChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</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-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><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-591"></a><span class='hs-comment'>{-# LINE 569 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-592"></a>
<a name="line-593"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkClipboardRichTextReceivedFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-594"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>CString</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CUInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-595"></a>  <span class='hs-conid'>IO</span> <span class='hs-conid'>ClipboardRichTextReceivedFunc</span>
<a name="line-596"></a>
<a name="line-597"></a>
<a name="line-598"></a>
<a name="line-599"></a>
<a name="line-600"></a><a name="clipboardSetCanStore"></a><span class='hs-comment'>-- %hash c:6e6a d:f98a</span>
<a name="line-601"></a><span class='hs-comment'>-- | Hints that the clipboard data should be stored somewhere when the</span>
<a name="line-602"></a><span class='hs-comment'>-- application exits or when 'clipboardStore' is called.</span>
<a name="line-603"></a><span class='hs-comment'>--</span>
<a name="line-604"></a><span class='hs-comment'>-- This value is reset when the clipboard owner changes. Where the clipboard</span>
<a name="line-605"></a><span class='hs-comment'>-- data is stored is platform dependent, see 'displayStoreClipboard' for more</span>
<a name="line-606"></a><span class='hs-comment'>-- information.</span>
<a name="line-607"></a><span class='hs-comment'>--</span>
<a name="line-608"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.6</span>
<a name="line-609"></a><span class='hs-comment'>--</span>
<a name="line-610"></a><span class='hs-definition'>clipboardSetCanStore</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-611"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>TargetTag</span><span class='hs-layout'>,</span> <span class='hs-conid'>InfoId</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ @targets@ - list containing information</span>
<a name="line-612"></a>                                <span class='hs-comment'>-- about which forms should be stored or</span>
<a name="line-613"></a>                                <span class='hs-comment'>-- @Nothing@ to indicate that all forms</span>
<a name="line-614"></a>                                <span class='hs-comment'>-- should be stored.</span>
<a name="line-615"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-616"></a><span class='hs-definition'>clipboardSetCanStore</span> <span class='hs-varid'>self</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>=</span>
<a name="line-617"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_set_can_store</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-618"></a><span class='hs-comment'>{-# LINE 595 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-619"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-620"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-621"></a>    <span class='hs-num'>0</span>
<a name="line-622"></a><span class='hs-definition'>clipboardSetCanStore</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>targets</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-623"></a>  <span class='hs-varid'>withTargetEntries</span> <span class='hs-varid'>targets</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>nTargets</span> <span class='hs-varid'>targets</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-624"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_set_can_store</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-625"></a><span class='hs-comment'>{-# LINE 601 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-626"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-627"></a>    <span class='hs-varid'>targets</span>
<a name="line-628"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>nTargets</span><span class='hs-layout'>)</span>
<a name="line-629"></a>
<a name="line-630"></a><a name="clipboardStore"></a><span class='hs-comment'>-- %hash c:f98a d:ded8</span>
<a name="line-631"></a><span class='hs-comment'>-- | Stores the current clipboard data somewhere so that it will stay around</span>
<a name="line-632"></a><span class='hs-comment'>-- after the application has quit.</span>
<a name="line-633"></a><span class='hs-comment'>--</span>
<a name="line-634"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.6</span>
<a name="line-635"></a><span class='hs-comment'>--</span>
<a name="line-636"></a><span class='hs-definition'>clipboardStore</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ClipboardClass</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-637"></a><span class='hs-definition'>clipboardStore</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-638"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Clipboard</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'>gtk_clipboard_store</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-639"></a><span class='hs-comment'>{-# LINE 614 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}</span>
<a name="line-640"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toClipboard</span> <span class='hs-varid'>self</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'>"gtk_clipboard_get"</span>
<a name="line-643"></a>  <span class='hs-varid'>gtk_clipboard_get</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'>()</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'>Clipboard</span><span class='hs-layout'>)</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'>"gtk_clipboard_get_for_display"</span>
<a name="line-646"></a>  <span class='hs-varid'>gtk_clipboard_get_for_display</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'>Display</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-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</span><span class='hs-layout'>)</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'>"gtk_clipboard_get_display"</span>
<a name="line-649"></a>  <span class='hs-varid'>gtk_clipboard_get_display</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'>Clipboard</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'>Display</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'>"gtk_clipboard_set_with_data"</span>
<a name="line-652"></a>  <span class='hs-varid'>gtk_clipboard_set_with_data</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'>Clipboard</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'>CUInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>CUInt</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><span class='hs-layout'>)</span><span class='hs-layout'>)</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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><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'>CInt</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><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'>unsafe</span> <span class='hs-str'>"g_object_set_qdata_full"</span>
<a name="line-655"></a>  <span class='hs-varid'>g_object_set_qdata_full</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'>GObject</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</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-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-layout'>(</span><span class='hs-conid'>FunPtr</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> <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'>"gtk_clipboard_set_with_owner"</span>
<a name="line-658"></a>  <span class='hs-varid'>gtk_clipboard_set_with_owner</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'>Clipboard</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'>CUInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>CUInt</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><span class='hs-layout'>)</span><span class='hs-layout'>)</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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><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'>GObject</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><span class='hs-layout'>)</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'>"gtk_clipboard_get_owner"</span>
<a name="line-661"></a>  <span class='hs-varid'>gtk_clipboard_get_owner</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'>Clipboard</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'>GObject</span><span class='hs-layout'>)</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'>"gtk_clipboard_clear"</span>
<a name="line-664"></a>  <span class='hs-varid'>gtk_clipboard_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'>Clipboard</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-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'>"gtk_clipboard_set_text"</span>
<a name="line-667"></a>  <span class='hs-varid'>gtk_clipboard_set_text</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'>Clipboard</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'>CChar</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-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'>"gtk_clipboard_set_image"</span>
<a name="line-670"></a>  <span class='hs-varid'>gtk_clipboard_set_image</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'>Clipboard</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'>Pixbuf</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-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'>"gtk_clipboard_request_contents"</span>
<a name="line-673"></a>  <span class='hs-varid'>gtk_clipboard_request_contents</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'>Clipboard</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-layout'>(</span><span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-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><span class='hs-layout'>)</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-674"></a>
<a name="line-675"></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'>"gtk_clipboard_request_text"</span>
<a name="line-676"></a>  <span class='hs-varid'>gtk_clipboard_request_text</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'>Clipboard</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>CChar</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><span class='hs-layout'>)</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><span class='hs-layout'>)</span>
<a name="line-677"></a>
<a name="line-678"></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'>"gtk_clipboard_request_image"</span>
<a name="line-679"></a>  <span class='hs-varid'>gtk_clipboard_request_image</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'>Clipboard</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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'>Pixbuf</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><span class='hs-layout'>)</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><span class='hs-layout'>)</span>
<a name="line-680"></a>
<a name="line-681"></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'>"gtk_clipboard_request_targets"</span>
<a name="line-682"></a>  <span class='hs-varid'>gtk_clipboard_request_targets</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'>Clipboard</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</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-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><span class='hs-layout'>)</span><span class='hs-layout'>)</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><span class='hs-layout'>)</span>
<a name="line-683"></a>
<a name="line-684"></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'>"gtk_clipboard_request_rich_text"</span>
<a name="line-685"></a>  <span class='hs-varid'>gtk_clipboard_request_rich_text</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'>Clipboard</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'>TextBuffer</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'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Clipboard</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-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CUChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</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-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><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</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><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-686"></a>
<a name="line-687"></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'>"gtk_clipboard_set_can_store"</span>
<a name="line-688"></a>  <span class='hs-varid'>gtk_clipboard_set_can_store</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'>Clipboard</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-689"></a>
<a name="line-690"></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'>"gtk_clipboard_store"</span>
<a name="line-691"></a>  <span class='hs-varid'>gtk_clipboard_store</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'>Clipboard</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>
</pre></body>
</html>