{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Dazzle.Objects.ListStoreAdapter
    ( 

-- * Exported types
    ListStoreAdapter(..)                    ,
    IsListStoreAdapter                      ,
    toListStoreAdapter                      ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [filterNew]("GI.Gtk.Interfaces.TreeModel#g:method:filterNew"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [foreach]("GI.Gtk.Interfaces.TreeModel#g:method:foreach"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [iterChildren]("GI.Gtk.Interfaces.TreeModel#g:method:iterChildren"), [iterHasChild]("GI.Gtk.Interfaces.TreeModel#g:method:iterHasChild"), [iterNChildren]("GI.Gtk.Interfaces.TreeModel#g:method:iterNChildren"), [iterNext]("GI.Gtk.Interfaces.TreeModel#g:method:iterNext"), [iterNthChild]("GI.Gtk.Interfaces.TreeModel#g:method:iterNthChild"), [iterParent]("GI.Gtk.Interfaces.TreeModel#g:method:iterParent"), [iterPrevious]("GI.Gtk.Interfaces.TreeModel#g:method:iterPrevious"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refNode]("GI.Gtk.Interfaces.TreeModel#g:method:refNode"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [rowChanged]("GI.Gtk.Interfaces.TreeModel#g:method:rowChanged"), [rowDeleted]("GI.Gtk.Interfaces.TreeModel#g:method:rowDeleted"), [rowHasChildToggled]("GI.Gtk.Interfaces.TreeModel#g:method:rowHasChildToggled"), [rowInserted]("GI.Gtk.Interfaces.TreeModel#g:method:rowInserted"), [rowsReordered]("GI.Gtk.Interfaces.TreeModel#g:method:rowsReordered"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unrefNode]("GI.Gtk.Interfaces.TreeModel#g:method:unrefNode"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getColumnType]("GI.Gtk.Interfaces.TreeModel#g:method:getColumnType"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getFlags]("GI.Gtk.Interfaces.TreeModel#g:method:getFlags"), [getIter]("GI.Gtk.Interfaces.TreeModel#g:method:getIter"), [getIterFirst]("GI.Gtk.Interfaces.TreeModel#g:method:getIterFirst"), [getIterFromString]("GI.Gtk.Interfaces.TreeModel#g:method:getIterFromString"), [getModel]("GI.Dazzle.Objects.ListStoreAdapter#g:method:getModel"), [getNColumns]("GI.Gtk.Interfaces.TreeModel#g:method:getNColumns"), [getPath]("GI.Gtk.Interfaces.TreeModel#g:method:getPath"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getStringFromIter]("GI.Gtk.Interfaces.TreeModel#g:method:getStringFromIter"), [getValue]("GI.Gtk.Interfaces.TreeModel#g:method:getValue").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setModel]("GI.Dazzle.Objects.ListStoreAdapter#g:method:setModel"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveListStoreAdapterMethod           ,
#endif

-- ** getModel #method:getModel#

#if defined(ENABLE_OVERLOADING)
    ListStoreAdapterGetModelMethodInfo      ,
#endif
    listStoreAdapterGetModel                ,


-- ** new #method:new#

    listStoreAdapterNew                     ,


-- ** setModel #method:setModel#

#if defined(ENABLE_OVERLOADING)
    ListStoreAdapterSetModelMethodInfo      ,
#endif
    listStoreAdapterSetModel                ,




 -- * Properties


-- ** model #attr:model#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    ListStoreAdapterModelPropertyInfo       ,
#endif
    constructListStoreAdapterModel          ,
    getListStoreAdapterModel                ,
#if defined(ENABLE_OVERLOADING)
    listStoreAdapterModel                   ,
#endif
    setListStoreAdapterModel                ,




    ) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.ListModel as Gio.ListModel
import qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel

#else
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.ListModel as Gio.ListModel
import qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel

#endif

-- | Memory-managed wrapper type.
newtype ListStoreAdapter = ListStoreAdapter (SP.ManagedPtr ListStoreAdapter)
    deriving (ListStoreAdapter -> ListStoreAdapter -> Bool
(ListStoreAdapter -> ListStoreAdapter -> Bool)
-> (ListStoreAdapter -> ListStoreAdapter -> Bool)
-> Eq ListStoreAdapter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListStoreAdapter -> ListStoreAdapter -> Bool
== :: ListStoreAdapter -> ListStoreAdapter -> Bool
$c/= :: ListStoreAdapter -> ListStoreAdapter -> Bool
/= :: ListStoreAdapter -> ListStoreAdapter -> Bool
Eq)

instance SP.ManagedPtrNewtype ListStoreAdapter where
    toManagedPtr :: ListStoreAdapter -> ManagedPtr ListStoreAdapter
toManagedPtr (ListStoreAdapter ManagedPtr ListStoreAdapter
p) = ManagedPtr ListStoreAdapter
p

foreign import ccall "dzl_list_store_adapter_get_type"
    c_dzl_list_store_adapter_get_type :: IO B.Types.GType

instance B.Types.TypedObject ListStoreAdapter where
    glibType :: IO GType
glibType = IO GType
c_dzl_list_store_adapter_get_type

instance B.Types.GObject ListStoreAdapter

-- | Type class for types which can be safely cast to `ListStoreAdapter`, for instance with `toListStoreAdapter`.
class (SP.GObject o, O.IsDescendantOf ListStoreAdapter o) => IsListStoreAdapter o
instance (SP.GObject o, O.IsDescendantOf ListStoreAdapter o) => IsListStoreAdapter o

instance O.HasParentTypes ListStoreAdapter
type instance O.ParentTypes ListStoreAdapter = '[GObject.Object.Object, Gtk.TreeModel.TreeModel]

-- | Cast to `ListStoreAdapter`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toListStoreAdapter :: (MIO.MonadIO m, IsListStoreAdapter o) => o -> m ListStoreAdapter
toListStoreAdapter :: forall (m :: * -> *) o.
(MonadIO m, IsListStoreAdapter o) =>
o -> m ListStoreAdapter
toListStoreAdapter = IO ListStoreAdapter -> m ListStoreAdapter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO ListStoreAdapter -> m ListStoreAdapter)
-> (o -> IO ListStoreAdapter) -> o -> m ListStoreAdapter
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr ListStoreAdapter -> ListStoreAdapter)
-> o -> IO ListStoreAdapter
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr ListStoreAdapter -> ListStoreAdapter
ListStoreAdapter

-- | Convert 'ListStoreAdapter' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe ListStoreAdapter) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_dzl_list_store_adapter_get_type
    gvalueSet_ :: Ptr GValue -> Maybe ListStoreAdapter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe ListStoreAdapter
P.Nothing = Ptr GValue -> Ptr ListStoreAdapter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr ListStoreAdapter
forall a. Ptr a
FP.nullPtr :: FP.Ptr ListStoreAdapter)
    gvalueSet_ Ptr GValue
