{- |
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.GutterRendererText
    ( 

-- * Exported types
    GutterRendererText(..)                  ,
    IsGutterRendererText                    ,
    toGutterRendererText                    ,
    noGutterRendererText                    ,


 -- * Methods
-- ** measure #method:measure#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextMeasureMethodInfo     ,
#endif
    gutterRendererTextMeasure               ,


-- ** measureMarkup #method:measureMarkup#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextMeasureMarkupMethodInfo,
#endif
    gutterRendererTextMeasureMarkup         ,


-- ** new #method:new#
    gutterRendererTextNew                   ,


-- ** setMarkup #method:setMarkup#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextSetMarkupMethodInfo   ,
#endif
    gutterRendererTextSetMarkup             ,


-- ** setText #method:setText#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextSetTextMethodInfo     ,
#endif
    gutterRendererTextSetText               ,




 -- * Properties
-- ** markup #attr:markup#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextMarkupPropertyInfo    ,
#endif
    clearGutterRendererTextMarkup           ,
    constructGutterRendererTextMarkup       ,
    getGutterRendererTextMarkup             ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    gutterRendererTextMarkup                ,
#endif
    setGutterRendererTextMarkup             ,


-- ** text #attr:text#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    GutterRendererTextTextPropertyInfo      ,
#endif
    clearGutterRendererTextText             ,
    constructGutterRendererTextText         ,
    getGutterRendererTextText               ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    gutterRendererTextText                  ,
#endif
    setGutterRendererTextText               ,




    ) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.GtkSource.Objects.GutterRenderer as GtkSource.GutterRenderer

newtype GutterRendererText = GutterRendererText (ManagedPtr GutterRendererText)
foreign import ccall "gtk_source_gutter_renderer_text_get_type"
    c_gtk_source_gutter_renderer_text_get_type :: IO GType

instance GObject GutterRendererText where
    gobjectType _ = c_gtk_source_gutter_renderer_text_get_type
    

class GObject o => IsGutterRendererText o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError GutterRendererText a) =>
    IsGutterRendererText a
#endif
instance IsGutterRendererText GutterRendererText
instance GtkSource.GutterRenderer.IsGutterRenderer GutterRendererText
instance GObject.Object.IsObject GutterRendererText

toGutterRendererText :: (MonadIO m, IsGutterRendererText o) => o -> m GutterRendererText
toGutterRendererText = liftIO . unsafeCastTo GutterRendererText

