packages feed

webkit (empty) → 0.11.0

raw patch · 27 files changed

+5740/−0 lines, 27 filesdep +arraydep +basedep +cairobuild-type:Customsetup-changed

Dependencies added: array, base, cairo, containers, glib, gtk, haskell98, mtl, pango

Files

+ COPYING view
@@ -0,0 +1,504 @@+		  GNU LESSER GENERAL PUBLIC LICENSE+		       Version 2.1, February 1999++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++[This is the first released version of the Lesser GPL.  It also counts+ as the successor of the GNU Library Public License, version 2, hence+ the version number 2.1.]++			    Preamble++  The licenses for most software are designed to take away your+freedom to share and change it.  By contrast, the GNU General Public+Licenses are intended to guarantee your freedom to share and change+free software--to make sure the software is free for all its users.++  This license, the Lesser General Public License, applies to some+specially designated software packages--typically libraries--of the+Free Software Foundation and other authors who decide to use it.  You+can use it too, but we suggest you first think carefully about whether+this license or the ordinary General Public License is the better+strategy to use in any particular case, based on the explanations below.++  When we speak of free software, we are referring to freedom of use,+not price.  Our General Public Licenses are designed to make sure that+you have the freedom to distribute copies of free software (and charge+for this service if you wish); that you receive source code or can get+it if you want it; that you can change the software and use pieces of+it in new free programs; and that you are informed that you can do+these things.++  To protect your rights, we need to make restrictions that forbid+distributors to deny you these rights or to ask you to surrender these+rights.  These restrictions translate to certain responsibilities for+you if you distribute copies of the library or if you modify it.++  For example, if you distribute copies of the library, whether gratis+or for a fee, you must give the recipients all the rights that we gave+you.  You must make sure that they, too, receive or can get the source+code.  If you link other code with the library, you must provide+complete object files to the recipients, so that they can relink them+with the library after making changes to the library and recompiling+it.  And you must show them these terms so they know their rights.++  We protect your rights with a two-step method: (1) we copyright the+library, and (2) we offer you this license, which gives you legal+permission to copy, distribute and/or modify the library.++  To protect each distributor, we want to make it very clear that+there is no warranty for the free library.  Also, if the library is+modified by someone else and passed on, the recipients should know+that what they have is not the original version, so that the original+author's reputation will not be affected by problems that might be+introduced by others.++  Finally, software patents pose a constant threat to the existence of+any free program.  We wish to make sure that a company cannot+effectively restrict the users of a free program by obtaining a+restrictive license from a patent holder.  Therefore, we insist that+any patent license obtained for a version of the library must be+consistent with the full freedom of use specified in this license.++  Most GNU software, including some libraries, is covered by the+ordinary GNU General Public License.  This license, the GNU Lesser+General Public License, applies to certain designated libraries, and+is quite different from the ordinary General Public License.  We use+this license for certain libraries in order to permit linking those+libraries into non-free programs.++  When a program is linked with a library, whether statically or using+a shared library, the combination of the two is legally speaking a+combined work, a derivative of the original library.  The ordinary+General Public License therefore permits such linking only if the+entire combination fits its criteria of freedom.  The Lesser General+Public License permits more lax criteria for linking other code with+the library.++  We call this license the "Lesser" General Public License because it+does Less to protect the user's freedom than the ordinary General+Public License.  It also provides other free software developers Less+of an advantage over competing non-free programs.  These disadvantages+are the reason we use the ordinary General Public License for many+libraries.  However, the Lesser license provides advantages in certain+special circumstances.++  For example, on rare occasions, there may be a special need to+encourage the widest possible use of a certain library, so that it becomes+a de-facto standard.  To achieve this, non-free programs must be+allowed to use the library.  A more frequent case is that a free+library does the same job as widely used non-free libraries.  In this+case, there is little to gain by limiting the free library to free+software only, so we use the Lesser General Public License.++  In other cases, permission to use a particular library in non-free+programs enables a greater number of people to use a large body of+free software.  For example, permission to use the GNU C Library in+non-free programs enables many more people to use the whole GNU+operating system, as well as its variant, the GNU/Linux operating+system.++  Although the Lesser General Public License is Less protective of the+users' freedom, it does ensure that the user of a program that is+linked with the Library has the freedom and the wherewithal to run+that program using a modified version of the Library.++  The precise terms and conditions for copying, distribution and+modification follow.  Pay close attention to the difference between a+"work based on the library" and a "work that uses the library".  The+former contains code derived from the library, whereas the latter must+be combined with the library in order to run.++		  GNU LESSER GENERAL PUBLIC LICENSE+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++  0. This License Agreement applies to any software library or other+program which contains a notice placed by the copyright holder or+other authorized party saying it may be distributed under the terms of+this Lesser General Public License (also called "this License").+Each licensee is addressed as "you".++  A "library" means a collection of software functions and/or data+prepared so as to be conveniently linked with application programs+(which use some of those functions and data) to form executables.++  The "Library", below, refers to any such software library or work+which has been distributed under these terms.  A "work based on the+Library" means either the Library or any derivative work under+copyright law: that is to say, a work containing the Library or a+portion of it, either verbatim or with modifications and/or translated+straightforwardly into another language.  (Hereinafter, translation is+included without limitation in the term "modification".)++  "Source code" for a work means the preferred form of the work for+making modifications to it.  For a library, complete source code means+all the source code for all modules it contains, plus any associated+interface definition files, plus the scripts used to control compilation+and installation of the library.++  Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope.  The act of+running a program using the Library is not restricted, and output from+such a program is covered only if its contents constitute a work based+on the Library (independent of the use of the Library in a tool for+writing it).  Whether that is true depends on what the Library does+and what the program that uses the Library does.+  +  1. You may copy and distribute verbatim copies of the Library's+complete source code as you receive it, in any medium, provided that+you conspicuously and appropriately publish on each copy an+appropriate copyright notice and disclaimer of warranty; keep intact+all the notices that refer to this License and to the absence of any+warranty; and distribute a copy of this License along with the+Library.++  You may charge a fee for the physical act of transferring a copy,+and you may at your option offer warranty protection in exchange for a+fee.++  2. You may modify your copy or copies of the Library or any portion+of it, thus forming a work based on the Library, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++    a) The modified work must itself be a software library.++    b) You must cause the files modified to carry prominent notices+    stating that you changed the files and the date of any change.++    c) You must cause the whole of the work to be licensed at no+    charge to all third parties under the terms of this License.++    d) If a facility in the modified Library refers to a function or a+    table of data to be supplied by an application program that uses+    the facility, other than as an argument passed when the facility+    is invoked, then you must make a good faith effort to ensure that,+    in the event an application does not supply such function or+    table, the facility still operates, and performs whatever part of+    its purpose remains meaningful.++    (For example, a function in a library to compute square roots has+    a purpose that is entirely well-defined independent of the+    application.  Therefore, Subsection 2d requires that any+    application-supplied function or table used by this function must+    be optional: if the application does not supply it, the square+    root function must still compute square roots.)++These requirements apply to the modified work as a whole.  If+identifiable sections of that work are not derived from the Library,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works.  But when you+distribute the same sections as part of a whole which is a work based+on the Library, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote+it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Library.++In addition, mere aggregation of another work not based on the Library+with the Library (or with a work based on the Library) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++  3. You may opt to apply the terms of the ordinary GNU General Public+License instead of this License to a given copy of the Library.  To do+this, you must alter all the notices that refer to this License, so+that they refer to the ordinary GNU General Public License, version 2,+instead of to this License.  (If a newer version than version 2 of the+ordinary GNU General Public License has appeared, then you can specify+that version instead if you wish.)  Do not make any other change in+these notices.++  Once this change is made in a given copy, it is irreversible for+that copy, so the ordinary GNU General Public License applies to all+subsequent copies and derivative works made from that copy.++  This option is useful when you wish to copy part of the code of+the Library into a program that is not a library.++  4. You may copy and distribute the Library (or a portion or+derivative of it, under Section 2) in object code or executable form+under the terms of Sections 1 and 2 above provided that you accompany+it with the complete corresponding machine-readable source code, which+must be distributed under the terms of Sections 1 and 2 above on a+medium customarily used for software interchange.++  If distribution of object code is made by offering access to copy+from a designated place, then offering equivalent access to copy the+source code from the same place satisfies the requirement to+distribute the source code, even though third parties are not+compelled to copy the source along with the object code.++  5. A program that contains no derivative of any portion of the+Library, but is designed to work with the Library by being compiled or+linked with it, is called a "work that uses the Library".  Such a+work, in isolation, is not a derivative work of the Library, and+therefore falls outside the scope of this License.++  However, linking a "work that uses the Library" with the Library+creates an executable that is a derivative of the Library (because it+contains portions of the Library), rather than a "work that uses the+library".  The executable is therefore covered by this License.+Section 6 states terms for distribution of such executables.++  When a "work that uses the Library" uses material from a header file+that is part of the Library, the object code for the work may be a+derivative work of the Library even though the source code is not.+Whether this is true is especially significant if the work can be+linked without the Library, or if the work is itself a library.  The+threshold for this to be true is not precisely defined by law.++  If such an object file uses only numerical parameters, data+structure layouts and accessors, and small macros and small inline+functions (ten lines or less in length), then the use of the object+file is unrestricted, regardless of whether it is legally a derivative+work.  (Executables containing this object code plus portions of the+Library will still fall under Section 6.)++  Otherwise, if the work is a derivative of the Library, you may+distribute the object code for the work under the terms of Section 6.+Any executables containing that work also fall under Section 6,+whether or not they are linked directly with the Library itself.++  6. As an exception to the Sections above, you may also combine or+link a "work that uses the Library" with the Library to produce a+work containing portions of the Library, and distribute that work+under terms of your choice, provided that the terms permit+modification of the work for the customer's own use and reverse+engineering for debugging such modifications.++  You must give prominent notice with each copy of the work that the+Library is used in it and that the Library and its use are covered by+this License.  You must supply a copy of this License.  If the work+during execution displays copyright notices, you must include the+copyright notice for the Library among them, as well as a reference+directing the user to the copy of this License.  Also, you must do one+of these things:++    a) Accompany the work with the complete corresponding+    machine-readable source code for the Library including whatever+    changes were used in the work (which must be distributed under+    Sections 1 and 2 above); and, if the work is an executable linked+    with the Library, with the complete machine-readable "work that+    uses the Library", as object code and/or source code, so that the+    user can modify the Library and then relink to produce a modified+    executable containing the modified Library.  (It is understood+    that the user who changes the contents of definitions files in the+    Library will not necessarily be able to recompile the application+    to use the modified definitions.)++    b) Use a suitable shared library mechanism for linking with the+    Library.  A suitable mechanism is one that (1) uses at run time a+    copy of the library already present on the user's computer system,+    rather than copying library functions into the executable, and (2)+    will operate properly with a modified version of the library, if+    the user installs one, as long as the modified version is+    interface-compatible with the version that the work was made with.++    c) Accompany the work with a written offer, valid for at+    least three years, to give the same user the materials+    specified in Subsection 6a, above, for a charge no more+    than the cost of performing this distribution.++    d) If distribution of the work is made by offering access to copy+    from a designated place, offer equivalent access to copy the above+    specified materials from the same place.++    e) Verify that the user has already received a copy of these+    materials or that you have already sent this user a copy.++  For an executable, the required form of the "work that uses the+Library" must include any data and utility programs needed for+reproducing the executable from it.  However, as a special exception,+the materials to be distributed need not include anything that is+normally distributed (in either source or binary form) with the major+components (compiler, kernel, and so on) of the operating system on+which the executable runs, unless that component itself accompanies+the executable.++  It may happen that this requirement contradicts the license+restrictions of other proprietary libraries that do not normally+accompany the operating system.  Such a contradiction means you cannot+use both them and the Library together in an executable that you+distribute.++  7. You may place library facilities that are a work based on the+Library side-by-side in a single library together with other library+facilities not covered by this License, and distribute such a combined+library, provided that the separate distribution of the work based on+the Library and of the other library facilities is otherwise+permitted, and provided that you do these two things:++    a) Accompany the combined library with a copy of the same work+    based on the Library, uncombined with any other library+    facilities.  This must be distributed under the terms of the+    Sections above.++    b) Give prominent notice with the combined library of the fact+    that part of it is a work based on the Library, and explaining+    where to find the accompanying uncombined form of the same work.++  8. You may not copy, modify, sublicense, link with, or distribute+the Library except as expressly provided under this License.  Any+attempt otherwise to copy, modify, sublicense, link with, or+distribute the Library is void, and will automatically terminate your+rights under this License.  However, parties who have received copies,+or rights, from you under this License will not have their licenses+terminated so long as such parties remain in full compliance.++  9. You are not required to accept this License, since you have not+signed it.  However, nothing else grants you permission to modify or+distribute the Library or its derivative works.  These actions are+prohibited by law if you do not accept this License.  Therefore, by+modifying or distributing the Library (or any work based on the+Library), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Library or works based on it.++  10. Each time you redistribute the Library (or any work based on the+Library), the recipient automatically receives a license from the+original licensor to copy, distribute, link with or modify the Library+subject to these terms and conditions.  You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties with+this License.++  11. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License.  If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Library at all.  For example, if a patent+license would not permit royalty-free redistribution of the Library by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Library.++If any portion of this section is held invalid or unenforceable under any+particular circumstance, the balance of the section is intended to apply,+and the section as a whole is intended to apply in other circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system which is+implemented by public license practices.  Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++  12. If the distribution and/or use of the Library is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Library under this License may add+an explicit geographical distribution limitation excluding those countries,+so that distribution is permitted only in or among countries not thus+excluded.  In such case, this License incorporates the limitation as if+written in the body of this License.++  13. The Free Software Foundation may publish revised and/or new+versions of the Lesser General Public License from time to time.+Such new versions will be similar in spirit to the present version,+but may differ in detail to address new problems or concerns.++Each version is given a distinguishing version number.  If the Library+specifies a version number of this License which applies to it and+"any later version", you have the option of following the terms and+conditions either of that version or of any later version published by+the Free Software Foundation.  If the Library does not specify a+license version number, you may choose any version ever published by+the Free Software Foundation.++  14. If you wish to incorporate parts of the Library into other free+programs whose distribution conditions are incompatible with these,+write to the author to ask for permission.  For software which is+copyrighted by the Free Software Foundation, write to the Free+Software Foundation; we sometimes make exceptions for this.  Our+decision will be guided by the two goals of preserving the free status+of all derivatives of our free software and of promoting the sharing+and reuse of software generally.++			    NO WARRANTY++  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.++  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH+DAMAGES.++		     END OF TERMS AND CONDITIONS++           How to Apply These Terms to Your New Libraries++  If you develop a new library, and you want it to be of the greatest+possible use to the public, we recommend making it free software that+everyone can redistribute and change.  You can do so by permitting+redistribution under these terms (or, alternatively, under the terms of the+ordinary General Public License).++  To apply these terms, attach the following notices to the library.  It is+safest to attach them to the start of each source file to most effectively+convey the exclusion of warranty; and each file should have at least the+"copyright" line and a pointer to where the full notice is found.++    <one line to give the library's name and a brief idea of what it does.>+    Copyright (C) <year>  <name of author>++    This library is free software; you can redistribute it and/or+    modify it under the terms of the GNU Lesser General Public+    License as published by the Free Software Foundation; either+    version 2.1 of the License, or (at your option) any later version.++    This library is distributed in the hope that it will be useful,+    but WITHOUT ANY WARRANTY; without even the implied warranty of+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+    Lesser General Public License for more details.++    You should have received a copy of the GNU Lesser General Public+    License along with this library; if not, write to the Free Software+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA++Also add information on how to contact you by electronic and paper mail.++You should also get your employer (if you work as a programmer) or your+school, if any, to sign a "copyright disclaimer" for the library, if+necessary.  Here is a sample; alter the names:++  Yoyodyne, Inc., hereby disclaims all copyright interest in the+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.++  <signature of Ty Coon>, 1 April 1990+  Ty Coon, President of Vice++That's all there is to it!++
+ Graphics/UI/Gtk/WebKit/Download.chs view
@@ -0,0 +1,286 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.Download+--  Author 		:  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+-- +--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Object used to communicate with the application when downloading +-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.Download (+-- * Types+  Download,++-- * Enums+  DownloadError(..),+  DownloadStatus(..),++-- * Constructors+  downloadNew,++-- * Methods+  downloadStart,+  downloadCancel,+  downloadGetUri,+  downloadGetNetworkRequest,+  downloadGetSuggestedFilename,+  downloadGetDestinationUri,+  downloadGetProgress,+  downloadGetElapsedTime,+  downloadGetTotalSize,+  downloadGetCurrentSize,+  downloadGetStatus,+  downloadSetDestinationUri,++-- * Attributes+  currentSize,+  destinationUri,+  networkRequest,+  networkResponse,+  progress,+  status,+  suggestedFilename,+  totalSize,++-- * Signals+  downloadError,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import System.Glib.Attributes+import System.Glib.Properties+import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import Graphics.UI.Gtk.WebKit.Signals#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Enums++{#enum DownloadError {underscoreToCase}#}+{#enum DownloadStatus {underscoreToCase}#}+++------------------+-- Constructors+++-- | Create a new 'Download' instance for the given 'NetworkRequest'+--+-- Object used to communicate with the application when downloading.+downloadNew :: NetworkRequestClass request => request -> IO Download+downloadNew nr = +    makeNewGObject mkDownload $ {#call download_new#} (toNetworkRequest nr)++-- | Initiates the 'Download'.+--+-- Notice that you must have set the destination-uri property before+-- calling this function.+downloadStart::+    DownloadClass self => self+ -> IO()+downloadStart dl =+    {#call download_start#} (toDownload dl)++-- | Cancels the 'Download'.+downloadCancel::+    DownloadClass self => self+ -> IO()+downloadCancel dl =+    {#call download_cancel#} (toDownload dl)++-- | Retrieves the URI from 'Download' which is being downloaded.+downloadGetUri::+    DownloadClass self => self+ -> IO (Maybe String) -- ^ the uri or @Nothing@ in case of failed+downloadGetUri dl = +    {#call download_get_uri#} (toDownload dl)+    >>= maybePeek peekCString++-- | Retrieves the 'NetworkRequest' that backs the download process.+downloadGetNetworkRequest :: +    DownloadClass self => self+ -> IO NetworkRequest+downloadGetNetworkRequest dl =+    makeNewGObject mkNetworkRequest $ {#call download_get_network_request#} (toDownload dl)++-- | Retrieves the filename that was suggested by the server,+-- or the one derived from the URI.+downloadGetSuggestedFilename :: +    DownloadClass self => self+ -> IO (Maybe String) -- ^ the suggested filename or @Nothing@ in case of failed+downloadGetSuggestedFilename dl =+    {#call download_get_suggested_filename#} (toDownload dl) >>= maybePeek peekCString++-- | Obtains the URI to which the downloaded file will be written.+--+-- It is set by Application before call 'downloadStart' +downloadGetDestinationUri :: +    DownloadClass self => self+ -> IO (Maybe String)+downloadGetDestinationUri dl =+    {#call download_get_destination_uri#} (toDownload dl) >>= maybePeek peekCString++-- | Defines the URI that should be used to save the downloaded file to.+downloadSetDestinationUri :: +    DownloadClass self => self+ -> String  -- ^ @destination_uri@ - the destination URI+ -> IO()+downloadSetDestinationUri dl dest =+    withCString dest $ \destPtr ->+        {#call download_set_destination_uri#} (toDownload dl) destPtr++-- |Determines the current progress of the 'Download'+downloadGetProgress :: +    DownloadClass self => self+ -> IO Double -- ^ a 'Double' ranging from 0.0 to 1.0+downloadGetProgress dl =+    liftM realToFrac $ {#call download_get_progress#} (toDownload dl)++-- |Return elapsed time for the 'Download' in seconds.+-- includeing any fractional part.+--+-- If the 'Download' is finished, had an error or was cancelled,+-- this is the time between its start and the event.+downloadGetElapsedTime ::+    DownloadClass self => self+ -> IO Double -- ^ seconds since the 'Download' was started.+downloadGetElapsedTime dl =+    liftM realToFrac $ {#call download_get_elapsed_time#} (toDownload dl)++-- |Returns the excepted total size of the download.+--+-- This is expected because the server may provide incorrect or missing+-- Content-Length. +--+-- Notice that this may grow over time.+downloadGetTotalSize :: +    DownloadClass self => self+ -> IO Int -- ^ the expected total size of the downloaded file.+downloadGetTotalSize dl =+    liftM fromIntegral $ {#call download_get_total_size#} (toDownload dl)++-- | Returns the current already downleaded size+downloadGetCurrentSize :: +    DownloadClass self => self+ -> IO Int -- ^ the already downloaded size.+downloadGetCurrentSize dl =+    liftM fromIntegral $ {#call download_get_current_size#} (toDownload dl)++-- | Obtains the current status of the 'Download' as 'DownloadStatus'+downloadGetStatus :: +    DownloadClass self => self+ -> IO DownloadStatus -- ^ the current 'DownloadStatus'+downloadGetStatus dl = +    liftM (toEnum . fromIntegral) $ {#call download_get_status#} (toDownload dl)++-- * Attibutes++-- | The length of the data already downloaded+--+-- Default value: 0+-- +-- * Since 1.1.2 +--+currentSize :: DownloadClass self => ReadAttr self Int+currentSize = readAttr downloadGetCurrentSize++-- | The URI of the save location for this download.+--+-- Default value: \"\"+--+-- * Since 1.1.2+destinationUri :: DownloadClass self => Attr self (Maybe String) +destinationUri = newAttrFromMaybeStringProperty "destination-uri"++-- | The NetworkRequest instance associated with the download.+--+-- * Since 1.1.2+networkRequest :: DownloadClass self => Attr self NetworkRequest+networkRequest = +  newAttrFromObjectProperty "network-request"+  {#call pure webkit_network_request_get_type#}++-- | The NetworkResponse instance associated with the download.+--+-- * Since 1.1.16+networkResponse :: DownloadClass self => Attr self NetworkResponse+networkResponse = +  newAttrFromObjectProperty "network-response"+  {#call pure webkit_network_response_get_type#}++-- | Determines the current progress of the download. +-- Notice that, although the progress changes are reported as soon as possible, +-- the emission of the notify signal for this property is throttled, for the benefit of download managers. +-- If you care about every update, use 'Download' : currentSize.+--+-- Allowed values: [0,1]+--+-- Default value: 1+--+-- * Since 1.1.2+progress :: DownloadClass self => ReadAttr self Double+progress = readAttr downloadGetProgress++-- | Determines the current status of the download.+--+-- Default value: 'DownloadStatusCreated'+--+-- * Since 1.1.2+status :: DownloadClass self => ReadAttr self DownloadStatus+status = readAttr downloadGetStatus++-- | The file name suggested as default when saving+--+-- Default value: \"\"+--+-- * Since 1.1.2+suggestedFilename :: DownloadClass self => ReadAttr self (Maybe String)+suggestedFilename = readAttr downloadGetSuggestedFilename++-- | The total size of the file+--+-- Default value: 0+--+-- * Since 1.1.2+totalSize :: DownloadClass self => ReadAttr self Int+totalSize = readAttr downloadGetTotalSize++-- * Signals++-- | Emitted when download is interrupted either by user action or by network errors, +-- errorDetail will take any value of 'DownloadError'.+--+-- 'download':    the object on which the signal is emitted                  +-- 'errorCode':   the corresponding error code                               +-- 'errorDetail': detailed error code for the error, see 'DownloadError' +-- 'reason':       a string describing the error                              +--                                                                          +-- Since 1.1.2+downloadError :: DownloadClass self => Signal self (Int -> Int -> String -> IO Bool)+downloadError = Signal (connect_INT_INT_STRING__BOOL "error")
+ Graphics/UI/Gtk/WebKit/HitTestResult.chs view
@@ -0,0 +1,47 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.HitTestResult+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Web Resource+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.HitTestResult (+-- * Types+  HitTestResult,++-- * Enums.+  HitTestResultContext(..),+) where++import System.Glib.FFI+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Enums.++{#enum HitTestResultContext {underscoreToCase}#}
+ Graphics/UI/Gtk/WebKit/Internal.chs view
@@ -0,0 +1,65 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.Internal+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Internal+--+-- This module contain some functions for help binding Webkit.+--+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.Internal (+-- * Methods+-- Below functions just help binding use in internal.+-- Don't call those functions in your code.+  connect_OBJECT__OBJECTPTR,+  webViewToWebViewPtr,+) where++import System.Glib.FFI+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import Graphics.UI.Gtk.WebKit.Signals#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- | Signal helper functions.+connect_OBJECT__OBJECTPTR ::+    (GObjectClass a', GObjectClass obj) => SignalName ->+    ConnectAfter -> obj ->+    (a' -> IO WebView) ->+    IO (ConnectId obj)+connect_OBJECT__OBJECTPTR signal after obj user =+    connectGeneric signal after obj action+        where action :: Ptr GObject -> Ptr GObject -> IO (Ptr WebView)+              action _ obj1  =+                  failOnGError $+                  makeNewGObject mkGObject (return obj1) >>= \obj1' ->+                  user (unsafeCastGObject obj1') >>= webViewToWebViewPtr++-- | Internal helper function for convert.+webViewToWebViewPtr :: WebViewClass self => self -> IO (Ptr WebView)+webViewToWebViewPtr webview = return $ unsafeForeignPtrToPtr (unWebView (toWebView webview))
+ Graphics/UI/Gtk/WebKit/NetworkRequest.chs view
@@ -0,0 +1,91 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.NetworkRequest+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- The target of a navigation request+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.NetworkRequest (+-- * Types+  NetworkRequest,++-- * Constructors+  networkRequestNew,++-- * Methods+  networkRequestSetUri,+  networkRequestGetUri,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++------------------+-- Constructors++++-- | Create a new NetworkRequest with the given @uri@.+-- +-- It is used whenever WebKit wants to provide information +-- about a request that will be sent, or has been sent.+networkRequestNew :: +    String  -- ^ @uri@ - the uri of the request+ -> IO NetworkRequest+networkRequestNew uri = +    withCString uri $ \uriPtr -> +      constructNewGObject mkNetworkRequest $ +        {#call network_request_new#} uriPtr+++-- | Set the URI of 'NetworkRequest'.+--+networkRequestSetUri :: +    NetworkRequestClass self => self + -> String  -- ^ @uri@ - the uri will be set to the request.+ -> IO()+networkRequestSetUri networkrequest uri =+    withCString uri $ \uriPtr -> +      {#call network_request_set_uri#} +        (toNetworkRequest networkrequest)+        uriPtr+++-- | Return the uri of 'NetworkRequest'.+networkRequestGetUri :: +    NetworkRequestClass self => self + -> IO (Maybe String) -- ^ the URI or @Nothing@ in case failed.+networkRequestGetUri networkrequest = +    {#call network_request_get_uri#} +      (toNetworkRequest networkrequest) >>= +      maybePeek peekCString+
+ Graphics/UI/Gtk/WebKit/NetworkResponse.chs view
@@ -0,0 +1,73 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.NetworkResponse+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- The response given to a network request+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.NetworkResponse (+-- * Types+  NetworkResponse,++-- * Methods+  networkResponseSetUri,+  networkResponseGetUri,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++------------------+-- Constructors++-- | Set the URI of 'NetworkResponse'.+--+networkResponseSetUri :: +    NetworkResponseClass self => self + -> String  -- ^ @uri@ - the uri will be set to the response.+ -> IO()+networkResponseSetUri response uri =+    withCString uri $ \uriPtr -> +      {#call network_response_set_uri#} +        (toNetworkResponse response)+        uriPtr+++-- | Return the uri of 'NetworkResponse'.+networkResponseGetUri :: +    NetworkResponseClass self => self + -> IO (Maybe String) -- ^ the URI or @Nothing@ in case failed.+networkResponseGetUri response = +    {#call network_response_get_uri#} +      (toNetworkResponse response) >>= +      maybePeek peekCString+
+ Graphics/UI/Gtk/WebKit/SecurityOrigin.chs view
@@ -0,0 +1,107 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebSecurityOrigin+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Web SecurityOrigin+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.SecurityOrigin (+-- * Types+  SecurityOrigin,++-- * Methods  +  securityOriginGetAllWebDatabases,+  securityOriginGetHost,+  securityOriginGetPort,+  securityOriginGetProtocol,+  securityOriginGetWebDatabaseQuota,+  securityOriginSetWebDatabaseQuota,+  securityOriginGetWebDatabaseUsage,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Methods.++-- | Returns the frame's security origin.+securityOriginGetAllWebDatabases ::+   SecurityOriginClass self => self+ -> IO [WebDatabase]   +securityOriginGetAllWebDatabases so = do+  glist <- {#call security_origin_get_all_web_databases#} (toSecurityOrigin so)+  databasePtr <- fromGList glist+  mapM (makeNewGObject mkWebDatabase . return) databasePtr++-- | Returns the hostname for the security origin.+securityOriginGetHost ::+   SecurityOriginClass self => self+ -> IO String+securityOriginGetHost so =+  {#call security_origin_get_host#} (toSecurityOrigin so) >>= peekCString++-- | Returns the port for the security origin.+securityOriginGetPort ::+   SecurityOriginClass self => self+ -> IO Int+securityOriginGetPort so =+  liftM fromIntegral $ {#call security_origin_get_port#} (toSecurityOrigin so)++-- | Returns the protocol for the security origin.+securityOriginGetProtocol ::+   SecurityOriginClass self => self+ -> IO String+securityOriginGetProtocol so =+  {#call security_origin_get_protocol#} (toSecurityOrigin so) >>= peekCString++-- | Returns the quota for Web Database storage of the security origin in bytes.+securityOriginGetWebDatabaseQuota ::+   SecurityOriginClass self => self+ -> IO Int+securityOriginGetWebDatabaseQuota so =+    liftM fromIntegral $ {#call security_origin_get_web_database_quota#} (toSecurityOrigin so)+  +-- | Returns the usage for Web Database storage of the security origin in bytes.+securityOriginGetWebDatabaseUsage ::+   SecurityOriginClass self => self+ -> IO Int+securityOriginGetWebDatabaseUsage so =+    liftM fromIntegral $ {#call security_origin_get_web_database_usage#} (toSecurityOrigin so)+  +-- | Adjust the quota for Web Database storage of the security origin+securityOriginSetWebDatabaseQuota ::+   SecurityOriginClass self => self+ -> Int+ -> IO ()+securityOriginSetWebDatabaseQuota so quota =+  {#call security_origin_set_web_database_quota#} (toSecurityOrigin so) (fromIntegral quota)+
+ Graphics/UI/Gtk/WebKit/Signals.chs view
@@ -0,0 +1,359 @@+{-# OPTIONS_HADDOCK hide #-}+-- -*-haskell-*-+-- -------------------- automatically generated file - do not edit ------------+--  Callback installers for the GIMP Toolkit (GTK) Binding for Haskell+--+--  Author : Axel Simon+--+--  Created: 1 July 2000+--+--  Copyright (C) 2000-2005 Axel Simon+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- #hide++-- These functions are used to connect signals to widgets. They are auto-+-- matically created through HookGenerator.hs which takes a list of possible+-- function signatures that are included in the GTK sources (gtkmarshal.list).+--+-- The object system in the second version of GTK is based on GObject from+-- GLIB. This base class is rather primitive in that it only implements+-- ref and unref methods (and others that are not interesting to us). If+-- the marshall list mentions OBJECT it refers to an instance of this +-- GObject which is automatically wrapped with a ref and unref call.+-- Structures which are not derived from GObject have to be passed as+-- BOXED which gives the signal connect function a possibility to do the+-- conversion into a proper ForeignPtr type. In special cases the signal+-- connect function use a PTR type which will then be mangled in the+-- user function directly. The latter is needed if a signal delivers a+-- pointer to a string and its length in a separate integer.+--+module Graphics.UI.Gtk.WebKit.Signals (+  module System.Glib.Signals,++  connect_PTR_PTR__NONE,+  connect_OBJECT__BOOL,+  connect_OBJECT_STRING_BOXED__BOOL,+  connect_OBJECT__PTR,+  connect_INT_INT_STRING__BOOL,+  connect_STRING_STRING_INT_STRING__BOOL,+  connect_OBJECT_STRING__BOOL,+  connect_OBJECT_STRING_STRING__BOOL,+  connect_OBJECT_OBJECT_OBJECT_OBJECT__BOOL,+  connect_OBJECT_OBJECT_STRING_OBJECT__BOOL,+  connect_OBJECT_OBJECT_OBJECT_OBJECT__NONE,+  connect_ENUM_INT__BOOL,+  connect_NONE__BOOL,+  connect_NONE__NONE,+  connect_OBJECT_STRING__NONE,+  connect_OBJECT_OBJECT__NONE,+  connect_STRING_STRING__NONE,+  connect_OBJECT__NONE,+  connect_INT__NONE,+  connect_STRING__NONE,+  +  ) where++import Control.Monad	(liftM)++import System.Glib.FFI+import System.Glib.UTFString   (peekUTFString)+import System.Glib.GError      (failOnGError)+{#import System.Glib.Signals#}+{#import System.Glib.GObject#} +import Graphics.UI.GtkInternals+++{#context lib="gtk" prefix="gtk" #}+++-- Here are the generators that turn a Haskell function into+-- a C function pointer. The fist Argument is always the widget,+-- the last one is the user g_pointer. Both are ignored.+++connect_PTR_PTR__NONE :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (Ptr a -> Ptr b -> IO ()) ->+  IO (ConnectId obj)+connect_PTR_PTR__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr () -> Ptr () -> IO ()+        action _ ptr1 ptr2 =+          failOnGError $+          user (castPtr ptr1) (castPtr ptr2)++connect_OBJECT__BOOL :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> IO Bool+        action _ obj1 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1')++connect_OBJECT_STRING_BOXED__BOOL :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  (Ptr c' -> IO c) -> +  ConnectAfter -> obj ->+  (a' -> String -> c -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT_STRING_BOXED__BOOL signal boxedPre3 after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> CString -> Ptr () -> IO Bool+        action _ obj1 str2 box3 =+          failOnGError $+          boxedPre3 (castPtr box3) >>= \box3' ->+          peekUTFString str2 >>= \str2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') str2' box3'++connect_OBJECT__PTR :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> IO (Ptr b)) ->+  IO (ConnectId obj)+connect_OBJECT__PTR signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> IO (Ptr ())+        action _ obj1 =+          failOnGError $+          liftM castPtr $ +          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1')++connect_INT_INT_STRING__BOOL :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (Int -> Int -> String -> IO Bool) ->+  IO (ConnectId obj)+connect_INT_INT_STRING__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Int -> Int -> CString -> IO Bool+        action _ int1 int2 str3 =+          failOnGError $+          peekUTFString str3 >>= \str3' ->+          user int1 int2 str3'++connect_STRING_STRING_INT_STRING__BOOL :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (String -> String -> Int -> String -> IO Bool) ->+  IO (ConnectId obj)+connect_STRING_STRING_INT_STRING__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> CString -> CString -> Int -> CString -> IO Bool+        action _ str1 str2 int3 str4 =+          failOnGError $+          peekUTFString str4 >>= \str4' ->+          peekUTFString str2 >>= \str2' ->+          peekUTFString str1 >>= \str1' ->+          user str1' str2' int3 str4'++connect_OBJECT_STRING__BOOL :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> String -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT_STRING__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> CString -> IO Bool+        action _ obj1 str2 =+          failOnGError $+          peekUTFString str2 >>= \str2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') str2'++connect_OBJECT_STRING_STRING__BOOL :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> String -> String -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT_STRING_STRING__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> CString -> CString -> IO Bool+        action _ obj1 str2 str3 =+          failOnGError $+          peekUTFString str3 >>= \str3' ->+          peekUTFString str2 >>= \str2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') str2' str3'++connect_OBJECT_OBJECT_OBJECT_OBJECT__BOOL :: +  (GObjectClass a', GObjectClass b', GObjectClass c', GObjectClass d', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> b' -> c' -> d' -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT_OBJECT_OBJECT_OBJECT__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO Bool+        action _ obj1 obj2 obj3 obj4 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj4) >>= \obj4' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj3) >>= \obj3' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj2) >>= \obj2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') (unsafeCastGObject obj2') (unsafeCastGObject obj3') (unsafeCastGObject obj4')++connect_OBJECT_OBJECT_STRING_OBJECT__BOOL :: +  (GObjectClass a', GObjectClass b', GObjectClass d', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> b' -> String -> d' -> IO Bool) ->+  IO (ConnectId obj)+connect_OBJECT_OBJECT_STRING_OBJECT__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> CString -> Ptr GObject -> IO Bool+        action _ obj1 obj2 str3 obj4 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj4) >>= \obj4' ->+          peekUTFString str3 >>= \str3' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj2) >>= \obj2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') (unsafeCastGObject obj2') str3' (unsafeCastGObject obj4')++connect_OBJECT_OBJECT_OBJECT_OBJECT__NONE :: +  (GObjectClass a', GObjectClass b', GObjectClass c', GObjectClass d', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> b' -> c' -> d' -> IO ()) ->+  IO (ConnectId obj)+connect_OBJECT_OBJECT_OBJECT_OBJECT__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()+        action _ obj1 obj2 obj3 obj4 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj4) >>= \obj4' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj3) >>= \obj3' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj2) >>= \obj2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') (unsafeCastGObject obj2') (unsafeCastGObject obj3') (unsafeCastGObject obj4')++connect_ENUM_INT__BOOL :: +  (Enum a, GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a -> Int -> IO Bool) ->+  IO (ConnectId obj)+connect_ENUM_INT__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Int -> Int -> IO Bool+        action _ enum1 int2 =+          failOnGError $+          user (toEnum enum1) int2++connect_NONE__BOOL :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (IO Bool) ->+  IO (ConnectId obj)+connect_NONE__BOOL signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> IO Bool+        action _ =+          failOnGError $+          user++connect_NONE__NONE :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (IO ()) ->+  IO (ConnectId obj)+connect_NONE__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> IO ()+        action _ =+          failOnGError $+          user++connect_OBJECT_STRING__NONE :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> String -> IO ()) ->+  IO (ConnectId obj)+connect_OBJECT_STRING__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> CString -> IO ()+        action _ obj1 str2 =+          failOnGError $+          peekUTFString str2 >>= \str2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') str2'++connect_OBJECT_OBJECT__NONE :: +  (GObjectClass a', GObjectClass b', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> b' -> IO ()) ->+  IO (ConnectId obj)+connect_OBJECT_OBJECT__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()+        action _ obj1 obj2 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj2) >>= \obj2' ->+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1') (unsafeCastGObject obj2')++connect_STRING_STRING__NONE :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (String -> String -> IO ()) ->+  IO (ConnectId obj)+connect_STRING_STRING__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> CString -> CString -> IO ()+        action _ str1 str2 =+          failOnGError $+          peekUTFString str2 >>= \str2' ->+          peekUTFString str1 >>= \str1' ->+          user str1' str2'++connect_OBJECT__NONE :: +  (GObjectClass a', GObjectClass obj) => SignalName ->+  ConnectAfter -> obj ->+  (a' -> IO ()) ->+  IO (ConnectId obj)+connect_OBJECT__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Ptr GObject -> IO ()+        action _ obj1 =+          failOnGError $+          makeNewGObject (GObject, objectUnrefFromMainloop) (return obj1) >>= \obj1' ->+          user (unsafeCastGObject obj1')++connect_INT__NONE :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (Int -> IO ()) ->+  IO (ConnectId obj)+connect_INT__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> Int -> IO ()+        action _ int1 =+          failOnGError $+          user int1++connect_STRING__NONE :: +  GObjectClass obj => SignalName ->+  ConnectAfter -> obj ->+  (String -> IO ()) ->+  IO (ConnectId obj)+connect_STRING__NONE signal after obj user =+  connectGeneric signal after obj action+  where action :: Ptr GObject -> CString -> IO ()+        action _ str1 =+          failOnGError $+          peekUTFString str1 >>= \str1' ->+          user str1'+
+ Graphics/UI/Gtk/WebKit/SoupAuthDialog.chs view
@@ -0,0 +1,40 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.SoupAuthDialog+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Web Resource+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.SoupAuthDialog (+-- * Types+  SoupAuthDialog,+) where++import System.Glib.FFI+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}
+ Graphics/UI/Gtk/WebKit/Types.chs view
@@ -0,0 +1,548 @@+{-# OPTIONS_HADDOCK hide #-}+-- -*-haskell-*-+-- -------------------- automatically generated file - do not edit ----------+--  Object hierarchy for the GIMP Toolkit (GTK) Binding for Haskell+--+--  Author : Axel Simon+--+--  Copyright (C) 2001-2005 Axel Simon+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- #hide++-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- This file reflects the Gtk+ object hierarchy in terms of Haskell classes.+--+-- Note: the mk... functions were originally meant to simply be an alias+-- for the constructor. However, in order to communicate the destructor+-- of an object to objectNew, the mk... functions are now a tuple containing+-- Haskell constructor and the destructor function pointer. This hack avoids+-- changing all modules that simply pass mk... to objectNew.+--+module Graphics.UI.Gtk.WebKit.Types (++  module Graphics.UI.GtkInternals,+  WebView(WebView), WebViewClass,+  toWebView, +  mkWebView, unWebView,+  castToWebView, gTypeWebView,+  WebFrame(WebFrame), WebFrameClass,+  toWebFrame, +  mkWebFrame, unWebFrame,+  castToWebFrame, gTypeWebFrame,+  WebSettings(WebSettings), WebSettingsClass,+  toWebSettings, +  mkWebSettings, unWebSettings,+  castToWebSettings, gTypeWebSettings,+  NetworkRequest(NetworkRequest), NetworkRequestClass,+  toNetworkRequest, +  mkNetworkRequest, unNetworkRequest,+  castToNetworkRequest, gTypeNetworkRequest,+  NetworkResponse(NetworkResponse), NetworkResponseClass,+  toNetworkResponse, +  mkNetworkResponse, unNetworkResponse,+  castToNetworkResponse, gTypeNetworkResponse,+  Download(Download), DownloadClass,+  toDownload, +  mkDownload, unDownload,+  castToDownload, gTypeDownload,+  WebBackForwardList(WebBackForwardList), WebBackForwardListClass,+  toWebBackForwardList, +  mkWebBackForwardList, unWebBackForwardList,+  castToWebBackForwardList, gTypeWebBackForwardList,+  WebHistoryItem(WebHistoryItem), WebHistoryItemClass,+  toWebHistoryItem, +  mkWebHistoryItem, unWebHistoryItem,+  castToWebHistoryItem, gTypeWebHistoryItem,+  WebInspector(WebInspector), WebInspectorClass,+  toWebInspector, +  mkWebInspector, unWebInspector,+  castToWebInspector, gTypeWebInspector,+  HitTestResult(HitTestResult), HitTestResultClass,+  toHitTestResult, +  mkHitTestResult, unHitTestResult,+  castToHitTestResult, gTypeHitTestResult,+  SecurityOrigin(SecurityOrigin), SecurityOriginClass,+  toSecurityOrigin, +  mkSecurityOrigin, unSecurityOrigin,+  castToSecurityOrigin, gTypeSecurityOrigin,+  SoupAuthDialog(SoupAuthDialog), SoupAuthDialogClass,+  toSoupAuthDialog, +  mkSoupAuthDialog, unSoupAuthDialog,+  castToSoupAuthDialog, gTypeSoupAuthDialog,+  WebDatabase(WebDatabase), WebDatabaseClass,+  toWebDatabase, +  mkWebDatabase, unWebDatabase,+  castToWebDatabase, gTypeWebDatabase,+  WebDataSource(WebDataSource), WebDataSourceClass,+  toWebDataSource, +  mkWebDataSource, unWebDataSource,+  castToWebDataSource, gTypeWebDataSource,+  WebNavigationAction(WebNavigationAction), WebNavigationActionClass,+  toWebNavigationAction, +  mkWebNavigationAction, unWebNavigationAction,+  castToWebNavigationAction, gTypeWebNavigationAction,+  WebPolicyDecision(WebPolicyDecision), WebPolicyDecisionClass,+  toWebPolicyDecision, +  mkWebPolicyDecision, unWebPolicyDecision,+  castToWebPolicyDecision, gTypeWebPolicyDecision,+  WebResource(WebResource), WebResourceClass,+  toWebResource, +  mkWebResource, unWebResource,+  castToWebResource, gTypeWebResource,+  WebWindowFeatures(WebWindowFeatures), WebWindowFeaturesClass,+  toWebWindowFeatures, +  mkWebWindowFeatures, unWebWindowFeatures,+  castToWebWindowFeatures, gTypeWebWindowFeatures+  ) where++import Foreign.ForeignPtr (ForeignPtr, castForeignPtr, unsafeForeignPtrToPtr)+import Foreign.C.Types    (CULong, CUInt)+import System.Glib.GType	(GType, typeInstanceIsA)+{#import Graphics.UI.GtkInternals#}++{# context lib="gtk" prefix="gtk" #}++-- The usage of foreignPtrToPtr should be safe as the evaluation will only be+-- forced if the object is used afterwards+--+castTo :: (GObjectClass obj, GObjectClass obj') => GType -> String+                                                -> (obj -> obj')+castTo gtype objTypeName obj =+  case toGObject obj of+    gobj@(GObject objFPtr)+      | typeInstanceIsA ((unsafeForeignPtrToPtr.castForeignPtr) objFPtr) gtype+                  -> unsafeCastGObject gobj+      | otherwise -> error $ "Cannot cast object to " ++ objTypeName+++-- ******************************************************************** WebView++{#pointer *WebKitWebView as WebView foreign newtype #} deriving (Eq,Ord)++mkWebView = (WebView, objectUnrefFromMainloop)+unWebView (WebView o) = o++class ContainerClass o => WebViewClass o+toWebView :: WebViewClass o => o -> WebView+toWebView = unsafeCastGObject . toGObject++instance WebViewClass WebView+instance ContainerClass WebView+instance WidgetClass WebView+instance ObjectClass WebView+instance GObjectClass WebView where+  toGObject = GObject . castForeignPtr . unWebView+  unsafeCastGObject = WebView . castForeignPtr . unGObject++castToWebView :: GObjectClass obj => obj -> WebView+castToWebView = castTo gTypeWebView "WebView"++gTypeWebView :: GType+gTypeWebView =+  {# call fun unsafe webkit_web_view_get_type #}++-- ******************************************************************* WebFrame++{#pointer *WebKitWebFrame as WebFrame foreign newtype #} deriving (Eq,Ord)++mkWebFrame = (WebFrame, objectUnrefFromMainloop)+unWebFrame (WebFrame o) = o++class GObjectClass o => WebFrameClass o+toWebFrame :: WebFrameClass o => o -> WebFrame+toWebFrame = unsafeCastGObject . toGObject++instance WebFrameClass WebFrame+instance GObjectClass WebFrame where+  toGObject = GObject . castForeignPtr . unWebFrame+  unsafeCastGObject = WebFrame . castForeignPtr . unGObject++castToWebFrame :: GObjectClass obj => obj -> WebFrame+castToWebFrame = castTo gTypeWebFrame "WebFrame"++gTypeWebFrame :: GType+gTypeWebFrame =+  {# call fun unsafe webkit_web_frame_get_type #}++-- **************************************************************** WebSettings++{#pointer *WebKitWebSettings as WebSettings foreign newtype #} deriving (Eq,Ord)++mkWebSettings = (WebSettings, objectUnrefFromMainloop)+unWebSettings (WebSettings o) = o++class GObjectClass o => WebSettingsClass o+toWebSettings :: WebSettingsClass o => o -> WebSettings+toWebSettings = unsafeCastGObject . toGObject++instance WebSettingsClass WebSettings+instance GObjectClass WebSettings where+  toGObject = GObject . castForeignPtr . unWebSettings+  unsafeCastGObject = WebSettings . castForeignPtr . unGObject++castToWebSettings :: GObjectClass obj => obj -> WebSettings+castToWebSettings = castTo gTypeWebSettings "WebSettings"++gTypeWebSettings :: GType+gTypeWebSettings =+  {# call fun unsafe webkit_web_settings_get_type #}++-- ************************************************************* NetworkRequest++{#pointer *WebKitNetworkRequest as NetworkRequest foreign newtype #} deriving (Eq,Ord)++mkNetworkRequest = (NetworkRequest, objectUnrefFromMainloop)+unNetworkRequest (NetworkRequest o) = o++class GObjectClass o => NetworkRequestClass o+toNetworkRequest :: NetworkRequestClass o => o -> NetworkRequest+toNetworkRequest = unsafeCastGObject . toGObject++instance NetworkRequestClass NetworkRequest+instance GObjectClass NetworkRequest where+  toGObject = GObject . castForeignPtr . unNetworkRequest+  unsafeCastGObject = NetworkRequest . castForeignPtr . unGObject++castToNetworkRequest :: GObjectClass obj => obj -> NetworkRequest+castToNetworkRequest = castTo gTypeNetworkRequest "NetworkRequest"++gTypeNetworkRequest :: GType+gTypeNetworkRequest =+  {# call fun unsafe webkit_network_request_get_type #}++-- ************************************************************ NetworkResponse++{#pointer *WebKitNetworkResponse as NetworkResponse foreign newtype #} deriving (Eq,Ord)++mkNetworkResponse = (NetworkResponse, objectUnrefFromMainloop)+unNetworkResponse (NetworkResponse o) = o++class GObjectClass o => NetworkResponseClass o+toNetworkResponse :: NetworkResponseClass o => o -> NetworkResponse+toNetworkResponse = unsafeCastGObject . toGObject++instance NetworkResponseClass NetworkResponse+instance GObjectClass NetworkResponse where+  toGObject = GObject . castForeignPtr . unNetworkResponse+  unsafeCastGObject = NetworkResponse . castForeignPtr . unGObject++castToNetworkResponse :: GObjectClass obj => obj -> NetworkResponse+castToNetworkResponse = castTo gTypeNetworkResponse "NetworkResponse"++gTypeNetworkResponse :: GType+gTypeNetworkResponse =+  {# call fun unsafe webkit_network_response_get_type #}++-- ******************************************************************* Download++{#pointer *WebKitDownload as Download foreign newtype #} deriving (Eq,Ord)++mkDownload = (Download, objectUnrefFromMainloop)+unDownload (Download o) = o++class GObjectClass o => DownloadClass o+toDownload :: DownloadClass o => o -> Download+toDownload = unsafeCastGObject . toGObject++instance DownloadClass Download+instance GObjectClass Download where+  toGObject = GObject . castForeignPtr . unDownload+  unsafeCastGObject = Download . castForeignPtr . unGObject++castToDownload :: GObjectClass obj => obj -> Download+castToDownload = castTo gTypeDownload "Download"++gTypeDownload :: GType+gTypeDownload =+  {# call fun unsafe webkit_download_get_type #}++-- ********************************************************* WebBackForwardList++{#pointer *WebKitWebBackForwardList as WebBackForwardList foreign newtype #} deriving (Eq,Ord)++mkWebBackForwardList = (WebBackForwardList, objectUnrefFromMainloop)+unWebBackForwardList (WebBackForwardList o) = o++class GObjectClass o => WebBackForwardListClass o+toWebBackForwardList :: WebBackForwardListClass o => o -> WebBackForwardList+toWebBackForwardList = unsafeCastGObject . toGObject++instance WebBackForwardListClass WebBackForwardList+instance GObjectClass WebBackForwardList where+  toGObject = GObject . castForeignPtr . unWebBackForwardList+  unsafeCastGObject = WebBackForwardList . castForeignPtr . unGObject++castToWebBackForwardList :: GObjectClass obj => obj -> WebBackForwardList+castToWebBackForwardList = castTo gTypeWebBackForwardList "WebBackForwardList"++gTypeWebBackForwardList :: GType+gTypeWebBackForwardList =+  {# call fun unsafe webkit_web_back_forward_list_get_type #}++-- ************************************************************* WebHistoryItem++{#pointer *WebKitWebHistoryItem as WebHistoryItem foreign newtype #} deriving (Eq,Ord)++mkWebHistoryItem = (WebHistoryItem, objectUnrefFromMainloop)+unWebHistoryItem (WebHistoryItem o) = o++class GObjectClass o => WebHistoryItemClass o+toWebHistoryItem :: WebHistoryItemClass o => o -> WebHistoryItem+toWebHistoryItem = unsafeCastGObject . toGObject++instance WebHistoryItemClass WebHistoryItem+instance GObjectClass WebHistoryItem where+  toGObject = GObject . castForeignPtr . unWebHistoryItem+  unsafeCastGObject = WebHistoryItem . castForeignPtr . unGObject++castToWebHistoryItem :: GObjectClass obj => obj -> WebHistoryItem+castToWebHistoryItem = castTo gTypeWebHistoryItem "WebHistoryItem"++gTypeWebHistoryItem :: GType+gTypeWebHistoryItem =+  {# call fun unsafe webkit_web_history_item_get_type #}++-- *************************************************************** WebInspector++{#pointer *WebKitWebInspector as WebInspector foreign newtype #} deriving (Eq,Ord)++mkWebInspector = (WebInspector, objectUnrefFromMainloop)+unWebInspector (WebInspector o) = o++class GObjectClass o => WebInspectorClass o+toWebInspector :: WebInspectorClass o => o -> WebInspector+toWebInspector = unsafeCastGObject . toGObject++instance WebInspectorClass WebInspector+instance GObjectClass WebInspector where+  toGObject = GObject . castForeignPtr . unWebInspector+  unsafeCastGObject = WebInspector . castForeignPtr . unGObject++castToWebInspector :: GObjectClass obj => obj -> WebInspector+castToWebInspector = castTo gTypeWebInspector "WebInspector"++gTypeWebInspector :: GType+gTypeWebInspector =+  {# call fun unsafe webkit_web_inspector_get_type #}++-- ************************************************************** HitTestResult++{#pointer *WebKitHitTestResult as HitTestResult foreign newtype #} deriving (Eq,Ord)++mkHitTestResult = (HitTestResult, objectUnrefFromMainloop)+unHitTestResult (HitTestResult o) = o++class GObjectClass o => HitTestResultClass o+toHitTestResult :: HitTestResultClass o => o -> HitTestResult+toHitTestResult = unsafeCastGObject . toGObject++instance HitTestResultClass HitTestResult+instance GObjectClass HitTestResult where+  toGObject = GObject . castForeignPtr . unHitTestResult+  unsafeCastGObject = HitTestResult . castForeignPtr . unGObject++castToHitTestResult :: GObjectClass obj => obj -> HitTestResult+castToHitTestResult = castTo gTypeHitTestResult "HitTestResult"++gTypeHitTestResult :: GType+gTypeHitTestResult =+  {# call fun unsafe webkit_hit_test_result_get_type #}++-- ************************************************************* SecurityOrigin++{#pointer *WebKitSecurityOrigin as SecurityOrigin foreign newtype #} deriving (Eq,Ord)++mkSecurityOrigin = (SecurityOrigin, objectUnrefFromMainloop)+unSecurityOrigin (SecurityOrigin o) = o++class GObjectClass o => SecurityOriginClass o+toSecurityOrigin :: SecurityOriginClass o => o -> SecurityOrigin+toSecurityOrigin = unsafeCastGObject . toGObject++instance SecurityOriginClass SecurityOrigin+instance GObjectClass SecurityOrigin where+  toGObject = GObject . castForeignPtr . unSecurityOrigin+  unsafeCastGObject = SecurityOrigin . castForeignPtr . unGObject++castToSecurityOrigin :: GObjectClass obj => obj -> SecurityOrigin+castToSecurityOrigin = castTo gTypeSecurityOrigin "SecurityOrigin"++gTypeSecurityOrigin :: GType+gTypeSecurityOrigin =+  {# call fun unsafe webkit_security_origin_get_type #}++-- ************************************************************* SoupAuthDialog++{#pointer *WebKitSoupAuthDialog as SoupAuthDialog foreign newtype #} deriving (Eq,Ord)++mkSoupAuthDialog = (SoupAuthDialog, objectUnrefFromMainloop)+unSoupAuthDialog (SoupAuthDialog o) = o++class GObjectClass o => SoupAuthDialogClass o+toSoupAuthDialog :: SoupAuthDialogClass o => o -> SoupAuthDialog+toSoupAuthDialog = unsafeCastGObject . toGObject++instance SoupAuthDialogClass SoupAuthDialog+instance GObjectClass SoupAuthDialog where+  toGObject = GObject . castForeignPtr . unSoupAuthDialog+  unsafeCastGObject = SoupAuthDialog . castForeignPtr . unGObject++castToSoupAuthDialog :: GObjectClass obj => obj -> SoupAuthDialog+castToSoupAuthDialog = castTo gTypeSoupAuthDialog "SoupAuthDialog"++gTypeSoupAuthDialog :: GType+gTypeSoupAuthDialog =+  {# call fun unsafe webkit_soup_auth_dialog_get_type #}++-- **************************************************************** WebDatabase++{#pointer *WebKitWebDatabase as WebDatabase foreign newtype #} deriving (Eq,Ord)++mkWebDatabase = (WebDatabase, objectUnrefFromMainloop)+unWebDatabase (WebDatabase o) = o++class GObjectClass o => WebDatabaseClass o+toWebDatabase :: WebDatabaseClass o => o -> WebDatabase+toWebDatabase = unsafeCastGObject . toGObject++instance WebDatabaseClass WebDatabase+instance GObjectClass WebDatabase where+  toGObject = GObject . castForeignPtr . unWebDatabase+  unsafeCastGObject = WebDatabase . castForeignPtr . unGObject++castToWebDatabase :: GObjectClass obj => obj -> WebDatabase+castToWebDatabase = castTo gTypeWebDatabase "WebDatabase"++gTypeWebDatabase :: GType+gTypeWebDatabase =+  {# call fun unsafe webkit_web_database_get_type #}++-- ************************************************************** WebDataSource++{#pointer *WebKitWebDataSource as WebDataSource foreign newtype #} deriving (Eq,Ord)++mkWebDataSource = (WebDataSource, objectUnrefFromMainloop)+unWebDataSource (WebDataSource o) = o++class GObjectClass o => WebDataSourceClass o+toWebDataSource :: WebDataSourceClass o => o -> WebDataSource+toWebDataSource = unsafeCastGObject . toGObject++instance WebDataSourceClass WebDataSource+instance GObjectClass WebDataSource where+  toGObject = GObject . castForeignPtr . unWebDataSource+  unsafeCastGObject = WebDataSource . castForeignPtr . unGObject++castToWebDataSource :: GObjectClass obj => obj -> WebDataSource+castToWebDataSource = castTo gTypeWebDataSource "WebDataSource"++gTypeWebDataSource :: GType+gTypeWebDataSource =+  {# call fun unsafe webkit_web_data_source_get_type #}++-- ******************************************************** WebNavigationAction++{#pointer *WebKitWebNavigationAction as WebNavigationAction foreign newtype #} deriving (Eq,Ord)++mkWebNavigationAction = (WebNavigationAction, objectUnrefFromMainloop)+unWebNavigationAction (WebNavigationAction o) = o++class GObjectClass o => WebNavigationActionClass o+toWebNavigationAction :: WebNavigationActionClass o => o -> WebNavigationAction+toWebNavigationAction = unsafeCastGObject . toGObject++instance WebNavigationActionClass WebNavigationAction+instance GObjectClass WebNavigationAction where+  toGObject = GObject . castForeignPtr . unWebNavigationAction+  unsafeCastGObject = WebNavigationAction . castForeignPtr . unGObject++castToWebNavigationAction :: GObjectClass obj => obj -> WebNavigationAction+castToWebNavigationAction = castTo gTypeWebNavigationAction "WebNavigationAction"++gTypeWebNavigationAction :: GType+gTypeWebNavigationAction =+  {# call fun unsafe webkit_web_navigation_action_get_type #}++-- ********************************************************** WebPolicyDecision++{#pointer *WebKitWebPolicyDecision as WebPolicyDecision foreign newtype #} deriving (Eq,Ord)++mkWebPolicyDecision = (WebPolicyDecision, objectUnrefFromMainloop)+unWebPolicyDecision (WebPolicyDecision o) = o++class GObjectClass o => WebPolicyDecisionClass o+toWebPolicyDecision :: WebPolicyDecisionClass o => o -> WebPolicyDecision+toWebPolicyDecision = unsafeCastGObject . toGObject++instance WebPolicyDecisionClass WebPolicyDecision+instance GObjectClass WebPolicyDecision where+  toGObject = GObject . castForeignPtr . unWebPolicyDecision+  unsafeCastGObject = WebPolicyDecision . castForeignPtr . unGObject++castToWebPolicyDecision :: GObjectClass obj => obj -> WebPolicyDecision+castToWebPolicyDecision = castTo gTypeWebPolicyDecision "WebPolicyDecision"++gTypeWebPolicyDecision :: GType+gTypeWebPolicyDecision =+  {# call fun unsafe webkit_web_policy_decision_get_type #}++-- **************************************************************** WebResource++{#pointer *WebKitWebResource as WebResource foreign newtype #} deriving (Eq,Ord)++mkWebResource = (WebResource, objectUnrefFromMainloop)+unWebResource (WebResource o) = o++class GObjectClass o => WebResourceClass o+toWebResource :: WebResourceClass o => o -> WebResource+toWebResource = unsafeCastGObject . toGObject++instance WebResourceClass WebResource+instance GObjectClass WebResource where+  toGObject = GObject . castForeignPtr . unWebResource+  unsafeCastGObject = WebResource . castForeignPtr . unGObject++castToWebResource :: GObjectClass obj => obj -> WebResource+castToWebResource = castTo gTypeWebResource "WebResource"++gTypeWebResource :: GType+gTypeWebResource =+  {# call fun unsafe webkit_web_resource_get_type #}++-- ********************************************************** WebWindowFeatures++{#pointer *WebKitWebWindowFeatures as WebWindowFeatures foreign newtype #} deriving (Eq,Ord)++mkWebWindowFeatures = (WebWindowFeatures, objectUnrefFromMainloop)+unWebWindowFeatures (WebWindowFeatures o) = o++class GObjectClass o => WebWindowFeaturesClass o+toWebWindowFeatures :: WebWindowFeaturesClass o => o -> WebWindowFeatures+toWebWindowFeatures = unsafeCastGObject . toGObject++instance WebWindowFeaturesClass WebWindowFeatures+instance GObjectClass WebWindowFeatures where+  toGObject = GObject . castForeignPtr . unWebWindowFeatures+  unsafeCastGObject = WebWindowFeatures . castForeignPtr . unGObject++castToWebWindowFeatures :: GObjectClass obj => obj -> WebWindowFeatures+castToWebWindowFeatures = castTo gTypeWebWindowFeatures "WebWindowFeatures"++gTypeWebWindowFeatures :: GType+gTypeWebWindowFeatures =+  {# call fun unsafe webkit_web_window_features_get_type #}+
+ Graphics/UI/Gtk/WebKit/WebBackForwardList.chs view
@@ -0,0 +1,227 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.Download+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+-- +--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- The history of a 'WebView'+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebBackForwardList (+-- * Types+  WebBackForwardList,++-- * Constructors+  webBackForwardListNewWithWebView,++-- * Methods+  webBackForwardListGoForward,+  webBackForwardListGoBack,+  webBackForwardListContainsItem,+  webBackForwardListGoToItem,+  webBackForwardListGetBackItem,+  webBackForwardListGetCurrentItem,+  webBackForwardListGetForwardItem,+  webBackForwardListGetNthItem,+  webBackForwardListGetBackLength,+  webBackForwardListGetForwardLength,+  webBackForwardListGetLimit,+  webBackForwardListSetLimit,+  webBackForwardListAddItem,+  webBackForwardListGetForwardListWithLimit,+  webBackForwardListGetBackListWithLimit,+ +) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}+++------------------+-- Constructors++-- | Create an WebBackForwardList with a controlling WebView.+webBackForwardListNewWithWebView :: (WebViewClass webview) => webview -> IO WebBackForwardList+webBackForwardListNewWithWebView webview = +    constructNewGObject mkWebBackForwardList $ +      {#call web_back_forward_list_new_with_web_view#} +        (toWebView webview)++-- | Steps forward in the back forward list.+webBackForwardListGoForward :: +    WebBackForwardListClass self => self+ -> IO()+webBackForwardListGoForward webbackforwardlist = +    {#call web_back_forward_list_go_forward#} (toWebBackForwardList webbackforwardlist)++-- | Steps back in the back forward list.+webBackForwardListGoBack :: +    WebBackForwardListClass self => self+ -> IO()+webBackForwardListGoBack webbackforwardlist = +    {#call web_back_forward_list_go_back#} (toWebBackForwardList webbackforwardlist)++-- | Check if an history item in the back forward list.+webBackForwardListContainsItem :: +    (WebBackForwardListClass self, WebHistoryItemClass item) => self+ -> item+ -> IO Bool+webBackForwardListContainsItem webbackforwardlist webhistoryitem = +    liftM toBool $ {#call web_back_forward_list_contains_item#} +      (toWebBackForwardList webbackforwardlist)+      (toWebHistoryItem webhistoryitem)++-- | Go to the specified history item in the back forward list.+webBackForwardListGoToItem :: +    (WebBackForwardListClass self,WebHistoryItemClass item) => self+ -> item+ -> IO()+webBackForwardListGoToItem webbackforwardlist webhistoryitem =+    {#call web_back_forward_list_go_to_item#} +      (toWebBackForwardList webbackforwardlist)+      (toWebHistoryItem webhistoryitem)++-- | Return the history item that precedes the current history item.+webBackForwardListGetBackItem :: +    WebBackForwardListClass self => self + -> IO (Maybe WebHistoryItem) -- ^ A 'WebHistoryItem' or @Nothing@ +                              -- if there is nothing precedes the current item.+webBackForwardListGetBackItem webbackforwardlist = +    maybeNull (makeNewGObject mkWebHistoryItem) $ +      {#call web_back_forward_list_get_back_item#} +        (toWebBackForwardList webbackforwardlist)++-- | Return the current history item of the back forward list+webBackForwardListGetCurrentItem :: +    WebBackForwardListClass self => self+ -> IO WebHistoryItem+webBackForwardListGetCurrentItem webbackforwardlist = +    makeNewGObject mkWebHistoryItem $ +      {#call web_back_forward_list_get_current_item#} +      (toWebBackForwardList webbackforwardlist)++-- | Return the item that succeeds the current item ++webBackForwardListGetForwardItem :: +    WebBackForwardListClass self => self + -> IO (Maybe WebHistoryItem) -- ^ A 'WebHistoryItem' or @Nothing@ +                              -- if there is nothing succeeds the current item.+webBackForwardListGetForwardItem webbackforwardlist = +    maybeNull (makeNewGObject mkWebHistoryItem) $ +      {#call web_back_forward_list_get_forward_item#} +      (toWebBackForwardList webbackforwardlist)++-- | Return the history item at a given index relative to the current item.+webBackForwardListGetNthItem :: +    WebBackForwardListClass self => self -- ^ @webbackforwardlist@ - a WebBackForwardList+ -> Int  -- ^ @index@ - the index of the item+ -> IO WebHistoryItem+webBackForwardListGetNthItem webbackforwardlist index =  +    makeNewGObject mkWebHistoryItem  $ +      {#call web_back_forward_list_get_nth_item#} +      (toWebBackForwardList webbackforwardlist)+      (fromIntegral index)++-- | Return the number of items that preced the current item.+webBackForwardListGetBackLength :: +    WebBackForwardListClass self => self+ -> IO Int +webBackForwardListGetBackLength webbackforwardlist = +    liftM fromIntegral $ +      {#call web_back_forward_list_get_back_length#} +        (toWebBackForwardList webbackforwardlist)++-- | Return the number of items that succeed the current item.+webBackForwardListGetForwardLength :: +    WebBackForwardListClass self => self+ -> IO Int+webBackForwardListGetForwardLength webbackforwardlist = +    liftM fromIntegral $ +      {#call web_back_forward_list_get_forward_length#} +        (toWebBackForwardList webbackforwardlist)++-- | Return the maximum limit of the back forward list.+webBackForwardListGetLimit :: +    WebBackForwardListClass self => self+ -> IO Int+webBackForwardListGetLimit webbackforwardlist = +    liftM fromIntegral $ +      {#call web_back_forward_list_get_limit#} +        (toWebBackForwardList webbackforwardlist)++-- | Set the maximum limit of the back forward list. +-- +-- if the back forward list exceeds its capacity, +-- items will be removed everytime a new item had been added.+--+webBackForwardListSetLimit :: +    WebBackForwardListClass self => self+ -> Int+ -> IO()+webBackForwardListSetLimit webbackforwardlist limit = +    {#call web_back_forward_list_set_limit#} +      (toWebBackForwardList webbackforwardlist)+      (fromIntegral limit)++-- | Add the item to the back forward list.+webBackForwardListAddItem :: +    (WebBackForwardListClass self,WebHistoryItemClass item) => self+ -> item+ -> IO ()+webBackForwardListAddItem webbackforwardlist webhistoryitem = +    {#call web_back_forward_list_add_item#} +      (toWebBackForwardList webbackforwardlist)+      (toWebHistoryItem webhistoryitem)++-- | Return a list of items that succeed the current item, limited by @limit@.+webBackForwardListGetForwardListWithLimit :: +    WebBackForwardListClass self => self + -> Int  -- ^ the number of items to retrieve+ -> IO [WebHistoryItem] -- ^ a 'List' of items succeeding the current item, limited by limit.+webBackForwardListGetForwardListWithLimit webbackforwardlist limit = +  {#call web_back_forward_list_get_forward_list_with_limit#} +    (toWebBackForwardList webbackforwardlist)+    (fromIntegral limit)+    >>= fromGList +    >>= mapM (makeNewGObject mkWebHistoryItem . return)++-- | Return a list of items that preced the current item.+-- limited by limit.+webBackForwardListGetBackListWithLimit :: +    WebBackForwardListClass self => self + -> Int -- ^ the number of items to retrieve+ -> IO [WebHistoryItem] -- ^ a 'List' of items preceding the current item, limited by limit+webBackForwardListGetBackListWithLimit webbackforwardlist limit = +  {#call web_back_forward_list_get_back_list_with_limit#} +    (toWebBackForwardList webbackforwardlist)+    (fromIntegral limit)+    >>= fromGList +    >>= mapM (makeNewGObject mkWebHistoryItem . return)+
+ Graphics/UI/Gtk/WebKit/WebDataSource.chs view
@@ -0,0 +1,133 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebDataSource+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Note+--+-- Function `webkit_web_data_source_get_data` haven't binding, +-- no idea how to handle `GString`+--+-- Access to the WebKit Web DataSource+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebDataSource (+-- * Types+  WebDataSource,++-- * Constructors+  webDataSourceNew,++-- * Methods  +  webDataSourceGetEncoding,+  webDataSourceGetInitialRequest,+  webDataSourceGetMainResource,+  webDataSourceGetRequest,+  webDataSourceGetSubresources,+  webDataSourceGetUnreachableUri,+  webDataSourceGetWebFrame,+  webDataSourceIsLoading,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- | Creates a new 'WebDataSource' instance. +-- The URL of the 'WebDataSource' will be set to "about:blank".+webDataSourceNew :: IO WebDataSource+webDataSourceNew = +    constructNewGObject mkWebDataSource $ {#call web_data_source_new#} ++-- | Returns the text encoding name as set in the 'WebView', or if not, the text encoding of the response.+webDataSourceGetEncoding ::+   WebDataSourceClass self => self+ -> IO String+webDataSourceGetEncoding ds = +  {#call web_data_source_get_encoding#} (toWebDataSource ds) >>= peekCString+  +-- | Returns a reference to the original request that was used to load the web content. +-- The NetworkRequest returned by this method is the+-- request prior to the "committed" load state. +-- See 'webDataSourceGetRequest' for getting the "committed" request.+webDataSourceGetInitialRequest ::+   WebDataSourceClass self => self+ -> IO NetworkRequest+webDataSourceGetInitialRequest ds =+  makeNewGObject mkNetworkRequest $ {# call web_data_source_get_initial_request#} (toWebDataSource ds)++-- | Returns the main resource of the data_source+webDataSourceGetMainResource ::+   WebDataSourceClass self => self+ -> IO WebResource   +webDataSourceGetMainResource ds =+  makeNewGObject mkWebResource $ {#call web_data_source_get_main_resource#} (toWebDataSource ds)+  +-- | Returns a NetworkRequest that was used to create this 'WebDataSource'. +-- The NetworkRequest returned by this method is the request that was "committed", +-- and hence, different from the request you get from the 'webDataSourceGetInitialRequest' method.+webDataSourceGetRequest ::+   WebDataSourceClass self => self+ -> IO NetworkRequest+webDataSourceGetRequest ds =+  makeNewGObject mkNetworkRequest $ {# call web_data_source_get_request#} (toWebDataSource ds)++-- | Gives you a List of 'WebResource' objects that compose the 'WebView' to which this 'WebDataSource' is attached.+webDataSourceGetSubresources ::+   WebDataSourceClass self => self+ -> IO [WebResource]   +webDataSourceGetSubresources ds = do+  glist <- {#call web_data_source_get_subresources#} (toWebDataSource ds)+  resourcePtr <- fromGList glist+  mapM (makeNewGObject mkWebResource . return) resourcePtr++-- | Return the unreachable URI of data_source. +-- The 'dataSource' will have an unreachable URL +-- if it was created using 'WebFrame''s  +-- 'webFrameLoadAlternateHtmlString' method.+webDataSourceGetUnreachableUri ::+   WebDataSourceClass self => self+ -> IO String+webDataSourceGetUnreachableUri ds =+  {#call web_data_source_get_unreachable_uri#} (toWebDataSource ds) >>= peekCString++-- | Returns the 'WebFrame' that represents this data source+webDataSourceGetWebFrame ::+   WebDataSourceClass self => self+ -> IO WebFrame+webDataSourceGetWebFrame ds =+  makeNewGObject mkWebFrame $ {#call web_data_source_get_web_frame#} (toWebDataSource ds)++-- | Determines whether the data source is in the process of loading its content.+webDataSourceIsLoading ::+   WebDataSourceClass self => self+ -> IO Bool+webDataSourceIsLoading ds =+    liftM toBool $ {#call web_data_source_is_loading#} (toWebDataSource ds)
+ Graphics/UI/Gtk/WebKit/WebDatabase.chs view
@@ -0,0 +1,103 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebDatabase+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Web Database+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebDatabase (+-- * Types+  WebDatabase,++-- * Methods  +  webDatabaseGetDisplayName,+  webDatabaseGetExpectedSize,+  webDatabaseGetFilename,+  webDatabaseGetName,+  webDatabaseGetSecurityOrigin,+  webDatabaseGetSize,+  webDatabaseRemove,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- | Returns the name of the 'WebDatabase' as seen by the user.+webDatabaseGetDisplayName ::+   WebDatabaseClass self => self+ -> IO String+webDatabaseGetDisplayName wd =+  {#call web_database_get_display_name#} (toWebDatabase wd) >>= peekCString+  +-- | Returns the expected size of the Database in bytes as defined by the web author. The Web Database standard allows web authors to+-- specify an expected size of the database to optimize the user experience.+webDatabaseGetExpectedSize ::  +   WebDatabaseClass self => self+ -> IO Int  +webDatabaseGetExpectedSize wd =+    liftM fromIntegral $ {#call web_database_get_expected_size#} (toWebDatabase wd)++-- | Returns the absolute filename to the WebKitWebDatabase file on disk.+webDatabaseGetFilename ::+   WebDatabaseClass self => self+ -> IO String+webDatabaseGetFilename wd = +  {#call web_database_get_filename#} (toWebDatabase wd) >>= peekCString++-- | Returns the canonical name of the 'WebDatabase'.+webDatabaseGetName ::+   WebDatabaseClass self => self+ -> IO String+webDatabaseGetName wd = +  {#call web_database_get_name#} (toWebDatabase wd) >>= peekCString++-- | Returns the security origin of the WebKitWebDatabase.+webDatabaseGetSecurityOrigin :: +   WebDatabaseClass self => self+ -> IO SecurityOrigin   +webDatabaseGetSecurityOrigin wd =+  makeNewGObject mkSecurityOrigin $ {#call web_database_get_security_origin#} (toWebDatabase wd)++-- | Returns the actual size of the 'WebDatabase' space on disk in bytes.  +webDatabaseGetSize ::+   WebDatabaseClass self => self  + -> IO Int+webDatabaseGetSize wd = +    liftM fromIntegral $ {#call web_database_get_size#} (toWebDatabase wd)+  +-- | Removes the 'WebDatabase' from its security origin and destroys all data stored in the database.+webDatabaseRemove ::+   WebDatabaseClass self => self+ -> IO ()+webDatabaseRemove wd =+  {#call web_database_remove#} (toWebDatabase wd)+
+ Graphics/UI/Gtk/WebKit/WebFrame.chs view
@@ -0,0 +1,284 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebFrame+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+-- +--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- The content of a 'WebView'+--+-- Note:+-- Functon `webkit_web_frame_get_global_context` can't binding now, +-- Because it need `JSGlobalContextRef` exist in JavaScriptCore.+--+-- Function `webkit_web_frame_print_full` can't binding now,+-- Because library `GtkPrintOperation` haven't binding.+--+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebFrame (+-- * Types+  WebFrame,++-- * Constructors+  webFrameNew,++-- * Methods+  webFrameGetWebView,+  webFrameGetName,+  webFrameGetTitle,+  webFrameGetUri,+  webFrameGetParent,+  webFrameGetLoadStatus,+  webFrameLoadUri,+  webFrameLoadString,+  webFrameLoadAlternateString,+  webFrameLoadRequest,+  webFrameStopLoading,+  webFrameReload,+  webFrameFindFrame,+  webFrameGetDataSource,+  webFrameGetHorizontalScrollbarPolicy,+  webFrameGetVerticalScrollbarPolicy,+  webFrameGetProvisionalDataSource,+  webFrameGetSecurityOrigin,+  webFramePrint,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events+import Graphics.UI.Gtk.General.Enums++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Enums++{#enum LoadStatus {underscoreToCase}#}++------------------+-- Constructors+++-- | Create a new 'WebFrame' instance with the given @webview@.+--+-- A 'WebFrame' contains the content of one URI.+webFrameNew :: +    WebViewClass webview => webview  -- ^ @webview@ - the given webview+ -> IO WebFrame+webFrameNew webview =  +    constructNewGObject mkWebFrame $ {#call web_frame_new#} (toWebView webview)++-- | Return the 'WebView' that manages the given 'WebFrame'.+webFrameGetWebView :: +    WebFrameClass self => self+ -> IO WebView+webFrameGetWebView webframe = +    makeNewObject mkWebView $ liftM castPtr $ {#call web_frame_get_web_view#} (toWebFrame webframe)++-- | Return the name of the given 'WebFrame'.+webFrameGetName :: +    WebFrameClass self => self+ -> IO (Maybe String) -- ^ the name string or @Nothing@ in case failed.+webFrameGetName webframe = +    {#call web_frame_get_name#} (toWebFrame webframe) >>= maybePeek peekCString++-- | Return the title of the given 'WebFrame'.+webFrameGetTitle :: +    WebFrameClass self => self + -> IO (Maybe String) -- ^ the title string or @Nothing@ in case failed.+webFrameGetTitle webframe = +    {#call web_frame_get_title#} (toWebFrame webframe) >>= maybePeek peekCString++-- | Return the URI of the given 'WebFrame'.	+webFrameGetUri :: +    WebFrameClass self => self + -> IO (Maybe String) -- ^ the URI string or @Nothing@ in case failed.+webFrameGetUri webframe = +    {#call web_frame_get_uri#} (toWebFrame webframe) >>= maybePeek peekCString++-- | Return the 'WebFrame''s parent frame if it has one,+-- Otherwise return Nothing.+webFrameGetParent :: +    WebFrameClass self => self + -> IO (Maybe WebFrame) -- ^ a 'WebFrame' or @Nothing@ in case failed.+webFrameGetParent webframe = +    maybeNull (makeNewGObject mkWebFrame) $ {#call web_frame_get_parent#} (toWebFrame webframe)++-- | Determines the current status of the load.+--+-- frame :   a WebKitWebView +--                          +-- * Since 1.1.7+webFrameGetLoadStatus ::+    WebFrameClass self => self+ -> IO LoadStatus    +webFrameGetLoadStatus ls =+    liftM (toEnum . fromIntegral) $ {#call web_frame_get_load_status#} (toWebFrame ls)++-- | Request loading of the specified URI string.+webFrameLoadUri :: +    WebFrameClass self => self + -> String -- ^ @uri@ - an URI string. + -> IO ()+webFrameLoadUri webframe uri = +    withCString uri $ \uriPtr -> {#call web_frame_load_uri#}+    (toWebFrame webframe)+    uriPtr++-- | Requests loading of the given @content@ +-- with the specified @mime_type@, @encoding@ and @base_uri@.+-- +-- If @mime_type@ is @Nothing@, \"text/html\" is assumed.+--+-- If @encoding@ is @Nothing@, \"UTF-8\" is assumed.+webFrameLoadString :: +    WebFrameClass self => self + -> String -- ^ @content@ - the content string to be loaded.+ -> (Maybe String) -- ^ @mime_type@ - the MIME type or @Nothing@. + -> (Maybe String) -- ^ @encoding@ - the encoding or @Nothing@.+ -> String -- ^ @base_uri@ - the base URI for relative locations.+ -> IO()+webFrameLoadString webframe content mimetype encoding baseuri = +    withCString content  $ \contentPtr ->+    maybeWith withCString mimetype $ \mimetypePtr ->+    maybeWith withCString encoding $ \encodingPtr ->+    withCString baseuri  $ \baseuriPtr ->+        {#call web_frame_load_string#} +          (toWebFrame webframe) +          contentPtr +          mimetypePtr +          encodingPtr +          baseuriPtr++-- |Request loading of an alternate content for a URL that is unreachable.+--+-- Using this method will preserve the back-forward list.+-- The URI passed in @base_uri@ has to be an absolute URI.		+webFrameLoadAlternateString :: +    WebFrameClass self => self + -> String  -- ^ @content@ - the alternate content to display +            -- as the main page of the frame+ -> String  -- ^ @base_uri@ - the base URI for relative locations. + -> String  -- ^ @unreachable_url@ - the URL for the alternate page content.+ -> IO()+webFrameLoadAlternateString webframe content baseurl unreachableurl = +    withCString content  $ \contentPtr ->+    withCString baseurl  $ \baseurlPtr ->+    withCString unreachableurl  $ \unreachableurlPtr ->+        {#call web_frame_load_alternate_string#}+          (toWebFrame webframe) +          contentPtr+          baseurlPtr+          unreachableurlPtr++-- | Connects to a given URI by initiating an asynchronous client request.+--+-- Creates a provisional data source that will transition to a committed data source once any data has been received. +-- Use 'webFrameStopLoading' to stop the load. +-- This function is typically invoked on the main frame.+webFrameLoadRequest :: +   (WebFrameClass self, NetworkRequestClass requ) => self -> requ+ -> IO ()+webFrameLoadRequest webframe request =+  {#call web_frame_load_request#} (toWebFrame webframe) (toNetworkRequest request) ++-- | Stops and pending loads on the given data source and those of its children.+webFrameStopLoading :: +    WebFrameClass self => self+ -> IO()+webFrameStopLoading webframe = +    {#call web_frame_stop_loading#} (toWebFrame webframe)++-- |Reloads the initial request.+webFrameReload :: +    WebFrameClass self => self+ -> IO()+webFrameReload webframe = +    {#call web_frame_reload#} (toWebFrame webframe)++-- |Return the 'WebFrame' associated with the given name +-- or @Nothing@ in case none if found+-- +-- For pre-defined names, return the given webframe if name is +webFrameFindFrame:: +    WebFrameClass self => self + -> String  -- ^ @name@ - the name of the frame to be found.+ -> IO (Maybe WebFrame)+webFrameFindFrame webframe name = +    withCString name $ \namePtr ->+	maybeNull (makeNewGObject mkWebFrame) $ +          {#call web_frame_find_frame#} (toWebFrame webframe) namePtr++-- | Returns the committed data source.+webFrameGetDataSource :: +   WebFrameClass self => self+ -> IO WebDataSource+webFrameGetDataSource webframe =+  makeNewGObject mkWebDataSource $ {#call web_frame_get_data_source#} (toWebFrame webframe)++-- | Return the policy of horizontal scrollbar.+webFrameGetHorizontalScrollbarPolicy :: +   WebFrameClass self => self+ -> IO PolicyType   +webFrameGetHorizontalScrollbarPolicy webframe = +    liftM (toEnum.fromIntegral) $+    {#call web_frame_get_horizontal_scrollbar_policy#} (toWebFrame webframe)+  +-- | Return the policy of vertical scrollbar.+webFrameGetVerticalScrollbarPolicy :: +   WebFrameClass self => self+ -> IO PolicyType   +webFrameGetVerticalScrollbarPolicy webframe = +    liftM (toEnum.fromIntegral) $+    {#call web_frame_get_vertical_scrollbar_policy#} (toWebFrame webframe)++-- | You use the 'webFrameLoadRequest' method to initiate a request that creates a provisional data source. +-- The provisional data source will transition to a committed data source once any data has been received. +-- Use 'webFrameGetDataSource' to get the committed data source.+webFrameGetProvisionalDataSource :: +   WebFrameClass self => self+ -> IO WebDataSource   +webFrameGetProvisionalDataSource webframe =+  makeNewGObject mkWebDataSource $ {#call web_frame_get_provisional_data_source#} (toWebFrame webframe)++-- | Returns the frame's security origin.+webFrameGetSecurityOrigin ::+   WebFrameClass self => self+ -> IO SecurityOrigin   +webFrameGetSecurityOrigin webframe = +  makeNewGObject mkSecurityOrigin $ {#call web_frame_get_security_origin#} (toWebFrame webframe)++-- |Prints the given 'WebFrame'.+--+-- by presenting a print dialog to the user. +webFramePrint:: +    WebFrameClass self => self+ -> IO()+webFramePrint webframe = +  {#call web_frame_print#} (toWebFrame webframe)+
+ Graphics/UI/Gtk/WebKit/WebHistoryItem.chs view
@@ -0,0 +1,187 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebHistoryItem+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- One item of the 'WebBackForwardList' and or global history+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebHistoryItem (+-- * Types+  WebHistoryItem,++-- * Constructors+  webHistoryItemNew,+  webHistoryItemNewWithData,++-- * Attributes+  webHistoryItemTitle,+  webHistoryItemAlternateTitle,+  webHistoryItemUri,+  webHistoryItemOriginalUri,+  webHistoryItemLastVisitedTime,++-- * Methods+  webHistoryItemGetTitle,+  webHistoryItemGetAlternateTitle,+  webHistoryItemSetAlternateTitle,+  webHistoryItemGetUri,+  webHistoryItemGetOriginalUri,+  webHistoryItemGetLastVisitedTime,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import System.Glib.Attributes+import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++------------------+-- Constructors++++-- | Create a new 'WebHistoryItem' instance.+--+-- A history item consists out of a title and a uri, +-- it can be part of the WebBackForwardList and the global history.+--+-- The global history is used for coloring the links of visited sites.+-- 'WebHistoryItem' constructed with 'webHistoryItemNew' are +-- automatically added to the global history.+webHistoryItemNew :: IO WebHistoryItem+webHistoryItemNew = +    constructNewGObject mkWebHistoryItem $ {#call web_history_item_new#}+++-- | Create a new 'WebHistoryItem' instance with the given @uri@ and @title@.+-- +-- 'WebHistoryItem' constructed with 'webHistoryItemNewWithData' are +-- automatically added to the global history.+webHistoryItemNewWithData :: +    String -- ^ @uri@ - the uri of the item+ -> String -- ^ @title@ - the title of the item+ -> IO WebHistoryItem+webHistoryItemNewWithData uri title = +    withCString uri $ \uriPtr ->+    withCString title $ \titlePtr ->+    constructNewGObject mkWebHistoryItem $+      {#call web_history_item_new_with_data#} +        uriPtr +        titlePtr+++-- | Return the title of 'WebHistoryItem'.+webHistoryItemGetTitle :: +    WebHistoryItemClass self => self+ -> IO (Maybe String) -- ^ the title or @Nothing@ in case failed.+webHistoryItemGetTitle webhistoryitem = +    {#call web_history_item_get_title#} +      (toWebHistoryItem webhistoryitem) >>= +      maybePeek peekCString++-- | Return the alternate title of WebHistoryItem.+webHistoryItemGetAlternateTitle :: +    WebHistoryItemClass self => self + -> IO (Maybe String) -- ^ the alternate title or @Nothing@ in case failed.+webHistoryItemGetAlternateTitle webhistoryitem = +    {#call web_history_item_get_alternate_title#} +      (toWebHistoryItem webhistoryitem) >>= +      maybePeek peekCString++-- | Set an alternate title for WebHistoryItem.+webHistoryItemSetAlternateTitle :: +    WebHistoryItemClass self => self + -> (Maybe String)  -- ^ @title@ - the alternate title for this history item.+ -> IO()+webHistoryItemSetAlternateTitle webhistoryitem title =+    maybeWith withCString title $ \titlePtr -> +    {#call web_history_item_set_alternate_title#} +      (toWebHistoryItem webhistoryitem)+      titlePtr++-- | Return the URI of WebHistoryItem.+webHistoryItemGetUri :: +    WebHistoryItemClass self => self + -> IO (Maybe String) -- ^ the URI or @Nothing@ in case failed.+webHistoryItemGetUri webhistoryitem = +    {#call web_history_item_get_uri#} +      (toWebHistoryItem webhistoryitem) >>= +      maybePeek peekCString++-- | Return the original URI of WebHistoryItem.+webHistoryItemGetOriginalUri :: +    WebHistoryItemClass self => self + -> IO (Maybe String) -- ^ the URI or @Nothing@ in case failed+webHistoryItemGetOriginalUri webhistoryitem = +    {#call web_history_item_get_original_uri#} +      (toWebHistoryItem webhistoryitem) >>= +      maybePeek peekCString++-- | Return the last visited time of WebHistoryItem.+webHistoryItemGetLastVisitedTime :: +    WebHistoryItemClass self => self + -> IO Double  -- ^ the last visited time of this history item.+webHistoryItemGetLastVisitedTime webhistoryitem = +    liftM realToFrac $ +      {#call web_history_item_get_last_visited_time#} +        (toWebHistoryItem webhistoryitem)++-- | The title of the 'WebHistoryItem'+--+-- Default value: @Nothing@+webHistoryItemTitle :: (WebHistoryItemClass self) => ReadAttr self (Maybe String)+webHistoryItemTitle = readAttr webHistoryItemGetTitle++-- | The alternate title of the history item.+--+-- Default value: @Nothing@+webHistoryItemAlternateTitle :: (WebHistoryItemClass self) => Attr self (Maybe String)+webHistoryItemAlternateTitle = newAttr webHistoryItemGetAlternateTitle webHistoryItemSetAlternateTitle++-- | The URI of the history item.+--+-- Default value: @Nothing@+webHistoryItemUri :: (WebHistoryItemClass self) => ReadAttr self (Maybe String)+webHistoryItemUri = readAttr webHistoryItemGetUri++-- | The original URI of the history item.+--+-- Default value: @Nothing@+webHistoryItemOriginalUri :: (WebHistoryItemClass self) => ReadAttr self (Maybe String)+webHistoryItemOriginalUri = readAttr webHistoryItemGetOriginalUri++-- | The time at which the history item was last visited.+--+-- Allowed values: >= 0+--+-- Default value: 0+webHistoryItemLastVisitedTime :: (WebHistoryItemClass self) => ReadAttr self Double+webHistoryItemLastVisitedTime = readAttr webHistoryItemGetLastVisitedTime+ 
+ Graphics/UI/Gtk/WebKit/WebInspector.chs view
@@ -0,0 +1,143 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebInspector+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Inspector+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebInspector (+-- * Types+  WebInspector,++-- * Methods+  webInspectorGetInspectedUri,+  webInspectorGetWebView,++-- * Attribute  +  webInspectorInspectedUri,+  webInspectorJSProfilingEnable,+  webInspectorWebView,++-- * Signals+  attachWindow,+  detachWindow,+  closeWindow,+  showWindow,+  finished,+  inspectWebView,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import System.Glib.Attributes+import System.Glib.Properties+import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import Graphics.UI.Gtk.WebKit.Internal#}+{#import Graphics.UI.Gtk.WebKit.Signals#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}+++------------------+-- |  Obtains the URI that is currently being inspected+webInspectorGetInspectedUri :: +    WebInspectorClass self => self+ -> IO String+webInspectorGetInspectedUri inspector = +    {#call web_inspector_get_inspected_uri#} (toWebInspector inspector) >>= peekCString++-- | Obtains the 'WebView' that is used to render the 'WebInspector'. +-- +-- The 'WebView' instance is created by the application,+-- by handling the "inspect-web-view" signal. +-- This means that it may return @Nothing@ if the user hasn't inspected anything+webInspectorGetWebView :: +    WebInspectorClass self => self+ -> IO (Maybe WebView)+webInspectorGetWebView inspector =+    maybeNull (makeNewObject mkWebView) $ liftM castPtr $+      {#call web_inspector_get_web_view#}+        (toWebInspector inspector)++-- * Attribute++-- | The URI that is currently being inspected.+webInspectorInspectedUri :: (WebInspectorClass self) => ReadAttr self String+webInspectorInspectedUri = readAttr webInspectorGetInspectedUri++-- | This is enabling JavaScript profiling in the Inspector. This means that Console.profiles will return the profiles.+webInspectorJSProfilingEnable :: (WebInspectorClass self) => Attr self Bool+webInspectorJSProfilingEnable = newAttrFromBoolProperty "javascript-profiling-enabled"++-- | The Web View that renders the Web Inspector itself.+webInspectorWebView :: (WebInspectorClass self) => ReadAttr self WebView+webInspectorWebView = +  readAttrFromObjectProperty "web-view"+  {#call pure webkit_web_view_get_type#}++-- * Signals++-- | Emitted when the inspector should appear in a separate window+--+-- return True if the signal is handled+attachWindow :: WebInspectorClass self => Signal self (IO Bool)+attachWindow = Signal (connect_NONE__BOOL "attach-window")++-- | Emitted when the inspector should appear in a separate window.+--+-- return True if the signal has been handled                  +detachWindow :: WebInspectorClass self => Signal self (IO Bool)+detachWindow = Signal (connect_NONE__BOOL "detach-window")++-- | Emitted when the inspector window should be closed. +--+-- return True if the signal is handled.+closeWindow :: WebInspectorClass self => Signal self (IO Bool)+closeWindow = Signal (connect_NONE__BOOL "close-window")++-- | Emitted when the inspector window should be displayed. +-- Notice that the window must have been created already by handling 'inspectWebView'.+--+-- return True if the signal has been handled                  +showWindow :: WebInspectorClass self => Signal self (IO Bool)+showWindow = Signal (connect_NONE__BOOL "show-window")++-- | Emitted when the inspection is done. You should release your references on the inspector at this time. +-- The inspected 'WebView' may no longer exist when this signal is emitted.+finished :: WebInspectorClass self => Signal self (IO ())+finished = Signal (connect_NONE__NONE "finished")++-- | Emitted when the user activates the 'inspect' context menu item to inspect a web view. +-- The application which is interested in the inspector should create a window, +-- or otherwise add the 'WebView' it creates to an existing window.+--+-- You don't need to handle the reference count of the 'WebView' instance you create; +-- the widget to which you add it will do that.+inspectWebView :: WebInspectorClass self => Signal self (WebView -> IO WebView)+inspectWebView = Signal (connect_OBJECT__OBJECTPTR "inspect-web-view")
+ Graphics/UI/Gtk/WebKit/WebNavigationAction.chs view
@@ -0,0 +1,120 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebNavigationAction+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit NavigationAction+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebNavigationAction (+-- * Types+  WebNavigationAction,++-- * Enums+  NavigationReason(..),++-- * Methods  +  webNavigationActionGetButton,+  webNavigationActionGetModifierState,+  webNavigationActionGetOriginalUri,+  webNavigationActionSetOriginalUri,+  webNavigationActionGetReason,+  webNavigationActionSetReason,+  webNavigationActionGetTargetFrame,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Enums++{#enum WebNavigationReason as NavigationReason {underscoreToCase}#}++-- * Methods++-- | Returns the DOM identifier for the mouse button used to click. +-- DOM button values are 0, 1 and 2 for left, middle and right buttons. +-- If the action was not initiated by a mouse click, returns -1.+webNavigationActionGetButton :: +   WebNavigationActionClass self => self+ -> IO Int+webNavigationActionGetButton action =  +    liftM fromIntegral $ {#call web_navigation_action_get_button#} (toWebNavigationAction action)++-- | Returns a bitmask with the the state of the modifier keys.+webNavigationActionGetModifierState ::  +   WebNavigationActionClass self => self+ -> IO Int   +webNavigationActionGetModifierState action = +    liftM fromIntegral $ {#call web_navigation_action_get_modifier_state#} (toWebNavigationAction action)+  +-- | Returns the URI that was originally requested. +-- This may differ from the navigation target, for instance because of a redirect.+webNavigationActionGetOriginalUri ::   +   WebNavigationActionClass self => self+ -> IO String+webNavigationActionGetOriginalUri action = +    {#call web_navigation_action_get_original_uri#} (toWebNavigationAction action) >>= peekCString+  +-- | Returns the reason why WebKit is requesting a navigation.+webNavigationActionGetReason ::+   WebNavigationActionClass self => self+ -> IO NavigationReason  +webNavigationActionGetReason action = +    liftM (toEnum . fromIntegral) $ {#call web_navigation_action_get_reason#} (toWebNavigationAction action)++-- | Returns the target frame of the action.+webNavigationActionGetTargetFrame ::  +   WebNavigationActionClass self => self+ -> IO String+webNavigationActionGetTargetFrame action = +    {#call web_navigation_action_get_target_frame#} (toWebNavigationAction action) >>= peekCString+  +-- | Sets the URI that was originally requested. +-- This may differ from the navigation target, for instance because of a redirect.+webNavigationActionSetOriginalUri ::+   WebNavigationActionClass self => self+ -> String+ -> IO ()+webNavigationActionSetOriginalUri action uri =+    withCString uri $ \uriPtr -> +        {#call web_navigation_action_set_original_uri#} +        (toWebNavigationAction action)+        uriPtr++-- | Sets the reason why WebKit is requesting a navigation.+webNavigationActionSetReason ::+   WebNavigationActionClass self => self+ -> NavigationReason+ -> IO ()+webNavigationActionSetReason action reason =+    {#call web_navigation_action_set_reason#} (toWebNavigationAction action) (fromIntegral (fromEnum reason))+  
+ Graphics/UI/Gtk/WebKit/WebPolicyDecision.chs view
@@ -0,0 +1,71 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebPolicyDecision+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit PolicyDecision+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebPolicyDecision (+-- * Types+  WebPolicyDecision,++-- * Methods  +  webPolicyDecisionDownload,+  webPolicyDecisionIgnore,+  webPolicyDecisionUse,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Methods++-- | Will send the DOWNLOAD decision to the policy implementer.+webPolicyDecisionDownload :: +   WebPolicyDecisionClass self => self+ -> IO ()   +webPolicyDecisionDownload pd =+  {#call web_policy_decision_download#} (toWebPolicyDecision pd)++-- | Will send the IGNORE decision to the policy implementer.+webPolicyDecisionIgnore ::+   WebPolicyDecisionClass self => self  + -> IO ()+webPolicyDecisionIgnore pd =+  {#call web_policy_decision_ignore#} (toWebPolicyDecision pd)++-- | Will send the USE decision to the policy implementer.+webPolicyDecisionUse ::+   WebPolicyDecisionClass self => self+ -> IO ()+webPolicyDecisionUse pd =+  {#call web_policy_decision_use#} (toWebPolicyDecision pd)
+ Graphics/UI/Gtk/WebKit/WebResource.chs view
@@ -0,0 +1,99 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebResource+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Note:+--+-- Function `webkit_web_resource_get_data` haven't binding+-- no idea how to handle `GString`.+--+-- Access to the WebKit Web Resource+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebResource (+-- * Types+  WebResource,++-- * Constructors+  webResourceNew,++-- * Methods  +  webResourceGetEncoding,+  webResourceGetFrameName,+  webResourceGetMimeType,+  webResourceGetUri,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- | Returns a new WebKitWebResource. +-- The @encoding@ can be empty. +-- The @frameName@ can be used if the resource represents contents of an+-- entire HTML frame, otherwise pass empty.+webResourceNew :: String -> Int -> String -> String -> String -> String -> IO WebResource+webResourceNew resData size uri mimeType encoding frameName =+   withCString resData $ \dataPtr -> +   withCString uri $ \uriPtr ->+   withCString mimeType $ \mimePtr ->+   withCString encoding $ \encodingPtr ->+   withCString frameName $ \framePtr -> +   constructNewGObject mkWebResource $ +     {#call web_resource_new#} dataPtr (fromIntegral size) uriPtr mimePtr encodingPtr framePtr++-- | Get encoding.+webResourceGetEncoding :: +   WebResourceClass self => self+ -> IO String+webResourceGetEncoding wr =+  {#call web_resource_get_encoding#} (toWebResource wr) >>= peekCString++-- | Get frame name.+webResourceGetFrameName :: +   WebResourceClass self => self+ -> IO String+webResourceGetFrameName wr =+  {#call web_resource_get_frame_name#} (toWebResource wr) >>= peekCString++-- | Get mime type.+webResourceGetMimeType :: +   WebResourceClass self => self+ -> IO String+webResourceGetMimeType wr =+  {#call web_resource_get_mime_type#} (toWebResource wr) >>= peekCString++-- | Get uri.+webResourceGetUri :: +   WebResourceClass self => self+ -> IO String+webResourceGetUri wr =+  {#call web_resource_get_uri#} (toWebResource wr) >>= peekCString
+ Graphics/UI/Gtk/WebKit/WebSettings.chs view
@@ -0,0 +1,323 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebSettings+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Control the behaviour of a 'WebView'+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebSettings (+-- * Types+  WebSettings,++-- * Constructors+  webSettingsNew,++-- * Methods+  webSettingsCopy,+  webSettingsGetUserAgent,++-- * Attributes+  webSettingsAutoLoadImages,+  webSettingsAutoShrinkImages,+  webSettingsCursiveFontFamily,+  webSettingsDefaultEncoding,+  webSettingsDefaultFontFamily,+  webSettingsDefaultFontSize,+  webSettingsDefaultMonospaceFontSize,+  webSettingsEditingBehavior,+  webSettingsEnableCaretBrowsing,+  webSettingsEnableDeveloperExtras,+  webSettingsEnableHtml5Database,+  webSettingsEnableHtml5LocalStorage,+  webSettingsEnableOfflineWebApplicationCache,+  webSettingsEnablePlugins,+  webSettingsEnablePrivateBrowsing,+  webSettingsEnableScripts,+  webSettingsEnableSpellChecking,+  webSettingsEnableUniversalAccessFromFileUris,+  webSettingsEnableXssAuditor,+  webSettingsEnforce96Dpi,+  webSettingsFantasyFontFamily,+  webSettingsJSCanOpenWindowAuto,+  webSettingsMinimumFontSize,+  webSettingsMinimumLogicalFontSize,+  webSettingsMonospaceFontFamily,+  webSettingsPrintBackgrounds,+  webSettingsResizableTextAreas,+  webSettingsSansFontFamily,+  webSettingsSerifFontFamily,+  webSettingsSpellCheckingLang,+  webSettingsUserAgent,+  webSettingsUserStylesheetUri,+  webSettingsZoomStep,+  webSettingsEnableSiteSpecificQuirks,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import System.Glib.Properties+import System.Glib.Attributes+import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++{#enum EditingBehavior {underscoreToCase}#}+------------------+-- Constructors+++-- | Create a new 'WebSettings' instance.+-- +-- A 'WebSettings' can be applied to a 'WebView'+-- to control the to be used text encoding, color, font size, +-- printing mode,script support, loading of images and various other things.+webSettingsNew :: IO WebSettings+webSettingsNew = +    constructNewGObject mkWebSettings $ {#call web_settings_new#}+++-- | Copy an existing 'WebSettings' instance.+webSettingsCopy :: +    WebSettingsClass self => self+ -> IO WebSettings+webSettingsCopy websettings = +    constructNewGObject mkWebSettings $ {#call web_settings_copy#} (toWebSettings websettings)++-- | Return the User-Agent string currently used.+webSettingsGetUserAgent :: +    WebSettingsClass self => self+ -> IO (Maybe String) -- ^ User-Agent string or @Nothing@ in case failed.+webSettingsGetUserAgent websettings = +    {#call web_settings_get_user_agent#} (toWebSettings websettings) >>= maybePeek peekCString++-- | Load images automatically+--+-- Default value: True+webSettingsAutoLoadImages :: (WebSettingsClass self) => Attr self Bool+webSettingsAutoLoadImages = newAttrFromBoolProperty "auto-load-images"++-- | Automatically shrink standalone images to fit+--+-- Default value: True+webSettingsAutoShrinkImages :: (WebSettingsClass self) => Attr self Bool+webSettingsAutoShrinkImages = newAttrFromBoolProperty "auto-shrink-images"++-- | The default Cursive font family used to display text+--+-- Default value "serif"+webSettingsCursiveFontFamily :: (WebSettingsClass self) => Attr self String+webSettingsCursiveFontFamily = newAttrFromStringProperty "cursive-font-family"++-- | The default encoding used to display text+--+-- Default value "iso-8859-1"++webSettingsDefaultEncoding :: (WebSettingsClass self) => Attr self String+webSettingsDefaultEncoding = newAttrFromStringProperty "default-encoding"++-- | The default font family used to display text+--+-- Default value: "sans-serif"++webSettingsDefaultFontFamily :: (WebSettingsClass self) => Attr self String+webSettingsDefaultFontFamily = newAttrFromStringProperty "default-font-family"++-- | The default font size used to display text+--+-- Default value: >=5++webSettingsDefaultFontSize :: (WebSettingsClass self) => Attr self Int+webSettingsDefaultFontSize = newAttrFromIntProperty "default-font-size"++-- | The default font size used to display monospace text+--+-- Allowed values: >= 5+-- +-- Default value: 10++webSettingsDefaultMonospaceFontSize :: (WebSettingsClass self) => Attr self Int+webSettingsDefaultMonospaceFontSize = newAttrFromIntProperty "default-monospace-font-size"++-- | This settings controls various editing behaviors+webSettingsEditingBehavior :: (WebSettingsClass self) => Attr self EditingBehavior+webSettingsEditingBehavior = newAttrFromEnumProperty "editing-behavior"+        {#call pure unsafe webkit_editing_behavior_get_type#}+-- | Whether to enable caret browsing mode.+webSettingsEnableCaretBrowsing :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableCaretBrowsing = newAttrFromBoolProperty "enable-caret-browsing"++-- | Whether developer extensions should be enabled.+--+-- This enables, for now, the 'WebInspector'+webSettingsEnableDeveloperExtras :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableDeveloperExtras = newAttrFromBoolProperty "enable-developer-extras"++-- | Whether to enable HTML5 client-side SQL database support.+webSettingsEnableHtml5Database :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableHtml5Database = newAttrFromBoolProperty "enable-html5-database"++-- | Whether to enable HTML5 localStorage support.+webSettingsEnableHtml5LocalStorage :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableHtml5LocalStorage = newAttrFromBoolProperty "enable-html5-local-storage"++-- | Whether to enable HTML5 offline web application cache support.+webSettingsEnableOfflineWebApplicationCache :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableOfflineWebApplicationCache = newAttrFromBoolProperty "enable-offline-web-application-cache"++-- | Enable embedded plugin objects.+webSettingsEnablePlugins :: (WebSettingsClass self) => Attr self Bool+webSettingsEnablePlugins = newAttrFromBoolProperty "enable-plugins"++-- | Whether to enable private browsing mode.+webSettingsEnablePrivateBrowsing :: (WebSettingsClass self) => Attr self Bool+webSettingsEnablePrivateBrowsing = newAttrFromBoolProperty "enable-private-browsing"++-- | Enable embedded scripting languages+webSettingsEnableScripts :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableScripts = newAttrFromBoolProperty "enable-scripts"++-- | Whether to enable speel checking while typing.+webSettingsEnableSpellChecking :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableSpellChecking = newAttrFromBoolProperty "enable-spell-checking"++-- | Whether to allow files loaded through file:// URLs universal access to all pages.+webSettingsEnableUniversalAccessFromFileUris :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableUniversalAccessFromFileUris = newAttrFromBoolProperty "enable-universal-access-from-file-uris"++-- | Whether to enable the XSS Auditor.+--+-- This feature filters some kinds of reflective XSS attacks on vulnerable web sites.+webSettingsEnableXssAuditor :: (WebSettingsClass self) => Attr self Bool+webSettingsEnableXssAuditor = newAttrFromBoolProperty "enable-xss-auditor"++-- | Enforce a resolution of 96 DPI.+webSettingsEnforce96Dpi :: (WebSettingsClass self) => Attr self Bool+webSettingsEnforce96Dpi = newAttrFromBoolProperty "enforce-96-dpi"++-- | The default Fantasy font family used to display text+webSettingsFantasyFontFamily :: (WebSettingsClass self) => Attr self Bool+webSettingsFantasyFontFamily = newAttrFromBoolProperty "fantasy-font-family"++-- | Whether JavaScript can open popup windows automatically without user intervention.+webSettingsJSCanOpenWindowAuto :: (WebSettingsClass self) => Attr self Bool+webSettingsJSCanOpenWindowAuto = newAttrFromBoolProperty "javascript-can-open-windows-automatically"++-- | The minimum font size used to display text.+-- +-- Allowed values: >=1+--+-- Default value: 5+webSettingsMinimumFontSize :: (WebSettingsClass self) => Attr self Int+webSettingsMinimumFontSize = newAttrFromIntProperty "minimum-font-size"++-- | The minimum logical font size used to display text+--+-- Allowed values: >=1+--+-- Default value: 5+webSettingsMinimumLogicalFontSize :: (WebSettingsClass self) => Attr self Int+webSettingsMinimumLogicalFontSize = newAttrFromIntProperty "minimum-logical-font-size"+++-- | The default font family used to display monospace text.+-- +-- Default value: "monospace"+webSettingsMonospaceFontFamily :: (WebSettingsClass self) => Attr self String+webSettingsMonospaceFontFamily = newAttrFromStringProperty "monospace-font-family"++-- | Whether background images should be printed+--+-- Default value: True+webSettingsPrintBackgrounds :: (WebSettingsClass self) => Attr self Bool+webSettingsPrintBackgrounds = newAttrFromBoolProperty "print-backgrounds"++-- | Whether text areas are resizable+--+-- Default value : True+webSettingsResizableTextAreas :: (WebSettingsClass self) => Attr self Bool+webSettingsResizableTextAreas =  newAttrFromBoolProperty "resizable-text-areas"++-- | The default Sans Serif font family used to display text+-- +-- Default value "sans-serif"+webSettingsSansFontFamily :: (WebSettingsClass self) => Attr self String+webSettingsSansFontFamily = newAttrFromStringProperty "sans-serif-font-family"+++-- | The default Serif font family used to display text+--+-- Default value: "serif"+webSettingsSerifFontFamily :: (WebSettingsClass self) => Attr self String+webSettingsSerifFontFamily = newAttrFromStringProperty "serif-font-family"+++-- | The languages to be used for spell checking, separated by commas+-- +-- The locale string typically is in the form lang_COUNTRY,+-- where lang is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. +-- For instance, sv_FI for Swedish as written in Finland or pt_BR for Portuguese as written in Brazil.+--+-- If no value is specified then the value returned by gtk_get_default_language will be used.+--+-- Default value: @Nothing@+webSettingsSpellCheckingLang :: (WebSettingsClass self) => Attr self (Maybe String)+webSettingsSpellCheckingLang = newAttrFromMaybeStringProperty "spell-checking-languages"++-- | The User-Agent string used by WebKit+-- +-- This will return a default User-Agent string if a custom string wasn't provided by the application. +-- Setting this property to a NULL value or an empty string will result in +-- the User-Agent string being reset to the default value.+--+-- Default value: \"Mozilla/5.0 (X11; U; Linux x86_64; c) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+\"++webSettingsUserAgent :: (WebSettingsClass self) => Attr self String+webSettingsUserAgent = newAttrFromStringProperty "user-agent"++-- | The URI of a stylesheet that is applied to every page.+--+-- Default value: @Nothing@++webSettingsUserStylesheetUri :: (WebSettingsClass self) => Attr self (Maybe String)+webSettingsUserStylesheetUri = newAttrFromMaybeStringProperty "user-stylesheet-uri"++-- | The value by which the zoom level is changed when zooming in or out+--+-- Allowed values: >= 0+--+-- Default value: 0.1+webSettingsZoomStep :: (WebSettingsClass self) => Attr self Float+webSettingsZoomStep = newAttrFromFloatProperty "zoom-step"+                             +-- | Enables the site-specific compatibility workarounds.+--+-- Default value: False+webSettingsEnableSiteSpecificQuirks :: WebSettingsClass self => Attr self Bool+webSettingsEnableSiteSpecificQuirks = newAttrFromBoolProperty "enable-site-specific-quirks"+
+ Graphics/UI/Gtk/WebKit/WebView.chs view
@@ -0,0 +1,1146 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebView+--  Author      :  Cjacker Huang+--  Copyright   :  (c) 2009 Cjacker Huang <jzhuang@redflag-linux.com>+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Note:+--+-- Signal `window-object-cleared` can't bidning now, +-- because it need JavaScriptCore that haven't binding.+--+-- Signal `create-plugin-widget` can't binding now, +-- no idea how to binding `GHaskellTable`+--+--+-- TODO:+--+--   `webViewGetHitTestResult`+--+-- The central class of the WebKit+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebView (+-- * Types+  WebView,++-- * Enums+  NavigationResponse(..),+  TargetInfo(..),+  LoadStatus(..),++-- * Constructors+  webViewNew,++-- * Methods+  webViewLoadUri,+  webViewLoadHtmlString,+  webViewLoadRequest,+  webViewLoadString,++  webViewGetTitle,+  webViewGetUri,++  webViewCanGoBack,+  webViewCanGoForward,+  webViewGoBack,+  webViewGoForward,+  webViewGetBackForwardList,+  webViewSetMaintainsBackForwardList,+  webViewGoToBackForwardItem,+  webViewCanGoBackOrForward,+  webViewGoBackOrForward,+++  webViewGetZoomLevel,+  webViewSetZoomLevel,+  webViewZoomIn,+  webViewZoomOut,+  webViewGetFullContentZoom,+  webViewSetFullContentZoom,++  webViewStopLoading,+  webViewReload,+  webViewReloadBypassCache,++  webViewExecuteScript,++  webViewCanCutClipboard,+  webViewCanCopyClipboard,+  webViewCanPasteClipboard,+  webViewCutClipboard,+  webViewCopyClipboard,+  webViewPasteClipboard,++  webViewCanRedo,+  webViewCanUndo,+  webViewRedo,+  webViewUndo,+  +  webViewCanShowMimeType,+  webViewGetEditable,+  webViewSetEditable,+  webViewGetInspector,+  webViewGetTransparent,+  webViewSetTransparent,+  webViewGetViewSourceMode,+  webViewSetViewSourceMode,++  webViewDeleteSelection,+  webViewHasSelection,+  webViewSelectAll,++  webViewGetEncoding,+  webViewSetCustomEncoding,+  webViewGetCustomEncoding,+  webViewGetProgress,++  webViewGetCopyTargetList,+  webViewGetPasteTargetList,++  webViewSearchText,+  webViewMarkTextMatches,+  webViewUnMarkTextMatches,+  webViewSetHighlightTextMatches,++  webViewMoveCursor,++  webViewGetMainFrame,+  webViewGetFocusedFrame,++  webViewSetWebSettings,+  webViewGetWebSettings,++  webViewGetWindowFeatures,++-- * Attributes+  webViewZoomLevel,+  webViewFullContentZoom,+  webViewEncoding,+  webViewCustomEncoding,+  webViewLoadStatus,+  webViewProgress,+  webViewTitle,+  webViewInspector,+  webViewWebSettings,+  webViewViewSourceMode,+  webViewTransparent,+  webViewEditable,+  webViewUri,+  webViewCopyTargetList,+  webViewPasteTargetList,+  webViewWindowFeatures,+ +-- * Signals+  loadStarted,+  loadCommitted,+  progressChanged,+  loadFinished,+  loadError,+  titleChanged,+  hoveringOverLink,+  createWebView,+  webViewReady,+  closeWebView,+  consoleMessage,+  copyClipboard,+  cutClipboard,+  pasteClipboard,+  populatePopup,+  printRequested,+  scriptAlert,+  scriptConfirm,+  scriptPrompt,+  statusBarTextChanged,+  selectAll,+  selectionChanged,+  setScrollAdjustments,+  databaseQuotaExceeded,+  documentLoadFinished,+  downloadRequested,+  iconLoaded,+  redo,+  undo,+  mimeTypePolicyDecisionRequested,+  moveCursor,+  navigationPolicyDecisionRequested,+  newWindowPolicyDecisionRequested,+  resourceRequestStarting,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.Attributes+import System.Glib.Properties+import System.Glib.GError +import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import Graphics.UI.Gtk.WebKit.Signals#}+{#import Graphics.UI.Gtk.WebKit.Internal#}+{#import System.Glib.GObject#}+{#import Graphics.UI.Gtk.General.Selection#} ( TargetList )+{#import Graphics.UI.Gtk.MenuComboToolbar.Menu#}+{#import Graphics.UI.Gtk.General.Enums#}++{#context lib="webkit" prefix ="webkit"#}++------------------+-- Enums++{#enum NavigationResponse {underscoreToCase}#}++{#enum WebViewTargetInfo as TargetInfo {underscoreToCase}#}++{#enum LoadStatus {underscoreToCase}#}++------------------+-- Constructors+++-- | Create a new 'WebView' widget.+-- +-- It is a 'Widget' you can embed in a 'ScrolledWindow'.+-- +-- You can load any URI into the 'WebView' or any kind of data string.+webViewNew :: IO WebView +webViewNew =  do+  isGthreadInited <- liftM toBool {#call g_thread_get_initialized#}+  if not isGthreadInited then {#call g_thread_init#} nullPtr +    else return ()+  makeNewObject mkWebView $ liftM castPtr {#call web_view_new#}+++-- | Apply 'WebSettings' to a given 'WebView'+-- +-- !!NOTE!!, currently lack of useful APIs of 'WebSettings' in webkitgtk.+-- If you want to set the encoding, font family or font size of the 'WebView',+-- please use related functions.++webViewSetWebSettings :: +    (WebViewClass self, WebSettingsClass settings) => self+ -> settings+ -> IO ()+webViewSetWebSettings webview websettings = +    {#call web_view_set_settings#} (toWebView webview) (toWebSettings websettings)++-- | Return the 'WebSettings' currently used by 'WebView'.+webViewGetWebSettings :: +    WebViewClass self => self+ -> IO WebSettings+webViewGetWebSettings webview = +    makeNewGObject mkWebSettings $ {#call web_view_get_settings#} (toWebView webview)++-- | Returns the instance of WebKitWebWindowFeatures held by the given WebKitWebView.+webViewGetWindowFeatures ::+   WebViewClass self => self+ -> IO WebWindowFeatures   +webViewGetWindowFeatures webview =+  makeNewGObject mkWebWindowFeatures $ {#call web_view_get_window_features#} (toWebView webview)++-- | Return the main 'WebFrame' of the given 'WebView'.+webViewGetMainFrame :: +    WebViewClass self => self+ -> IO WebFrame+webViewGetMainFrame webview = +    makeNewGObject mkWebFrame  $ {#call web_view_get_main_frame#} (toWebView webview)++-- | Return the focused 'WebFrame' of the given 'WebView'.+webViewGetFocusedFrame :: +    WebViewClass self => self+ -> IO WebFrame+webViewGetFocusedFrame webview = +    makeNewGObject mkWebFrame $ {#call web_view_get_focused_frame#} (toWebView webview)+++-- |Requests loading of the specified URI string in a 'WebView'+webViewLoadUri :: +    WebViewClass self => self + -> String  -- ^ @uri@ - an URI string.+ -> IO()+webViewLoadUri webview url =+    withCString url $ \urlPtr -> {#call web_view_load_uri#}+    (toWebView webview)+    urlPtr++-- |Determine whether 'WebView' has a previous history item.+webViewCanGoBack :: +    WebViewClass self => self+ -> IO Bool -- ^ True if able to move back, False otherwise.+webViewCanGoBack webview = +    liftM toBool $ {#call web_view_can_go_back#} (toWebView webview)++-- |Determine whether 'WebView' has a next history item.+webViewCanGoForward :: +    WebViewClass self => self + -> IO Bool -- ^ True if able to move forward, False otherwise.+webViewCanGoForward webview = +    liftM toBool $ {#call web_view_can_go_forward#} (toWebView webview)++-- |Loads the previous history item.+webViewGoBack :: +    WebViewClass self => self+ -> IO () +webViewGoBack webview =+    {#call web_view_go_back#} (toWebView webview)++-- |Loads the next history item.+webViewGoForward :: +    WebViewClass self => self+ -> IO ()+webViewGoForward webview =+    {#call web_view_go_forward#} (toWebView webview)++-- |Set the 'WebView' to maintian a back or forward list of history items.+webViewSetMaintainsBackForwardList :: +    WebViewClass self => self + -> Bool -- ^ @flag@ - to tell the view to maintain a back or forward list. + -> IO()+webViewSetMaintainsBackForwardList webview flag = +    {#call web_view_set_maintains_back_forward_list#} +      (toWebView webview)+      (fromBool flag)++-- |Return the 'WebBackForwardList'+webViewGetBackForwardList :: +    WebViewClass self => self+ -> IO WebBackForwardList+webViewGetBackForwardList webview = +    makeNewGObject mkWebBackForwardList $ +      {#call web_view_get_back_forward_list#} +        (toWebView webview)++-- |Go to the specified 'WebHistoryItem'++webViewGoToBackForwardItem :: +    (WebViewClass self, WebHistoryItemClass item) => self + -> item+ -> IO Bool -- ^ True if loading of item is successful, False if not.+webViewGoToBackForwardItem webview item = +    liftM toBool $ {#call web_view_go_to_back_forward_item#} (toWebView webview) (toWebHistoryItem item)++-- |Determines whether 'WebView' has a history item of @steps@.+--+-- Negative values represent steps backward while positive values+-- represent steps forward++webViewCanGoBackOrForward :: +    WebViewClass self => self+ -> Int -- ^ @steps@ - the number of steps + -> IO Bool -- ^ True if able to move back or forward the given number of steps,+            -- False otherwise+webViewCanGoBackOrForward webview steps =+    liftM toBool $  +      {#call web_view_can_go_back_or_forward#} +        (toWebView webview)+        (fromIntegral steps)++-- |Loads the history item that is the number of @steps@ away from the current item.+--+-- Negative values represent steps backward while positive values represent steps forward.++webViewGoBackOrForward :: +    WebViewClass self => self+ -> Int+ -> IO ()+webViewGoBackOrForward webview steps =+    {#call web_view_go_back_or_forward#} +      (toWebView webview)+      (fromIntegral steps)++-- |Determines whether or not it is currently possible to redo the last editing command in the view+webViewCanRedo :: +    WebViewClass self => self+ -> IO Bool+webViewCanRedo webview = +    liftM toBool $+      {#call web_view_can_redo#} (toWebView webview)+-- |Determines whether or not it is currently possible to undo the last editing command in the view+webViewCanUndo :: +    WebViewClass self => self+ -> IO Bool+webViewCanUndo webview =+    liftM toBool $+      {#call web_view_can_undo#} (toWebView webview)++-- |Redoes the last editing command in the view, if possible.+webViewRedo :: +    WebViewClass self => self+ -> IO()+webViewRedo webview =+    {#call web_view_redo#} (toWebView webview)++-- |Undoes the last editing command in the view, if possible.+webViewUndo :: +    WebViewClass self => self+ -> IO()+webViewUndo webview =+    {#call web_view_undo#} (toWebView webview)++-- | Returns whether or not a @mimetype@ can be displayed using this view.+webViewCanShowMimeType :: +    WebViewClass self => self+ -> String -- ^ @mimetype@ - a MIME type+ -> IO Bool -- ^ True if the @mimetype@ can be displayed, otherwise False+webViewCanShowMimeType webview mime =+    withCString mime $ \mimePtr ->+    liftM toBool $+      {#call web_view_can_show_mime_type#}+      (toWebView webview)+      mimePtr++-- | Returns whether the user is allowed to edit the document.+webViewGetEditable :: +    WebViewClass self => self+ -> IO Bool+webViewGetEditable webview =+    liftM toBool $+      {#call web_view_get_editable#} (toWebView webview)++-- | Sets whether allows the user to edit its HTML document.+webViewSetEditable :: +    WebViewClass self => self+ -> Bool+ -> IO ()+webViewSetEditable webview editable =+    {#call web_view_set_editable#} (toWebView webview) (fromBool editable)++-- | Returns whether 'WebView' is in view source mode+webViewGetViewSourceMode :: +    WebViewClass self => self+ -> IO Bool+webViewGetViewSourceMode webview =+    liftM toBool $+      {#call web_view_get_view_source_mode#} (toWebView webview)++-- | Set whether the view should be in view source mode. +--+-- Setting this mode to TRUE before loading a URI will display +-- the source of the web page in a nice and readable format.+webViewSetViewSourceMode :: +    WebViewClass self => self+ -> Bool+ -> IO ()+webViewSetViewSourceMode webview mode =+    {#call web_view_set_view_source_mode#} (toWebView webview) (fromBool mode)++-- | Returns whether the 'WebView' has a transparent background+webViewGetTransparent :: +    WebViewClass self => self+ -> IO Bool+webViewGetTransparent webview =+    liftM toBool $+      {#call web_view_get_transparent#} (toWebView webview)+-- |Sets whether the WebKitWebView has a transparent background.+--+-- Pass False to have the 'WebView' draw a solid background (the default), +-- otherwise pass True.+webViewSetTransparent :: +    WebViewClass self => self+ -> Bool+ -> IO ()+webViewSetTransparent webview trans =+    {#call web_view_set_transparent#} (toWebView webview) (fromBool trans)++-- |Obtains the 'WebInspector' associated with the 'WebView'+webViewGetInspector :: +    WebViewClass self => self+ -> IO WebInspector+webViewGetInspector webview =+    makeNewGObject mkWebInspector $ {#call web_view_get_inspector#} (toWebView webview)++-- |Requests loading of the specified asynchronous client request.+--+-- Creates a provisional data source that will transition to a committed data source once+-- any data has been received. +-- use 'webViewStopLoading' to stop the load.++webViewLoadRequest :: +    (WebViewClass self, NetworkRequestClass request) => self+ -> request+ -> IO()+webViewLoadRequest webview request =+    {#call web_view_load_request#} (toWebView webview) (toNetworkRequest request)+++++-- |Returns the zoom level of 'WebView'+--+-- i.e. the factor by which elements in the page are scaled with respect to their original size.++webViewGetZoomLevel :: +    WebViewClass self => self+ -> IO Float -- ^ the zoom level of 'WebView'+webViewGetZoomLevel webview =+    liftM realToFrac $+	{#call web_view_get_zoom_level#} (toWebView webview)++-- |Sets the zoom level of 'WebView'.+webViewSetZoomLevel :: +    WebViewClass self => self + -> Float -- ^ @zoom_level@ - the new zoom level + -> IO ()+webViewSetZoomLevel webview zlevel = +    {#call web_view_set_zoom_level#} (toWebView webview) (realToFrac zlevel)++-- |Loading the @content@ string as html. The URI passed in base_uri has to be an absolute URI.++webViewLoadHtmlString :: +    WebViewClass self => self + -> String  -- ^ @content@ - the html string+ -> String  -- ^ @base_uri@ - the base URI+ -> IO()+webViewLoadHtmlString webview htmlstr url =+    withCString htmlstr $ \htmlPtr ->+    withCString url  $ \urlPtr ->+        {#call web_view_load_html_string#} (toWebView webview) htmlPtr urlPtr++-- | Requests loading of the given @content@ with the specified @mime_type@, @encoding@ and @base_uri@.+-- +-- If @mime_type@ is @Nothing@, "text/html" is assumed.+--+-- If @encoding@ is @Nothing@, "UTF-8" is assumed.+--+webViewLoadString :: +    WebViewClass self => self + -> String -- ^ @content@ - the content string to be loaded.+ -> (Maybe String) -- ^ @mime_type@ - the MIME type or @Nothing@. + -> (Maybe String) -- ^ @encoding@ - the encoding or @Nothing@.+ -> String -- ^ @base_uri@ - the base URI for relative locations.+ -> IO()+webViewLoadString webview content mimetype encoding baseuri = +    withCString content  $ \contentPtr ->+    maybeWith withCString mimetype $ \mimetypePtr ->+    maybeWith withCString encoding $ \encodingPtr ->+    withCString baseuri  $ \baseuriPtr ->+        {#call web_view_load_string#} +          (toWebView webview)+          contentPtr+          mimetypePtr+          encodingPtr+          baseuriPtr++-- |Returns the 'WebView' document title+webViewGetTitle :: +    WebViewClass self => self+ -> IO (Maybe String) -- ^ the title of 'WebView' or Nothing in case of failed.+webViewGetTitle webview =+    {#call web_view_get_title#} (toWebView webview) >>= maybePeek peekCString++-- |Returns the current URI of the contents displayed by the 'WebView'+webViewGetUri :: +    WebViewClass self => self+ -> IO (Maybe String) -- ^ the URI of 'WebView' or Nothing in case of failed.+webViewGetUri webview = +    {#call web_view_get_uri#} (toWebView webview) >>= maybePeek peekCString +++-- | Stops and pending loads on the given data source.+webViewStopLoading :: +    WebViewClass self => self+ -> IO ()+webViewStopLoading webview = +    {#call web_view_stop_loading#} (toWebView webview)++-- | Reloads the 'WebView'+webViewReload :: +    WebViewClass self => self+ -> IO ()+webViewReload webview = +    {#call web_view_reload#} (toWebView webview)++-- | Reloads the 'WebView' without using any cached data.+webViewReloadBypassCache :: +    WebViewClass self => self+ -> IO()+webViewReloadBypassCache webview = +    {#call web_view_reload_bypass_cache#} (toWebView webview)++-- | Increases the zoom level of 'WebView'.+webViewZoomIn :: +    WebViewClass self => self+ -> IO()+webViewZoomIn webview = +    {#call web_view_zoom_in#} (toWebView webview)++-- | Decreases the zoom level of 'WebView'.+webViewZoomOut :: +    WebViewClass self => self+ -> IO()+webViewZoomOut webview = +    {#call web_view_zoom_out#} (toWebView webview)++-- | Looks for a specified string inside 'WebView'+webViewSearchText :: +    WebViewClass self => self+ -> String -- ^ @text@ - a string to look for+ -> Bool -- ^ @case_sensitive@ - whether to respect the case of text+ -> Bool -- ^ @forward@ - whether to find forward or not+ -> Bool -- ^ @wrap@ - whether to continue looking at beginning+         -- after reaching the end+ -> IO Bool -- ^ True on success or False on failure+webViewSearchText webview text case_sensitive forward wrap =+    withCString text $ \textPtr ->+	liftM toBool $+          {#call web_view_search_text#} +            (toWebView webview)+            textPtr+            (fromBool case_sensitive) +            (fromBool forward) +            (fromBool wrap)++-- |Attempts to highlight all occurances of string inside 'WebView'+webViewMarkTextMatches :: +    WebViewClass self => self+ -> String -- ^ @string@ - a string to look for+ -> Bool  -- ^ @case_sensitive@ - whether to respect the case of text+ -> Int  -- ^ @limit@ - the maximum number of strings to look for or 0 for all+ -> IO Int -- ^ the number of strings highlighted+webViewMarkTextMatches webview text case_sensitive limit = +    withCString text $ \textPtr ->+	liftM fromIntegral $ +          {#call web_view_mark_text_matches#} +            (toWebView webview)+            textPtr+            (fromBool case_sensitive)+            (fromIntegral limit)++-- | Move the cursor in view as described by step and count.+webViewMoveCursor ::+   WebViewClass self => self+ -> MovementStep+ -> Int+ -> IO ()   +webViewMoveCursor webview step count =+  {#call web_view_move_cursor#} (toWebView webview) (fromIntegral $ fromEnum step) (fromIntegral count)++-- | Removes highlighting previously set by 'webViewMarkTextMarches'+webViewUnMarkTextMatches :: +    WebViewClass self => self+ -> IO ()+webViewUnMarkTextMatches webview = +    {#call web_view_unmark_text_matches#} (toWebView webview)++-- | Highlights text matches previously marked by 'webViewMarkTextMatches'+webViewSetHighlightTextMatches :: +    WebViewClass self => self+ -> Bool -- ^ @highlight@ - whether to highlight text matches + -> IO ()+webViewSetHighlightTextMatches webview highlight =+    {#call web_view_set_highlight_text_matches#} +      (toWebView webview)+      (fromBool highlight)++-- | Execute the script specified by @script@+webViewExecuteScript :: +    WebViewClass self => self + -> String  -- ^ @script@ - script to be executed+ -> IO()+webViewExecuteScript webview script =+    withCString script $ \scriptPtr ->+	{#call web_view_execute_script#} (toWebView webview) scriptPtr++-- | Determines whether can cuts the current selection+-- inside 'WebView' to the clipboard+webViewCanCutClipboard :: +    WebViewClass self => self+ -> IO Bool+webViewCanCutClipboard webview = +    liftM toBool $ {#call web_view_can_cut_clipboard#} (toWebView webview)++-- | Determines whether can copies the current selection+-- inside 'WebView' to the clipboard+webViewCanCopyClipboard :: WebViewClass self => self -> IO Bool+webViewCanCopyClipboard webview = +    liftM toBool $ {#call web_view_can_copy_clipboard#} (toWebView webview)++-- | Determines whether can pastes the current contents of the clipboard+-- to the 'WebView'+webViewCanPasteClipboard :: WebViewClass self => self -> IO Bool+webViewCanPasteClipboard webview = +    liftM toBool $ {#call web_view_can_paste_clipboard#} (toWebView webview)++-- | Cuts the current selection inside 'WebView' to the clipboard.+webViewCutClipboard :: WebViewClass self => self -> IO()+webViewCutClipboard webview = +    {#call web_view_cut_clipboard#} (toWebView webview)++-- | Copies the current selection inside 'WebView' to the clipboard.+webViewCopyClipboard :: WebViewClass self => self -> IO()+webViewCopyClipboard webview = +    {#call web_view_copy_clipboard#} (toWebView webview)++-- | Pastes the current contents of the clipboard to the 'WebView'+webViewPasteClipboard :: WebViewClass self => self -> IO()+webViewPasteClipboard webview = +    {#call web_view_paste_clipboard#} (toWebView webview)++-- | Deletes the current selection inside the 'WebView'+webViewDeleteSelection :: WebViewClass self => self -> IO ()+webViewDeleteSelection webview = +    {#call web_view_delete_selection#} (toWebView webview)++-- | Determines whether text was selected+webViewHasSelection :: WebViewClass self => self -> IO Bool+webViewHasSelection webview = +    liftM toBool $ {#call web_view_has_selection#} (toWebView webview)++-- | Attempts to select everything inside the 'WebView'+webViewSelectAll :: WebViewClass self => self -> IO ()+webViewSelectAll webview = +    {#call web_view_select_all#} (toWebView webview)++-- | Returns whether the zoom level affects only text or all elements.+webViewGetFullContentZoom :: +    WebViewClass self => self + -> IO Bool -- ^ False if only text should be scaled(the default)+            -- True if the full content of the view should be scaled.+webViewGetFullContentZoom webview = +    liftM toBool $ {#call web_view_get_full_content_zoom#} (toWebView webview)++-- | Sets whether the zoom level affects only text or all elements.+webViewSetFullContentZoom :: +    WebViewClass self => self + -> Bool -- ^ @full_content_zoom@ - False if only text should be scaled (the default)+         -- True if the full content of the view should be scaled. + -> IO ()+webViewSetFullContentZoom webview full =+    {#call web_view_set_full_content_zoom#} (toWebView webview) (fromBool full)++-- | Returns the default encoding of the 'WebView'+webViewGetEncoding :: +    WebViewClass self => self + -> IO (Maybe String) -- ^ the default encoding or @Nothing@ in case of failed+webViewGetEncoding webview =+    {#call web_view_get_encoding#} (toWebView webview) >>= maybePeek peekCString++-- | Sets the current 'WebView' encoding, +-- without modifying the default one, and reloads the page+webViewSetCustomEncoding :: +    WebViewClass self => self+ -> (Maybe String) -- ^ @encoding@ - the new encoding, +                   -- or @Nothing@ to restore the default encoding. + -> IO ()+webViewSetCustomEncoding webview encoding = +    maybeWith withCString encoding $ \encodingPtr ->+	{#call web_view_set_custom_encoding#} (toWebView webview) encodingPtr++-- | Returns the current encoding of 'WebView',not the default encoding.+webViewGetCustomEncoding :: +    WebViewClass self => self + -> IO (Maybe String) -- ^ the current encoding string+                      -- or @Nothing@ if there is none set.+webViewGetCustomEncoding webview = +    {#call web_view_get_custom_encoding#} (toWebView webview) >>= maybePeek peekCString++-- | Determines the current status of the load.+webViewGetLoadStatus :: +    WebViewClass self => self + -> IO LoadStatus -- ^ the current load status:'LoadStatus'+webViewGetLoadStatus webview = +    liftM (toEnum . fromIntegral) $ {#call web_view_get_load_status#} (toWebView webview)++-- | Determines the current progress of the load+webViewGetProgress :: +    WebViewClass self => self + -> IO Double -- ^ the load progress+webViewGetProgress webview =+    liftM realToFrac $ {#call web_view_get_progress#} (toWebView webview)++-- | This function returns the list of targets this 'WebView' can provide for clipboard copying and as DND source. +-- The targets in the list are added with values from the 'WebViewTargetInfo' enum, +-- using 'targetListAdd' and 'targetListAddTextTargets'.+webViewGetCopyTargetList ::+   WebViewClass self => self + -> IO (Maybe TargetList)+webViewGetCopyTargetList webview = do+  tlPtr <- {#call web_view_get_copy_target_list#} (toWebView webview)+  if tlPtr==nullPtr then return Nothing else liftM Just (mkTargetList tlPtr)++-- | This function returns the list of targets this 'WebView' can provide for clipboard pasteing and as DND source. +-- The targets in the list are added with values from the 'WebViewTargetInfo' enum, +-- using 'targetListAdd' and 'targetListAddTextTargets'.+webViewGetPasteTargetList ::+   WebViewClass self => self + -> IO (Maybe TargetList)+webViewGetPasteTargetList webview = do+  tlPtr <- {#call web_view_get_paste_target_list#} (toWebView webview)+  if tlPtr==nullPtr then return Nothing else liftM Just (mkTargetList tlPtr)++-- * Attibutes++-- | Zoom level of the 'WebView' instance+webViewZoomLevel :: WebViewClass self => Attr self Float+webViewZoomLevel = newAttr+   webViewGetZoomLevel+   webViewSetZoomLevel++-- | Whether the full content is scaled when zooming+--+-- Default value: False+webViewFullContentZoom :: WebViewClass self => Attr self Bool+webViewFullContentZoom = newAttr+   webViewGetFullContentZoom+   webViewSetFullContentZoom++-- | The default encoding of the 'WebView' instance+--+-- Default value: @Nothing@+webViewEncoding :: WebViewClass self => ReadAttr self (Maybe String)+webViewEncoding = readAttr webViewGetEncoding++-- | Determines the current status of the load.+--+-- Default value: @LoadFinished@+webViewLoadStatus :: WebViewClass self => ReadAttr self LoadStatus+webViewLoadStatus = readAttr webViewGetLoadStatus++-- |Determines the current progress of the load+--+-- Default Value: 1+webViewProgress :: WebViewClass self => ReadAttr self Double+webViewProgress = readAttr webViewGetProgress+++-- | The associated webSettings of the 'WebView' instance+webViewWebSettings :: WebViewClass self => Attr self WebSettings+webViewWebSettings = newAttr+   webViewGetWebSettings+   webViewSetWebSettings+++-- | Title of the 'WebView' instance+webViewTitle :: WebViewClass self => ReadAttr self (Maybe String)+webViewTitle = readAttr webViewGetTitle++-- | The associated webInspector instance of the 'WebView'+webViewInspector :: WebViewClass self => ReadAttr self WebInspector+webViewInspector = readAttr webViewGetInspector+++-- | The custom encoding of the 'WebView' instance+--+-- Default value: @Nothing@+webViewCustomEncoding :: WebViewClass self => Attr self (Maybe String)+webViewCustomEncoding = newAttr+   webViewGetCustomEncoding+   webViewSetCustomEncoding++-- | view source mode of the 'WebView' instance+webViewViewSourceMode :: WebViewClass self => Attr self Bool+webViewViewSourceMode = newAttr+  webViewGetViewSourceMode+  webViewSetViewSourceMode++-- | transparent background of the 'WebView' instance+webViewTransparent :: WebViewClass self => Attr self Bool+webViewTransparent = newAttr+  webViewGetTransparent+  webViewSetTransparent++-- | Whether content of the 'WebView' can be modified by the user+--+-- Default value: @False@+webViewEditable :: WebViewClass self => Attr self Bool+webViewEditable = newAttr+  webViewGetEditable+  webViewSetEditable++-- | Returns the current URI of the contents displayed by the @web_view@.+--+-- Default value: Nothing+webViewUri :: WebViewClass self => ReadAttr self (Maybe String)+webViewUri = readAttr webViewGetUri++-- | The list of targets this web view supports for clipboard copying.+webViewCopyTargetList :: WebViewClass self => ReadAttr self (Maybe TargetList)+webViewCopyTargetList = readAttr webViewGetCopyTargetList++-- | The list of targets this web view supports for clipboard pasteing.+webViewPasteTargetList :: WebViewClass self => ReadAttr self (Maybe TargetList)+webViewPasteTargetList = readAttr webViewGetPasteTargetList++-- | An associated 'WebWindowFeatures' instance.+webViewWindowFeatures :: WebViewClass self => Attr self WebWindowFeatures+webViewWindowFeatures = +  newAttrFromObjectProperty "window-features"+  {#call pure webkit_web_window_features_get_type#}++-- * Signals++-- | When Document title changed, this signal is emitted.+--+-- It can be used to set the Application 'Window' title.+--+-- the user function signature is (WebFrame->String->IO())+--+-- webframe - which 'WebFrame' changes the document title.+--+-- title - current title string.+titleChanged :: WebViewClass self => Signal self ( WebFrame -> String -> IO() )+titleChanged = +    Signal (connect_OBJECT_STRING__NONE "title-changed")+++-- | When the cursor is over a link, this signal is emitted.+-- +-- the user function signature is (Maybe String -> Maybe String -> IO () )+-- +-- title - the link's title or @Nothing@ in case of failure.+--+-- uri - the URI the link points to or @Nothing@ in case of failure.+hoveringOverLink :: WebViewClass self => Signal self (String -> String -> IO())+hoveringOverLink =+    Signal (connect_STRING_STRING__NONE "hovering-over-link")++-- | When a 'WebFrame' begins to load, this signal is emitted+loadStarted :: WebViewClass self => Signal self (WebFrame -> IO())+loadStarted = Signal (connect_OBJECT__NONE "load-started")++-- | When a 'WebFrame' loaded the first data, this signal is emitted+loadCommitted :: WebViewClass self => Signal self (WebFrame -> IO())+loadCommitted = Signal (connect_OBJECT__NONE "load-committed")+++-- | When the global progress changed, this signal is emitted+--+-- the global progress will be passed back to user function+progressChanged :: WebViewClass self => Signal self (Int-> IO())+progressChanged = +    Signal (connect_INT__NONE "load-progress-changed")++-- | When loading finished, this signal is emitted+loadFinished :: WebViewClass self => Signal self (WebFrame -> IO())+loadFinished = +    Signal (connect_OBJECT__NONE "load-finished")++-- | When An error occurred while loading. +--+-- By default, if the signal is not handled,+-- the WebView will display a stock error page. +--+-- You need to handle the signal+-- if you want to provide your own error page.+-- +-- The URI that triggered the error and the 'GError' will be passed back to user function.+loadError :: WebViewClass self => Signal self (WebFrame -> String -> GError -> IO Bool)+loadError = Signal (connect_OBJECT_STRING_BOXED__BOOL "load-error" peek)++createWebView :: WebViewClass self => Signal self (WebFrame -> IO WebView)+createWebView = Signal (connect_OBJECT__OBJECTPTR "create-web-view")++-- | Emitted when closing a WebView is requested. +--+-- This occurs when a call is made from JavaScript's window.close function. +-- The default signal handler does not do anything. +-- It is the owner's responsibility to hide or delete the 'WebView', if necessary.+-- +-- User function should return True to stop the handlers from being invoked for the event +-- or False to propagate the event furter+closeWebView :: WebViewClass self => Signal self (IO Bool)+closeWebView = +    Signal (connect_NONE__BOOL "close-web-view")++-- | A JavaScript console message was created.+consoleMessage :: WebViewClass self => Signal self (String -> String -> Int -> String -> IO Bool)+consoleMessage = Signal (connect_STRING_STRING_INT_STRING__BOOL "console-message")++-- | The 'copyClipboard' signal is a keybinding signal which gets emitted to copy the selection to the clipboard.+--+-- The default bindings for this signal are Ctrl-c and Ctrl-Insert.+copyClipboard :: WebViewClass self => Signal self (IO ())+copyClipboard = Signal (connect_NONE__NONE "copy-clipboard")++-- | The 'cutClipboard' signal is a keybinding signal which gets emitted to cut the selection to the clipboard.+--+-- The default bindings for this signal are Ctrl-x and Shift-Delete.+cutClipboard :: WebViewClass self => Signal self (IO ())+cutClipboard = Signal (connect_NONE__NONE "cut-clipboard")++-- | The 'pasteClipboard' signal is a keybinding signal which gets emitted to paste the contents of the clipboard into the Web view.+--+-- The default bindings for this signal are Ctrl-v and Shift-Insert.+pasteClipboard :: WebViewClass self => Signal self (IO ())+pasteClipboard = Signal (connect_NONE__NONE "paste-clipboard")++-- | When a context menu is about to be displayed this signal is emitted.+populatePopup :: WebViewClass self => Signal self (Menu -> IO ())+populatePopup = Signal (connect_OBJECT__NONE "populate-popup")++-- | Emitted when printing is requested by the frame, usually because of a javascript call. +-- When handling this signal you should call 'webFramePrintFull' or 'webFramePrint' to do the actual printing.+--+-- The default handler will present a print dialog and carry a print operation. +-- Notice that this means that if you intend to ignore a print+-- request you must connect to this signal, and return True.+printRequested :: WebViewClass self => Signal self (WebFrame -> IO Bool)+printRequested = Signal (connect_OBJECT__BOOL "print-requested")++-- | A JavaScript alert dialog was created.+scriptAlert :: WebViewClass self => Signal self (WebFrame -> String -> IO Bool)+scriptAlert = Signal (connect_OBJECT_STRING__BOOL "scriptAlert")++-- | A JavaScript confirm dialog was created, providing Yes and No buttons.+scriptConfirm :: WebViewClass self => Signal self (WebFrame -> String -> IO Bool)+scriptConfirm = Signal (connect_OBJECT_STRING__BOOL "script-confirm")++-- | A JavaScript prompt dialog was created, providing an entry to input text.+scriptPrompt :: WebViewClass self => Signal self (WebFrame -> String -> String -> IO Bool)+scriptPrompt = Signal (connect_OBJECT_STRING_STRING__BOOL "script-prompt")++-- | When status-bar text changed, this signal will emitted.+statusBarTextChanged :: WebViewClass self => Signal self (String -> IO ())+statusBarTextChanged = Signal (connect_STRING__NONE "status-bar-text-changed")++++-- | The 'selectAll' signal is a keybinding signal which gets emitted to select the complete contents of the text view.+-- +-- The default bindings for this signal is Ctrl-a.+selectAll :: WebViewClass self => Signal self (IO ())+selectAll = Signal (connect_NONE__NONE "select-all")++-- | When selection changed, this signal is emitted.+selectionChanged :: WebViewClass self => Signal self (IO ())+selectionChanged = Signal (connect_NONE__NONE "selection-changed")++-- | When set scroll adjustments, this signal is emitted.+setScrollAdjustments :: WebViewClass self => Signal self (Adjustment -> Adjustment -> IO ())+setScrollAdjustments = Signal (connect_OBJECT_OBJECT__NONE "set-scroll-adjustments")++-- | The 'databaseQuotaExceeded' signal will be emitted when a Web Database exceeds the quota of its security origin. +-- This signal may be used to increase the size of the quota before the originating operation fails.+databaseQuotaExceeded :: WebViewClass self => Signal self (WebFrame -> WebDatabase -> IO ())+databaseQuotaExceeded = Signal (connect_OBJECT_OBJECT__NONE "database-quota-exceeded")++-- | When document loading finished, this signal is emitted+documentLoadFinished :: WebViewClass self => Signal self (WebFrame -> IO ())+documentLoadFinished = Signal (connect_OBJECT__NONE "document-load-finished")+++-- | Emitted after new 'WebView' instance had been created in 'onCreateWebView' user function+-- when the new 'WebView' should be displayed to the user.+-- +-- All the information about how the window should look, +-- including size,position,whether the location, status and scroll bars should be displayed, +-- is ready set.+webViewReady:: WebViewClass self => Signal self (IO Bool)+webViewReady =+    Signal (connect_NONE__BOOL "web-view-ready")++-- | Emitted after A new 'Download' is being requested. +--+-- By default, if the signal is not handled, the download is cancelled.+--  +-- Notice that while handling this signal you must set the target URI using 'downloadSetDestinationUri'+-- +-- If you intend to handle downloads yourself, return False in user function.+downloadRequested :: WebViewClass self => Signal self (Download -> IO Bool)+downloadRequested =+    Signal (connect_OBJECT__BOOL "download-requested")++-- | Emitted after Icon loaded+iconLoaded :: WebViewClass self => Signal self (IO ())+iconLoaded =+    Signal (connect_NONE__NONE "icon-loaded")++-- | The "redo" signal is a keybinding signal which gets emitted to redo the last editing command.+--+-- The default binding for this signal is Ctrl-Shift-z+redo :: WebViewClass self => Signal self (IO ())+redo =+   Signal (connect_NONE__NONE "redo")++-- | The "undo" signal is a keybinding signal which gets emitted to undo the last editing command.+--+-- The default binding for this signal is Ctrl-z+undo :: WebViewClass self => Signal self (IO ())+undo =+   Signal (connect_NONE__NONE "undo")++-- | Decide whether or not to display the given MIME type. +-- If this signal is not handled, the default behavior is to show the content of the+-- requested URI if WebKit can show this MIME type and the content disposition is not a download; +-- if WebKit is not able to show the MIME type nothing happens.+--+-- Notice that if you return True, meaning that you handled the signal, +-- you are expected to be aware of the "Content-Disposition" header. +-- A value of "attachment" usually indicates a download regardless of the MIME type, +-- see also soupMessageHeadersGetContentDisposition'+-- And you must call 'webPolicyDecisionIgnore', 'webPolicyDecisionDownload', or 'webPolicyDecisionUse' +-- on the 'webPolicyDecision' object.+mimeTypePolicyDecisionRequested :: WebViewClass self => Signal self (WebFrame -> NetworkRequest -> String -> WebPolicyDecision -> IO Bool)+mimeTypePolicyDecisionRequested = Signal (connect_OBJECT_OBJECT_STRING_OBJECT__BOOL "mime-type-policy-decision-requested")++-- | The 'moveCursor' will be emitted to apply the cursor movement described by its parameters to the view.+moveCursor :: WebViewClass self => Signal self (MovementStep -> Int -> IO Bool)+moveCursor = Signal (connect_ENUM_INT__BOOL "move-cursor")++-- | Emitted when frame requests a navigation to another page. +-- If this signal is not handled, the default behavior is to allow the navigation.+--+-- Notice that if you return True, meaning that you handled the signal, +-- you are expected to be aware of the "Content-Disposition" header. +-- A value of "attachment" usually indicates a download regardless of the MIME type, +-- see also soupMessageHeadersGetContentDisposition'+-- And you must call 'webPolicyDecisionIgnore', 'webPolicyDecisionDownload', or 'webPolicyDecisionUse' +-- on the 'webPolicyDecision' object.+navigationPolicyDecisionRequested :: WebViewClass self => Signal self (WebFrame -> NetworkRequest -> WebNavigationAction -> WebPolicyDecision -> IO Bool)+navigationPolicyDecisionRequested = Signal (connect_OBJECT_OBJECT_OBJECT_OBJECT__BOOL "navigation-policy-decision-requested")++-- | Emitted when frame requests opening a new window. +-- With this signal the browser can use the context of the request to decide about the new window. +-- If the request is not handled the default behavior is to allow opening the new window to load the URI, +-- which will cause a 'createWebView' signal emission where the browser handles the new window action +-- but without information of the context that caused the navigation. +-- The following 'navigationPolicyDecisionRequested' emissions will load the page +-- after the creation of the new window just with the information of this new navigation context, +-- without any information about the action that made this new window to be opened.+--+-- Notice that if you return True, meaning that you handled the signal, +-- you are expected to be aware of the "Content-Disposition" header. +-- A value of "attachment" usually indicates a download regardless of the MIME type, +-- see also soupMessageHeadersGetContentDisposition'+-- And you must call 'webPolicyDecisionIgnore', 'webPolicyDecisionDownload', or 'webPolicyDecisionUse' +-- on the 'webPolicyDecision' object.+newWindowPolicyDecisionRequested :: WebViewClass self => Signal self (WebFrame -> NetworkRequest -> WebNavigationAction -> WebPolicyDecision -> IO Bool)+newWindowPolicyDecisionRequested = Signal (connect_OBJECT_OBJECT_OBJECT_OBJECT__BOOL "new-window-policy-decision-requested")++-- | Emitted when a request is about to be sent. +-- You can modify the request while handling this signal. +-- You can set the URI in the 'NetworkRequest' object itself, +-- and add/remove/replace headers using the SoupMessage object it carries, +-- if it is present. See 'networkRequestGetMessage'. +-- Setting the request URI to "about:blank" will effectively cause the request to load nothing, +-- and can be used to disable the loading of specific resources.+--+-- Notice that information about an eventual redirect is available in response's SoupMessage, +-- not in the SoupMessage carried by the request.+-- If response is NULL, then this is not a redirected request.+--+-- The 'WebResource' object will be the same throughout all the lifetime of the resource, +-- but the contents may change from inbetween signal emissions.+resourceRequestStarting :: WebViewClass self => Signal self (WebFrame -> WebResource -> NetworkRequest -> NetworkResponse -> IO ())+resourceRequestStarting = Signal (connect_OBJECT_OBJECT_OBJECT_OBJECT__NONE "resource-request-starting")
+ Graphics/UI/Gtk/WebKit/WebWindowFeatures.chs view
@@ -0,0 +1,121 @@+{-# LANGUAGE CPP #-}+-- -*-haskell-*-+-----------------------------------------------------------------------------+--  Module      :  Graphics.UI.Gtk.WebKit.WebWindowFeatures+--  Author      :  Andy Stewart+--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>+--+--  This library is free software; you can redistribute it and/or+--  modify it under the terms of the GNU Lesser General Public+--  License as published by the Free Software Foundation; either+--  version 2.1 of the License, or (at your option) any later version.+--+--  This library is distributed in the hope that it will be useful,+--  but WITHOUT ANY WARRANTY; without even the implied warranty of+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+--  Lesser General Public License for more details.+--+-- |+-- Maintainer  : gtk2hs-users@lists.sourceforge.net+-- Stability   : provisional+-- Portability : portable (depends on GHC)+--+-- Access to the WebKit Web WindowFeatures+-----------------------------------------------------------------------------++module Graphics.UI.Gtk.WebKit.WebWindowFeatures (+-- * Types+  WebWindowFeatures,++-- * Constructors+  webWindowFeaturesNew,++-- * Methods  +  webWindowFeaturesEqual,++-- * Attributes+  webWindowFeaturesFullscreen,+  webWindowFeaturesHeight,+  webWindowFeaturesWidth,+  webWindowFeaturesX,+  webWindowFeaturesY,+  webWindowFeaturesLocationbarVisible,+  webWindowFeaturesMenubarVisible,+  webWindowFeaturesScrollbarVisible,+  webWindowFeaturesStatusbarVisible,+  webWindowFeaturesToolbarVisible,+) where++import Control.Monad		(liftM)++import System.Glib.FFI+import System.Glib.UTFString+import System.Glib.GList+import System.Glib.GError +import System.Glib.Attributes+import System.Glib.Properties+import Graphics.UI.Gtk.Gdk.Events++{#import Graphics.UI.Gtk.Abstract.Object#}	(makeNewObject)+{#import Graphics.UI.Gtk.WebKit.Types#}+{#import System.Glib.GObject#}++{#context lib="webkit" prefix ="webkit"#}++-- * Constructors++-- | Creates a new 'WebWindowFeatures' instance with default values. +-- It must be manually attached to a WebView.+webWindowFeaturesNew :: IO WebWindowFeatures+webWindowFeaturesNew = +    constructNewGObject mkWebWindowFeatures $ {#call web_window_features_new#}++-- | Decides if a 'WebWindowFeatures' instance equals another, as in has the same values.+webWindowFeaturesEqual :: +   (WebWindowFeaturesClass winA, WebWindowFeaturesClass winB) => winA -> winB+ -> IO Bool+webWindowFeaturesEqual winA winB =+    liftM toBool $ {#call web_window_features_equal#} (toWebWindowFeatures winA) (toWebWindowFeatures winB)++-- * Attributes++-- | Controls whether window will be displayed fullscreen.+webWindowFeaturesFullscreen :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesFullscreen = newAttrFromBoolProperty "fullscreen"++-- | The height of the window on the screen.+webWindowFeaturesHeight :: WebWindowFeaturesClass self => Attr self Int+webWindowFeaturesHeight = newAttrFromIntProperty "height"++-- | The width of the window on the screen.+webWindowFeaturesWidth :: WebWindowFeaturesClass self => Attr self Int+webWindowFeaturesWidth = newAttrFromIntProperty "width"++-- | Controls whether the locationbar should be visible for the window.+webWindowFeaturesLocationbarVisible :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesLocationbarVisible = newAttrFromBoolProperty "locationbar-visible"++-- | Controls whether the menubar should be visible for the window.+webWindowFeaturesMenubarVisible :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesMenubarVisible = newAttrFromBoolProperty "menubar-visible"++-- | Controls whether the scrollbar should be visible for the window.+webWindowFeaturesScrollbarVisible :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesScrollbarVisible = newAttrFromBoolProperty "scrollbar-visible"++-- | Controls whether the statusbar should be visible for the window.+webWindowFeaturesStatusbarVisible :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesStatusbarVisible = newAttrFromBoolProperty "statusbar-visible"++-- | Controls whether the toolbar should be visible for the window.+webWindowFeaturesToolbarVisible :: WebWindowFeaturesClass self => Attr self Bool+webWindowFeaturesToolbarVisible = newAttrFromBoolProperty "toolbar-visible"++-- | The starting x position of the window on the screen.+webWindowFeaturesX :: WebWindowFeaturesClass self => Attr self Int+webWindowFeaturesX = newAttrFromIntProperty "x"++-- | The starting y position of the window on the screen.+webWindowFeaturesY :: WebWindowFeaturesClass self => Attr self Int+webWindowFeaturesY = newAttrFromIntProperty "y"+
+ Gtk2HsSetup.hs view
@@ -0,0 +1,486 @@+{-# LANGUAGE CPP #-}++#define CABAL_VERSION_ENCODE(major, minor, micro) (     \+          ((major) * 10000)                             \+        + ((minor) *   100)                             \+        + ((micro) *     1))++#define CABAL_VERSION_CHECK(major,minor,micro)    \+        (CABAL_VERSION >= CABAL_VERSION_ENCODE(major,minor,micro))++-- now, this is bad, but Cabal doesn't seem to actually pass any information about+-- its version to CPP, so guess the version depending on the version of GHC+#ifdef CABAL_VERSION_MINOR+#ifndef CABAL_VERSION_MAJOR+#define CABAL_VERSION_MAJOR 1+#endif+#ifndef CABAL_VERSION_MICRO+#define CABAL_VERSION_MICRO 0+#endif+#define CABAL_VERSION CABAL_VERSION_ENCODE(     \+        CABAL_VERSION_MAJOR,                    \+        CABAL_VERSION_MINOR,                    \+        CABAL_VERSION_MICRO)+#else+#warning Setup.hs is guessing the version of Cabal. If compilation of Setup.hs fails use -DCABAL_VERSION_MINOR=x for Cabal version 1.x.0 when building (prefixed by --ghc-option= when using the 'cabal' command)+#if (__GLASGOW_HASKELL__ >= 612)+#define CABAL_VERSION CABAL_VERSION_ENCODE(1,8,0)+#else+#define CABAL_VERSION CABAL_VERSION_ENCODE(1,6,0)+#endif+#endif++-- | Build a Gtk2hs package.+--+module Gtk2HsSetup ( gtk2hsUserHooks, getPkgConfigPackages ) where++import Distribution.Simple+import Distribution.Simple.PreProcess+import Distribution.InstalledPackageInfo ( importDirs,+                                           showInstalledPackageInfo,+                                           libraryDirs,+                                           extraLibraries,+                                           extraGHCiLibraries )+import Distribution.Simple.PackageIndex (+#if CABAL_VERSION_CHECK(1,8,0)+  lookupInstalledPackageId+#else+  lookupPackageId+#endif+  )+import Distribution.PackageDescription as PD ( PackageDescription(..),+                                               updatePackageDescription,+                                               BuildInfo(..),+                                               emptyBuildInfo, allBuildInfo,+                                               Library(..),+                                               libModules, hasLibs)+import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..),+                                           InstallDirs(..),+#if CABAL_VERSION_CHECK(1,8,0)+                                           componentPackageDeps,+#else+                                           packageDeps,+#endif+                                           absoluteInstallDirs)+import Distribution.Simple.Compiler  ( Compiler(..) )+import Distribution.Simple.Program (+  Program(..), ConfiguredProgram(..),+  rawSystemProgramConf, rawSystemProgramStdoutConf,+  c2hsProgram, pkgConfigProgram, requireProgram, ghcPkgProgram,+  simpleProgram, lookupProgram, rawSystemProgramStdout, ProgArg)+import Distribution.ModuleName ( ModuleName, components, toFilePath )+import Distribution.Simple.Utils+import Distribution.Simple.Setup (CopyFlags(..), InstallFlags(..), CopyDest(..),+                                  defaultCopyFlags, ConfigFlags(configVerbosity),+                                  fromFlag, toFlag, RegisterFlags(..), flagToMaybe,+                                  fromFlagOrDefault, defaultRegisterFlags)+import Distribution.Simple.BuildPaths ( autogenModulesDir )+import Distribution.Simple.Install ( install )+#if CABAL_VERSION_CHECK(1,8,0)+import Distribution.Simple.Register ( generateRegistrationInfo, registerPackage )+#else+import qualified Distribution.Simple.Register as Register ( register )+#endif+import Distribution.Text ( simpleParse, display )+import System.FilePath+import System.Directory ( doesFileExist )+import Distribution.Version (Version(..))+import Distribution.Verbosity+import Control.Monad (when, unless, filterM)+import Data.Maybe ( isJust, isNothing, fromMaybe, maybeToList )+import Data.List (isPrefixOf, isSuffixOf, nub)+import Data.Char (isAlpha)+import qualified Data.Map as M+import qualified Data.Set as S++import Control.Applicative ((<$>))+import System.Directory (getDirectoryContents, doesDirectoryExist)++-- the name of the c2hs pre-compiled header file+precompFile = "precompchs.bin"++gtk2hsUserHooks = simpleUserHooks {+    hookedPrograms = [typeGenProgram, signalGenProgram, c2hsLocal],+    hookedPreProcessors = [("chs", ourC2hs)],+    confHook = \pd cf ->+      confHook simpleUserHooks pd cf >>= return . adjustLocalBuildInfo,+    postConf = \args cf pd lbi -> do+      genSynthezisedFiles (fromFlag (configVerbosity cf)) pd lbi+      postConf simpleUserHooks args cf pd lbi,+    buildHook = \pd lbi uh bf -> fixDeps pd >>= \pd ->+                                 (buildHook simpleUserHooks) pd lbi uh bf,+    copyHook = \pd lbi uh flags -> (copyHook simpleUserHooks) pd lbi uh flags >>+      installCHI pd lbi (fromFlag (copyVerbosity flags)) (fromFlag (copyDest flags)),+    instHook = \pd lbi uh flags ->+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)+      installHook pd lbi uh flags >>+      installCHI pd lbi (fromFlag (installVerbosity flags)) NoCopyDest,+    regHook = registerHook+#else+      instHook simpleUserHooks pd lbi uh flags >>+      installCHI pd lbi (fromFlag (installVerbosity flags)) NoCopyDest+#endif+  }++------------------------------------------------------------------------------+-- Lots of stuff for windows ghci support+------------------------------------------------------------------------------++getDlls :: [FilePath] -> IO [FilePath]+getDlls dirs = filter ((== ".dll") . takeExtension) . concat <$>+    mapM getDirectoryContents dirs++fixLibs :: [FilePath] -> [String] -> [String]+fixLibs dlls = concatMap $ \ lib ->+    case filter (("lib" ++ lib) `isPrefixOf`) dlls of+                dll:_ -> [dropExtension dll]+                _     -> if lib == "z" then [] else [lib]++-- The following code is a big copy-and-paste job from the sources of+-- Cabal 1.8 just to be able to fix a field in the package file. Yuck.++#if CABAL_VERSION_CHECK(1,8,0)+        +installHook :: PackageDescription -> LocalBuildInfo+                   -> UserHooks -> InstallFlags -> IO ()+installHook pkg_descr localbuildinfo _ flags = do+  let copyFlags = defaultCopyFlags {+                      copyDistPref   = installDistPref flags,+                      copyDest       = toFlag NoCopyDest,+                      copyVerbosity  = installVerbosity flags+                  }+  install pkg_descr localbuildinfo copyFlags+  let registerFlags = defaultRegisterFlags {+                          regDistPref  = installDistPref flags,+                          regInPlace   = installInPlace flags,+                          regPackageDB = installPackageDB flags,+                          regVerbosity = installVerbosity flags+                      }+  when (hasLibs pkg_descr) $ register pkg_descr localbuildinfo registerFlags++registerHook :: PackageDescription -> LocalBuildInfo+        -> UserHooks -> RegisterFlags -> IO ()+registerHook pkg_descr localbuildinfo _ flags =+    if hasLibs pkg_descr+    then register pkg_descr localbuildinfo flags+    else setupMessage verbosity+           "Package contains no library to register:" (packageId pkg_descr)+  where verbosity = fromFlag (regVerbosity flags)++register :: PackageDescription -> LocalBuildInfo+         -> RegisterFlags -- ^Install in the user's database?; verbose+         -> IO ()+register pkg@PackageDescription { library       = Just lib  }+         lbi@LocalBuildInfo     { libraryConfig = Just clbi } regFlags+  = do++    installedPkgInfoRaw <- generateRegistrationInfo+                           verbosity pkg lib lbi clbi inplace distPref++    dllsInScope <- getSearchPath >>= (filterM doesDirectoryExist) >>= getDlls+    let libs = fixLibs dllsInScope (extraLibraries installedPkgInfoRaw)+        installedPkgInfo = installedPkgInfoRaw {+                                extraGHCiLibraries = libs }++     -- Three different modes:+    case () of+     _ | modeGenerateRegFile   -> die "Generate Reg File not supported"+       | modeGenerateRegScript -> die "Generate Reg Script not supported"+       | otherwise             -> registerPackage verbosity+                                    installedPkgInfo pkg lbi inplace packageDb++  where+    modeGenerateRegFile = isJust (flagToMaybe (regGenPkgConf regFlags))+    modeGenerateRegScript = fromFlag (regGenScript regFlags)+    inplace   = fromFlag (regInPlace regFlags)+    packageDb = case flagToMaybe (regPackageDB regFlags) of+                    Just db -> db+                    Nothing -> registrationPackageDB (withPackageDB lbi)+    distPref  = fromFlag (regDistPref regFlags)+    verbosity = fromFlag (regVerbosity regFlags)++register _ _ regFlags = notice verbosity "No package to register"+  where+    verbosity = fromFlag (regVerbosity regFlags)++#else+installHook :: PackageDescription -> LocalBuildInfo+                   -> UserHooks -> InstallFlags -> IO ()+installHook pkg_descr localbuildinfo _ flags = do+  let copyFlags = defaultCopyFlags {+                      copyDistPref   = installDistPref flags,+                      copyInPlace    = installInPlace flags,+                      copyUseWrapper = installUseWrapper flags,+                      copyDest       = toFlag NoCopyDest,+                      copyVerbosity  = installVerbosity flags+                  }+  install pkg_descr localbuildinfo copyFlags+  let registerFlags = defaultRegisterFlags {+                          regDistPref  = installDistPref flags,+                          regInPlace   = installInPlace flags,+                          regPackageDB = installPackageDB flags,+                          regVerbosity = installVerbosity flags+                      }+  when (hasLibs pkg_descr) $ register pkg_descr localbuildinfo registerFlags++registerHook :: PackageDescription -> LocalBuildInfo+        -> UserHooks -> RegisterFlags -> IO ()+registerHook pkg_descr localbuildinfo _ flags =+    if hasLibs pkg_descr+    then register pkg_descr localbuildinfo flags+    else setupMessage verbosity+           "Package contains no library to register:" (packageId pkg_descr)+  where verbosity = fromFlag (regVerbosity flags)++register :: PackageDescription -> LocalBuildInfo+         -> RegisterFlags -- ^Install in the user's database?; verbose+         -> IO ()+register pkg_descr lbi regFlags = do+  let verbosity = fromFlag (regVerbosity regFlags)+  warn verbosity "Cannot register ghci libraries with Cabal 1.6 (need 1.8)."+  Register.register pkg_descr lbi regFlags+  +#endif++------------------------------------------------------------------------------+-- This is a hack for Cabal-1.8, It is not needed in Cabal-1.9.1 or later+------------------------------------------------------------------------------++adjustLocalBuildInfo :: LocalBuildInfo -> LocalBuildInfo+adjustLocalBuildInfo lbi =+  let extra = (Just libBi, [])+      libBi = emptyBuildInfo { includeDirs = [ autogenModulesDir lbi+                                             , buildDir lbi ] }+   in lbi { localPkgDescr = updatePackageDescription extra (localPkgDescr lbi) }++------------------------------------------------------------------------------+-- Processing .chs files with our local c2hs.+------------------------------------------------------------------------------++ourC2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor+ourC2hs bi lbi = PreProcessor {+  platformIndependent = False,+  runPreProcessor = runC2HS bi lbi+}++runC2HS :: BuildInfo -> LocalBuildInfo ->+           (FilePath, FilePath) -> (FilePath, FilePath) -> Verbosity -> IO ()+runC2HS bi lbi (inDir, inFile)  (outDir, outFile) verbosity = do+  -- have the header file name if we don't have the precompiled header yet+  header <- case lookup "x-c2hs-header" (customFieldsBI bi) of+    Just h -> return h+    Nothing -> die ("Need x-c2hs-Header definition in the .cabal Library section "+++                    "that sets the C header file to process .chs.pp files.")++  -- c2hs will output files in out dir, removing any leading path of the input file.+  -- Thus, append the dir of the input file to the output dir.+  let (outFileDir, newOutFile) = splitFileName outFile+  let newOutDir = outDir </> outFileDir+  -- additional .chi files might be needed that other packages have installed;+  -- we assume that these are installed in the same place as .hi files+  let chiDirs = [ dir |+#if CABAL_VERSION_CHECK(1,8,0)+                  ipi <- maybe [] (map fst . componentPackageDeps) (libraryConfig lbi),+                  dir <- maybe [] importDirs (lookupInstalledPackageId (installedPkgs lbi) ipi) ]+#else+                  ipi <- packageDeps lbi,+                  dir <- maybe [] importDirs (lookupPackageId (installedPkgs lbi) ipi) ]+#endif+  rawSystemProgramConf verbosity c2hsLocal (withPrograms lbi) $+       map ("--include=" ++) (outDir:chiDirs)+    ++ ["--cppopts=" ++ opt | opt <- getCppOptions bi lbi]+    ++ ["--output-dir=" ++ newOutDir,+        "--output=" ++ newOutFile,+        "--precomp=" ++ buildDir lbi </> precompFile,+        header, inDir </> inFile]++getCppOptions :: BuildInfo -> LocalBuildInfo -> [String]+getCppOptions bi lbi+    = nub $+      ["-I" ++ dir | dir <- PD.includeDirs bi]+   ++ [opt | opt@('-':c:_) <- (PD.cppOptions bi ++ PD.ccOptions bi), c `elem` "DIU"]++installCHI :: PackageDescription -- ^information from the .cabal file+        -> LocalBuildInfo -- ^information from the configure step+        -> Verbosity -> CopyDest -- ^flags sent to copy or install+        -> IO ()+installCHI pkg@PD.PackageDescription { library = Just lib } lbi verbosity copydest = do+  let InstallDirs { libdir = libPref } = absoluteInstallDirs pkg lbi copydest+  -- cannot use the recommended 'findModuleFiles' since it fails if there exists+  -- a modules that does not have a .chi file+  mFiles <- mapM (findFileWithExtension' ["chi"] [buildDir lbi])+                 (map toFilePath+#if CABAL_VERSION_CHECK(1,8,0)+                   (PD.libModules lib)+#else+                   (PD.libModules pkg)+#endif+                 )+  let files = [ f | Just f <- mFiles ]+#if CABAL_VERSION_CHECK(1,8,0)+  installOrdinaryFiles verbosity libPref files+#else+  copyFiles verbosity libPref files+#endif++  +installCHI _ _ _ _ = return ()++------------------------------------------------------------------------------+-- Generating the type hierarchy and signal callback .hs files.+------------------------------------------------------------------------------++typeGenProgram :: Program+typeGenProgram = (simpleProgram "gtk2hsTypeGen")++signalGenProgram :: Program+signalGenProgram = (simpleProgram "gtk2hsHookGenerator")++c2hsLocal :: Program+c2hsLocal = (simpleProgram "gtk2hsC2hs")++genSynthezisedFiles :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()+genSynthezisedFiles verb pd lbi = do++  cPkgs <- getPkgConfigPackages verb lbi pd++  let xList = maybe [] (customFieldsBI . libBuildInfo) (library pd)+              ++customFieldsPD pd+      typeOpts :: String -> [ProgArg]+      typeOpts tag = concat [ map (\val -> '-':'-':drop (length tag) field++'=':val) (words content)+                            | (field,content) <- xList,+                              tag `isPrefixOf` field,+                              field /= (tag++"file")]+              ++ [ "--tag=" ++ tag+                 | PackageIdentifier name (Version (major:minor:_) _) <- cPkgs+                 , let name' = filter isAlpha (display name)+                 , tag <- name'+                        : [ name' ++ "-" ++ show major ++ "." ++ show digit+                          | digit <- [0,2..minor] ]+                 ]++      signalsOpts :: [ProgArg]+      signalsOpts = concat [ map (\val -> '-':'-':drop 10 field++'=':val) (words content)+                        | (field,content) <- xList,+                          "x-signals-" `isPrefixOf` field,+                          field /= "x-signals-file"]++      genFile :: Program -> [ProgArg] -> FilePath -> IO ()+      genFile prog args outFile = do+         res <- rawSystemProgramStdoutConf verb prog (withPrograms lbi) args+         rewriteFile outFile res++  (flip mapM_) (filter (\(tag,_) -> "x-types-" `isPrefixOf` tag && "file" `isSuffixOf` tag) xList) $+    \(fileTag, f) -> do+      let tag = reverse (drop 4 (reverse fileTag))+      info verb ("Ensuring that class hierarchy in "++f++" is up-to-date.")+      genFile typeGenProgram (typeOpts tag) f++  case lookup "x-signals-file" xList of+    Nothing -> return ()+    Just f -> do+      info verb ("Ensuring that callback hooks in "++f++" are up-to-date.")+      genFile signalGenProgram signalsOpts f++--FIXME: Cabal should tell us the selected pkg-config package versions in the+--       LocalBuildInfo or equivalent.+--       In the mean time, ask pkg-config again.++getPkgConfigPackages :: Verbosity -> LocalBuildInfo -> PackageDescription -> IO [PackageId]+getPkgConfigPackages verbosity lbi pkg =+  sequence+    [ do version <- pkgconfig ["--modversion", display pkgname]+         case simpleParse version of+           Nothing -> die $ "parsing output of pkg-config --modversion failed"+           Just v  -> return (PackageIdentifier pkgname v)+    | Dependency pkgname _ <- concatMap pkgconfigDepends (allBuildInfo pkg) ]+  where+    pkgconfig = rawSystemProgramStdoutConf verbosity+                  pkgConfigProgram (withPrograms lbi)++------------------------------------------------------------------------------+-- Dependency calculation amongst .chs files.+------------------------------------------------------------------------------++-- Given all files of the package, find those that end in .chs and extract the+-- .chs files they depend upon. Then return the PackageDescription with these+-- files rearranged so that they are built in a sequence that files that are+-- needed by other files are built first.+fixDeps :: PackageDescription -> IO PackageDescription+fixDeps pd@PD.PackageDescription {+          PD.library = Just lib@PD.Library {+            PD.exposedModules = expMods,+            PD.libBuildInfo = bi@PD.BuildInfo {+              PD.hsSourceDirs = srcDirs,+              PD.otherModules = othMods+            }}} = do+  let findModule m = findFileWithExtension [".chs.pp",".chs"] srcDirs+                       (joinPath (components m))+  mExpFiles <- mapM findModule expMods+  mOthFiles <- mapM findModule othMods++  -- tag all exposed files with True so we throw an error if we need to build+  -- an exposed module before an internal modules (we cannot express this)+  let modDeps = zipWith (ModDep True []) expMods mExpFiles+++                zipWith (ModDep False []) othMods mOthFiles+  modDeps <- mapM extractDeps modDeps+  let (expMods, othMods) = span mdExposed $ sortTopological modDeps+      badOther = map (fromMaybe "<no file>" . mdLocation) $+                 filter (not . mdExposed) expMods+  unless (null badOther) $+    die ("internal chs modules "++intercalate "," badOther+++         " depend on exposed chs modules; cabal needs to build internal modules first")+  return pd { PD.library = Just lib {+    PD.exposedModules = map mdOriginal expMods,+    PD.libBuildInfo = bi { PD.otherModules = map mdOriginal othMods }+  }}++data ModDep = ModDep {+  mdExposed :: Bool,+  mdRequires :: [ModuleName],+  mdOriginal :: ModuleName,+  mdLocation :: Maybe FilePath+}++instance Show ModDep where+  show x = show (mdLocation x)++instance Eq ModDep where+  ModDep { mdOriginal = m1 } == ModDep { mdOriginal = m2 } = m1==m2+instance Ord ModDep where+  compare ModDep { mdOriginal = m1 } ModDep { mdOriginal = m2 } = compare m1 m2++-- Extract the dependencies of this file. This is intentionally rather naive as it+-- ignores CPP conditionals. We just require everything which means that the+-- existance of a .chs module may not depend on some CPP condition.  +extractDeps :: ModDep -> IO ModDep+extractDeps md@ModDep { mdLocation = Nothing } = return md+extractDeps md@ModDep { mdLocation = Just f } = withFileContents f $ \con -> do+  let findImports acc (('{':'#':xs):xxs) = case (dropWhile ((==) ' ') xs) of+        ('i':'m':'p':'o':'r':'t':' ':ys) ->+          case simpleParse (takeWhile ((/=) '#') ys) of+            Just m -> findImports (m:acc) xxs +            Nothing -> die ("cannot parse chs import in "++f++":\n"+++                            "offending line is {#"++xs)+         -- no more imports after the first non-import hook+        _ -> return acc+      findImports acc (_:xxs) = findImports acc xxs+      findImports acc [] = return acc+  mods <- findImports [] (lines con)+  return md { mdRequires = mods }++-- Find a total order of the set of modules that are partially sorted by their+-- dependencies on each other. The function returns the sorted list of modules+-- together with a list of modules that are required but not supplied by this+-- in the input set of modules.+sortTopological :: [ModDep] -> [ModDep]+sortTopological ms = reverse $ fst $ foldl visit ([], S.empty) (map mdOriginal ms)+  where+  set = M.fromList (map (\m -> (mdOriginal m, m)) ms)+  visit (out,visited) m+    | m `S.member` visited = (out,visited)+    | otherwise = case m `M.lookup` set of+        Nothing -> (out, m `S.insert` visited)+        Just md -> (md:out', visited')+          where+            (out',visited') = foldl visit (out, m `S.insert` visited) (mdRequires md)
+ Setup.hs view
@@ -0,0 +1,7 @@+-- Setup file for a Gtk2Hs module. Contains only adjustments specific to this module,+-- all Gtk2Hs-specific boilerplate is stored in Gtk2HsSetup.hs which should be kept+-- identical across all modules.+import Gtk2HsSetup ( gtk2hsUserHooks )+import Distribution.Simple ( defaultMainWithHooks )++main = defaultMainWithHooks gtk2hsUserHooks
+ hswebkit.h view
@@ -0,0 +1,27 @@+/*+ * Copyright (C) 2009 Cjacker Huang <jzhuang@redflag-linux.com>.+ *+ * This library is free software; you can redistribute it and/or+ * modify it under the terms of the GNU Library General Public+ * License as published by the Free Software Foundation; either+ * version 2 of the License, or (at your option) any later version.+ *+ * This library is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+ * Library General Public License for more details.+ *+ * You should have received a copy of the GNU Library General Public License+ * along with this library; see the file COPYING.LIB.  If not, write to+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,+ * Boston, MA 02110-1301, USA.+ */++#ifndef HS_WEBKIT_H+#define HS_WEBKIT_H+/* to avoid stdbool.h error in JavaScriptCore/JSBase.h*/+#define _Bool int++/* include webkit headers*/+#include <webkit/webkit.h>+#endif
+ marshal.list view
@@ -0,0 +1,64 @@+# see glib-genmarshal(1) for a detailed description of the file format,+# possible parameter types are:+#   VOID        indicates   no   return   type,  or  no  extra+#               parameters. if VOID is used as  the  parameter+#               list, no additional parameters may be present.+#   BOOLEAN     for boolean types (gboolean)+#   CHAR        for signed char types (gchar)+#   UCHAR       for unsigned char types (guchar)+#   INT         for signed integer types (gint)+#   UINT        for unsigned integer types (guint)+#   LONG        for signed long integer types (glong)+#   ULONG       for unsigned long integer types (gulong)+#   ENUM        for enumeration types (gint)+#   FLAGS       for flag enumeration types (guint)+#   FLOAT       for single-precision float types (gfloat)+#   DOUBLE      for double-precision float types (gdouble)+#   STRING      for string types (gchar*)+#   BOXED       for boxed (anonymous but reference counted) types (GBoxed*)+#   POINTER     for anonymous pointer types (gpointer)+#   NONE        deprecated alias for VOID+#   BOOL        deprecated alias for BOOLEAN++#+# One discrepancy from Gtk+ is that for signals that may pass NULL for an object+# reference, the Haskell signal should be passed a 'Maybe GObject'.+# We therefore have two variants that are marshalled as a maybe type:+#+#   OBJECT      for GObject or derived types (GObject*)+#   MOBJECT      for GObject or derived types (GObject*) that may be NULL++# Furthermore, some objects needs to be destroyed synchronously from the main loop of+# Gtk rather than during GC. These objects need to be marshalled using TOBJECT (for thread-safe+# object). It doesn't hurt to use TOBJECT for an object that doesn't need it, except for the+# some performance. As a rule of thumb, use TOBJECT for all libraries that build on package+# 'gtk' and use OBJECT for all packages that only need packages 'glib', 'pango', 'cairo',+# 'gio'. Again both variants exist. Note that the same names will be generated for OBJECT and+# TOBJECT, so you have to remove the OBJECT handler if you need both.+#+#   TOBJECT      for GObject or derived types (GObject*)+#   MTOBJECT      for GObject or derived types (GObject*) that may be NULL++# If you add a new signal type, please check that it actually works!+# If it is a Boxed type check that the reference counting is right.++VOID:POINTER,POINTER+BOOLEAN:TOBJECT+BOOLEAN:TOBJECT,STRING,BOXED+POINTER:TOBJECT+BOOLEAN:INT,INT,STRING+BOOLEAN:STRING,STRING,INT,STRING+BOOLEAN:TOBJECT,STRING+BOOLEAN:TOBJECT,STRING,STRING+BOOLEAN:TOBJECT,TOBJECT,TOBJECT,TOBJECT+BOOLEAN:TOBJECT,TOBJECT,STRING,TOBJECT+NONE:TOBJECT,TOBJECT,TOBJECT,TOBJECT+BOOLEAN:ENUM,INT+BOOLEAN:NONE+NONE:NONE+NONE:TOBJECT,STRING+NONE:TOBJECT,TOBJECT+NONE:STRING,STRING+NONE:TOBJECT+NONE:INT+NONE:STRING
+ webkit.cabal view
@@ -0,0 +1,79 @@+Name:           webkit+Version:        0.11.0+License:        GPL+License-file:   COPYING+Copyright:      (c) 2001-2010 The Gtk2Hs Team+Author:         Cjacker Huang, Andy Stewart, Axel Simon+Maintainer:     gtk2hs-users@sourceforge.net+Build-Type:     Custom+Cabal-Version:  >= 1.6.0+Stability:      provisional+homepage:       http://www.haskell.org/gtk2hs/+bug-reports:    http://hackage.haskell.org/trac/gtk2hs/+Synopsis:       Binding to the Webkit library.+Description:    WebKit is a web content engine, derived from KHTML and KJS from KDE, and+                used primarily in Apple's Safari browser.  It is made to be embedded in+                other applications, such as mail readers, or web browsers.++                It is able to display content such as HTML, SVG, XML, and others. It also+                supports DOM, XMLHttpRequest, XSLT, CSS, Javascript/ECMAscript and more.++Category:       Graphics+Tested-With:    GHC == 6.12.1+Extra-Source-Files: hswebkit.h+                    Gtk2HsSetup.hs+                    marshal.list+					+x-Types-File:       Graphics/UI/Gtk/WebKit/Types.chs+x-Types-Tag:        webkit+x-Types-ModName:    Graphics.UI.Gtk.WebKit.Types+x-Types-Forward:    *Graphics.UI.GtkInternals+x-Types-Destructor: objectUnrefFromMainloop++Source-Repository head+  type:         darcs+  location:     http://code.haskell.org/gtk2hs/+  subdir:       webkit++Library+        build-depends:  base >= 4 && < 5, array, containers, haskell98, mtl,+                        glib  >= 0.11 && < 0.12, +                        pango >= 0.11 && < 0.12, +                        cairo >= 0.11 && < 0.12,+                        gtk   >= 0.11 && < 0.12+						+        build-tools:    gtk2hsC2hs, gtk2hsHookGenerator, gtk2hsTypeGen+		+        exposed-modules:+          Graphics.UI.Gtk.WebKit.Download+          Graphics.UI.Gtk.WebKit.HitTestResult+          Graphics.UI.Gtk.WebKit.NetworkRequest+          Graphics.UI.Gtk.WebKit.NetworkResponse+          Graphics.UI.Gtk.WebKit.SecurityOrigin+          Graphics.UI.Gtk.WebKit.SoupAuthDialog+          Graphics.UI.Gtk.WebKit.WebBackForwardList+          Graphics.UI.Gtk.WebKit.WebDatabase+          Graphics.UI.Gtk.WebKit.WebDataSource+          Graphics.UI.Gtk.WebKit.WebFrame+          Graphics.UI.Gtk.WebKit.WebHistoryItem+          Graphics.UI.Gtk.WebKit.WebInspector+          Graphics.UI.Gtk.WebKit.WebNavigationAction+          Graphics.UI.Gtk.WebKit.WebPolicyDecision+          Graphics.UI.Gtk.WebKit.WebResource+          Graphics.UI.Gtk.WebKit.WebSettings+          Graphics.UI.Gtk.WebKit.WebView+          Graphics.UI.Gtk.WebKit.WebWindowFeatures+        other-modules:+          Graphics.UI.Gtk.WebKit.Internal+          Graphics.UI.Gtk.WebKit.Types		  +          Graphics.UI.Gtk.WebKit.Signals++        extensions:     ForeignFunctionInterface+		+        x-Signals-File:  Graphics/UI/Gtk/WebKit/Signals.chs+        x-Signals-Modname: Graphics.UI.Gtk.WebKit.Signals+        x-Signals-Types: marshal.list+        x-Signals-Import: Graphics.UI.GtkInternals+		+        x-c2hs-Header:  hswebkit.h+        pkgconfig-depends: webkit-1.0 >= 1.1.15