gv (P.Just ListStoreAdapter
obj) = ListStoreAdapter -> (Ptr ListStoreAdapter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ListStoreAdapter
obj (Ptr GValue -> Ptr ListStoreAdapter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe ListStoreAdapter)
gvalueGet_ Ptr GValue
gv = do
        Ptr ListStoreAdapter
ptr <- Ptr GValue -> IO (Ptr ListStoreAdapter)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr ListStoreAdapter)
        if Ptr ListStoreAdapter
ptr Ptr ListStoreAdapter -> Ptr ListStoreAdapter -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr ListStoreAdapter
forall a. Ptr a
FP.nullPtr
        then ListStoreAdapter -> Maybe ListStoreAdapter
forall a. a -> Maybe a
P.Just (ListStoreAdapter -> Maybe ListStoreAdapter)
-> IO ListStoreAdapter -> IO (Maybe ListStoreAdapter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr ListStoreAdapter -> ListStoreAdapter)
-> Ptr ListStoreAdapter -> IO ListStoreAdapter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr ListStoreAdapter -> ListStoreAdapter
ListStoreAdapter Ptr ListStoreAdapter
ptr
        else Maybe ListStoreAdapter -> IO (Maybe ListStoreAdapter)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ListStoreAdapter
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveListStoreAdapterMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveListStoreAdapterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveListStoreAdapterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveListStoreAdapterMethod "filterNew" o = Gtk.TreeModel.TreeModelFilterNewMethodInfo
    ResolveListStoreAdapterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveListStoreAdapterMethod "foreach" o = Gtk.TreeModel.TreeModelForeachMethodInfo
    ResolveListStoreAdapterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveListStoreAdapterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveListStoreAdapterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveListStoreAdapterMethod "iterChildren" o = Gtk.TreeModel.TreeModelIterChildrenMethodInfo
    ResolveListStoreAdapterMethod "iterHasChild" o = Gtk.TreeModel.TreeModelIterHasChildMethodInfo
    ResolveListStoreAdapterMethod "iterNChildren" o = Gtk.TreeModel.TreeModelIterNChildrenMethodInfo
    ResolveListStoreAdapterMethod "iterNext" o = Gtk.TreeModel.TreeModelIterNextMethodInfo
    ResolveListStoreAdapterMethod "iterNthChild" o = Gtk.TreeModel.TreeModelIterNthChildMethodInfo
    ResolveListStoreAdapterMethod "iterParent" o = Gtk.TreeModel.TreeModelIterParentMethodInfo
    ResolveListStoreAdapterMethod "iterPrevious" o = Gtk.TreeModel.TreeModelIterPreviousMethodInfo
    ResolveListStoreAdapterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveListStoreAdapterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveListStoreAdapterMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveListStoreAdapterMethod "refNode" o = Gtk.TreeModel.TreeModelRefNodeMethodInfo
    ResolveListStoreAdapterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveListStoreAdapterMethod "rowChanged" o = Gtk.TreeModel.TreeModelRowChangedMethodInfo
    ResolveListStoreAdapterMethod "rowDeleted" o = Gtk.TreeModel.TreeModelRowDeletedMethodInfo
    ResolveListStoreAdapterMethod "rowHasChildToggled" o = Gtk.TreeModel.TreeModelRowHasChildToggledMethodInfo
    ResolveListStoreAdapterMethod "rowInserted" o = Gtk.TreeModel.TreeModelRowInsertedMethodInfo
    ResolveListStoreAdapterMethod "rowsReordered" o = Gtk.TreeModel.TreeModelRowsReorderedMethodInfo
    ResolveListStoreAdapterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveListStoreAdapterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveListStoreAdapterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveListStoreAdapterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveListStoreAdapterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveListStoreAdapterMethod "unrefNode" o = Gtk.TreeModel.TreeModelUnrefNodeMethodInfo
    ResolveListStoreAdapterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveListStoreAdapterMethod "getColumnType" o = Gtk.TreeModel.TreeModelGetColumnTypeMethodInfo
    ResolveListStoreAdapterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveListStoreAdapterMethod "getFlags" o = Gtk.TreeModel.TreeModelGetFlagsMethodInfo
    ResolveListStoreAdapterMethod "getIter" o = Gtk.TreeModel.TreeModelGetIterMethodInfo
    ResolveListStoreAdapterMethod "getIterFirst" o = Gtk.TreeModel.TreeModelGetIterFirstMethodInfo
    ResolveListStoreAdapterMethod "getIterFromString" o = Gtk.TreeModel.TreeModelGetIterFromStringMethodInfo
    ResolveListStoreAdapterMethod "getModel" o = ListStoreAdapterGetModelMethodInfo
    ResolveListStoreAdapterMethod "getNColumns" o = Gtk.TreeModel.TreeModelGetNColumnsMethodInfo
    ResolveListStoreAdapterMethod "getPath" o = Gtk.TreeModel.TreeModelGetPathMethodInfo
    ResolveListStoreAdapterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveListStoreAdapterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveListStoreAdapterMethod "getStringFromIter" o = Gtk.TreeModel.TreeModelGetStringFromIterMethodInfo
    ResolveListStoreAdapterMethod "getValue" o = Gtk.TreeModel.TreeModelGetValueMethodInfo
    ResolveListStoreAdapterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveListStoreAdapterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveListStoreAdapterMethod "setModel" o = ListStoreAdapterSetModelMethodInfo
    ResolveListStoreAdapterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveListStoreAdapterMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveListStoreAdapterMethod t ListStoreAdapter, O.OverloadedMethod info ListStoreAdapter p) => OL.IsLabel t (ListStoreAdapter -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveListStoreAdapterMethod t ListStoreAdapter, O.OverloadedMethod info ListStoreAdapter p, R.HasField t ListStoreAdapter p) => R.HasField t ListStoreAdapter p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveListStoreAdapterMethod t ListStoreAdapter, O.OverloadedMethodInfo info ListStoreAdapter) => OL.IsLabel t (O.MethodProxy info ListStoreAdapter) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "model"
   -- Type: TInterface (Name {namespace = "Gio", name = "ListModel"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@model@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' listStoreAdapter #model
-- @
getListStoreAdapterModel :: (MonadIO m, IsListStoreAdapter o) => o -> m Gio.ListModel.ListModel
getListStoreAdapterModel :: forall (m :: * -> *) o.
(MonadIO m, IsListStoreAdapter o) =>
o -> m ListModel
getListStoreAdapterModel o
obj = IO ListModel -> m ListModel
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO ListModel -> m ListModel) -> IO ListModel -> m ListModel
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe ListModel) -> IO ListModel
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getListStoreAdapterModel" (IO (Maybe ListModel) -> IO ListModel)
-> IO (Maybe ListModel) -> IO ListModel
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr ListModel -> ListModel)
-> IO (Maybe ListModel)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"model" ManagedPtr ListModel -> ListModel
Gio.ListModel.ListModel

