gi-gtk-0.3.18.13: GI/Gtk/Structs/BindingEntry.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
Each key binding element of a binding sets binding list is
represented by a GtkBindingEntry.
-}
module GI.Gtk.Structs.BindingEntry
(
-- * Exported types
BindingEntry(..) ,
newZeroBindingEntry ,
noBindingEntry ,
-- * Methods
-- ** bindingEntryAddSignalFromString
bindingEntryAddSignalFromString ,
-- ** bindingEntryAddSignall
bindingEntryAddSignall ,
-- ** bindingEntryRemove
bindingEntryRemove ,
-- ** bindingEntrySkip
bindingEntrySkip ,
-- * Properties
-- ** BindingSet
bindingEntryReadBindingSet ,
-- ** Destroyed
bindingEntryReadDestroyed ,
-- ** HashNext
bindingEntryReadHashNext ,
-- ** InEmission
bindingEntryReadInEmission ,
-- ** Keyval
bindingEntryReadKeyval ,
-- ** MarksUnbound
bindingEntryReadMarksUnbound ,
-- ** Modifiers
bindingEntryReadModifiers ,
-- ** SetNext
bindingEntryReadSetNext ,
-- ** Signals
bindingEntryReadSignals ,
) 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.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GLib as GLib
import qualified GI.Gdk as Gdk
newtype BindingEntry = BindingEntry (ForeignPtr BindingEntry)
-- | Construct a `BindingEntry` struct initialized to zero.
newZeroBindingEntry :: MonadIO m => m BindingEntry
newZeroBindingEntry = liftIO $ callocBytes 56 >>= wrapPtr BindingEntry
noBindingEntry :: Maybe BindingEntry
noBindingEntry = Nothing
bindingEntryReadKeyval :: BindingEntry -> IO Word32
bindingEntryReadKeyval s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
bindingEntryReadModifiers :: BindingEntry -> IO [Gdk.ModifierType]
bindingEntryReadModifiers s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO CUInt
let val' = wordToGFlags val
return val'
bindingEntryReadBindingSet :: BindingEntry -> IO BindingSet
bindingEntryReadBindingSet s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr BindingSet)
val' <- (newPtr 64 BindingSet) val
return val'
bindingEntryReadDestroyed :: BindingEntry -> IO Word32
bindingEntryReadDestroyed s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word32
return val
bindingEntryReadInEmission :: BindingEntry -> IO Word32
bindingEntryReadInEmission s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Word32
return val
bindingEntryReadMarksUnbound :: BindingEntry -> IO Word32
bindingEntryReadMarksUnbound s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word32
return val
bindingEntryReadSetNext :: BindingEntry -> IO BindingEntry
bindingEntryReadSetNext s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO (Ptr BindingEntry)
val' <- (newPtr 56 BindingEntry) val
return val'
bindingEntryReadHashNext :: BindingEntry -> IO BindingEntry
bindingEntryReadHashNext s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO (Ptr BindingEntry)
val' <- (newPtr 56 BindingEntry) val
return val'
bindingEntryReadSignals :: BindingEntry -> IO BindingSignal
bindingEntryReadSignals s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO (Ptr BindingSignal)
val' <- (newPtr 32 BindingSignal) val
return val'
-- method BindingEntry::add_signal_from_string
-- method type : MemberFunction
-- Args : [Arg {argCName = "binding_set", argType = TInterface "Gtk" "BindingSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_desc", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "GLib" "TokenType"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_binding_entry_add_signal_from_string" gtk_binding_entry_add_signal_from_string ::
Ptr BindingSet -> -- binding_set : TInterface "Gtk" "BindingSet"
CString -> -- signal_desc : TBasicType TUTF8
IO CUInt
bindingEntryAddSignalFromString ::
(MonadIO m) =>
BindingSet -- bindingSet
-> T.Text -- signalDesc
-> m GLib.TokenType -- result
bindingEntryAddSignalFromString bindingSet signalDesc = liftIO $ do
let bindingSet' = unsafeManagedPtrGetPtr bindingSet
signalDesc' <- textToCString signalDesc
result <- gtk_binding_entry_add_signal_from_string bindingSet' signalDesc'
let result' = (toEnum . fromIntegral) result
touchManagedPtr bindingSet
freeMem signalDesc'
return result'
-- method BindingEntry::add_signall
-- method type : MemberFunction
-- Args : [Arg {argCName = "binding_set", argType = TInterface "Gtk" "BindingSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "binding_args", argType = TGSList (TInterface "Gtk" "BindingArg"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_binding_entry_add_signall" gtk_binding_entry_add_signall ::
Ptr BindingSet -> -- binding_set : TInterface "Gtk" "BindingSet"
Word32 -> -- keyval : TBasicType TUInt32
CUInt -> -- modifiers : TInterface "Gdk" "ModifierType"
CString -> -- signal_name : TBasicType TUTF8
Ptr (GSList (Ptr BindingArg)) -> -- binding_args : TGSList (TInterface "Gtk" "BindingArg")
IO ()
bindingEntryAddSignall ::
(MonadIO m) =>
BindingSet -- bindingSet
-> Word32 -- keyval
-> [Gdk.ModifierType] -- modifiers
-> T.Text -- signalName
-> [BindingArg] -- bindingArgs
-> m () -- result
bindingEntryAddSignall bindingSet keyval modifiers signalName bindingArgs = liftIO $ do
let bindingSet' = unsafeManagedPtrGetPtr bindingSet
let modifiers' = gflagsToWord modifiers
signalName' <- textToCString signalName
let bindingArgs' = map unsafeManagedPtrGetPtr bindingArgs
bindingArgs'' <- packGSList bindingArgs'
gtk_binding_entry_add_signall bindingSet' keyval modifiers' signalName' bindingArgs''
touchManagedPtr bindingSet
mapM_ touchManagedPtr bindingArgs
freeMem signalName'
g_slist_free bindingArgs''
return ()
-- method BindingEntry::remove
-- method type : MemberFunction
-- Args : [Arg {argCName = "binding_set", argType = TInterface "Gtk" "BindingSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_binding_entry_remove" gtk_binding_entry_remove ::
Ptr BindingSet -> -- binding_set : TInterface "Gtk" "BindingSet"
Word32 -> -- keyval : TBasicType TUInt32
CUInt -> -- modifiers : TInterface "Gdk" "ModifierType"
IO ()
bindingEntryRemove ::
(MonadIO m) =>
BindingSet -- bindingSet
-> Word32 -- keyval
-> [Gdk.ModifierType] -- modifiers
-> m () -- result
bindingEntryRemove bindingSet keyval modifiers = liftIO $ do
let bindingSet' = unsafeManagedPtrGetPtr bindingSet
let modifiers' = gflagsToWord modifiers
gtk_binding_entry_remove bindingSet' keyval modifiers'
touchManagedPtr bindingSet
return ()
-- method BindingEntry::skip
-- method type : MemberFunction
-- Args : [Arg {argCName = "binding_set", argType = TInterface "Gtk" "BindingSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_binding_entry_skip" gtk_binding_entry_skip ::
Ptr BindingSet -> -- binding_set : TInterface "Gtk" "BindingSet"
Word32 -> -- keyval : TBasicType TUInt32
CUInt -> -- modifiers : TInterface "Gdk" "ModifierType"
IO ()
bindingEntrySkip ::
(MonadIO m) =>
BindingSet -- bindingSet
-> Word32 -- keyval
-> [Gdk.ModifierType] -- modifiers
-> m () -- result
bindingEntrySkip bindingSet keyval modifiers = liftIO $ do
let bindingSet' = unsafeManagedPtrGetPtr bindingSet
let modifiers' = gflagsToWord modifiers
gtk_binding_entry_skip bindingSet' keyval modifiers'
touchManagedPtr bindingSet
return ()
type family ResolveBindingEntryMethod (t :: Symbol) (o :: *) :: * where
ResolveBindingEntryMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveBindingEntryMethod t BindingEntry, MethodInfo info BindingEntry p) => IsLabelProxy t (BindingEntry -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveBindingEntryMethod t BindingEntry, MethodInfo info BindingEntry p) => IsLabel t (BindingEntry -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif