{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Dazzle.Objects.SuggestionEntryBuffer
    ( 

-- * Exported types
    SuggestionEntryBuffer(..)               ,
    IsSuggestionEntryBuffer                 ,
    toSuggestionEntryBuffer                 ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [clear]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:clear"), [commit]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:commit"), [deleteText]("GI.Gtk.Objects.EntryBuffer#g:method:deleteText"), [emitDeletedText]("GI.Gtk.Objects.EntryBuffer#g:method:emitDeletedText"), [emitInsertedText]("GI.Gtk.Objects.EntryBuffer#g:method:emitInsertedText"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [insertText]("GI.Gtk.Objects.EntryBuffer#g:method:insertText"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBytes]("GI.Gtk.Objects.EntryBuffer#g:method:getBytes"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getLength]("GI.Gtk.Objects.EntryBuffer#g:method:getLength"), [getMaxLength]("GI.Gtk.Objects.EntryBuffer#g:method:getMaxLength"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getSuggestion]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:getSuggestion"), [getText]("GI.Gtk.Objects.EntryBuffer#g:method:getText"), [getTypedLength]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:getTypedLength"), [getTypedText]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:getTypedText").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setMaxLength]("GI.Gtk.Objects.EntryBuffer#g:method:setMaxLength"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setSuggestion]("GI.Dazzle.Objects.SuggestionEntryBuffer#g:method:setSuggestion"), [setText]("GI.Gtk.Objects.EntryBuffer#g:method:setText").

#if defined(ENABLE_OVERLOADING)
    ResolveSuggestionEntryBufferMethod      ,
#endif

-- ** clear #method:clear#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferClearMethodInfo    ,
#endif
    suggestionEntryBufferClear              ,


-- ** commit #method:commit#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferCommitMethodInfo   ,
#endif
    suggestionEntryBufferCommit             ,


-- ** getSuggestion #method:getSuggestion#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferGetSuggestionMethodInfo,
#endif
    suggestionEntryBufferGetSuggestion      ,


-- ** getTypedLength #method:getTypedLength#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferGetTypedLengthMethodInfo,
#endif
    suggestionEntryBufferGetTypedLength     ,


-- ** getTypedText #method:getTypedText#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferGetTypedTextMethodInfo,
#endif
    suggestionEntryBufferGetTypedText       ,


-- ** new #method:new#

    suggestionEntryBufferNew                ,


-- ** setSuggestion #method:setSuggestion#

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferSetSuggestionMethodInfo,
#endif
    suggestionEntryBufferSetSuggestion      ,




 -- * Properties


-- ** suggestion #attr:suggestion#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    SuggestionEntryBufferSuggestionPropertyInfo,
#endif
    clearSuggestionEntryBufferSuggestion    ,
    constructSuggestionEntryBufferSuggestion,
    getSuggestionEntryBufferSuggestion      ,
    setSuggestionEntryBufferSuggestion      ,
#if defined(ENABLE_OVERLOADING)
    suggestionEntryBufferSuggestion         ,
#endif




    ) 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

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.Cairo.Structs.Surface as Cairo.Surface
import {-# SOURCE #-} qualified GI.Dazzle.Objects.Suggestion as Dazzle.Suggestion
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.Icon as Gio.Icon
import qualified GI.Gtk.Objects.EntryBuffer as Gtk.EntryBuffer
import qualified GI.Gtk.Objects.Widget as Gtk.Widget

#else
import {-# SOURCE #-} qualified GI.Dazzle.Objects.Suggestion as Dazzle.Suggestion
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Objects.EntryBuffer as Gtk.EntryBuffer

#endif

-- | Memory-managed wrapper type.
newtype SuggestionEntryBuffer = SuggestionEntryBuffer (SP.ManagedPtr SuggestionEntryBuffer)
    deriving (SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool
(SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool)
-> (SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool)
-> Eq SuggestionEntryBuffer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool
== :: SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool
$c/= :: SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool
/= :: SuggestionEntryBuffer -> SuggestionEntryBuffer -> Bool
Eq)

instance SP.ManagedPtrNewtype SuggestionEntryBuffer where
    toManagedPtr :: SuggestionEntryBuffer -> ManagedPtr SuggestionEntryBuffer
toManagedPtr (SuggestionEntryBuffer ManagedPtr SuggestionEntryBuffer
p) = ManagedPtr SuggestionEntryBuffer
p

foreign import ccall "dzl_suggestion_entry_buffer_get_type"
    c_dzl_suggestion_entry_buffer_get_type :: IO B.Types.GType

instance B.Types.TypedObject SuggestionEntryBuffer where
    glibType :: IO GType
glibType = IO GType
c_dzl_suggestion_entry_buffer_get_type

instance B.Types.GObject SuggestionEntryBuffer

-- | Type class for types which can be safely cast to `SuggestionEntryBuffer`, for instance with `toSuggestionEntryBuffer`.
class (SP.GObject o, O.IsDescendantOf SuggestionEntryBuffer o) => IsSuggestionEntryBuffer o
instance (SP.GObject o, O.IsDescendantOf SuggestionEntryBuffer o) => IsSuggestionEntryBuffer o

instance O.HasParentTypes SuggestionEntryBuffer
type instance O.ParentTypes SuggestionEntryBuffer = '[Gtk.EntryBuffer.EntryBuffer, GObject.Object.Object]

-- | Cast to `SuggestionEntryBuffer`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toSuggestionEntryBuffer :: (MIO.MonadIO m, IsSuggestionEntryBuffer o) => o -> m SuggestionEntryBuffer
toSuggestionEntryBuffer :: forall (m :: * -> *) o.
(MonadIO m, IsSuggestionEntryBuffer o) =>
o -> m SuggestionEntryBuffer
toSuggestionEntryBuffer = IO SuggestionEntryBuffer -> m SuggestionEntryBuffer
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO SuggestionEntryBuffer -> m SuggestionEntryBuffer)
-> (o -> IO SuggestionEntryBuffer) -> o -> m SuggestionEntryBuffer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer)
-> o -> IO SuggestionEntryBuffer
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer
SuggestionEntryBuffer

-- | Convert 'SuggestionEntryBuffer' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe SuggestionEntryBuffer) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_dzl_suggestion_entry_buffer_get_type
    gvalueSet_ :: Ptr GValue -> Maybe SuggestionEntryBuffer -> IO ()
