{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Objects.MenuModel
(
MenuModel(..) ,
IsMenuModel ,
toMenuModel ,
#if defined(ENABLE_OVERLOADING)
ResolveMenuModelMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MenuModelGetItemAttributeValueMethodInfo,
#endif
menuModelGetItemAttributeValue ,
#if defined(ENABLE_OVERLOADING)
MenuModelGetItemLinkMethodInfo ,
#endif
menuModelGetItemLink ,
#if defined(ENABLE_OVERLOADING)
MenuModelGetNItemsMethodInfo ,
#endif
menuModelGetNItems ,
#if defined(ENABLE_OVERLOADING)
MenuModelIsMutableMethodInfo ,
#endif
menuModelIsMutable ,
#if defined(ENABLE_OVERLOADING)
MenuModelItemsChangedMethodInfo ,
#endif
menuModelItemsChanged ,
#if defined(ENABLE_OVERLOADING)
MenuModelIterateItemAttributesMethodInfo,
#endif
menuModelIterateItemAttributes ,
#if defined(ENABLE_OVERLOADING)
MenuModelIterateItemLinksMethodInfo ,
#endif
menuModelIterateItemLinks ,
MenuModelItemsChangedCallback ,
#if defined(ENABLE_OVERLOADING)
MenuModelItemsChangedSignalInfo ,
#endif
afterMenuModelItemsChanged ,
onMenuModelItemsChanged ,
) 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
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuAttributeIter as Gio.MenuAttributeIter
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuLinkIter as Gio.MenuLinkIter
#else
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuAttributeIter as Gio.MenuAttributeIter
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuLinkIter as Gio.MenuLinkIter
#endif
newtype = (SP.ManagedPtr MenuModel)
deriving (MenuModel -> MenuModel -> Bool
(MenuModel -> MenuModel -> Bool)
-> (MenuModel -> MenuModel -> Bool) -> Eq MenuModel
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MenuModel -> MenuModel -> Bool
== :: MenuModel -> MenuModel -> Bool
$c/= :: MenuModel -> MenuModel -> Bool
/= :: MenuModel -> MenuModel -> Bool
Eq)
instance SP.ManagedPtrNewtype MenuModel where
toManagedPtr :: MenuModel -> ManagedPtr MenuModel
toManagedPtr (MenuModel ManagedPtr MenuModel
p) = ManagedPtr MenuModel
p
foreign import ccall "g_menu_model_get_type"
:: IO B.Types.GType
instance B.Types.TypedObject MenuModel where
glibType :: IO GType
glibType = IO GType
c_g_menu_model_get_type
instance B.Types.GObject MenuModel
class (SP.GObject o, O.IsDescendantOf MenuModel o) => o
instance (SP.GObject o, O.IsDescendantOf MenuModel o) => IsMenuModel o
instance O.HasParentTypes MenuModel
type instance O.ParentTypes MenuModel = '[GObject.Object.Object]
toMenuModel :: (MIO.MonadIO m, IsMenuModel o) => o -> m MenuModel
= IO MenuModel -> m MenuModel
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO MenuModel -> m MenuModel)
-> (o -> IO MenuModel) -> o -> m MenuModel
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr MenuModel -> MenuModel) -> o -> IO MenuModel
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MenuModel -> MenuModel
MenuModel
instance B.GValue.IsGValue (Maybe MenuModel) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_menu_model_get_type
gvalueSet_ :: Ptr GValue -> Maybe MenuModel -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MenuModel
P.Nothing = Ptr GValue -> Ptr MenuModel -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr MenuModel
forall a. Ptr a
FP.nullPtr :: FP.Ptr MenuModel)
gvalueSet_ Ptr GValue
gv (P.Just MenuModel
obj) = MenuModel -> (Ptr MenuModel -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MenuModel
obj (Ptr GValue -> Ptr MenuModel -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MenuModel)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr MenuModel)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MenuModel)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject MenuModel ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
type family (t :: Symbol) (o :: DK.Type) :: DK.Type where
"bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
"bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
"forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
"freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
"getv" o = GObject.Object.ObjectGetvMethodInfo
"isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
"isMutable" o = MenuModelIsMutableMethodInfo
"itemsChanged" o = MenuModelItemsChangedMethodInfo
"iterateItemAttributes" o = MenuModelIterateItemAttributesMethodInfo
"iterateItemLinks" o = MenuModelIterateItemLinksMethodInfo
"notify" o = GObject.Object.ObjectNotifyMethodInfo
"notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
"ref" o = GObject.Object.ObjectRefMethodInfo
"refSink" o = GObject.Object.ObjectRefSinkMethodInfo
"runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
"stealData" o = GObject.Object.ObjectStealDataMethodInfo
"stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
"thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
"unref" o = GObject.Object.ObjectUnrefMethodInfo
"watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
"getData" o = GObject.Object.ObjectGetDataMethodInfo
"getItemAttributeValue" o = MenuModelGetItemAttributeValueMethodInfo
"getItemLink" o = MenuModelGetItemLinkMethodInfo
"getNItems" o = MenuModelGetNItemsMethodInfo
"getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
"getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
"setData" o = GObject.Object.ObjectSetDataMethodInfo
"setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
"setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMenuModelMethod t MenuModel, O.OverloadedMethod info MenuModel p) => OL.IsLabel t (MenuModel -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel :: MenuModel -> p
fromLabel = forall {k} (i :: k) o s. OverloadedMethod i o s => o -> s
forall i o s. OverloadedMethod i o s => o -> s
O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveMenuModelMethod t MenuModel, O.OverloadedMethod info MenuModel p, R.HasField t MenuModel p) => R.HasField t MenuModel p where
getField :: MenuModel -> p
getField = forall {k} (i :: k) o s. OverloadedMethod i o s => o -> s
forall i o s. OverloadedMethod i o s => o -> s
O.overloadedMethod @info
#endif
instance (info ~ ResolveMenuModelMethod t MenuModel, O.OverloadedMethodInfo info MenuModel) => OL.IsLabel t (O.MethodProxy info MenuModel) where
#if MIN_VERSION_base(4,10,0)
fromLabel :: MethodProxy info MenuModel
fromLabel = MethodProxy info MenuModel
forall info obj. MethodProxy info obj
O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
type =
Int32
-> Int32
-> Int32
-> IO ()
type =
Ptr MenuModel ->
Int32 ->
Int32 ->
Int32 ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
:: C_MenuModelItemsChangedCallback -> IO (FunPtr C_MenuModelItemsChangedCallback)
wrap_MenuModelItemsChangedCallback ::
GObject a => (a -> MenuModelItemsChangedCallback) ->
C_MenuModelItemsChangedCallback
a -> MenuModelItemsChangedCallback
gi'cb Ptr MenuModel
gi'selfPtr Int32
position Int32
removed Int32
added Ptr ()
_ = do
Ptr MenuModel -> (MenuModel -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr MenuModel
gi'selfPtr ((MenuModel -> IO ()) -> IO ()) -> (MenuModel -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \MenuModel
gi'self -> a -> MenuModelItemsChangedCallback
gi'cb (MenuModel -> a
forall a b. Coercible a b => a -> b
Coerce.coerce MenuModel
gi'self) Int32
position Int32
removed Int32
added
onMenuModelItemsChanged :: (IsMenuModel a, MonadIO m) => a -> ((?self :: a) => MenuModelItemsChangedCallback) -> m SignalHandlerId
a
obj (?self::a) => MenuModelItemsChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> MenuModelItemsChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => MenuModelItemsChangedCallback
MenuModelItemsChangedCallback
cb
let wrapped' :: C_MenuModelItemsChangedCallback
wrapped' = (a -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
forall a.
GObject a =>
(a -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
wrap_MenuModelItemsChangedCallback a -> MenuModelItemsChangedCallback
wrapped
wrapped'' <- C_MenuModelItemsChangedCallback
-> IO (FunPtr C_MenuModelItemsChangedCallback)
mk_MenuModelItemsChangedCallback C_MenuModelItemsChangedCallback
wrapped'
connectSignalFunPtr obj "items-changed" wrapped'' SignalConnectBefore Nothing
afterMenuModelItemsChanged :: (IsMenuModel a, MonadIO m) => a -> ((?self :: a) => MenuModelItemsChangedCallback) -> m SignalHandlerId
a
obj (?self::a) => MenuModelItemsChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> MenuModelItemsChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => MenuModelItemsChangedCallback
MenuModelItemsChangedCallback
cb
let wrapped' :: C_MenuModelItemsChangedCallback
wrapped' = (a -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
forall a.
GObject a =>
(a -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
wrap_MenuModelItemsChangedCallback a -> MenuModelItemsChangedCallback
wrapped
wrapped'' <- C_MenuModelItemsChangedCallback
-> IO (FunPtr C_MenuModelItemsChangedCallback)
mk_MenuModelItemsChangedCallback C_MenuModelItemsChangedCallback
wrapped'
connectSignalFunPtr obj "items-changed" wrapped'' SignalConnectAfter Nothing
#if defined(ENABLE_OVERLOADING)
data
instance SignalInfo MenuModelItemsChangedSignalInfo where
type HaskellCallbackType MenuModelItemsChangedSignalInfo = MenuModelItemsChangedCallback
connectSignal :: forall o.
GObject o =>
o
-> (o -> HaskellCallbackType MenuModelItemsChangedSignalInfo)
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignal o
obj o -> HaskellCallbackType MenuModelItemsChangedSignalInfo
cb SignalConnectMode
connectMode Maybe Text
detail = do
let cb' :: C_MenuModelItemsChangedCallback
cb' = (o -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
forall a.
GObject a =>
(a -> MenuModelItemsChangedCallback)
-> C_MenuModelItemsChangedCallback
wrap_MenuModelItemsChangedCallback o -> HaskellCallbackType MenuModelItemsChangedSignalInfo
o -> MenuModelItemsChangedCallback
cb
cb'' <- C_MenuModelItemsChangedCallback
-> IO (FunPtr C_MenuModelItemsChangedCallback)
mk_MenuModelItemsChangedCallback C_MenuModelItemsChangedCallback
cb'
connectSignalFunPtr obj "items-changed" cb'' connectMode detail
dbgSignalInfo :: Maybe ResolvedSymbolInfo
dbgSignalInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel::items-changed"
, resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#g:signal:itemsChanged"})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MenuModel
type instance O.AttributeList MenuModel = MenuModelAttributeList
type = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MenuModel = MenuModelSignalList
type = ('[ '("itemsChanged", MenuModelItemsChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "g_menu_model_get_item_attribute_value" ::
Ptr MenuModel ->
Int32 ->
CString ->
Ptr GLib.VariantType.VariantType ->
IO (Ptr GVariant)
menuModelGetItemAttributeValue ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> Int32
-> T.Text
-> Maybe (GLib.VariantType.VariantType)
-> m (Maybe GVariant)
a
model Int32
itemIndex Text
attribute Maybe VariantType
expectedType = IO (Maybe GVariant) -> m (Maybe GVariant)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe GVariant) -> m (Maybe GVariant))
-> IO (Maybe GVariant) -> m (Maybe GVariant)
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
attribute' <- textToCString attribute
maybeExpectedType <- case expectedType of
Maybe VariantType
Nothing -> Ptr VariantType -> IO (Ptr VariantType)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr VariantType
forall a. Ptr a
FP.nullPtr
Just VariantType
jExpectedType -> do
jExpectedType' <- VariantType -> IO (Ptr VariantType)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VariantType
jExpectedType
return jExpectedType'
result <- g_menu_model_get_item_attribute_value model' itemIndex attribute' maybeExpectedType
maybeResult <- convertIfNonNull result $ \Ptr GVariant
result' -> do
result'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
result'
return result''
touchManagedPtr model
whenJust expectedType touchManagedPtr
freeMem attribute'
return maybeResult
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Int32 -> T.Text -> Maybe (GLib.VariantType.VariantType) -> m (Maybe GVariant)), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelGetItemAttributeValueMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Int32 -> Text -> Maybe VariantType -> m (Maybe GVariant)
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> Int32 -> Text -> Maybe VariantType -> m (Maybe GVariant)
menuModelGetItemAttributeValue
instance O.OverloadedMethodInfo MenuModelGetItemAttributeValueMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelGetItemAttributeValue",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelGetItemAttributeValue"
})
#endif
foreign import ccall "g_menu_model_get_item_link" ::
Ptr MenuModel ->
Int32 ->
CString ->
IO (Ptr MenuModel)
menuModelGetItemLink ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> Int32
-> T.Text
-> m (Maybe MenuModel)
a
model Int32
itemIndex Text
link = IO (Maybe MenuModel) -> m (Maybe MenuModel)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe MenuModel) -> m (Maybe MenuModel))
-> IO (Maybe MenuModel) -> m (Maybe MenuModel)
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
link' <- textToCString link
result <- g_menu_model_get_item_link model' itemIndex link'
maybeResult <- convertIfNonNull result $ \Ptr MenuModel
result' -> do
result'' <- ((ManagedPtr MenuModel -> MenuModel)
-> Ptr MenuModel -> IO MenuModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr MenuModel -> MenuModel
MenuModel) Ptr MenuModel
result'
return result''
touchManagedPtr model
freeMem link'
return maybeResult
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Int32 -> T.Text -> m (Maybe MenuModel)), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelGetItemLinkMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Int32 -> Text -> m (Maybe MenuModel)
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> Int32 -> Text -> m (Maybe MenuModel)
menuModelGetItemLink
instance O.OverloadedMethodInfo MenuModelGetItemLinkMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelGetItemLink",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelGetItemLink"
})
#endif
foreign import ccall "g_menu_model_get_n_items" ::
Ptr MenuModel ->
IO Int32
menuModelGetNItems ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> m Int32
a
model = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
result <- g_menu_model_get_n_items model'
touchManagedPtr model
return result
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (m Int32), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelGetNItemsMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> m Int32
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> m Int32
menuModelGetNItems
instance O.OverloadedMethodInfo MenuModelGetNItemsMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelGetNItems",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelGetNItems"
})
#endif
foreign import ccall "g_menu_model_is_mutable" ::
Ptr MenuModel ->
IO CInt
menuModelIsMutable ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> m Bool
a
model = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
result <- g_menu_model_is_mutable model'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr model
return result'
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (m Bool), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelIsMutableMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> m Bool
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> m Bool
menuModelIsMutable
instance O.OverloadedMethodInfo MenuModelIsMutableMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelIsMutable",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelIsMutable"
})
#endif
foreign import ccall "g_menu_model_items_changed" ::
Ptr MenuModel ->
Int32 ->
Int32 ->
Int32 ->
IO ()
menuModelItemsChanged ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> Int32
-> Int32
-> Int32
-> m ()
a
model Int32
position Int32
removed Int32
added = 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
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
g_menu_model_items_changed model' position removed added
touchManagedPtr model
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Int32 -> Int32 -> Int32 -> m ()), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelItemsChangedMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Int32 -> Int32 -> Int32 -> m ()
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> Int32 -> Int32 -> Int32 -> m ()
menuModelItemsChanged
instance O.OverloadedMethodInfo MenuModelItemsChangedMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelItemsChanged",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelItemsChanged"
})
#endif
foreign import ccall "g_menu_model_iterate_item_attributes" ::
Ptr MenuModel ->
Int32 ->
IO (Ptr Gio.MenuAttributeIter.MenuAttributeIter)
menuModelIterateItemAttributes ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> Int32
-> m Gio.MenuAttributeIter.MenuAttributeIter
a
model Int32
itemIndex = IO MenuAttributeIter -> m MenuAttributeIter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuAttributeIter -> m MenuAttributeIter)
-> IO MenuAttributeIter -> m MenuAttributeIter
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
result <- g_menu_model_iterate_item_attributes model' itemIndex
checkUnexpectedReturnNULL "menuModelIterateItemAttributes" result
result' <- (wrapObject Gio.MenuAttributeIter.MenuAttributeIter) result
touchManagedPtr model
return result'
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Int32 -> m Gio.MenuAttributeIter.MenuAttributeIter), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelIterateItemAttributesMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Int32 -> m MenuAttributeIter
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> Int32 -> m MenuAttributeIter
menuModelIterateItemAttributes
instance O.OverloadedMethodInfo MenuModelIterateItemAttributesMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelIterateItemAttributes",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelIterateItemAttributes"
})
#endif
foreign import ccall "g_menu_model_iterate_item_links" ::
Ptr MenuModel ->
Int32 ->
IO (Ptr Gio.MenuLinkIter.MenuLinkIter)
menuModelIterateItemLinks ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuModel a) =>
a
-> Int32
-> m Gio.MenuLinkIter.MenuLinkIter
a
model Int32
itemIndex = IO MenuLinkIter -> m MenuLinkIter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuLinkIter -> m MenuLinkIter)
-> IO MenuLinkIter -> m MenuLinkIter
forall a b. (a -> b) -> a -> b
$ do
model' <- a -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
result <- g_menu_model_iterate_item_links model' itemIndex
checkUnexpectedReturnNULL "menuModelIterateItemLinks" result
result' <- (wrapObject Gio.MenuLinkIter.MenuLinkIter) result
touchManagedPtr model
return result'
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Int32 -> m Gio.MenuLinkIter.MenuLinkIter), MonadIO m, IsMenuModel a) => O.OverloadedMethod MenuModelIterateItemLinksMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Int32 -> m MenuLinkIter
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuModel a) =>
a -> Int32 -> m MenuLinkIter
menuModelIterateItemLinks
instance O.OverloadedMethodInfo MenuModelIterateItemLinksMethodInfo a where
overloadedMethodInfo :: Maybe ResolvedSymbolInfo
overloadedMethodInfo = ResolvedSymbolInfo -> Maybe ResolvedSymbolInfo
forall a. a -> Maybe a
P.Just (O.ResolvedSymbolInfo {
resolvedSymbolName :: Text
O.resolvedSymbolName = Text
"GI.Gio.Objects.MenuModel.menuModelIterateItemLinks",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuModel.html#v:menuModelIterateItemLinks"
})
#endif