packages feed

gi-gtksource-0.3.18.14: GI/GtkSource/Objects/CompletionContext.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.Objects.CompletionContext
    ( 

-- * Exported types
    CompletionContext(..)                   ,
    CompletionContextK                      ,
    toCompletionContext                     ,
    noCompletionContext                     ,


 -- * Methods
-- ** completionContextAddProposals
    CompletionContextAddProposalsMethodInfo ,
    completionContextAddProposals           ,


-- ** completionContextGetActivation
    CompletionContextGetActivationMethodInfo,
    completionContextGetActivation          ,


-- ** completionContextGetIter
    CompletionContextGetIterMethodInfo      ,
    completionContextGetIter                ,




 -- * Properties
-- ** Activation
    CompletionContextActivationPropertyInfo ,
    completionContextActivation             ,
    constructCompletionContextActivation    ,
    getCompletionContextActivation          ,
    setCompletionContextActivation          ,


-- ** Completion
    CompletionContextCompletionPropertyInfo ,
    completionContextCompletion             ,
    constructCompletionContextCompletion    ,
    getCompletionContextCompletion          ,


-- ** Iter
    CompletionContextIterPropertyInfo       ,
    clearCompletionContextIter              ,
    completionContextIter                   ,
    constructCompletionContextIter          ,
    getCompletionContextIter                ,
    setCompletionContextIter                ,




 -- * Signals
-- ** Cancelled
    CompletionContextCancelledCallback      ,
    CompletionContextCancelledCallbackC     ,
    CompletionContextCancelledSignalInfo    ,
    afterCompletionContextCancelled         ,
    completionContextCancelledCallbackWrapper,
    completionContextCancelledClosure       ,
    mkCompletionContextCancelledCallback    ,
    noCompletionContextCancelledCallback    ,
    onCompletionContextCancelled            ,




    ) 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
import qualified GI.Gtk as Gtk

newtype CompletionContext = CompletionContext (ForeignPtr CompletionContext)
foreign import ccall "gtk_source_completion_context_get_type"
    c_gtk_source_completion_context_get_type :: IO GType

type instance ParentTypes CompletionContext = CompletionContextParentTypes
type CompletionContextParentTypes = '[GObject.Object]

instance GObject CompletionContext where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_source_completion_context_get_type
    

class GObject o => CompletionContextK o
instance (GObject o, IsDescendantOf CompletionContext o) => CompletionContextK o

toCompletionContext :: CompletionContextK o => o -> IO CompletionContext
toCompletionContext = unsafeCastTo CompletionContext

noCompletionContext :: Maybe CompletionContext
noCompletionContext = Nothing

type family ResolveCompletionContextMethod (t :: Symbol) (o :: *) :: * where
    ResolveCompletionContextMethod "addProposals" o = CompletionContextAddProposalsMethodInfo
    ResolveCompletionContextMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveCompletionContextMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveCompletionContextMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveCompletionContextMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveCompletionContextMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveCompletionContextMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveCompletionContextMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveCompletionContextMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveCompletionContextMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveCompletionContextMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveCompletionContextMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveCompletionContextMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveCompletionContextMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveCompletionContextMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveCompletionContextMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveCompletionContextMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveCompletionContextMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveCompletionContextMethod "getActivation" o = CompletionContextGetActivationMethodInfo
    ResolveCompletionContextMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveCompletionContextMethod "getIter" o = CompletionContextGetIterMethodInfo
    ResolveCompletionContextMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveCompletionContextMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveCompletionContextMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveCompletionContextMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveCompletionContextMethod l o = MethodResolutionFailed l o

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

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

-- signal CompletionContext::cancelled
type CompletionContextCancelledCallback =
    IO ()

noCompletionContextCancelledCallback :: Maybe CompletionContextCancelledCallback
noCompletionContextCancelledCallback = Nothing

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

foreign import ccall "wrapper"
    mkCompletionContextCancelledCallback :: CompletionContextCancelledCallbackC -> IO (FunPtr CompletionContextCancelledCallbackC)

completionContextCancelledClosure :: CompletionContextCancelledCallback -> IO Closure
completionContextCancelledClosure cb = newCClosure =<< mkCompletionContextCancelledCallback wrapped
    where wrapped = completionContextCancelledCallbackWrapper cb

completionContextCancelledCallbackWrapper ::
    CompletionContextCancelledCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
completionContextCancelledCallbackWrapper _cb _ _ = do
    _cb 

onCompletionContextCancelled :: (GObject a, MonadIO m) => a -> CompletionContextCancelledCallback -> m SignalHandlerId
onCompletionContextCancelled obj cb = liftIO $ connectCompletionContextCancelled obj cb SignalConnectBefore
afterCompletionContextCancelled :: (GObject a, MonadIO m) => a -> CompletionContextCancelledCallback -> m SignalHandlerId
afterCompletionContextCancelled obj cb = connectCompletionContextCancelled obj cb SignalConnectAfter