gvalueSet_ Ptr GValue
gv Maybe SuggestionEntryBuffer
P.Nothing = Ptr GValue -> Ptr SuggestionEntryBuffer -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr SuggestionEntryBuffer
forall a. Ptr a
FP.nullPtr :: FP.Ptr SuggestionEntryBuffer)
    gvalueSet_ Ptr GValue
gv (P.Just SuggestionEntryBuffer
obj) = SuggestionEntryBuffer
-> (Ptr SuggestionEntryBuffer -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr SuggestionEntryBuffer
obj (Ptr GValue -> Ptr SuggestionEntryBuffer -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe SuggestionEntryBuffer)
gvalueGet_ Ptr GValue
gv = do
        Ptr SuggestionEntryBuffer
ptr <- Ptr GValue -> IO (Ptr SuggestionEntryBuffer)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr SuggestionEntryBuffer)
        if Ptr SuggestionEntryBuffer
ptr Ptr SuggestionEntryBuffer -> Ptr SuggestionEntryBuffer -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr SuggestionEntryBuffer
forall a. Ptr a
FP.nullPtr
        then SuggestionEntryBuffer -> Maybe SuggestionEntryBuffer
forall a. a -> Maybe a
P.Just (SuggestionEntryBuffer -> Maybe SuggestionEntryBuffer)
-> IO SuggestionEntryBuffer -> IO (Maybe SuggestionEntryBuffer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer)
-> Ptr SuggestionEntryBuffer -> IO SuggestionEntryBuffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer
SuggestionEntryBuffer Ptr SuggestionEntryBuffer
ptr
        else Maybe SuggestionEntryBuffer -> IO (Maybe SuggestionEntryBuffer)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe SuggestionEntryBuffer
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveSuggestionEntryBufferMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSuggestionEntryBufferMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSuggestionEntryBufferMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSuggestionEntryBufferMethod "clear" o = SuggestionEntryBufferClearMethodInfo
    ResolveSuggestionEntryBufferMethod "commit" o = SuggestionEntryBufferCommitMethodInfo
    ResolveSuggestionEntryBufferMethod "deleteText" o = Gtk.EntryBuffer.EntryBufferDeleteTextMethodInfo
    ResolveSuggestionEntryBufferMethod "emitDeletedText" o = Gtk.EntryBuffer.EntryBufferEmitDeletedTextMethodInfo
    ResolveSuggestionEntryBufferMethod "emitInsertedText" o = Gtk.EntryBuffer.EntryBufferEmitInsertedTextMethodInfo
    ResolveSuggestionEntryBufferMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSuggestionEntryBufferMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSuggestionEntryBufferMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSuggestionEntryBufferMethod "insertText" o = Gtk.EntryBuffer.EntryBufferInsertTextMethodInfo
    ResolveSuggestionEntryBufferMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSuggestionEntryBufferMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSuggestionEntryBufferMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSuggestionEntryBufferMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSuggestionEntryBufferMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSuggestionEntryBufferMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSuggestionEntryBufferMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSuggestionEntryBufferMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSuggestionEntryBufferMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSuggestionEntryBufferMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSuggestionEntryBufferMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSuggestionEntryBufferMethod "getBytes" o = Gtk.EntryBuffer.EntryBufferGetBytesMethodInfo
    ResolveSuggestionEntryBufferMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSuggestionEntryBufferMethod "getLength" o = Gtk.EntryBuffer.EntryBufferGetLengthMethodInfo
    ResolveSuggestionEntryBufferMethod "getMaxLength" o = Gtk.EntryBuffer.EntryBufferGetMaxLengthMethodInfo
    ResolveSuggestionEntryBufferMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSuggestionEntryBufferMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSuggestionEntryBufferMethod "getSuggestion" o = SuggestionEntryBufferGetSuggestionMethodInfo
    ResolveSuggestionEntryBufferMethod "getText" o = Gtk.EntryBuffer.EntryBufferGetTextMethodInfo
    ResolveSuggestionEntryBufferMethod "getTypedLength" o = SuggestionEntryBufferGetTypedLengthMethodInfo
    ResolveSuggestionEntryBufferMethod "getTypedText" o = SuggestionEntryBufferGetTypedTextMethodInfo
    ResolveSuggestionEntryBufferMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSuggestionEntryBufferMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSuggestionEntryBufferMethod "setMaxLength" o = Gtk.EntryBuffer.EntryBufferSetMaxLengthMethodInfo
    ResolveSuggestionEntryBufferMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSuggestionEntryBufferMethod "setSuggestion" o = SuggestionEntryBufferSetSuggestionMethodInfo
    ResolveSuggestionEntryBufferMethod "setText" o = Gtk.EntryBuffer.EntryBufferSetTextMethodInfo
    ResolveSuggestionEntryBufferMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveSuggestionEntryBufferMethod t SuggestionEntryBuffer, O.OverloadedMethod info SuggestionEntryBuffer p) => OL.IsLabel t (SuggestionEntryBuffer -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveSuggestionEntryBufferMethod t SuggestionEntryBuffer, O.OverloadedMethod info SuggestionEntryBuffer p, R.HasField t SuggestionEntryBuffer p) => R.HasField t SuggestionEntryBuffer p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveSuggestionEntryBufferMethod t SuggestionEntryBuffer, O.OverloadedMethodInfo info SuggestionEntryBuffer) => OL.IsLabel t (O.MethodProxy info SuggestionEntryBuffer) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "suggestion"
   -- Type: TInterface (Name {namespace = "Dazzle", name = "Suggestion"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@suggestion@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' suggestionEntryBuffer #suggestion
-- @
getSuggestionEntryBufferSuggestion :: (MonadIO m, IsSuggestionEntryBuffer o) => o -> m (Maybe Dazzle.Suggestion.Suggestion)
getSuggestionEntryBufferSuggestion :: forall (m :: * -> *) o.
(MonadIO m, IsSuggestionEntryBuffer o) =>
o -> m (Maybe Suggestion)
getSuggestionEntryBufferSuggestion o
obj = IO (Maybe Suggestion) -> m (Maybe Suggestion)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Suggestion) -> m (Maybe Suggestion))
-> IO (Maybe Suggestion) -> m (Maybe Suggestion)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr Suggestion -> Suggestion)
-> IO (Maybe Suggestion)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"suggestion" ManagedPtr Suggestion -> Suggestion
Dazzle.Suggestion.Suggestion