-- | Set the value of the “@model@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' listStoreAdapter [ #model 'Data.GI.Base.Attributes.:=' value ]
-- @
setListStoreAdapterModel :: (MonadIO m, IsListStoreAdapter o, Gio.ListModel.IsListModel a) => o -> a -> m ()
setListStoreAdapterModel :: forall (m :: * -> *) o a.
(MonadIO m, IsListStoreAdapter o, IsListModel a) =>
o -> a -> m ()
setListStoreAdapterModel o
obj a
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"model" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@model@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructListStoreAdapterModel :: (IsListStoreAdapter o, MIO.MonadIO m, Gio.ListModel.IsListModel a) => a -> m (GValueConstruct o)
constructListStoreAdapterModel :: forall o (m :: * -> *) a.
(IsListStoreAdapter o, MonadIO m, IsListModel a) =>
a -> m (GValueConstruct o)
constructListStoreAdapterModel a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"model" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

#if defined(ENABLE_OVERLOADING)
data ListStoreAdapterModelPropertyInfo
instance AttrInfo ListStoreAdapterModelPropertyInfo where
    type AttrAllowedOps ListStoreAdapterModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint ListStoreAdapterModelPropertyInfo = IsListStoreAdapter
    type AttrSetTypeConstraint ListStoreAdapterModelPropertyInfo = Gio.ListModel.IsListModel
    type AttrTransferTypeConstraint ListStoreAdapterModelPropertyInfo = Gio.ListModel.IsListModel
    type AttrTransferType ListStoreAdapterModelPropertyInfo = Gio.ListModel.ListModel
    type AttrGetType ListStoreAdapterModelPropertyInfo = Gio.ListModel.ListModel
    type AttrLabel ListStoreAdapterModelPropertyInfo = "model"
    type AttrOrigin ListStoreAdapterModelPropertyInfo = ListStoreAdapter
    attrGet = getListStoreAdapterModel
    attrSet = setListStoreAdapterModel
    attrTransfer _ v = do
        unsafeCastTo Gio.ListModel.ListModel v
    attrConstruct = constructListStoreAdapterModel
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.ListStoreAdapter.model"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-ListStoreAdapter.html#g:attr:model"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ListStoreAdapter
type instance O.AttributeList ListStoreAdapter = ListStoreAdapterAttributeList
type ListStoreAdapterAttributeList = ('[ '("model", ListStoreAdapterModelPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
listStoreAdapterModel :: AttrLabelProxy "model"
listStoreAdapterModel = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList ListStoreAdapter = ListStoreAdapterSignalList
type ListStoreAdapterSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("rowChanged", Gtk.TreeModel.TreeModelRowChangedSignalInfo), '("rowDeleted", Gtk.TreeModel.TreeModelRowDeletedSignalInfo), '("rowHasChildToggled", Gtk.TreeModel.TreeModelRowHasChildToggledSignalInfo), '("rowInserted", Gtk.TreeModel.TreeModelRowInsertedSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method ListStoreAdapter::new
-- method type : Constructor
-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gio" , name = "ListModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "Dazzle" , name = "ListStoreAdapter" })
-- throws : False
-- Skip return : False