connectCompletionContextCancelled :: (GObject a, MonadIO m) =>
                                     a -> CompletionContextCancelledCallback -> SignalConnectMode -> m SignalHandlerId
connectCompletionContextCancelled obj cb after = liftIO $ do
    cb' <- mkCompletionContextCancelledCallback (completionContextCancelledCallbackWrapper cb)
    connectSignalFunPtr obj "cancelled" cb' after

-- VVV Prop "activation"
   -- Type: TInterface "GtkSource" "CompletionActivation"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]
   -- Nullable: (Just False,Nothing)

getCompletionContextActivation :: (MonadIO m, CompletionContextK o) => o -> m [CompletionActivation]
getCompletionContextActivation obj = liftIO $ getObjectPropertyFlags obj "activation"

setCompletionContextActivation :: (MonadIO m, CompletionContextK o) => o -> [CompletionActivation] -> m ()
setCompletionContextActivation obj val = liftIO $ setObjectPropertyFlags obj "activation" val

constructCompletionContextActivation :: [CompletionActivation] -> IO ([Char], GValue)
constructCompletionContextActivation val = constructObjectPropertyFlags "activation" val

data CompletionContextActivationPropertyInfo
instance AttrInfo CompletionContextActivationPropertyInfo where
    type AttrAllowedOps CompletionContextActivationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CompletionContextActivationPropertyInfo = (~) [CompletionActivation]
    type AttrBaseTypeConstraint CompletionContextActivationPropertyInfo = CompletionContextK
    type AttrGetType CompletionContextActivationPropertyInfo = [CompletionActivation]
    type AttrLabel CompletionContextActivationPropertyInfo = "activation"
    attrGet _ = getCompletionContextActivation
    attrSet _ = setCompletionContextActivation
    attrConstruct _ = constructCompletionContextActivation
    attrClear _ = undefined

-- VVV Prop "completion"
   -- Type: TInterface "GtkSource" "Completion"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getCompletionContextCompletion :: (MonadIO m, CompletionContextK o) => o -> m (Maybe Completion)
getCompletionContextCompletion obj = liftIO $ getObjectPropertyObject obj "completion" Completion

constructCompletionContextCompletion :: (CompletionK a) => a -> IO ([Char], GValue)
constructCompletionContextCompletion val = constructObjectPropertyObject "completion" (Just val)

data CompletionContextCompletionPropertyInfo
instance AttrInfo CompletionContextCompletionPropertyInfo where
    type AttrAllowedOps CompletionContextCompletionPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint CompletionContextCompletionPropertyInfo = CompletionK
    type AttrBaseTypeConstraint CompletionContextCompletionPropertyInfo = CompletionContextK
    type AttrGetType CompletionContextCompletionPropertyInfo = (Maybe Completion)
    type AttrLabel CompletionContextCompletionPropertyInfo = "completion"
    attrGet _ = getCompletionContextCompletion
    attrSet _ = undefined
    attrConstruct _ = constructCompletionContextCompletion
    attrClear _ = undefined

-- VVV Prop "iter"
   -- Type: TInterface "Gtk" "TextIter"
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getCompletionContextIter :: (MonadIO m, CompletionContextK o) => o -> m (Maybe Gtk.TextIter)
getCompletionContextIter obj = liftIO $ getObjectPropertyBoxed obj "iter" Gtk.TextIter

setCompletionContextIter :: (MonadIO m, CompletionContextK o) => o -> Gtk.TextIter -> m ()
setCompletionContextIter obj val = liftIO $ setObjectPropertyBoxed obj "iter" (Just val)

constructCompletionContextIter :: Gtk.TextIter -> IO ([Char], GValue)
constructCompletionContextIter val = constructObjectPropertyBoxed "iter" (Just val)

clearCompletionContextIter :: (MonadIO m, CompletionContextK o) => o -> m ()
clearCompletionContextIter obj = liftIO $ setObjectPropertyBoxed obj "iter" (Nothing :: Maybe Gtk.TextIter)

data CompletionContextIterPropertyInfo
instance AttrInfo CompletionContextIterPropertyInfo where
    type AttrAllowedOps CompletionContextIterPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint CompletionContextIterPropertyInfo = (~) Gtk.TextIter
    type AttrBaseTypeConstraint CompletionContextIterPropertyInfo = CompletionContextK
    type AttrGetType CompletionContextIterPropertyInfo = (Maybe Gtk.TextIter)
    type AttrLabel CompletionContextIterPropertyInfo = "iter"
    attrGet _ = getCompletionContextIter
    attrSet _ = setCompletionContextIter
    attrConstruct _ = constructCompletionContextIter
    attrClear _ = clearCompletionContextIter