-- | Set the value of the “@suggestion@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' suggestionEntryBuffer [ #suggestion 'Data.GI.Base.Attributes.:=' value ]
-- @
setSuggestionEntryBufferSuggestion :: (MonadIO m, IsSuggestionEntryBuffer o, Dazzle.Suggestion.IsSuggestion a) => o -> a -> m ()
setSuggestionEntryBufferSuggestion :: forall (m :: * -> *) o a.
(MonadIO m, IsSuggestionEntryBuffer o, IsSuggestion a) =>
o -> a -> m ()
setSuggestionEntryBufferSuggestion o
obj a
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"suggestion" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@suggestion@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSuggestionEntryBufferSuggestion :: (IsSuggestionEntryBuffer o, MIO.MonadIO m, Dazzle.Suggestion.IsSuggestion a) => a -> m (GValueConstruct o)
constructSuggestionEntryBufferSuggestion :: forall o (m :: * -> *) a.
(IsSuggestionEntryBuffer o, MonadIO m, IsSuggestion a) =>
a -> m (GValueConstruct o)
constructSuggestionEntryBufferSuggestion a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"suggestion" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@suggestion@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #suggestion
-- @
clearSuggestionEntryBufferSuggestion :: (MonadIO m, IsSuggestionEntryBuffer o) => o -> m ()
clearSuggestionEntryBufferSuggestion :: forall (m :: * -> *) o.
(MonadIO m, IsSuggestionEntryBuffer o) =>
o -> m ()
clearSuggestionEntryBufferSuggestion o
obj = 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
$ o -> String -> Maybe Suggestion -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"suggestion" (Maybe Suggestion
forall a. Maybe a
Nothing :: Maybe Dazzle.Suggestion.Suggestion)

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferSuggestionPropertyInfo
instance AttrInfo SuggestionEntryBufferSuggestionPropertyInfo where
    type AttrAllowedOps SuggestionEntryBufferSuggestionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SuggestionEntryBufferSuggestionPropertyInfo = IsSuggestionEntryBuffer
    type AttrSetTypeConstraint SuggestionEntryBufferSuggestionPropertyInfo = Dazzle.Suggestion.IsSuggestion
    type AttrTransferTypeConstraint SuggestionEntryBufferSuggestionPropertyInfo = Dazzle.Suggestion.IsSuggestion
    type AttrTransferType SuggestionEntryBufferSuggestionPropertyInfo = Dazzle.Suggestion.Suggestion
    type AttrGetType SuggestionEntryBufferSuggestionPropertyInfo = (Maybe Dazzle.Suggestion.Suggestion)
    type AttrLabel SuggestionEntryBufferSuggestionPropertyInfo = "suggestion"
    type AttrOrigin SuggestionEntryBufferSuggestionPropertyInfo = SuggestionEntryBuffer
    attrGet = getSuggestionEntryBufferSuggestion
    attrSet = setSuggestionEntryBufferSuggestion
    attrTransfer _ v = do
        unsafeCastTo Dazzle.Suggestion.Suggestion v
    attrConstruct = constructSuggestionEntryBufferSuggestion
    attrClear = clearSuggestionEntryBufferSuggestion
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestion"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#g:attr:suggestion"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SuggestionEntryBuffer
type instance O.AttributeList SuggestionEntryBuffer = SuggestionEntryBufferAttributeList
type SuggestionEntryBufferAttributeList = ('[ '("length", Gtk.EntryBuffer.EntryBufferLengthPropertyInfo), '("maxLength", Gtk.EntryBuffer.EntryBufferMaxLengthPropertyInfo), '("suggestion", SuggestionEntryBufferSuggestionPropertyInfo), '("text", Gtk.EntryBuffer.EntryBufferTextPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
suggestionEntryBufferSuggestion :: AttrLabelProxy "suggestion"
suggestionEntryBufferSuggestion = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList SuggestionEntryBuffer = SuggestionEntryBufferSignalList
type SuggestionEntryBufferSignalList = ('[ '("deletedText", Gtk.EntryBuffer.EntryBufferDeletedTextSignalInfo), '("insertedText", Gtk.EntryBuffer.EntryBufferInsertedTextSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method SuggestionEntryBuffer::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" })
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_new" dzl_suggestion_entry_buffer_new :: 
    IO (Ptr SuggestionEntryBuffer)

-- | /No description available in the introspection data./
suggestionEntryBufferNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m SuggestionEntryBuffer
suggestionEntryBufferNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m SuggestionEntryBuffer
suggestionEntryBufferNew  = IO SuggestionEntryBuffer -> m SuggestionEntryBuffer
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SuggestionEntryBuffer -> m SuggestionEntryBuffer)
-> IO SuggestionEntryBuffer -> m SuggestionEntryBuffer
forall a b. (a -> b) -> a -> b
$ do
    Ptr SuggestionEntryBuffer
result <- IO (Ptr SuggestionEntryBuffer)
dzl_suggestion_entry_buffer_new
    Text -> Ptr SuggestionEntryBuffer -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"suggestionEntryBufferNew" Ptr SuggestionEntryBuffer
result
    SuggestionEntryBuffer
result' <- ((ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer)
-> Ptr SuggestionEntryBuffer -> IO SuggestionEntryBuffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr SuggestionEntryBuffer -> SuggestionEntryBuffer
SuggestionEntryBuffer) Ptr SuggestionEntryBuffer
result
    SuggestionEntryBuffer -> IO SuggestionEntryBuffer
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SuggestionEntryBuffer
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method SuggestionEntryBuffer::clear
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_clear" dzl_suggestion_entry_buffer_clear :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    IO ()