foreign import ccall "dzl_list_store_adapter_new" dzl_list_store_adapter_new :: 
    Ptr Gio.ListModel.ListModel ->          -- model : TInterface (Name {namespace = "Gio", name = "ListModel"})
    IO (Ptr ListStoreAdapter)

-- | /No description available in the introspection data./
listStoreAdapterNew ::
    (B.CallStack.HasCallStack, MonadIO m, Gio.ListModel.IsListModel a) =>
    a
    -> m ListStoreAdapter
listStoreAdapterNew :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsListModel a) =>
a -> m ListStoreAdapter
listStoreAdapterNew a
model = IO ListStoreAdapter -> m ListStoreAdapter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ListStoreAdapter -> m ListStoreAdapter)
-> IO ListStoreAdapter -> m ListStoreAdapter
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListModel
model' <- a -> IO (Ptr ListModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr ListStoreAdapter
result <- Ptr ListModel -> IO (Ptr ListStoreAdapter)
dzl_list_store_adapter_new Ptr ListModel
model'
    Text -> Ptr ListStoreAdapter -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"listStoreAdapterNew" Ptr ListStoreAdapter
result
    ListStoreAdapter
result' <- ((ManagedPtr ListStoreAdapter -> ListStoreAdapter)
-> Ptr ListStoreAdapter -> IO ListStoreAdapter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr ListStoreAdapter -> ListStoreAdapter
ListStoreAdapter) Ptr ListStoreAdapter
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    ListStoreAdapter -> IO ListStoreAdapter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ListStoreAdapter
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method ListStoreAdapter::get_model
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "ListStoreAdapter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #DzlListStoreAdapter"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gio" , name = "ListModel" })
-- throws : False
-- Skip return : False