noGutterRendererText :: Maybe GutterRendererText
noGutterRendererText = Nothing

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveGutterRendererTextMethod (t :: Symbol) (o :: *) :: * where
    ResolveGutterRendererTextMethod "activate" o = GtkSource.GutterRenderer.GutterRendererActivateMethodInfo
    ResolveGutterRendererTextMethod "begin" o = GtkSource.GutterRenderer.GutterRendererBeginMethodInfo
    ResolveGutterRendererTextMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveGutterRendererTextMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveGutterRendererTextMethod "draw" o = GtkSource.GutterRenderer.GutterRendererDrawMethodInfo
    ResolveGutterRendererTextMethod "end" o = GtkSource.GutterRenderer.GutterRendererEndMethodInfo
    ResolveGutterRendererTextMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveGutterRendererTextMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveGutterRendererTextMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveGutterRendererTextMethod "measure" o = GutterRendererTextMeasureMethodInfo
    ResolveGutterRendererTextMethod "measureMarkup" o = GutterRendererTextMeasureMarkupMethodInfo
    ResolveGutterRendererTextMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveGutterRendererTextMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveGutterRendererTextMethod "queryActivatable" o = GtkSource.GutterRenderer.GutterRendererQueryActivatableMethodInfo
    ResolveGutterRendererTextMethod "queryData" o = GtkSource.GutterRenderer.GutterRendererQueryDataMethodInfo
    ResolveGutterRendererTextMethod "queryTooltip" o = GtkSource.GutterRenderer.GutterRendererQueryTooltipMethodInfo
    ResolveGutterRendererTextMethod "queueDraw" o = GtkSource.GutterRenderer.GutterRendererQueueDrawMethodInfo
    ResolveGutterRendererTextMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveGutterRendererTextMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveGutterRendererTextMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveGutterRendererTextMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveGutterRendererTextMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveGutterRendererTextMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveGutterRendererTextMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveGutterRendererTextMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveGutterRendererTextMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveGutterRendererTextMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveGutterRendererTextMethod "getAlignment" o = GtkSource.GutterRenderer.GutterRendererGetAlignmentMethodInfo
    ResolveGutterRendererTextMethod "getAlignmentMode" o = GtkSource.GutterRenderer.GutterRendererGetAlignmentModeMethodInfo
    ResolveGutterRendererTextMethod "getBackground" o = GtkSource.GutterRenderer.GutterRendererGetBackgroundMethodInfo
    ResolveGutterRendererTextMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveGutterRendererTextMethod "getPadding" o = GtkSource.GutterRenderer.GutterRendererGetPaddingMethodInfo
    ResolveGutterRendererTextMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveGutterRendererTextMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveGutterRendererTextMethod "getSize" o = GtkSource.GutterRenderer.GutterRendererGetSizeMethodInfo
    ResolveGutterRendererTextMethod "getView" o = GtkSource.GutterRenderer.GutterRendererGetViewMethodInfo
    ResolveGutterRendererTextMethod "getVisible" o = GtkSource.GutterRenderer.GutterRendererGetVisibleMethodInfo
    ResolveGutterRendererTextMethod "getWindowType" o = GtkSource.GutterRenderer.GutterRendererGetWindowTypeMethodInfo
    ResolveGutterRendererTextMethod "setAlignment" o = GtkSource.GutterRenderer.GutterRendererSetAlignmentMethodInfo
    ResolveGutterRendererTextMethod "setAlignmentMode" o = GtkSource.GutterRenderer.GutterRendererSetAlignmentModeMethodInfo
    ResolveGutterRendererTextMethod "setBackground" o = GtkSource.GutterRenderer.GutterRendererSetBackgroundMethodInfo
    ResolveGutterRendererTextMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveGutterRendererTextMethod "setMarkup" o = GutterRendererTextSetMarkupMethodInfo
    ResolveGutterRendererTextMethod "setPadding" o = GtkSource.GutterRenderer.GutterRendererSetPaddingMethodInfo
    ResolveGutterRendererTextMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveGutterRendererTextMethod "setSize" o = GtkSource.GutterRenderer.GutterRendererSetSizeMethodInfo
    ResolveGutterRendererTextMethod "setText" o = GutterRendererTextSetTextMethodInfo
    ResolveGutterRendererTextMethod "setVisible" o = GtkSource.GutterRenderer.GutterRendererSetVisibleMethodInfo
    ResolveGutterRendererTextMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveGutterRendererTextMethod t GutterRendererText, O.MethodInfo info GutterRendererText p) => O.IsLabelProxy t (GutterRendererText -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveGutterRendererTextMethod t GutterRendererText, O.MethodInfo info GutterRendererText p) => O.IsLabel t (GutterRendererText -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif

#endif

-- VVV Prop "markup"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]
   -- Nullable: (Nothing,Nothing)

getGutterRendererTextMarkup :: (MonadIO m, IsGutterRendererText o) => o -> m (Maybe T.Text)
getGutterRendererTextMarkup obj = liftIO $ getObjectPropertyString obj "markup"

setGutterRendererTextMarkup :: (MonadIO m, IsGutterRendererText o) => o -> T.Text -> m ()
setGutterRendererTextMarkup obj val = liftIO $ setObjectPropertyString obj "markup" (Just val)

constructGutterRendererTextMarkup :: (IsGutterRendererText o) => T.Text -> IO (GValueConstruct o)
constructGutterRendererTextMarkup val = constructObjectPropertyString "markup" (Just val)

clearGutterRendererTextMarkup :: (MonadIO m, IsGutterRendererText o) => o -> m ()
clearGutterRendererTextMarkup obj = liftIO $ setObjectPropertyString obj "markup" (Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextMarkupPropertyInfo
instance AttrInfo GutterRendererTextMarkupPropertyInfo where
    type AttrAllowedOps GutterRendererTextMarkupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint GutterRendererTextMarkupPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint GutterRendererTextMarkupPropertyInfo = IsGutterRendererText
    type AttrGetType GutterRendererTextMarkupPropertyInfo = (Maybe T.Text)
    type AttrLabel GutterRendererTextMarkupPropertyInfo = "markup"
    type AttrOrigin GutterRendererTextMarkupPropertyInfo = GutterRendererText
    attrGet _ = getGutterRendererTextMarkup
    attrSet _ = setGutterRendererTextMarkup
    attrConstruct _ = constructGutterRendererTextMarkup
    attrClear _ = clearGutterRendererTextMarkup
#endif

-- VVV Prop "text"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]
   -- Nullable: (Nothing,Nothing)

getGutterRendererTextText :: (MonadIO m, IsGutterRendererText o) => o -> m (Maybe T.Text)
getGutterRendererTextText obj = liftIO $ getObjectPropertyString obj "text"

setGutterRendererTextText :: (MonadIO m, IsGutterRendererText o) => o -> T.Text -> m ()
setGutterRendererTextText obj val = liftIO $ setObjectPropertyString obj "text" (Just val)

