gi-vte-0.0.40.12: GI/Vte/Objects/Pty.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.Vte.Objects.Pty
(
-- * Exported types
Pty(..) ,
PtyK ,
toPty ,
noPty ,
-- * Methods
-- ** ptyChildSetup
ptyChildSetup ,
-- ** ptyClose
ptyClose ,
-- ** ptyGetFd
ptyGetFd ,
-- ** ptyGetSize
ptyGetSize ,
-- ** ptyNewForeignSync
ptyNewForeignSync ,
-- ** ptyNewSync
ptyNewSync ,
-- ** ptySetSize
ptySetSize ,
-- ** ptySetUtf8
ptySetUtf8 ,
-- * Properties
-- ** Fd
PtyFdPropertyInfo ,
constructPtyFd ,
getPtyFd ,
-- ** Flags
PtyFlagsPropertyInfo ,
constructPtyFlags ,
getPtyFlags ,
) 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.Vte.Types
import GI.Vte.Callbacks
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio
newtype Pty = Pty (ForeignPtr Pty)
foreign import ccall "vte_pty_get_type"
c_vte_pty_get_type :: IO GType
type instance ParentTypes Pty = PtyParentTypes
type PtyParentTypes = '[GObject.Object, Gio.Initable]
instance GObject Pty where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_vte_pty_get_type
class GObject o => PtyK o
instance (GObject o, IsDescendantOf Pty o) => PtyK o
toPty :: PtyK o => o -> IO Pty
toPty = unsafeCastTo Pty
noPty :: Maybe Pty
noPty = Nothing
-- VVV Prop "fd"
-- Type: TBasicType TInt32
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getPtyFd :: (MonadIO m, PtyK o) => o -> m Int32
getPtyFd obj = liftIO $ getObjectPropertyCInt obj "fd"
constructPtyFd :: Int32 -> IO ([Char], GValue)
constructPtyFd val = constructObjectPropertyCInt "fd" val
data PtyFdPropertyInfo
instance AttrInfo PtyFdPropertyInfo where
type AttrAllowedOps PtyFdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint PtyFdPropertyInfo = (~) Int32
type AttrBaseTypeConstraint PtyFdPropertyInfo = PtyK
type AttrGetType PtyFdPropertyInfo = Int32
type AttrLabel PtyFdPropertyInfo = "Pty::fd"
attrGet _ = getPtyFd
attrSet _ = undefined
attrConstruct _ = constructPtyFd
-- VVV Prop "flags"
-- Type: TInterface "Vte" "PtyFlags"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getPtyFlags :: (MonadIO m, PtyK o) => o -> m [PtyFlags]
getPtyFlags obj = liftIO $ getObjectPropertyFlags obj "flags"
constructPtyFlags :: [PtyFlags] -> IO ([Char], GValue)
constructPtyFlags val = constructObjectPropertyFlags "flags" val
data PtyFlagsPropertyInfo
instance AttrInfo PtyFlagsPropertyInfo where
type AttrAllowedOps PtyFlagsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint PtyFlagsPropertyInfo = (~) [PtyFlags]
type AttrBaseTypeConstraint PtyFlagsPropertyInfo = PtyK
type AttrGetType PtyFlagsPropertyInfo = [PtyFlags]
type AttrLabel PtyFlagsPropertyInfo = "Pty::flags"
attrGet _ = getPtyFlags
attrSet _ = undefined
attrConstruct _ = constructPtyFlags
type instance AttributeList Pty = PtyAttributeList
type PtyAttributeList = ('[ '("fd", PtyFdPropertyInfo), '("flags", PtyFlagsPropertyInfo)] :: [(Symbol, *)])
type instance SignalList Pty = PtySignalList
type PtySignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method Pty::new_foreign_sync
-- method type : Constructor
-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Vte" "Pty"
-- throws : True
-- Skip return : False
foreign import ccall "vte_pty_new_foreign_sync" vte_pty_new_foreign_sync ::
Int32 -> -- fd : TBasicType TInt32
Ptr Gio.Cancellable -> -- cancellable : TInterface "Gio" "Cancellable"
Ptr (Ptr GError) -> -- error
IO (Ptr Pty)
ptyNewForeignSync ::
(MonadIO m, Gio.CancellableK a) =>
Int32 -> -- fd
Maybe (a) -> -- cancellable
m Pty
ptyNewForeignSync fd cancellable = liftIO $ do
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ vte_pty_new_foreign_sync fd maybeCancellable
checkUnexpectedReturnNULL "vte_pty_new_foreign_sync" result
result' <- (wrapObject Pty) result
whenJust cancellable touchManagedPtr
return result'
) (do
return ()
)
-- method Pty::new_sync
-- method type : Constructor
-- Args : [Arg {argName = "flags", argType = TInterface "Vte" "PtyFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "flags", argType = TInterface "Vte" "PtyFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Vte" "Pty"
-- throws : True
-- Skip return : False
foreign import ccall "vte_pty_new_sync" vte_pty_new_sync ::
CUInt -> -- flags : TInterface "Vte" "PtyFlags"
Ptr Gio.Cancellable -> -- cancellable : TInterface "Gio" "Cancellable"
Ptr (Ptr GError) -> -- error
IO (Ptr Pty)
ptyNewSync ::
(MonadIO m, Gio.CancellableK a) =>
[PtyFlags] -> -- flags
Maybe (a) -> -- cancellable
m Pty
ptyNewSync flags cancellable = liftIO $ do
let flags' = gflagsToWord flags
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ vte_pty_new_sync flags' maybeCancellable
checkUnexpectedReturnNULL "vte_pty_new_sync" result
result' <- (wrapObject Pty) result
whenJust cancellable touchManagedPtr
return result'
) (do
return ()
)
-- method Pty::child_setup
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "vte_pty_child_setup" vte_pty_child_setup ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
IO ()
ptyChildSetup ::
(MonadIO m, PtyK a) =>
a -> -- _obj
m ()
ptyChildSetup _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
vte_pty_child_setup _obj'
touchManagedPtr _obj
return ()
-- method Pty::close
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "vte_pty_close" vte_pty_close ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
IO ()
ptyClose ::
(MonadIO m, PtyK a) =>
a -> -- _obj
m ()
ptyClose _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
vte_pty_close _obj'
touchManagedPtr _obj
return ()
-- method Pty::get_fd
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "vte_pty_get_fd" vte_pty_get_fd ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
IO Int32
ptyGetFd ::
(MonadIO m, PtyK a) =>
a -> -- _obj
m Int32
ptyGetFd _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- vte_pty_get_fd _obj'
touchManagedPtr _obj
return result
-- method Pty::get_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rows", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "columns", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "vte_pty_get_size" vte_pty_get_size ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
Ptr Int32 -> -- rows : TBasicType TInt32
Ptr Int32 -> -- columns : TBasicType TInt32
Ptr (Ptr GError) -> -- error
IO CInt
ptyGetSize ::
(MonadIO m, PtyK a) =>
a -> -- _obj
m (Int32,Int32)
ptyGetSize _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
rows <- allocMem :: IO (Ptr Int32)
columns <- allocMem :: IO (Ptr Int32)
onException (do
_ <- propagateGError $ vte_pty_get_size _obj' rows columns
rows' <- peek rows
columns' <- peek columns
touchManagedPtr _obj
freeMem rows
freeMem columns
return (rows', columns')
) (do
freeMem rows
freeMem columns
)
-- method Pty::set_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rows", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rows", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "vte_pty_set_size" vte_pty_set_size ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
Int32 -> -- rows : TBasicType TInt32
Int32 -> -- columns : TBasicType TInt32
Ptr (Ptr GError) -> -- error
IO CInt
ptySetSize ::
(MonadIO m, PtyK a) =>
a -> -- _obj
Int32 -> -- rows
Int32 -> -- columns
m ()
ptySetSize _obj rows columns = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
onException (do
_ <- propagateGError $ vte_pty_set_size _obj' rows columns
touchManagedPtr _obj
return ()
) (do
return ()
)
-- method Pty::set_utf8
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Vte" "Pty", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "vte_pty_set_utf8" vte_pty_set_utf8 ::
Ptr Pty -> -- _obj : TInterface "Vte" "Pty"
CInt -> -- utf8 : TBasicType TBoolean
Ptr (Ptr GError) -> -- error
IO CInt
ptySetUtf8 ::
(MonadIO m, PtyK a) =>
a -> -- _obj
Bool -> -- utf8
m ()
ptySetUtf8 _obj utf8 = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let utf8' = (fromIntegral . fromEnum) utf8
onException (do
_ <- propagateGError $ vte_pty_set_utf8 _obj' utf8'
touchManagedPtr _obj
return ()
) (do
return ()
)