packages feed

gi-gtksource-0.3.18.14: GI/GtkSource/Interfaces/UndoManager.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)
-}

module GI.GtkSource.Interfaces.UndoManager
    ( 

-- * Exported types
    UndoManager(..)                         ,
    noUndoManager                           ,
    UndoManagerK                            ,
    toUndoManager                           ,


 -- * Methods
-- ** undoManagerBeginNotUndoableAction
    UndoManagerBeginNotUndoableActionMethodInfo,
    undoManagerBeginNotUndoableAction       ,


-- ** undoManagerCanRedo
    UndoManagerCanRedoMethodInfo            ,
    undoManagerCanRedo                      ,


-- ** undoManagerCanRedoChanged
    UndoManagerCanRedoChangedMethodInfo     ,
    undoManagerCanRedoChanged               ,


-- ** undoManagerCanUndo
    UndoManagerCanUndoMethodInfo            ,
    undoManagerCanUndo                      ,


-- ** undoManagerCanUndoChanged
    UndoManagerCanUndoChangedMethodInfo     ,
    undoManagerCanUndoChanged               ,


-- ** undoManagerEndNotUndoableAction
    UndoManagerEndNotUndoableActionMethodInfo,
    undoManagerEndNotUndoableAction         ,


-- ** undoManagerRedo
    UndoManagerRedoMethodInfo               ,
    undoManagerRedo                         ,


-- ** undoManagerUndo
    UndoManagerUndoMethodInfo               ,
    undoManagerUndo                         ,




 -- * Signals
-- ** CanRedoChanged
    UndoManagerCanRedoChangedCallback       ,
    UndoManagerCanRedoChangedCallbackC      ,
    UndoManagerCanRedoChangedSignalInfo     ,
    afterUndoManagerCanRedoChanged          ,
    mkUndoManagerCanRedoChangedCallback     ,
    noUndoManagerCanRedoChangedCallback     ,
    onUndoManagerCanRedoChanged             ,
    undoManagerCanRedoChangedCallbackWrapper,
    undoManagerCanRedoChangedClosure        ,


-- ** CanUndoChanged
    UndoManagerCanUndoChangedCallback       ,
    UndoManagerCanUndoChangedCallbackC      ,
    UndoManagerCanUndoChangedSignalInfo     ,
    afterUndoManagerCanUndoChanged          ,
    mkUndoManagerCanUndoChangedCallback     ,
    noUndoManagerCanUndoChangedCallback     ,
    onUndoManagerCanUndoChanged             ,
    undoManagerCanUndoChangedCallbackWrapper,
    undoManagerCanUndoChangedClosure        ,




    ) where

import Data.GI.Base.ShortPrelude

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.GtkSource.Types
import GI.GtkSource.Callbacks
import qualified GI.GObject as GObject

-- interface UndoManager 

newtype UndoManager = UndoManager (ForeignPtr UndoManager)
noUndoManager :: Maybe UndoManager
noUndoManager = Nothing