-- | /No description available in the introspection data./
suggestionEntryBufferClear ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
    a
    -> m ()
suggestionEntryBufferClear :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
a -> m ()
suggestionEntryBufferClear a
self = 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
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr SuggestionEntryBuffer -> IO ()
dzl_suggestion_entry_buffer_clear Ptr SuggestionEntryBuffer
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferClearMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSuggestionEntryBuffer a) => O.OverloadedMethod SuggestionEntryBufferClearMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferClear

instance O.OverloadedMethodInfo SuggestionEntryBufferClearMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferClear",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferClear"
        })


#endif

-- method SuggestionEntryBuffer::commit
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_commit" dzl_suggestion_entry_buffer_commit :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    IO ()

-- | /No description available in the introspection data./
suggestionEntryBufferCommit ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
    a
    -> m ()
suggestionEntryBufferCommit :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
a -> m ()
suggestionEntryBufferCommit a
self = 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
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr SuggestionEntryBuffer -> IO ()
dzl_suggestion_entry_buffer_commit Ptr SuggestionEntryBuffer
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferCommitMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSuggestionEntryBuffer a) => O.OverloadedMethod SuggestionEntryBufferCommitMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferCommit

instance O.OverloadedMethodInfo SuggestionEntryBufferCommitMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferCommit",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferCommit"
        })


