    {-# LINE 2 "./Graphics/UI/Gtk/WebKit/WebResource.chs" #-}
    -- -*-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 (
    -- * Description
    -- | A web resource encapsulates the data of the download as well as the URI, MIME type and frame name of
    -- the resource.

    -- * Types
      WebResource,
      WebResourceClass,

    -- * Constructors
      webResourceNew,

    -- * Methods
      webResourceGetData,
      webResourceGetEncoding,
      webResourceGetFrameName,
      webResourceGetMimeType,
      webResourceGetUri,
    ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString
    import System.Glib.GList
    import System.Glib.GString
    import System.Glib.GError
    import Graphics.UI.Gtk.Gdk.Events

    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.WebKit.Types
    {-# LINE 62 "./Graphics/UI/Gtk/WebKit/WebResource.chs" #-}
    import System.Glib.GObject
    {-# LINE 63 "./Graphics/UI/Gtk/WebKit/WebResource.chs" #-}

    {-# LINE 65 "./Graphics/UI/Gtk/WebKit/WebResource.chs" #-}

    -- | 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 ->
       wrapNewGObject mkWebResource $
         webkit_web_resource_new dataPtr (fromIntegral size) uriPtr mimePtr encodingPtr framePtr

    -- | Returns the data of the WebResource.
    webResourceGetData :: WebResourceClass self => self -> IO (Maybe String)
    webResourceGetData wr =
      (\(WebResource arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_web_resource_get_data argPtr1) (toWebResource wr) >>= readGString

    -- | Get encoding.
    webResourceGetEncoding ::
       WebResourceClass self => self
     -> IO (Maybe String)
    webResourceGetEncoding wr =
      (\(WebResource arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_web_resource_get_encoding argPtr1) (toWebResource wr) >>= maybePeek peekCString

    -- | Get frame name.
    webResourceGetFrameName ::
       WebResourceClass self => self
     -> IO (Maybe String)
    webResourceGetFrameName wr =
      (\(WebResource arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_web_resource_get_frame_name argPtr1) (toWebResource wr) >>= maybePeek peekCString

    -- | Get mime type.
    webResourceGetMimeType ::
       WebResourceClass self => self
     -> IO (Maybe String)
    webResourceGetMimeType wr =
      (\(WebResource arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_web_resource_get_mime_type argPtr1) (toWebResource wr) >>= maybePeek peekCString

    -- | Get uri.
    webResourceGetUri ::
       WebResourceClass self => self
     -> IO String
    webResourceGetUri wr =
      (\(WebResource arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_web_resource_get_uri argPtr1) (toWebResource wr) >>= peekCString

    foreign import ccall safe "webkit_web_resource_new"
      webkit_web_resource_new :: ((Ptr CChar) -> (CInt -> ((Ptr CChar) -> ((Ptr CChar) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO (Ptr WebResource))))))))

    foreign import ccall safe "webkit_web_resource_get_data"
      webkit_web_resource_get_data :: ((Ptr WebResource) -> (IO (Ptr ())))

    foreign import ccall safe "webkit_web_resource_get_encoding"
      webkit_web_resource_get_encoding :: ((Ptr WebResource) -> (IO (Ptr CChar)))

    foreign import ccall safe "webkit_web_resource_get_frame_name"
      webkit_web_resource_get_frame_name :: ((Ptr WebResource) -> (IO (Ptr CChar)))

    foreign import ccall safe "webkit_web_resource_get_mime_type"
      webkit_web_resource_get_mime_type :: ((Ptr WebResource) -> (IO (Ptr CChar)))

    foreign import ccall safe "webkit_web_resource_get_uri"
      webkit_web_resource_get_uri :: ((Ptr WebResource) -> (IO (Ptr CChar)))