type family ResolveUndoManagerMethod (t :: Symbol) (o :: *) :: * where
    ResolveUndoManagerMethod "beginNotUndoableAction" o = UndoManagerBeginNotUndoableActionMethodInfo
    ResolveUndoManagerMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveUndoManagerMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveUndoManagerMethod "canRedo" o = UndoManagerCanRedoMethodInfo
    ResolveUndoManagerMethod "canRedoChanged" o = UndoManagerCanRedoChangedMethodInfo
    ResolveUndoManagerMethod "canUndo" o = UndoManagerCanUndoMethodInfo
    ResolveUndoManagerMethod "canUndoChanged" o = UndoManagerCanUndoChangedMethodInfo
    ResolveUndoManagerMethod "endNotUndoableAction" o = UndoManagerEndNotUndoableActionMethodInfo
    ResolveUndoManagerMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveUndoManagerMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveUndoManagerMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveUndoManagerMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveUndoManagerMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveUndoManagerMethod "redo" o = UndoManagerRedoMethodInfo
    ResolveUndoManagerMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveUndoManagerMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveUndoManagerMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveUndoManagerMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveUndoManagerMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveUndoManagerMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveUndoManagerMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveUndoManagerMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveUndoManagerMethod "undo" o = UndoManagerUndoMethodInfo
    ResolveUndoManagerMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveUndoManagerMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveUndoManagerMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveUndoManagerMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveUndoManagerMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveUndoManagerMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveUndoManagerMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveUndoManagerMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveUndoManagerMethod t UndoManager, MethodInfo info UndoManager p) => IsLabelProxy t (UndoManager -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveUndoManagerMethod t UndoManager, MethodInfo info UndoManager p) => IsLabel t (UndoManager -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- signal UndoManager::can-redo-changed
type UndoManagerCanRedoChangedCallback =
    IO ()

noUndoManagerCanRedoChangedCallback :: Maybe UndoManagerCanRedoChangedCallback
noUndoManagerCanRedoChangedCallback = Nothing

type UndoManagerCanRedoChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkUndoManagerCanRedoChangedCallback :: UndoManagerCanRedoChangedCallbackC -> IO (FunPtr UndoManagerCanRedoChangedCallbackC)

undoManagerCanRedoChangedClosure :: UndoManagerCanRedoChangedCallback -> IO Closure
undoManagerCanRedoChangedClosure cb = newCClosure =<< mkUndoManagerCanRedoChangedCallback wrapped
    where wrapped = undoManagerCanRedoChangedCallbackWrapper cb

undoManagerCanRedoChangedCallbackWrapper ::
    UndoManagerCanRedoChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
undoManagerCanRedoChangedCallbackWrapper _cb _ _ = do
    _cb 

onUndoManagerCanRedoChanged :: (GObject a, MonadIO m) => a -> UndoManagerCanRedoChangedCallback -> m SignalHandlerId
onUndoManagerCanRedoChanged obj cb = liftIO $ connectUndoManagerCanRedoChanged obj cb SignalConnectBefore
afterUndoManagerCanRedoChanged :: (GObject a, MonadIO m) => a -> UndoManagerCanRedoChangedCallback -> m SignalHandlerId
afterUndoManagerCanRedoChanged obj cb = connectUndoManagerCanRedoChanged obj cb SignalConnectAfter

connectUndoManagerCanRedoChanged :: (GObject a, MonadIO m) =>
                                    a -> UndoManagerCanRedoChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectUndoManagerCanRedoChanged obj cb after = liftIO $ do
    cb' <- mkUndoManagerCanRedoChangedCallback (undoManagerCanRedoChangedCallbackWrapper cb)
    connectSignalFunPtr obj "can-redo-changed" cb' after

-- signal UndoManager::can-undo-changed
type UndoManagerCanUndoChangedCallback =
    IO ()

noUndoManagerCanUndoChangedCallback :: Maybe UndoManagerCanUndoChangedCallback
noUndoManagerCanUndoChangedCallback = Nothing

type UndoManagerCanUndoChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkUndoManagerCanUndoChangedCallback :: UndoManagerCanUndoChangedCallbackC -> IO (FunPtr UndoManagerCanUndoChangedCallbackC)

undoManagerCanUndoChangedClosure :: UndoManagerCanUndoChangedCallback -> IO Closure
undoManagerCanUndoChangedClosure cb = newCClosure =<< mkUndoManagerCanUndoChangedCallback wrapped
    where wrapped = undoManagerCanUndoChangedCallbackWrapper cb

undoManagerCanUndoChangedCallbackWrapper ::
    UndoManagerCanUndoChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
undoManagerCanUndoChangedCallbackWrapper _cb _ _ = do
    _cb 

onUndoManagerCanUndoChanged :: (GObject a, MonadIO m) => a -> UndoManagerCanUndoChangedCallback -> m SignalHandlerId
onUndoManagerCanUndoChanged obj cb = liftIO $ connectUndoManagerCanUndoChanged obj cb SignalConnectBefore
afterUndoManagerCanUndoChanged :: (GObject a, MonadIO m) => a -> UndoManagerCanUndoChangedCallback -> m SignalHandlerId
afterUndoManagerCanUndoChanged obj cb = connectUndoManagerCanUndoChanged obj cb SignalConnectAfter

connectUndoManagerCanUndoChanged :: (GObject a, MonadIO m) =>
                                    a -> UndoManagerCanUndoChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectUndoManagerCanUndoChanged obj cb after = liftIO $ do
    cb' <- mkUndoManagerCanUndoChangedCallback (undoManagerCanUndoChangedCallbackWrapper cb)
    connectSignalFunPtr obj "can-undo-changed" cb' after

type instance AttributeList UndoManager = UndoManagerAttributeList
type UndoManagerAttributeList = ('[ ] :: [(Symbol, *)])

data UndoManagerCanRedoChangedSignalInfo
instance SignalInfo UndoManagerCanRedoChangedSignalInfo where
    type HaskellCallbackType UndoManagerCanRedoChangedSignalInfo = UndoManagerCanRedoChangedCallback
    connectSignal _ = connectUndoManagerCanRedoChanged

data UndoManagerCanUndoChangedSignalInfo
instance SignalInfo UndoManagerCanUndoChangedSignalInfo where
    type HaskellCallbackType UndoManagerCanUndoChangedSignalInfo = UndoManagerCanUndoChangedCallback
    connectSignal _ = connectUndoManagerCanUndoChanged

type instance SignalList UndoManager = UndoManagerSignalList
type UndoManagerSignalList = ('[ '("canRedoChanged", UndoManagerCanRedoChangedSignalInfo), '("canUndoChanged", UndoManagerCanUndoChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

foreign import ccall "gtk_source_undo_manager_get_type"
    c_gtk_source_undo_manager_get_type :: IO GType

type instance ParentTypes UndoManager = UndoManagerParentTypes
type UndoManagerParentTypes = '[GObject.Object]

instance GObject UndoManager where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_source_undo_manager_get_type
    

class GObject o => UndoManagerK o
instance (GObject o, IsDescendantOf UndoManager o) => UndoManagerK o

toUndoManager :: UndoManagerK o => o -> IO UndoManager
toUndoManager = unsafeCastTo UndoManager

-- method UndoManager::begin_not_undoable_action
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_begin_not_undoable_action" gtk_source_undo_manager_begin_not_undoable_action :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerBeginNotUndoableAction ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerBeginNotUndoableAction _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_begin_not_undoable_action _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerBeginNotUndoableActionMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerBeginNotUndoableActionMethodInfo a signature where
    overloadedMethod _ = undoManagerBeginNotUndoableAction

-- method UndoManager::can_redo
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_can_redo" gtk_source_undo_manager_can_redo :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO CInt


undoManagerCanRedo ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m Bool                               -- result
undoManagerCanRedo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_source_undo_manager_can_redo _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

data UndoManagerCanRedoMethodInfo
instance (signature ~ (m Bool), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerCanRedoMethodInfo a signature where
    overloadedMethod _ = undoManagerCanRedo

-- method UndoManager::can_redo_changed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_can_redo_changed" gtk_source_undo_manager_can_redo_changed :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerCanRedoChanged ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerCanRedoChanged _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_can_redo_changed _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerCanRedoChangedMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerCanRedoChangedMethodInfo a signature where
    overloadedMethod _ = undoManagerCanRedoChanged

-- method UndoManager::can_undo
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_can_undo" gtk_source_undo_manager_can_undo :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO CInt


undoManagerCanUndo ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m Bool                               -- result
undoManagerCanUndo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_source_undo_manager_can_undo _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

data UndoManagerCanUndoMethodInfo
instance (signature ~ (m Bool), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerCanUndoMethodInfo a signature where
    overloadedMethod _ = undoManagerCanUndo

-- method UndoManager::can_undo_changed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_can_undo_changed" gtk_source_undo_manager_can_undo_changed :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerCanUndoChanged ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerCanUndoChanged _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_can_undo_changed _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerCanUndoChangedMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerCanUndoChangedMethodInfo a signature where
    overloadedMethod _ = undoManagerCanUndoChanged

-- method UndoManager::end_not_undoable_action
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_end_not_undoable_action" gtk_source_undo_manager_end_not_undoable_action :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerEndNotUndoableAction ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerEndNotUndoableAction _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_end_not_undoable_action _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerEndNotUndoableActionMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerEndNotUndoableActionMethodInfo a signature where
    overloadedMethod _ = undoManagerEndNotUndoableAction

-- method UndoManager::redo
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_redo" gtk_source_undo_manager_redo :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerRedo ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerRedo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_redo _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerRedoMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerRedoMethodInfo a signature where
    overloadedMethod _ = undoManagerRedo

-- method UndoManager::undo
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "UndoManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_undo_manager_undo" gtk_source_undo_manager_undo :: 
    Ptr UndoManager ->                      -- _obj : TInterface "GtkSource" "UndoManager"
    IO ()


undoManagerUndo ::
    (MonadIO m, UndoManagerK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
undoManagerUndo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_source_undo_manager_undo _obj'
    touchManagedPtr _obj
    return ()

data UndoManagerUndoMethodInfo
instance (signature ~ (m ()), MonadIO m, UndoManagerK a) => MethodInfo UndoManagerUndoMethodInfo a signature where
    overloadedMethod _ = undoManagerUndo