module GI.Gio.Objects.MenuAttributeIter
(
MenuAttributeIter(..) ,
MenuAttributeIterK ,
toMenuAttributeIter ,
noMenuAttributeIter ,
menuAttributeIterGetName ,
menuAttributeIterGetNext ,
menuAttributeIterGetValue ,
menuAttributeIterNext ,
) 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.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject
newtype MenuAttributeIter = MenuAttributeIter (ForeignPtr MenuAttributeIter)
foreign import ccall "g_menu_attribute_iter_get_type"
c_g_menu_attribute_iter_get_type :: IO GType
type instance ParentTypes MenuAttributeIter = MenuAttributeIterParentTypes
type MenuAttributeIterParentTypes = '[GObject.Object]
instance GObject MenuAttributeIter where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_menu_attribute_iter_get_type
class GObject o => MenuAttributeIterK o
instance (GObject o, IsDescendantOf MenuAttributeIter o) => MenuAttributeIterK o
toMenuAttributeIter :: MenuAttributeIterK o => o -> IO MenuAttributeIter
toMenuAttributeIter = unsafeCastTo MenuAttributeIter
noMenuAttributeIter :: Maybe MenuAttributeIter
noMenuAttributeIter = Nothing
type instance AttributeList MenuAttributeIter = MenuAttributeIterAttributeList
type MenuAttributeIterAttributeList = ('[ ] :: [(Symbol, *)])
type instance SignalList MenuAttributeIter = MenuAttributeIterSignalList
type MenuAttributeIterSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_menu_attribute_iter_get_name" g_menu_attribute_iter_get_name ::
Ptr MenuAttributeIter ->
IO CString
menuAttributeIterGetName ::
(MonadIO m, MenuAttributeIterK a) =>
a ->
m T.Text
menuAttributeIterGetName _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_menu_attribute_iter_get_name _obj'
checkUnexpectedReturnNULL "g_menu_attribute_iter_get_name" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
foreign import ccall "g_menu_attribute_iter_get_next" g_menu_attribute_iter_get_next ::
Ptr MenuAttributeIter ->
Ptr CString ->
Ptr (Ptr GVariant) ->
IO CInt
menuAttributeIterGetNext ::
(MonadIO m, MenuAttributeIterK a) =>
a ->
m (Bool,T.Text,GVariant)
menuAttributeIterGetNext _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
out_name <- allocMem :: IO (Ptr CString)
value <- allocMem :: IO (Ptr (Ptr GVariant))
result <- g_menu_attribute_iter_get_next _obj' out_name value
let result' = (/= 0) result
out_name' <- peek out_name
out_name'' <- cstringToText out_name'
value' <- peek value
value'' <- wrapGVariantPtr value'
touchManagedPtr _obj
freeMem out_name
freeMem value
return (result', out_name'', value'')
foreign import ccall "g_menu_attribute_iter_get_value" g_menu_attribute_iter_get_value ::
Ptr MenuAttributeIter ->
IO (Ptr GVariant)
menuAttributeIterGetValue ::
(MonadIO m, MenuAttributeIterK a) =>
a ->
m GVariant
menuAttributeIterGetValue _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_menu_attribute_iter_get_value _obj'
checkUnexpectedReturnNULL "g_menu_attribute_iter_get_value" result
result' <- wrapGVariantPtr result
touchManagedPtr _obj
return result'
foreign import ccall "g_menu_attribute_iter_next" g_menu_attribute_iter_next ::
Ptr MenuAttributeIter ->
IO CInt
menuAttributeIterNext ::
(MonadIO m, MenuAttributeIterK a) =>
a ->
m Bool
menuAttributeIterNext _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_menu_attribute_iter_next _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'