foreign import ccall "dzl_list_store_adapter_get_model" dzl_list_store_adapter_get_model :: 
    Ptr ListStoreAdapter ->                 -- self : TInterface (Name {namespace = "Dazzle", name = "ListStoreAdapter"})
    IO (Ptr Gio.ListModel.ListModel)

-- | Gets the model being adapted.
-- 
-- /Since: 3.26/
listStoreAdapterGetModel ::
    (B.CallStack.HasCallStack, MonadIO m, IsListStoreAdapter a) =>
    a
    -- ^ /@self@/: A t'GI.Dazzle.Objects.ListStoreAdapter.ListStoreAdapter'
    -> m Gio.ListModel.ListModel
    -- ^ __Returns:__ A t'GI.Gio.Interfaces.ListModel.ListModel'
listStoreAdapterGetModel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsListStoreAdapter a) =>
a -> m ListModel
listStoreAdapterGetModel a
self = IO ListModel -> m ListModel
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ListModel -> m ListModel) -> IO ListModel -> m ListModel
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListStoreAdapter
self' <- a -> IO (Ptr ListStoreAdapter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr ListModel
result <- Ptr ListStoreAdapter -> IO (Ptr ListModel)
dzl_list_store_adapter_get_model Ptr ListStoreAdapter
self'
    Text -> Ptr ListModel -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"listStoreAdapterGetModel" Ptr ListModel
result
    ListModel
result' <- ((ManagedPtr ListModel -> ListModel)
-> Ptr ListModel -> IO ListModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListModel -> ListModel
Gio.ListModel.ListModel) Ptr ListModel
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    ListModel -> IO ListModel
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ListModel
result'

#if defined(ENABLE_OVERLOADING)
data ListStoreAdapterGetModelMethodInfo
instance (signature ~ (m Gio.ListModel.ListModel), MonadIO m, IsListStoreAdapter a) => O.OverloadedMethod ListStoreAdapterGetModelMethodInfo a signature where
    overloadedMethod = listStoreAdapterGetModel

instance O.OverloadedMethodInfo ListStoreAdapterGetModelMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.ListStoreAdapter.listStoreAdapterGetModel",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-ListStoreAdapter.html#v:listStoreAdapterGetModel"
        })


#endif

-- method ListStoreAdapter::set_model
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "ListStoreAdapter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gio" , name = "ListModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dzl_list_store_adapter_set_model" dzl_list_store_adapter_set_model :: 
    Ptr ListStoreAdapter ->                 -- self : TInterface (Name {namespace = "Dazzle", name = "ListStoreAdapter"})
    Ptr Gio.ListModel.ListModel ->          -- model : TInterface (Name {namespace = "Gio", name = "ListModel"})
    IO ()

-- | /No description available in the introspection data./
listStoreAdapterSetModel ::
    (B.CallStack.HasCallStack, MonadIO m, IsListStoreAdapter a, Gio.ListModel.IsListModel b) =>
    a
    -> b
    -> m ()
listStoreAdapterSetModel :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsListStoreAdapter a, IsListModel b) =>
a -> b -> m ()
listStoreAdapterSetModel a
self b
model = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListStoreAdapter
self' <- a -> IO (Ptr ListStoreAdapter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr ListModel
model' <- b -> IO (Ptr ListModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
model
    Ptr ListStoreAdapter -> Ptr ListModel -> IO ()
dzl_list_store_adapter_set_model Ptr ListStoreAdapter
self' Ptr ListModel
model'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
model
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ListStoreAdapterSetModelMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsListStoreAdapter a, Gio.ListModel.IsListModel b) => O.OverloadedMethod ListStoreAdapterSetModelMethodInfo a signature where
    overloadedMethod = listStoreAdapterSetModel

instance O.OverloadedMethodInfo ListStoreAdapterSetModelMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.ListStoreAdapter.listStoreAdapterSetModel",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-ListStoreAdapter.html#v:listStoreAdapterSetModel"
        })


#endif