{- |
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.Soup.Objects.ProxyResolverDefault
    ( 

-- * Exported types
    ProxyResolverDefault(..)                ,
    ProxyResolverDefaultK                   ,
    toProxyResolverDefault                  ,
    noProxyResolverDefault                  ,


 -- * Properties
-- ** GproxyResolver
    ProxyResolverDefaultGproxyResolverPropertyInfo,
    constructProxyResolverDefaultGproxyResolver,
    setProxyResolverDefaultGproxyResolver   ,




    ) 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.Soup.Types
import GI.Soup.Callbacks
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio

newtype ProxyResolverDefault = ProxyResolverDefault (ForeignPtr ProxyResolverDefault)
foreign import ccall "soup_proxy_resolver_default_get_type"
    c_soup_proxy_resolver_default_get_type :: IO GType

type instance ParentTypes ProxyResolverDefault = ProxyResolverDefaultParentTypes
type ProxyResolverDefaultParentTypes = '[GObject.Object, ProxyURIResolver, SessionFeature]

instance GObject ProxyResolverDefault where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_soup_proxy_resolver_default_get_type
    

class GObject o => ProxyResolverDefaultK o
instance (GObject o, IsDescendantOf ProxyResolverDefault o) => ProxyResolverDefaultK o

toProxyResolverDefault :: ProxyResolverDefaultK o => o -> IO ProxyResolverDefault
toProxyResolverDefault = unsafeCastTo ProxyResolverDefault

noProxyResolverDefault :: Maybe ProxyResolverDefault
noProxyResolverDefault = Nothing

-- VVV Prop "gproxy-resolver"
   -- Type: TInterface "Gio" "ProxyResolver"
   -- Flags: [PropertyWritable]

setProxyResolverDefaultGproxyResolver :: (MonadIO m, ProxyResolverDefaultK o, Gio.ProxyResolverK a) => o -> a -> m ()
setProxyResolverDefaultGproxyResolver obj val = liftIO $ setObjectPropertyObject obj "gproxy-resolver" val

constructProxyResolverDefaultGproxyResolver :: (Gio.ProxyResolverK a) => a -> IO ([Char], GValue)
constructProxyResolverDefaultGproxyResolver val = constructObjectPropertyObject "gproxy-resolver" val

data ProxyResolverDefaultGproxyResolverPropertyInfo
instance AttrInfo ProxyResolverDefaultGproxyResolverPropertyInfo where
    type AttrAllowedOps ProxyResolverDefaultGproxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint ProxyResolverDefaultGproxyResolverPropertyInfo = Gio.ProxyResolverK
    type AttrBaseTypeConstraint ProxyResolverDefaultGproxyResolverPropertyInfo = ProxyResolverDefaultK
    type AttrGetType ProxyResolverDefaultGproxyResolverPropertyInfo = ()
    type AttrLabel ProxyResolverDefaultGproxyResolverPropertyInfo = "ProxyResolverDefault::gproxy-resolver"
    attrGet _ = undefined
    attrSet _ = setProxyResolverDefaultGproxyResolver
    attrConstruct _ = constructProxyResolverDefaultGproxyResolver

type instance AttributeList ProxyResolverDefault = ProxyResolverDefaultAttributeList
type ProxyResolverDefaultAttributeList = ('[ '("gproxy-resolver", ProxyResolverDefaultGproxyResolverPropertyInfo)] :: [(Symbol, *)])

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