#endif

-- method SuggestionEntryBuffer::get_suggestion
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #DzlSuggestionEntryBuffer"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Dazzle" , name = "Suggestion" })
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_get_suggestion" dzl_suggestion_entry_buffer_get_suggestion :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    IO (Ptr Dazzle.Suggestion.Suggestion)

-- | Gets the t'GI.Dazzle.Objects.Suggestion.Suggestion' that is the current \"preview suffix\" of the
-- text in the entry.
suggestionEntryBufferGetSuggestion ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
    a
    -- ^ /@self@/: a t'GI.Dazzle.Objects.SuggestionEntryBuffer.SuggestionEntryBuffer'
    -> m (Maybe Dazzle.Suggestion.Suggestion)
    -- ^ __Returns:__ An t'GI.Dazzle.Objects.Suggestion.Suggestion' or 'P.Nothing'.
suggestionEntryBufferGetSuggestion :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
a -> m (Maybe Suggestion)
suggestionEntryBufferGetSuggestion a
self = IO (Maybe Suggestion) -> m (Maybe Suggestion)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Suggestion) -> m (Maybe Suggestion))
-> IO (Maybe Suggestion) -> m (Maybe Suggestion)
forall a b. (a -> b) -> a -> b
$ do
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Suggestion
result <- Ptr SuggestionEntryBuffer -> IO (Ptr Suggestion)
dzl_suggestion_entry_buffer_get_suggestion Ptr SuggestionEntryBuffer
self'
    Maybe Suggestion