type instance AttributeList CompletionContext = CompletionContextAttributeList
type CompletionContextAttributeList = ('[ '("activation", CompletionContextActivationPropertyInfo), '("completion", CompletionContextCompletionPropertyInfo), '("iter", CompletionContextIterPropertyInfo)] :: [(Symbol, *)])

completionContextActivation :: AttrLabelProxy "activation"
completionContextActivation = AttrLabelProxy

completionContextCompletion :: AttrLabelProxy "completion"
completionContextCompletion = AttrLabelProxy

completionContextIter :: AttrLabelProxy "iter"
completionContextIter = AttrLabelProxy

data CompletionContextCancelledSignalInfo
instance SignalInfo CompletionContextCancelledSignalInfo where
    type HaskellCallbackType CompletionContextCancelledSignalInfo = CompletionContextCancelledCallback
    connectSignal _ = connectCompletionContextCancelled

type instance SignalList CompletionContext = CompletionContextSignalList
type CompletionContextSignalList = ('[ '("cancelled", CompletionContextCancelledSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method CompletionContext::add_proposals
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "CompletionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "provider", argType = TInterface "GtkSource" "CompletionProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "proposals", argType = TGList (TInterface "GtkSource" "CompletionProposal"), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "finished", argType = TBasicType TBoolean, 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_completion_context_add_proposals" gtk_source_completion_context_add_proposals :: 
    Ptr CompletionContext ->                -- _obj : TInterface "GtkSource" "CompletionContext"
    Ptr CompletionProvider ->               -- provider : TInterface "GtkSource" "CompletionProvider"
    Ptr (GList (Ptr CompletionProposal)) -> -- proposals : TGList (TInterface "GtkSource" "CompletionProposal")
    CInt ->                                 -- finished : TBasicType TBoolean
    IO ()


completionContextAddProposals ::
    (MonadIO m, CompletionContextK a, CompletionProviderK b, CompletionProposalK c) =>
    a                                       -- _obj
    -> b                                    -- provider
    -> [c]                                  -- proposals
    -> Bool                                 -- finished
    -> m ()                                 -- result
completionContextAddProposals _obj provider proposals finished = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let provider' = unsafeManagedPtrCastPtr provider
    let proposals' = map unsafeManagedPtrCastPtr proposals
    proposals'' <- packGList proposals'
    let finished' = (fromIntegral . fromEnum) finished
    gtk_source_completion_context_add_proposals _obj' provider' proposals'' finished'
    touchManagedPtr _obj
    touchManagedPtr provider
    mapM_ touchManagedPtr proposals
    g_list_free proposals''
    return ()

data CompletionContextAddProposalsMethodInfo
instance (signature ~ (b -> [c] -> Bool -> m ()), MonadIO m, CompletionContextK a, CompletionProviderK b, CompletionProposalK c) => MethodInfo CompletionContextAddProposalsMethodInfo a signature where
    overloadedMethod _ = completionContextAddProposals

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

foreign import ccall "gtk_source_completion_context_get_activation" gtk_source_completion_context_get_activation :: 
    Ptr CompletionContext ->                -- _obj : TInterface "GtkSource" "CompletionContext"
    IO CUInt


completionContextGetActivation ::
    (MonadIO m, CompletionContextK a) =>
    a                                       -- _obj
    -> m [CompletionActivation]             -- result
completionContextGetActivation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_source_completion_context_get_activation _obj'
    let result' = wordToGFlags result
    touchManagedPtr _obj
    return result'

data CompletionContextGetActivationMethodInfo
instance (signature ~ (m [CompletionActivation]), MonadIO m, CompletionContextK a) => MethodInfo CompletionContextGetActivationMethodInfo a signature where
    overloadedMethod _ = completionContextGetActivation

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

foreign import ccall "gtk_source_completion_context_get_iter" gtk_source_completion_context_get_iter :: 
    Ptr CompletionContext ->                -- _obj : TInterface "GtkSource" "CompletionContext"
    Ptr Gtk.TextIter ->                     -- iter : TInterface "Gtk" "TextIter"
    IO CInt


completionContextGetIter ::
    (MonadIO m, CompletionContextK a) =>
    a                                       -- _obj
    -> m (Bool,Gtk.TextIter)                -- result
completionContextGetIter _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 80 :: IO (Ptr Gtk.TextIter)
    result <- gtk_source_completion_context_get_iter _obj' iter
    let result' = (/= 0) result
    iter' <- (wrapBoxed Gtk.TextIter) iter
    touchManagedPtr _obj
    return (result', iter')

data CompletionContextGetIterMethodInfo
instance (signature ~ (m (Bool,Gtk.TextIter)), MonadIO m, CompletionContextK a) => MethodInfo CompletionContextGetIterMethodInfo a signature where
    overloadedMethod _ = completionContextGetIter