{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Objects.MenuItem
(
MenuItem(..) ,
IsMenuItem ,
toMenuItem ,
#if defined(ENABLE_OVERLOADING)
ResolveMenuItemMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MenuItemGetAttributeValueMethodInfo ,
#endif
menuItemGetAttributeValue ,
#if defined(ENABLE_OVERLOADING)
MenuItemGetLinkMethodInfo ,
#endif
menuItemGetLink ,
menuItemNew ,
menuItemNewFromModel ,
menuItemNewSection ,
menuItemNewSubmenu ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetActionAndTargetValueMethodInfo,
#endif
menuItemSetActionAndTargetValue ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetAttributeValueMethodInfo ,
#endif
menuItemSetAttributeValue ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetDetailedActionMethodInfo ,
#endif
menuItemSetDetailedAction ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetIconMethodInfo ,
#endif
menuItemSetIcon ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetLabelMethodInfo ,
#endif
menuItemSetLabel ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetLinkMethodInfo ,
#endif
menuItemSetLink ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetSectionMethodInfo ,
#endif
menuItemSetSection ,
#if defined(ENABLE_OVERLOADING)
MenuItemSetSubmenuMethodInfo ,
#endif
menuItemSetSubmenu ,
) 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.Interfaces.Icon as Gio.Icon
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuAttributeIter as Gio.MenuAttributeIter
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuLinkIter as Gio.MenuLinkIter
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuModel as Gio.MenuModel
#else
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Interfaces.Icon as Gio.Icon
import {-# SOURCE #-} qualified GI.Gio.Objects.MenuModel as Gio.MenuModel
#endif
newtype = (SP.ManagedPtr MenuItem)
deriving (MenuItem -> MenuItem -> Bool
(MenuItem -> MenuItem -> Bool)
-> (MenuItem -> MenuItem -> Bool) -> Eq MenuItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MenuItem -> MenuItem -> Bool
== :: MenuItem -> MenuItem -> Bool
$c/= :: MenuItem -> MenuItem -> Bool
/= :: MenuItem -> MenuItem -> Bool
Eq)
instance SP.ManagedPtrNewtype MenuItem where
toManagedPtr :: MenuItem -> ManagedPtr MenuItem
toManagedPtr (MenuItem ManagedPtr MenuItem
p) = ManagedPtr MenuItem
p
foreign import ccall "g_menu_item_get_type"
:: IO B.Types.GType
instance B.Types.TypedObject MenuItem where
glibType :: IO GType
glibType = IO GType
c_g_menu_item_get_type
instance B.Types.GObject MenuItem
class (SP.GObject o, O.IsDescendantOf MenuItem o) => o
instance (SP.GObject o, O.IsDescendantOf MenuItem o) => IsMenuItem o
instance O.HasParentTypes MenuItem
type instance O.ParentTypes MenuItem = '[GObject.Object.Object]
toMenuItem :: (MIO.MonadIO m, IsMenuItem o) => o -> m MenuItem
= IO MenuItem -> m MenuItem
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO MenuItem -> m MenuItem)
-> (o -> IO MenuItem) -> o -> m MenuItem
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr MenuItem -> MenuItem) -> o -> IO MenuItem
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MenuItem -> MenuItem
MenuItem
instance B.GValue.IsGValue (Maybe MenuItem) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_menu_item_get_type
gvalueSet_ :: Ptr GValue -> Maybe MenuItem -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MenuItem
P.Nothing = Ptr GValue -> Ptr MenuItem -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr MenuItem
forall a. Ptr a
FP.nullPtr :: FP.Ptr MenuItem)
gvalueSet_ Ptr GValue
gv (P.Just MenuItem
obj) = MenuItem -> (Ptr MenuItem -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MenuItem
obj (Ptr GValue -> Ptr MenuItem -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MenuItem)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr MenuItem)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MenuItem)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject MenuItem 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
"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
"getAttributeValue" o = MenuItemGetAttributeValueMethodInfo
"getData" o = GObject.Object.ObjectGetDataMethodInfo
"getLink" o = MenuItemGetLinkMethodInfo
"getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
"getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
"setActionAndTargetValue" o = MenuItemSetActionAndTargetValueMethodInfo
"setAttributeValue" o = MenuItemSetAttributeValueMethodInfo
"setData" o = GObject.Object.ObjectSetDataMethodInfo
"setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
"setDetailedAction" o = MenuItemSetDetailedActionMethodInfo
"setIcon" o = MenuItemSetIconMethodInfo
"setLabel" o = MenuItemSetLabelMethodInfo
"setLink" o = MenuItemSetLinkMethodInfo
"setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
"setSection" o = MenuItemSetSectionMethodInfo
"setSubmenu" o = MenuItemSetSubmenuMethodInfo
l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMenuItemMethod t MenuItem, O.OverloadedMethod info MenuItem p) => OL.IsLabel t (MenuItem -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel :: MenuItem -> 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 ~ ResolveMenuItemMethod t MenuItem, O.OverloadedMethod info MenuItem p, R.HasField t MenuItem p) => R.HasField t MenuItem p where
getField :: MenuItem -> 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 ~ ResolveMenuItemMethod t MenuItem, O.OverloadedMethodInfo info MenuItem) => OL.IsLabel t (O.MethodProxy info MenuItem) where
#if MIN_VERSION_base(4,10,0)
fromLabel :: MethodProxy info MenuItem
fromLabel = MethodProxy info MenuItem
forall info obj. MethodProxy info obj
O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MenuItem
type instance O.AttributeList MenuItem = MenuItemAttributeList
type = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MenuItem = MenuItemSignalList
type = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "g_menu_item_new" ::
CString ->
CString ->
IO (Ptr MenuItem)
menuItemNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> Maybe (T.Text)
-> m MenuItem
Maybe Text
label Maybe Text
detailedAction = IO MenuItem -> m MenuItem
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuItem -> m MenuItem) -> IO MenuItem -> m MenuItem
forall a b. (a -> b) -> a -> b
$ do
maybeLabel <- case Maybe Text
label of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jLabel -> do
jLabel' <- Text -> IO (Ptr CChar)
textToCString Text
jLabel
return jLabel'
maybeDetailedAction <- case detailedAction of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jDetailedAction -> do
jDetailedAction' <- Text -> IO (Ptr CChar)
textToCString Text
jDetailedAction
return jDetailedAction'
result <- g_menu_item_new maybeLabel maybeDetailedAction
checkUnexpectedReturnNULL "menuItemNew" result
result' <- (wrapObject MenuItem) result
freeMem maybeLabel
freeMem maybeDetailedAction
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_menu_item_new_from_model" ::
Ptr Gio.MenuModel.MenuModel ->
Int32 ->
IO (Ptr MenuItem)
menuItemNewFromModel ::
(B.CallStack.HasCallStack, MonadIO m, Gio.MenuModel.IsMenuModel a) =>
a
-> Int32
-> m MenuItem
a
model Int32
itemIndex = IO MenuItem -> m MenuItem
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuItem -> m MenuItem) -> IO MenuItem -> m MenuItem
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_item_new_from_model model' itemIndex
checkUnexpectedReturnNULL "menuItemNewFromModel" result
result' <- (wrapObject MenuItem) result
touchManagedPtr model
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_menu_item_new_section" ::
CString ->
Ptr Gio.MenuModel.MenuModel ->
IO (Ptr MenuItem)
menuItemNewSection ::
(B.CallStack.HasCallStack, MonadIO m, Gio.MenuModel.IsMenuModel a) =>
Maybe (T.Text)
-> a
-> m MenuItem
Maybe Text
label a
section = IO MenuItem -> m MenuItem
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuItem -> m MenuItem) -> IO MenuItem -> m MenuItem
forall a b. (a -> b) -> a -> b
$ do
maybeLabel <- case Maybe Text
label of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jLabel -> do
jLabel' <- Text -> IO (Ptr CChar)
textToCString Text
jLabel
return jLabel'
section' <- unsafeManagedPtrCastPtr section
result <- g_menu_item_new_section maybeLabel section'
checkUnexpectedReturnNULL "menuItemNewSection" result
result' <- (wrapObject MenuItem) result
touchManagedPtr section
freeMem maybeLabel
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_menu_item_new_submenu" ::
CString ->
Ptr Gio.MenuModel.MenuModel ->
IO (Ptr MenuItem)
menuItemNewSubmenu ::
(B.CallStack.HasCallStack, MonadIO m, Gio.MenuModel.IsMenuModel a) =>
Maybe (T.Text)
-> a
-> m MenuItem
Maybe Text
label a
submenu = IO MenuItem -> m MenuItem
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MenuItem -> m MenuItem) -> IO MenuItem -> m MenuItem
forall a b. (a -> b) -> a -> b
$ do
maybeLabel <- case Maybe Text
label of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jLabel -> do
jLabel' <- Text -> IO (Ptr CChar)
textToCString Text
jLabel
return jLabel'
submenu' <- unsafeManagedPtrCastPtr submenu
result <- g_menu_item_new_submenu maybeLabel submenu'
checkUnexpectedReturnNULL "menuItemNewSubmenu" result
result' <- (wrapObject MenuItem) result
touchManagedPtr submenu
freeMem maybeLabel
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_menu_item_get_attribute_value" ::
Ptr MenuItem ->
CString ->
Ptr GLib.VariantType.VariantType ->
IO (Ptr GVariant)
menuItemGetAttributeValue ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> T.Text
-> Maybe (GLib.VariantType.VariantType)
-> m (Maybe GVariant)
a
menuItem 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
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_item_get_attribute_value menuItem' attribute' maybeExpectedType
maybeResult <- convertIfNonNull result $ \Ptr GVariant
result' -> do
result'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
result'
return result''
touchManagedPtr menuItem
whenJust expectedType touchManagedPtr
freeMem attribute'
return maybeResult
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (T.Text -> Maybe (GLib.VariantType.VariantType) -> m (Maybe GVariant)), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemGetAttributeValueMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Text -> Maybe VariantType -> m (Maybe GVariant)
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Text -> Maybe VariantType -> m (Maybe GVariant)
menuItemGetAttributeValue
instance O.OverloadedMethodInfo MenuItemGetAttributeValueMethodInfo 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.MenuItem.menuItemGetAttributeValue",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemGetAttributeValue"
})
#endif
foreign import ccall "g_menu_item_get_link" ::
Ptr MenuItem ->
CString ->
IO (Ptr Gio.MenuModel.MenuModel)
menuItemGetLink ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> T.Text
-> m (Maybe Gio.MenuModel.MenuModel)
a
menuItem 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
link' <- textToCString link
result <- g_menu_item_get_link menuItem' 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
Gio.MenuModel.MenuModel) Ptr MenuModel
result'
return result''
touchManagedPtr menuItem
freeMem link'
return maybeResult
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (T.Text -> m (Maybe Gio.MenuModel.MenuModel)), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemGetLinkMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Text -> m (Maybe MenuModel)
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Text -> m (Maybe MenuModel)
menuItemGetLink
instance O.OverloadedMethodInfo MenuItemGetLinkMethodInfo 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.MenuItem.menuItemGetLink",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemGetLink"
})
#endif
foreign import ccall "g_menu_item_set_action_and_target_value" g_menu_item_set_action_and_target_value ::
Ptr MenuItem ->
CString ->
Ptr GVariant ->
IO ()
menuItemSetActionAndTargetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> Maybe (T.Text)
-> Maybe (GVariant)
-> m ()
menuItemSetActionAndTargetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Maybe Text -> Maybe GVariant -> m ()
menuItemSetActionAndTargetValue a
menuItem Maybe Text
action Maybe GVariant
targetValue = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
maybeAction <- case action of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jAction -> do
jAction' <- Text -> IO (Ptr CChar)
textToCString Text
jAction
return jAction'
maybeTargetValue <- case targetValue of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
FP.nullPtr
Just GVariant
jTargetValue -> do
jTargetValue' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jTargetValue
return jTargetValue'
g_menu_item_set_action_and_target_value menuItem' maybeAction maybeTargetValue
touchManagedPtr menuItem
whenJust targetValue touchManagedPtr
freeMem maybeAction
return ()
#if defined(ENABLE_OVERLOADING)
data MenuItemSetActionAndTargetValueMethodInfo
instance (signature ~ (Maybe (T.Text) -> Maybe (GVariant) -> m ()), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemSetActionAndTargetValueMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Maybe Text -> Maybe GVariant -> m ()
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Maybe Text -> Maybe GVariant -> m ()
menuItemSetActionAndTargetValue
instance O.OverloadedMethodInfo MenuItemSetActionAndTargetValueMethodInfo 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.MenuItem.menuItemSetActionAndTargetValue",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetActionAndTargetValue"
})
#endif
foreign import ccall "g_menu_item_set_attribute_value" ::
Ptr MenuItem ->
CString ->
Ptr GVariant ->
IO ()
menuItemSetAttributeValue ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> T.Text
-> Maybe (GVariant)
-> m ()
a
menuItem Text
attribute Maybe GVariant
value = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
attribute' <- textToCString attribute
maybeValue <- case value of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
FP.nullPtr
Just GVariant
jValue -> do
jValue' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jValue
return jValue'
g_menu_item_set_attribute_value menuItem' attribute' maybeValue
touchManagedPtr menuItem
whenJust value touchManagedPtr
freeMem attribute'
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (T.Text -> Maybe (GVariant) -> m ()), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemSetAttributeValueMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Text -> Maybe GVariant -> m ()
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Text -> Maybe GVariant -> m ()
menuItemSetAttributeValue
instance O.OverloadedMethodInfo MenuItemSetAttributeValueMethodInfo 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.MenuItem.menuItemSetAttributeValue",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetAttributeValue"
})
#endif
foreign import ccall "g_menu_item_set_detailed_action" ::
Ptr MenuItem ->
CString ->
IO ()
menuItemSetDetailedAction ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> T.Text
-> m ()
a
menuItem Text
detailedAction = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
detailedAction' <- textToCString detailedAction
g_menu_item_set_detailed_action menuItem' detailedAction'
touchManagedPtr menuItem
freeMem detailedAction'
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (T.Text -> m ()), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemSetDetailedActionMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Text -> m ()
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Text -> m ()
menuItemSetDetailedAction
instance O.OverloadedMethodInfo MenuItemSetDetailedActionMethodInfo 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.MenuItem.menuItemSetDetailedAction",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetDetailedAction"
})
#endif
foreign import ccall "g_menu_item_set_icon" ::
Ptr MenuItem ->
Ptr Gio.Icon.Icon ->
IO ()
menuItemSetIcon ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a, Gio.Icon.IsIcon b) =>
a
-> b
-> m ()
a
menuItem b
icon = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
icon' <- unsafeManagedPtrCastPtr icon
g_menu_item_set_icon menuItem' icon'
touchManagedPtr menuItem
touchManagedPtr icon
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (b -> m ()), MonadIO m, IsMenuItem a, Gio.Icon.IsIcon b) => O.OverloadedMethod MenuItemSetIconMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> b -> m ()
forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMenuItem a, IsIcon b) =>
a -> b -> m ()
menuItemSetIcon
instance O.OverloadedMethodInfo MenuItemSetIconMethodInfo 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.MenuItem.menuItemSetIcon",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetIcon"
})
#endif
foreign import ccall "g_menu_item_set_label" ::
Ptr MenuItem ->
CString ->
IO ()
menuItemSetLabel ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a) =>
a
-> Maybe (T.Text)
-> m ()
a
menuItem Maybe Text
label = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
maybeLabel <- case label of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
FP.nullPtr
Just Text
jLabel -> do
jLabel' <- Text -> IO (Ptr CChar)
textToCString Text
jLabel
return jLabel'
g_menu_item_set_label menuItem' maybeLabel
touchManagedPtr menuItem
freeMem maybeLabel
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, IsMenuItem a) => O.OverloadedMethod MenuItemSetLabelMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Maybe Text -> m ()
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMenuItem a) =>
a -> Maybe Text -> m ()
menuItemSetLabel
instance O.OverloadedMethodInfo MenuItemSetLabelMethodInfo 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.MenuItem.menuItemSetLabel",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetLabel"
})
#endif
foreign import ccall "g_menu_item_set_link" ::
Ptr MenuItem ->
CString ->
Ptr Gio.MenuModel.MenuModel ->
IO ()
menuItemSetLink ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) =>
a
-> T.Text
-> Maybe (b)
-> m ()
a
menuItem Text
link Maybe 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
link' <- textToCString link
maybeModel <- case model of
Maybe b
Nothing -> Ptr MenuModel -> IO (Ptr MenuModel)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MenuModel
forall a. Ptr a
FP.nullPtr
Just b
jModel -> do
jModel' <- b -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jModel
return jModel'
g_menu_item_set_link menuItem' link' maybeModel
touchManagedPtr menuItem
whenJust model touchManagedPtr
freeMem link'
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (T.Text -> Maybe (b) -> m ()), MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) => O.OverloadedMethod MenuItemSetLinkMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Text -> Maybe b -> m ()
forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMenuItem a, IsMenuModel b) =>
a -> Text -> Maybe b -> m ()
menuItemSetLink
instance O.OverloadedMethodInfo MenuItemSetLinkMethodInfo 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.MenuItem.menuItemSetLink",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetLink"
})
#endif
foreign import ccall "g_menu_item_set_section" ::
Ptr MenuItem ->
Ptr Gio.MenuModel.MenuModel ->
IO ()
menuItemSetSection ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) =>
a
-> Maybe (b)
-> m ()
a
menuItem Maybe b
section = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
maybeSection <- case section of
Maybe b
Nothing -> Ptr MenuModel -> IO (Ptr MenuModel)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MenuModel
forall a. Ptr a
FP.nullPtr
Just b
jSection -> do
jSection' <- b -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jSection
return jSection'
g_menu_item_set_section menuItem' maybeSection
touchManagedPtr menuItem
whenJust section touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) => O.OverloadedMethod MenuItemSetSectionMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Maybe b -> m ()
forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMenuItem a, IsMenuModel b) =>
a -> Maybe b -> m ()
menuItemSetSection
instance O.OverloadedMethodInfo MenuItemSetSectionMethodInfo 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.MenuItem.menuItemSetSection",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetSection"
})
#endif
foreign import ccall "g_menu_item_set_submenu" ::
Ptr MenuItem ->
Ptr Gio.MenuModel.MenuModel ->
IO ()
menuItemSetSubmenu ::
(B.CallStack.HasCallStack, MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) =>
a
-> Maybe (b)
-> m ()
a
menuItem Maybe b
submenu = 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
menuItem' <- a -> IO (Ptr MenuItem)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menuItem
maybeSubmenu <- case submenu of
Maybe b
Nothing -> Ptr MenuModel -> IO (Ptr MenuModel)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MenuModel
forall a. Ptr a
FP.nullPtr
Just b
jSubmenu -> do
jSubmenu' <- b -> IO (Ptr MenuModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jSubmenu
return jSubmenu'
g_menu_item_set_submenu menuItem' maybeSubmenu
touchManagedPtr menuItem
whenJust submenu touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsMenuItem a, Gio.MenuModel.IsMenuModel b) => O.OverloadedMethod MenuItemSetSubmenuMethodInfo a signature where
overloadedMethod :: a -> signature
overloadedMethod = a -> signature
a -> Maybe b -> m ()
forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMenuItem a, IsMenuModel b) =>
a -> Maybe b -> m ()
menuItemSetSubmenu
instance O.OverloadedMethodInfo MenuItemSetSubmenuMethodInfo 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.MenuItem.menuItemSetSubmenu",
resolvedSymbolURL :: Text
O.resolvedSymbolURL = Text
"https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-MenuItem.html#v:menuItemSetSubmenu"
})
#endif