maybeResult <- Ptr Suggestion
-> (Ptr Suggestion -> IO Suggestion) -> IO (Maybe Suggestion)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Suggestion
result ((Ptr Suggestion -> IO Suggestion) -> IO (Maybe Suggestion))
-> (Ptr Suggestion -> IO Suggestion) -> IO (Maybe Suggestion)
forall a b. (a -> b) -> a -> b
$ \Ptr Suggestion
result' -> do
        Suggestion
result'' <- ((ManagedPtr Suggestion -> Suggestion)
-> Ptr Suggestion -> IO Suggestion
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Suggestion -> Suggestion
Dazzle.Suggestion.Suggestion) Ptr Suggestion
result'
        Suggestion -> IO Suggestion
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Suggestion
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Suggestion -> IO (Maybe Suggestion)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Suggestion
maybeResult

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferGetSuggestionMethodInfo
instance (signature ~ (m (Maybe Dazzle.Suggestion.Suggestion)), MonadIO m, IsSuggestionEntryBuffer a) => O.OverloadedMethod SuggestionEntryBufferGetSuggestionMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferGetSuggestion

instance O.OverloadedMethodInfo SuggestionEntryBufferGetSuggestionMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferGetSuggestion",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferGetSuggestion"
        })


#endif

-- method SuggestionEntryBuffer::get_typed_length
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_get_typed_length" dzl_suggestion_entry_buffer_get_typed_length :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    IO Word32

-- | /No description available in the introspection data./
suggestionEntryBufferGetTypedLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
    a
    -> m Word32
suggestionEntryBufferGetTypedLength :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
a -> m Word32
suggestionEntryBufferGetTypedLength a
self = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr SuggestionEntryBuffer -> IO Word32
dzl_suggestion_entry_buffer_get_typed_length Ptr SuggestionEntryBuffer
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferGetTypedLengthMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSuggestionEntryBuffer a) => O.OverloadedMethod SuggestionEntryBufferGetTypedLengthMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferGetTypedLength

instance O.OverloadedMethodInfo SuggestionEntryBufferGetTypedLengthMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferGetTypedLength",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferGetTypedLength"
        })


#endif

-- method SuggestionEntryBuffer::get_typed_text
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_get_typed_text" dzl_suggestion_entry_buffer_get_typed_text :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    IO CString

-- | /No description available in the introspection data./
suggestionEntryBufferGetTypedText ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
    a
    -> m T.Text