constructGutterRendererTextText :: (IsGutterRendererText o) => T.Text -> IO (GValueConstruct o)
constructGutterRendererTextText val = constructObjectPropertyString "text" (Just val)

clearGutterRendererTextText :: (MonadIO m, IsGutterRendererText o) => o -> m ()
clearGutterRendererTextText obj = liftIO $ setObjectPropertyString obj "text" (Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextTextPropertyInfo
instance AttrInfo GutterRendererTextTextPropertyInfo where
    type AttrAllowedOps GutterRendererTextTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint GutterRendererTextTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint GutterRendererTextTextPropertyInfo = IsGutterRendererText
    type AttrGetType GutterRendererTextTextPropertyInfo = (Maybe T.Text)
    type AttrLabel GutterRendererTextTextPropertyInfo = "text"
    type AttrOrigin GutterRendererTextTextPropertyInfo = GutterRendererText
    attrGet _ = getGutterRendererTextText
    attrSet _ = setGutterRendererTextText
    attrConstruct _ = constructGutterRendererTextText
    attrClear _ = clearGutterRendererTextText
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList GutterRendererText
type instance O.AttributeList GutterRendererText = GutterRendererTextAttributeList
type GutterRendererTextAttributeList = ('[ '("alignmentMode", GtkSource.GutterRenderer.GutterRendererAlignmentModePropertyInfo), '("backgroundRgba", GtkSource.GutterRenderer.GutterRendererBackgroundRgbaPropertyInfo), '("backgroundSet", GtkSource.GutterRenderer.GutterRendererBackgroundSetPropertyInfo), '("markup", GutterRendererTextMarkupPropertyInfo), '("size", GtkSource.GutterRenderer.GutterRendererSizePropertyInfo), '("text", GutterRendererTextTextPropertyInfo), '("view", GtkSource.GutterRenderer.GutterRendererViewPropertyInfo), '("visible", GtkSource.GutterRenderer.GutterRendererVisiblePropertyInfo), '("windowType", GtkSource.GutterRenderer.GutterRendererWindowTypePropertyInfo), '("xalign", GtkSource.GutterRenderer.GutterRendererXalignPropertyInfo), '("xpad", GtkSource.GutterRenderer.GutterRendererXpadPropertyInfo), '("yalign", GtkSource.GutterRenderer.GutterRendererYalignPropertyInfo), '("ypad", GtkSource.GutterRenderer.GutterRendererYpadPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
gutterRendererTextMarkup :: AttrLabelProxy "markup"
gutterRendererTextMarkup = AttrLabelProxy

gutterRendererTextText :: AttrLabelProxy "text"
gutterRendererTextText = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type instance O.SignalList GutterRendererText = GutterRendererTextSignalList
type GutterRendererTextSignalList = ('[ '("activate", GtkSource.GutterRenderer.GutterRendererActivateSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("queryActivatable", GtkSource.GutterRenderer.GutterRendererQueryActivatableSignalInfo), '("queryData", GtkSource.GutterRenderer.GutterRendererQueryDataSignalInfo), '("queryTooltip", GtkSource.GutterRenderer.GutterRendererQueryTooltipSignalInfo), '("queueDraw", GtkSource.GutterRenderer.GutterRendererQueueDrawSignalInfo)] :: [(Symbol, *)])

#endif

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

foreign import ccall "gtk_source_gutter_renderer_text_new" gtk_source_gutter_renderer_text_new :: 
    IO (Ptr GutterRendererText)

{- |
Create a new 'GI.GtkSource.Objects.GutterRendererText.GutterRendererText'.
-}
gutterRendererTextNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m GutterRendererText
    {- ^ __Returns:__ A 'GI.GtkSource.Objects.GutterRenderer.GutterRenderer' -}
gutterRendererTextNew  = liftIO $ do
    result <- gtk_source_gutter_renderer_text_new
    checkUnexpectedReturnNULL "gutterRendererTextNew" result
    result' <- (wrapObject GutterRendererText) result
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif

-- method GutterRendererText::measure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceGutterRendererText.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the text to measure.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the width of the text in pixels,\n  or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the height of the text in\n  pixels, or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_renderer_text_measure" gtk_source_gutter_renderer_text_measure :: 
    Ptr GutterRendererText ->               -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"})
    CString ->                              -- text : TBasicType TUTF8
    Ptr Int32 ->                            -- width : TBasicType TInt
    Ptr Int32 ->                            -- height : TBasicType TInt
    IO ()

{- |
Measures the text provided using the pango layout used by the
'GI.GtkSource.Objects.GutterRendererText.GutterRendererText'.
-}
gutterRendererTextMeasure ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutterRendererText a) =>
    a
    {- ^ /@renderer@/: a 'GI.GtkSource.Objects.GutterRendererText.GutterRendererText'. -}
    -> T.Text
    {- ^ /@text@/: the text to measure. -}
    -> m ((Int32, Int32))
gutterRendererTextMeasure renderer text = liftIO $ do
    renderer' <- unsafeManagedPtrCastPtr renderer
    text' <- textToCString text
    width <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    gtk_source_gutter_renderer_text_measure renderer' text' width height
    width' <- peek width
    height' <- peek height
    touchManagedPtr renderer
    freeMem text'
    freeMem width
    freeMem height
    return (width', height')

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextMeasureMethodInfo
instance (signature ~ (T.Text -> m ((Int32, Int32))), MonadIO m, IsGutterRendererText a) => O.MethodInfo GutterRendererTextMeasureMethodInfo a signature where
    overloadedMethod _ = gutterRendererTextMeasure

#endif

-- method GutterRendererText::measure_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceGutterRendererText.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the pango markup to measure.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the width of the text in pixels,\n  or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the height of the text in\n  pixels, or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_renderer_text_measure_markup" gtk_source_gutter_renderer_text_measure_markup :: 
    Ptr GutterRendererText ->               -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"})
    CString ->                              -- markup : TBasicType TUTF8
    Ptr Int32 ->                            -- width : TBasicType TInt
    Ptr Int32 ->                            -- height : TBasicType TInt
    IO ()

{- |
Measures the pango markup provided using the pango layout used by the
'GI.GtkSource.Objects.GutterRendererText.GutterRendererText'.
-}
gutterRendererTextMeasureMarkup ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutterRendererText a) =>
    a
    {- ^ /@renderer@/: a 'GI.GtkSource.Objects.GutterRendererText.GutterRendererText'. -}
    -> T.Text
    {- ^ /@markup@/: the pango markup to measure. -}
    -> m ((Int32, Int32))
gutterRendererTextMeasureMarkup renderer markup = liftIO $ do
    renderer' <- unsafeManagedPtrCastPtr renderer
    markup' <- textToCString markup
    width <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    gtk_source_gutter_renderer_text_measure_markup renderer' markup' width height
    width' <- peek width
    height' <- peek height
    touchManagedPtr renderer
    freeMem markup'
    freeMem width
    freeMem height
    return (width', height')

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextMeasureMarkupMethodInfo
instance (signature ~ (T.Text -> m ((Int32, Int32))), MonadIO m, IsGutterRendererText a) => O.MethodInfo GutterRendererTextMeasureMarkupMethodInfo a signature where
    overloadedMethod _ = gutterRendererTextMeasureMarkup

#endif

-- method GutterRendererText::set_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_renderer_text_set_markup" gtk_source_gutter_renderer_text_set_markup :: 
    Ptr GutterRendererText ->               -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"})
    CString ->                              -- markup : TBasicType TUTF8
    Int32 ->                                -- length : TBasicType TInt
    IO ()

{- |
/No description available in the introspection data./
-}
gutterRendererTextSetMarkup ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutterRendererText a) =>
    a
    -> T.Text
    -> Int32
    -> m ()
gutterRendererTextSetMarkup renderer markup length_ = liftIO $ do
    renderer' <- unsafeManagedPtrCastPtr renderer
    markup' <- textToCString markup
    gtk_source_gutter_renderer_text_set_markup renderer' markup' length_
    touchManagedPtr renderer
    freeMem markup'
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextSetMarkupMethodInfo
instance (signature ~ (T.Text -> Int32 -> m ()), MonadIO m, IsGutterRendererText a) => O.MethodInfo GutterRendererTextSetMarkupMethodInfo a signature where
    overloadedMethod _ = gutterRendererTextSetMarkup

#endif

-- method GutterRendererText::set_text
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_renderer_text_set_text" gtk_source_gutter_renderer_text_set_text :: 
    Ptr GutterRendererText ->               -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRendererText"})
    CString ->                              -- text : TBasicType TUTF8
    Int32 ->                                -- length : TBasicType TInt
    IO ()

{- |
/No description available in the introspection data./
-}
gutterRendererTextSetText ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutterRendererText a) =>
    a
    -> T.Text
    -> Int32
    -> m ()
gutterRendererTextSetText renderer text length_ = liftIO $ do
    renderer' <- unsafeManagedPtrCastPtr renderer
    text' <- textToCString text
    gtk_source_gutter_renderer_text_set_text renderer' text' length_
    touchManagedPtr renderer
    freeMem text'
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data GutterRendererTextSetTextMethodInfo
instance (signature ~ (T.Text -> Int32 -> m ()), MonadIO m, IsGutterRendererText a) => O.MethodInfo GutterRendererTextSetTextMethodInfo a signature where
    overloadedMethod _ = gutterRendererTextSetText

#endif