{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit.Objects.WebBackForwardList
    ( 

-- * Exported types
    WebBackForwardList(..)                  ,
    WebBackForwardListK                     ,
    toWebBackForwardList                    ,
    noWebBackForwardList                    ,


 -- * Methods
-- ** webBackForwardListAddItem
    webBackForwardListAddItem               ,


-- ** webBackForwardListClear
    webBackForwardListClear                 ,


-- ** webBackForwardListContainsItem
    webBackForwardListContainsItem          ,


-- ** webBackForwardListGetBackItem
    webBackForwardListGetBackItem           ,


-- ** webBackForwardListGetBackLength
    webBackForwardListGetBackLength         ,


-- ** webBackForwardListGetBackListWithLimit
    webBackForwardListGetBackListWithLimit  ,


-- ** webBackForwardListGetCurrentItem
    webBackForwardListGetCurrentItem        ,


-- ** webBackForwardListGetForwardItem
    webBackForwardListGetForwardItem        ,


-- ** webBackForwardListGetForwardLength
    webBackForwardListGetForwardLength      ,


-- ** webBackForwardListGetForwardListWithLimit
    webBackForwardListGetForwardListWithLimit,


-- ** webBackForwardListGetLimit
    webBackForwardListGetLimit              ,


-- ** webBackForwardListGetNthItem
    webBackForwardListGetNthItem            ,


-- ** webBackForwardListGoBack
    webBackForwardListGoBack                ,


-- ** webBackForwardListGoForward
    webBackForwardListGoForward             ,


-- ** webBackForwardListGoToItem
    webBackForwardListGoToItem              ,


-- ** webBackForwardListSetLimit
    webBackForwardListSetLimit              ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit.Types
import GI.WebKit.Callbacks
import qualified GI.GObject as GObject

newtype WebBackForwardList = WebBackForwardList (ForeignPtr WebBackForwardList)
foreign import ccall "webkit_web_back_forward_list_get_type"
    c_webkit_web_back_forward_list_get_type :: IO GType

type instance ParentTypes WebBackForwardList = WebBackForwardListParentTypes
type WebBackForwardListParentTypes = '[GObject.Object]

instance GObject WebBackForwardList where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_web_back_forward_list_get_type
    

class GObject o => WebBackForwardListK o
instance (GObject o, IsDescendantOf WebBackForwardList o) => WebBackForwardListK o

toWebBackForwardList :: WebBackForwardListK o => o -> IO WebBackForwardList
toWebBackForwardList = unsafeCastTo WebBackForwardList

noWebBackForwardList :: Maybe WebBackForwardList
noWebBackForwardList = Nothing

type instance AttributeList WebBackForwardList = WebBackForwardListAttributeList
type WebBackForwardListAttributeList = ('[ ] :: [(Symbol, *)])

type instance SignalList WebBackForwardList = WebBackForwardListSignalList
type WebBackForwardListSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method WebBackForwardList::add_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_add_item" webkit_web_back_forward_list_add_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Ptr WebHistoryItem ->                   -- history_item : TInterface "WebKit" "WebHistoryItem"
    IO ()


webBackForwardListAddItem ::
    (MonadIO m, WebBackForwardListK a, WebHistoryItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- history_item
    m ()
webBackForwardListAddItem _obj history_item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let history_item' = unsafeManagedPtrCastPtr history_item
    webkit_web_back_forward_list_add_item _obj' history_item'
    touchManagedPtr _obj
    touchManagedPtr history_item
    return ()

-- method WebBackForwardList::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_clear" webkit_web_back_forward_list_clear :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO ()


webBackForwardListClear ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m ()
webBackForwardListClear _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_back_forward_list_clear _obj'
    touchManagedPtr _obj
    return ()

-- method WebBackForwardList::contains_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_contains_item" webkit_web_back_forward_list_contains_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Ptr WebHistoryItem ->                   -- history_item : TInterface "WebKit" "WebHistoryItem"
    IO CInt


webBackForwardListContainsItem ::
    (MonadIO m, WebBackForwardListK a, WebHistoryItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- history_item
    m Bool
webBackForwardListContainsItem _obj history_item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let history_item' = unsafeManagedPtrCastPtr history_item
    result <- webkit_web_back_forward_list_contains_item _obj' history_item'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr history_item
    return result'

-- method WebBackForwardList::get_back_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "WebHistoryItem"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_back_item" webkit_web_back_forward_list_get_back_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO (Ptr WebHistoryItem)


webBackForwardListGetBackItem ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m WebHistoryItem
webBackForwardListGetBackItem _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_back_item _obj'
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_back_item" result
    result' <- (newObject WebHistoryItem) result
    touchManagedPtr _obj
    return result'

-- method WebBackForwardList::get_back_length
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_back_length" webkit_web_back_forward_list_get_back_length :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO Int32


webBackForwardListGetBackLength ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m Int32
webBackForwardListGetBackLength _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_back_length _obj'
    touchManagedPtr _obj
    return result

-- method WebBackForwardList::get_back_list_with_limit
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGList (TInterface "WebKit" "WebHistoryItem")
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_back_list_with_limit" webkit_web_back_forward_list_get_back_list_with_limit :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Int32 ->                                -- limit : TBasicType TInt32
    IO (Ptr (GList (Ptr WebHistoryItem)))


webBackForwardListGetBackListWithLimit ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- limit
    m [WebHistoryItem]
webBackForwardListGetBackListWithLimit _obj limit = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_back_list_with_limit _obj' limit
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_back_list_with_limit" result
    result' <- unpackGList result
    result'' <- mapM (newObject WebHistoryItem) result'
    g_list_free result
    touchManagedPtr _obj
    return result''

-- method WebBackForwardList::get_current_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "WebHistoryItem"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_current_item" webkit_web_back_forward_list_get_current_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO (Ptr WebHistoryItem)


webBackForwardListGetCurrentItem ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m WebHistoryItem
webBackForwardListGetCurrentItem _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_current_item _obj'
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_current_item" result
    result' <- (newObject WebHistoryItem) result
    touchManagedPtr _obj
    return result'

-- method WebBackForwardList::get_forward_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "WebHistoryItem"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_forward_item" webkit_web_back_forward_list_get_forward_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO (Ptr WebHistoryItem)


webBackForwardListGetForwardItem ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m WebHistoryItem
webBackForwardListGetForwardItem _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_forward_item _obj'
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_forward_item" result
    result' <- (newObject WebHistoryItem) result
    touchManagedPtr _obj
    return result'

-- method WebBackForwardList::get_forward_length
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_forward_length" webkit_web_back_forward_list_get_forward_length :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO Int32


webBackForwardListGetForwardLength ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m Int32
webBackForwardListGetForwardLength _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_forward_length _obj'
    touchManagedPtr _obj
    return result

-- method WebBackForwardList::get_forward_list_with_limit
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGList (TInterface "WebKit" "WebHistoryItem")
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_forward_list_with_limit" webkit_web_back_forward_list_get_forward_list_with_limit :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Int32 ->                                -- limit : TBasicType TInt32
    IO (Ptr (GList (Ptr WebHistoryItem)))


webBackForwardListGetForwardListWithLimit ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- limit
    m [WebHistoryItem]
webBackForwardListGetForwardListWithLimit _obj limit = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_forward_list_with_limit _obj' limit
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_forward_list_with_limit" result
    result' <- unpackGList result
    result'' <- mapM (newObject WebHistoryItem) result'
    g_list_free result
    touchManagedPtr _obj
    return result''

-- method WebBackForwardList::get_limit
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_limit" webkit_web_back_forward_list_get_limit :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO Int32


webBackForwardListGetLimit ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m Int32
webBackForwardListGetLimit _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_limit _obj'
    touchManagedPtr _obj
    return result

-- method WebBackForwardList::get_nth_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "WebHistoryItem"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_get_nth_item" webkit_web_back_forward_list_get_nth_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Int32 ->                                -- index : TBasicType TInt32
    IO (Ptr WebHistoryItem)


webBackForwardListGetNthItem ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- index
    m WebHistoryItem
webBackForwardListGetNthItem _obj index = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_back_forward_list_get_nth_item _obj' index
    checkUnexpectedReturnNULL "webkit_web_back_forward_list_get_nth_item" result
    result' <- (newObject WebHistoryItem) result
    touchManagedPtr _obj
    return result'

-- method WebBackForwardList::go_back
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_go_back" webkit_web_back_forward_list_go_back :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO ()


webBackForwardListGoBack ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m ()
webBackForwardListGoBack _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_back_forward_list_go_back _obj'
    touchManagedPtr _obj
    return ()

-- method WebBackForwardList::go_forward
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_go_forward" webkit_web_back_forward_list_go_forward :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    IO ()


webBackForwardListGoForward ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    m ()
webBackForwardListGoForward _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_back_forward_list_go_forward _obj'
    touchManagedPtr _obj
    return ()

-- method WebBackForwardList::go_to_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "history_item", argType = TInterface "WebKit" "WebHistoryItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_go_to_item" webkit_web_back_forward_list_go_to_item :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Ptr WebHistoryItem ->                   -- history_item : TInterface "WebKit" "WebHistoryItem"
    IO ()


webBackForwardListGoToItem ::
    (MonadIO m, WebBackForwardListK a, WebHistoryItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- history_item
    m ()
webBackForwardListGoToItem _obj history_item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let history_item' = unsafeManagedPtrCastPtr history_item
    webkit_web_back_forward_list_go_to_item _obj' history_item'
    touchManagedPtr _obj
    touchManagedPtr history_item
    return ()

-- method WebBackForwardList::set_limit
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "WebBackForwardList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_back_forward_list_set_limit" webkit_web_back_forward_list_set_limit :: 
    Ptr WebBackForwardList ->               -- _obj : TInterface "WebKit" "WebBackForwardList"
    Int32 ->                                -- limit : TBasicType TInt32
    IO ()


webBackForwardListSetLimit ::
    (MonadIO m, WebBackForwardListK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- limit
    m ()
webBackForwardListSetLimit _obj limit = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_back_forward_list_set_limit _obj' limit
    touchManagedPtr _obj
    return ()