{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Objects.MenuAttributeIter
(
MenuAttributeIter(..) ,
IsMenuAttributeIter ,
toMenuAttributeIter ,
#if defined(ENABLE_OVERLOADING)
ResolveMenuAttributeIterMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MenuAttributeIterGetNameMethodInfo ,
#endif
menuAttributeIterGetName ,
#if defined(ENABLE_OVERLOADING)
MenuAttributeIterGetNextMethodInfo ,
#endif
menuAttributeIterGetNext ,
#if defined(ENABLE_OVERLOADING)
MenuAttributeIterGetValueMethodInfo ,
#endif
menuAttributeIterGetValue ,
#if defined(ENABLE_OVERLOADING)
MenuAttributeIterNextMethodInfo ,
#endif
menuAttributeIterNext ,
) 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.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 GI.GObject.Objects.Object as GObject.Object
newtype = (SP.ManagedPtr MenuAttributeIter)
deriving (MenuAttributeIter -> MenuAttributeIter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MenuAttributeIter -> MenuAttributeIter -> Bool
$c/= :: MenuAttributeIter -> MenuAttributeIter -> Bool
== :: MenuAttributeIter -> MenuAttributeIter -> Bool
$c== :: MenuAttributeIter -> MenuAttributeIter -> Bool
Eq)
instance SP.ManagedPtrNewtype MenuAttributeIter where
toManagedPtr :: MenuAttributeIter -> ManagedPtr MenuAttributeIter
toManagedPtr (MenuAttributeIter ManagedPtr MenuAttributeIter
p) = ManagedPtr MenuAttributeIter
p
foreign import ccall "g_menu_attribute_iter_get_type"
:: IO B.Types.GType
instance B.Types.TypedObject MenuAttributeIter where
glibType :: IO GType
glibType = IO GType
c_g_menu_attribute_iter_get_type
instance B.Types.GObject MenuAttributeIter
class (SP.GObject o, O.IsDescendantOf MenuAttributeIter o) => o
instance (SP.GObject o, O.IsDescendantOf MenuAttributeIter o) => IsMenuAttributeIter o
instance O.HasParentTypes MenuAttributeIter
type instance O.ParentTypes MenuAttributeIter = '[GObject.Object.Object]
toMenuAttributeIter :: (MIO.MonadIO m, IsMenuAttributeIter o) => o -> m MenuAttributeIter
= forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MenuAttributeIter -> MenuAttributeIter
MenuAttributeIter
instance B.GValue.IsGValue (Maybe MenuAttributeIter) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_menu_attribute_iter_get_type
gvalueSet_ :: Ptr GValue -> Maybe MenuAttributeIter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MenuAttributeIter
P.Nothing = forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (forall a. Ptr a
FP.nullPtr :: FP.Ptr MenuAttributeIter)
gvalueSet_ Ptr GValue
gv (P.Just MenuAttributeIter
obj) = forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MenuAttributeIter
obj (forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MenuAttributeIter)
gvalueGet_ Ptr GValue
gv = do
Ptr MenuAttributeIter
ptr <- forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MenuAttributeIter)
if Ptr MenuAttributeIter
ptr forall a. Eq a => a -> a -> Bool
/= forall a. Ptr a
FP.nullPtr
then forall a. a -> Maybe a
P.Just forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr MenuAttributeIter -> MenuAttributeIter
MenuAttributeIter Ptr MenuAttributeIter
ptr
else forall (m :: * -> *) a. Monad m => a -> m a
return forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveMenuAttributeIterMethod (t :: Symbol) (o :: *) :: * where
ResolveMenuAttributeIterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveMenuAttributeIterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveMenuAttributeIterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveMenuAttributeIterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveMenuAttributeIterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveMenuAttributeIterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveMenuAttributeIterMethod "next" o = MenuAttributeIterNextMethodInfo
ResolveMenuAttributeIterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveMenuAttributeIterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveMenuAttributeIterMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveMenuAttributeIterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveMenuAttributeIterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveMenuAttributeIterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveMenuAttributeIterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveMenuAttributeIterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveMenuAttributeIterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveMenuAttributeIterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveMenuAttributeIterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveMenuAttributeIterMethod "getName" o = MenuAttributeIterGetNameMethodInfo
ResolveMenuAttributeIterMethod "getNext" o = MenuAttributeIterGetNextMethodInfo
ResolveMenuAttributeIterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveMenuAttributeIterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveMenuAttributeIterMethod "getValue" o = MenuAttributeIterGetValueMethodInfo
ResolveMenuAttributeIterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveMenuAttributeIterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveMenuAttributeIterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveMenuAttributeIterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMenuAttributeIterMethod t MenuAttributeIter, O.OverloadedMethod info MenuAttributeIter p) => OL.IsLabel t (MenuAttributeIter -> 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 ~ ResolveMenuAttributeIterMethod t MenuAttributeIter, O.OverloadedMethod info MenuAttributeIter p, R.HasField t MenuAttributeIter p) => R.HasField t MenuAttributeIter p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMenuAttributeIterMethod t MenuAttributeIter, O.OverloadedMethodInfo info MenuAttributeIter) => OL.IsLabel t (O.MethodProxy info MenuAttributeIter) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MenuAttributeIter
type instance O.AttributeList MenuAttributeIter = MenuAttributeIterAttributeList
type MenuAttributeIterAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MenuAttributeIter = MenuAttributeIterSignalList
type MenuAttributeIterSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "g_menu_attribute_iter_get_name" ::
Ptr MenuAttributeIter ->
IO CString
menuAttributeIterGetName ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuAttributeIter a) =>
a
-> m T.Text
a
iter = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr MenuAttributeIter
iter' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
iter
CString
result <- Ptr MenuAttributeIter -> IO CString
g_menu_attribute_iter_get_name Ptr MenuAttributeIter
iter'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"menuAttributeIterGetName" CString
result
Text
result' <- HasCallStack => CString -> IO Text
cstringToText CString
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
iter
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data MenuAttributeIterGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsMenuAttributeIter a) => O.OverloadedMethod MenuAttributeIterGetNameMethodInfo a signature where
overloadedMethod = menuAttributeIterGetName
instance O.OverloadedMethodInfo MenuAttributeIterGetNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Objects.MenuAttributeIter.menuAttributeIterGetName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.30/docs/GI-Gio-Objects-MenuAttributeIter.html#v:menuAttributeIterGetName"
})
#endif
foreign import ccall "g_menu_attribute_iter_get_next" ::
Ptr MenuAttributeIter ->
Ptr CString ->
Ptr (Ptr GVariant) ->
IO CInt
menuAttributeIterGetNext ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuAttributeIter a) =>
a
-> m ((Bool, T.Text, GVariant))
a
iter = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr MenuAttributeIter
iter' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
iter
Ptr CString
outName <- forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
Ptr (Ptr GVariant)
value <- forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GVariant))
CInt
result <- Ptr MenuAttributeIter
-> Ptr CString -> Ptr (Ptr GVariant) -> IO CInt
g_menu_attribute_iter_get_next Ptr MenuAttributeIter
iter' Ptr CString
outName Ptr (Ptr GVariant)
value
let result' :: Bool
result' = (forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
CString
outName' <- forall a. Storable a => Ptr a -> IO a
peek Ptr CString
outName
Text
outName'' <- HasCallStack => CString -> IO Text
cstringToText CString
outName'
Ptr GVariant
value' <- forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr GVariant)
value
GVariant
value'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
value'
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
iter
forall a. Ptr a -> IO ()
freeMem Ptr CString
outName
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
value
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Text
outName'', GVariant
value'')
#if defined(ENABLE_OVERLOADING)
data MenuAttributeIterGetNextMethodInfo
instance (signature ~ (m ((Bool, T.Text, GVariant))), MonadIO m, IsMenuAttributeIter a) => O.OverloadedMethod MenuAttributeIterGetNextMethodInfo a signature where
overloadedMethod = menuAttributeIterGetNext
instance O.OverloadedMethodInfo MenuAttributeIterGetNextMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Objects.MenuAttributeIter.menuAttributeIterGetNext",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.30/docs/GI-Gio-Objects-MenuAttributeIter.html#v:menuAttributeIterGetNext"
})
#endif
foreign import ccall "g_menu_attribute_iter_get_value" ::
Ptr MenuAttributeIter ->
IO (Ptr GVariant)
menuAttributeIterGetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuAttributeIter a) =>
a
-> m GVariant
a
iter = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr MenuAttributeIter
iter' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
iter
Ptr GVariant
result <- Ptr MenuAttributeIter -> IO (Ptr GVariant)
g_menu_attribute_iter_get_value Ptr MenuAttributeIter
iter'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"menuAttributeIterGetValue" Ptr GVariant
result
GVariant
result' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
iter
forall (m :: * -> *) a. Monad m => a -> m a
return GVariant
result'
#if defined(ENABLE_OVERLOADING)
data MenuAttributeIterGetValueMethodInfo
instance (signature ~ (m GVariant), MonadIO m, IsMenuAttributeIter a) => O.OverloadedMethod MenuAttributeIterGetValueMethodInfo a signature where
overloadedMethod = menuAttributeIterGetValue
instance O.OverloadedMethodInfo MenuAttributeIterGetValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Objects.MenuAttributeIter.menuAttributeIterGetValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.30/docs/GI-Gio-Objects-MenuAttributeIter.html#v:menuAttributeIterGetValue"
})
#endif
foreign import ccall "g_menu_attribute_iter_next" ::
Ptr MenuAttributeIter ->
IO CInt
menuAttributeIterNext ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuAttributeIter a) =>
a
-> m Bool
a
iter = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr MenuAttributeIter
iter' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
iter
CInt
result <- Ptr MenuAttributeIter -> IO CInt
g_menu_attribute_iter_next Ptr MenuAttributeIter
iter'
let result' :: Bool
result' = (forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
iter
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data MenuAttributeIterNextMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsMenuAttributeIter a) => O.OverloadedMethod MenuAttributeIterNextMethodInfo a signature where
overloadedMethod = menuAttributeIterNext
instance O.OverloadedMethodInfo MenuAttributeIterNextMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Objects.MenuAttributeIter.menuAttributeIterNext",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.30/docs/GI-Gio-Objects-MenuAttributeIter.html#v:menuAttributeIterNext"
})
#endif