{- |
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.WebKit2.Objects.GeolocationPermissionRequest
    ( 

-- * Exported types
    GeolocationPermissionRequest(..)        ,
    IsGeolocationPermissionRequest          ,
    toGeolocationPermissionRequest          ,
    noGeolocationPermissionRequest          ,


    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2.Interfaces.PermissionRequest as WebKit2.PermissionRequest

newtype GeolocationPermissionRequest = GeolocationPermissionRequest (ManagedPtr GeolocationPermissionRequest)
foreign import ccall "webkit_geolocation_permission_request_get_type"
    c_webkit_geolocation_permission_request_get_type :: IO GType

instance GObject GeolocationPermissionRequest where
    gobjectType _ = c_webkit_geolocation_permission_request_get_type
    

class GObject o => IsGeolocationPermissionRequest o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError GeolocationPermissionRequest a) =>
    IsGeolocationPermissionRequest a
#endif
instance IsGeolocationPermissionRequest GeolocationPermissionRequest
instance GObject.Object.IsObject GeolocationPermissionRequest
instance WebKit2.PermissionRequest.IsPermissionRequest GeolocationPermissionRequest

toGeolocationPermissionRequest :: IsGeolocationPermissionRequest o => o -> IO GeolocationPermissionRequest
toGeolocationPermissionRequest = unsafeCastTo GeolocationPermissionRequest

noGeolocationPermissionRequest :: Maybe GeolocationPermissionRequest
noGeolocationPermissionRequest = Nothing

type family ResolveGeolocationPermissionRequestMethod (t :: Symbol) (o :: *) :: * where
    ResolveGeolocationPermissionRequestMethod "allow" o = WebKit2.PermissionRequest.PermissionRequestAllowMethodInfo
    ResolveGeolocationPermissionRequestMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveGeolocationPermissionRequestMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveGeolocationPermissionRequestMethod "deny" o = WebKit2.PermissionRequest.PermissionRequestDenyMethodInfo
    ResolveGeolocationPermissionRequestMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveGeolocationPermissionRequestMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveGeolocationPermissionRequestMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveGeolocationPermissionRequestMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveGeolocationPermissionRequestMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveGeolocationPermissionRequestMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveGeolocationPermissionRequestMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveGeolocationPermissionRequestMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveGeolocationPermissionRequestMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveGeolocationPermissionRequestMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveGeolocationPermissionRequestMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveGeolocationPermissionRequestMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveGeolocationPermissionRequestMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveGeolocationPermissionRequestMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveGeolocationPermissionRequestMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveGeolocationPermissionRequestMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveGeolocationPermissionRequestMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveGeolocationPermissionRequestMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveGeolocationPermissionRequestMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveGeolocationPermissionRequestMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveGeolocationPermissionRequestMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveGeolocationPermissionRequestMethod t GeolocationPermissionRequest, O.MethodInfo info GeolocationPermissionRequest p) => O.IsLabelProxy t (GeolocationPermissionRequest -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveGeolocationPermissionRequestMethod t GeolocationPermissionRequest, O.MethodInfo info GeolocationPermissionRequest p) => O.IsLabel t (GeolocationPermissionRequest -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

instance O.HasAttributeList GeolocationPermissionRequest
type instance O.AttributeList GeolocationPermissionRequest = GeolocationPermissionRequestAttributeList
type GeolocationPermissionRequestAttributeList = ('[ ] :: [(Symbol, *)])

type instance O.SignalList GeolocationPermissionRequest = GeolocationPermissionRequestSignalList
type GeolocationPermissionRequestSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])