suggestionEntryBufferGetTypedText :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a) =>
a -> m Text
suggestionEntryBufferGetTypedText a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr SuggestionEntryBuffer -> IO CString
dzl_suggestion_entry_buffer_get_typed_text Ptr SuggestionEntryBuffer
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"suggestionEntryBufferGetTypedText" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferGetTypedTextMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSuggestionEntryBuffer a) => O.OverloadedMethod SuggestionEntryBufferGetTypedTextMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferGetTypedText

instance O.OverloadedMethodInfo SuggestionEntryBufferGetTypedTextMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferGetTypedText",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferGetTypedText"
        })


#endif

-- method SuggestionEntryBuffer::set_suggestion
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "Dazzle" , name = "SuggestionEntryBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #DzlSuggestionEntryBuffer"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "suggestion"
--           , argType =
--               TInterface Name { namespace = "Dazzle" , name = "Suggestion" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "An #DzlSuggestion or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dzl_suggestion_entry_buffer_set_suggestion" dzl_suggestion_entry_buffer_set_suggestion :: 
    Ptr SuggestionEntryBuffer ->            -- self : TInterface (Name {namespace = "Dazzle", name = "SuggestionEntryBuffer"})
    Ptr Dazzle.Suggestion.Suggestion ->     -- suggestion : TInterface (Name {namespace = "Dazzle", name = "Suggestion"})
    IO ()

-- | Sets the current suggestion for the entry buffer.
-- 
-- The suggestion is used to get a potential suffix for the current entry
-- text. This allows the entry to show \"preview text\" after the entered
-- text for what might be inserted should they activate the current item.
suggestionEntryBufferSetSuggestion ::
    (B.CallStack.HasCallStack, MonadIO m, IsSuggestionEntryBuffer a, Dazzle.Suggestion.IsSuggestion b) =>
    a
    -- ^ /@self@/: a t'GI.Dazzle.Objects.SuggestionEntryBuffer.SuggestionEntryBuffer'
    -> Maybe (b)
    -- ^ /@suggestion@/: An t'GI.Dazzle.Objects.Suggestion.Suggestion' or 'P.Nothing'
    -> m ()
suggestionEntryBufferSetSuggestion :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSuggestionEntryBuffer a,
 IsSuggestion b) =>
a -> Maybe b -> m ()
suggestionEntryBufferSetSuggestion a
self Maybe b
suggestion = 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
    Ptr SuggestionEntryBuffer
self' <- a -> IO (Ptr SuggestionEntryBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Suggestion
maybeSuggestion <- case Maybe b
suggestion of
        Maybe b
Nothing -> Ptr Suggestion -> IO (Ptr Suggestion)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Suggestion
forall a. Ptr a
nullPtr
        Just b
jSuggestion -> do
            Ptr Suggestion
jSuggestion' <- b -> IO (Ptr Suggestion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jSuggestion
            Ptr Suggestion -> IO (Ptr Suggestion)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Suggestion
jSuggestion'
    Ptr SuggestionEntryBuffer -> Ptr Suggestion -> IO ()
dzl_suggestion_entry_buffer_set_suggestion Ptr SuggestionEntryBuffer
self' Ptr Suggestion
maybeSuggestion
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
suggestion b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SuggestionEntryBufferSetSuggestionMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsSuggestionEntryBuffer a, Dazzle.Suggestion.IsSuggestion b) => O.OverloadedMethod SuggestionEntryBufferSetSuggestionMethodInfo a signature where
    overloadedMethod = suggestionEntryBufferSetSuggestion

instance O.OverloadedMethodInfo SuggestionEntryBufferSetSuggestionMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Dazzle.Objects.SuggestionEntryBuffer.suggestionEntryBufferSetSuggestion",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-dazzle-1.0.2/docs/GI-Dazzle-Objects-SuggestionEntryBuffer.html#v:suggestionEntryBufferSetSuggestion"
        })


#endif