{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Gutter object for [class/@view@/].
-- 
-- The @GtkSourceGutter@ object represents the left or right gutter of the text
-- view. It is used by [class/@view@/] to draw the line numbers and
-- [class/@mark@/]s that might be present on a line. By packing
-- additional [class/@gutterRenderer@/] objects in the gutter, you can extend the
-- gutter with your own custom drawings.
-- 
-- To get a @GtkSourceGutter@, use the [method/@view@/.get_gutter] function.
-- 
-- The gutter works very much the same way as cells rendered in a t'GI.Gtk.Objects.TreeView.TreeView'.
-- The concept is similar, with the exception that the gutter does not have an
-- underlying t'GI.Gtk.Interfaces.TreeModel.TreeModel'. The builtin line number renderer is at position
-- 'GI.GtkSource.Enums.ViewGutterPositionLines' (-30) and the marks renderer is at
-- 'GI.GtkSource.Enums.ViewGutterPositionMarks' (-20). The gutter sorts the renderers
-- in ascending order, from left to right. So the marks are displayed on the
-- right of the line numbers.

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

module GI.GtkSource.Objects.Gutter
    ( 

-- * Exported types
    Gutter(..)                              ,
    IsGutter                                ,
    toGutter                                ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [actionSetEnabled]("GI.Gtk.Objects.Widget#g:method:actionSetEnabled"), [activate]("GI.Gtk.Objects.Widget#g:method:activate"), [activateAction]("GI.Gtk.Objects.Widget#g:method:activateAction"), [activateDefault]("GI.Gtk.Objects.Widget#g:method:activateDefault"), [addController]("GI.Gtk.Objects.Widget#g:method:addController"), [addCssClass]("GI.Gtk.Objects.Widget#g:method:addCssClass"), [addMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:addMnemonicLabel"), [addTickCallback]("GI.Gtk.Objects.Widget#g:method:addTickCallback"), [allocate]("GI.Gtk.Objects.Widget#g:method:allocate"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [childFocus]("GI.Gtk.Objects.Widget#g:method:childFocus"), [computeBounds]("GI.Gtk.Objects.Widget#g:method:computeBounds"), [computeExpand]("GI.Gtk.Objects.Widget#g:method:computeExpand"), [computePoint]("GI.Gtk.Objects.Widget#g:method:computePoint"), [computeTransform]("GI.Gtk.Objects.Widget#g:method:computeTransform"), [contains]("GI.Gtk.Objects.Widget#g:method:contains"), [createPangoContext]("GI.Gtk.Objects.Widget#g:method:createPangoContext"), [createPangoLayout]("GI.Gtk.Objects.Widget#g:method:createPangoLayout"), [disposeTemplate]("GI.Gtk.Objects.Widget#g:method:disposeTemplate"), [dragCheckThreshold]("GI.Gtk.Objects.Widget#g:method:dragCheckThreshold"), [errorBell]("GI.Gtk.Objects.Widget#g:method:errorBell"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [grabFocus]("GI.Gtk.Objects.Widget#g:method:grabFocus"), [hasCssClass]("GI.Gtk.Objects.Widget#g:method:hasCssClass"), [hasDefault]("GI.Gtk.Objects.Widget#g:method:hasDefault"), [hasFocus]("GI.Gtk.Objects.Widget#g:method:hasFocus"), [hasVisibleFocus]("GI.Gtk.Objects.Widget#g:method:hasVisibleFocus"), [hide]("GI.Gtk.Objects.Widget#g:method:hide"), [inDestruction]("GI.Gtk.Objects.Widget#g:method:inDestruction"), [initTemplate]("GI.Gtk.Objects.Widget#g:method:initTemplate"), [insert]("GI.GtkSource.Objects.Gutter#g:method:insert"), [insertActionGroup]("GI.Gtk.Objects.Widget#g:method:insertActionGroup"), [insertAfter]("GI.Gtk.Objects.Widget#g:method:insertAfter"), [insertBefore]("GI.Gtk.Objects.Widget#g:method:insertBefore"), [isAncestor]("GI.Gtk.Objects.Widget#g:method:isAncestor"), [isDrawable]("GI.Gtk.Objects.Widget#g:method:isDrawable"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isFocus]("GI.Gtk.Objects.Widget#g:method:isFocus"), [isSensitive]("GI.Gtk.Objects.Widget#g:method:isSensitive"), [isVisible]("GI.Gtk.Objects.Widget#g:method:isVisible"), [keynavFailed]("GI.Gtk.Objects.Widget#g:method:keynavFailed"), [listMnemonicLabels]("GI.Gtk.Objects.Widget#g:method:listMnemonicLabels"), [map]("GI.Gtk.Objects.Widget#g:method:map"), [measure]("GI.Gtk.Objects.Widget#g:method:measure"), [mnemonicActivate]("GI.Gtk.Objects.Widget#g:method:mnemonicActivate"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [observeChildren]("GI.Gtk.Objects.Widget#g:method:observeChildren"), [observeControllers]("GI.Gtk.Objects.Widget#g:method:observeControllers"), [pick]("GI.Gtk.Objects.Widget#g:method:pick"), [queueAllocate]("GI.Gtk.Objects.Widget#g:method:queueAllocate"), [queueDraw]("GI.Gtk.Objects.Widget#g:method:queueDraw"), [queueResize]("GI.Gtk.Objects.Widget#g:method:queueResize"), [realize]("GI.Gtk.Objects.Widget#g:method:realize"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [remove]("GI.GtkSource.Objects.Gutter#g:method:remove"), [removeController]("GI.Gtk.Objects.Widget#g:method:removeController"), [removeCssClass]("GI.Gtk.Objects.Widget#g:method:removeCssClass"), [removeMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:removeMnemonicLabel"), [removeTickCallback]("GI.Gtk.Objects.Widget#g:method:removeTickCallback"), [reorder]("GI.GtkSource.Objects.Gutter#g:method:reorder"), [resetProperty]("GI.Gtk.Interfaces.Accessible#g:method:resetProperty"), [resetRelation]("GI.Gtk.Interfaces.Accessible#g:method:resetRelation"), [resetState]("GI.Gtk.Interfaces.Accessible#g:method:resetState"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [shouldLayout]("GI.Gtk.Objects.Widget#g:method:shouldLayout"), [show]("GI.Gtk.Objects.Widget#g:method:show"), [sizeAllocate]("GI.Gtk.Objects.Widget#g:method:sizeAllocate"), [snapshotChild]("GI.Gtk.Objects.Widget#g:method:snapshotChild"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [translateCoordinates]("GI.Gtk.Objects.Widget#g:method:translateCoordinates"), [triggerTooltipQuery]("GI.Gtk.Objects.Widget#g:method:triggerTooltipQuery"), [unmap]("GI.Gtk.Objects.Widget#g:method:unmap"), [unparent]("GI.Gtk.Objects.Widget#g:method:unparent"), [unrealize]("GI.Gtk.Objects.Widget#g:method:unrealize"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unsetStateFlags]("GI.Gtk.Objects.Widget#g:method:unsetStateFlags"), [updateNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:updateNextAccessibleSibling"), [updateProperty]("GI.Gtk.Interfaces.Accessible#g:method:updateProperty"), [updateRelation]("GI.Gtk.Interfaces.Accessible#g:method:updateRelation"), [updateState]("GI.Gtk.Interfaces.Accessible#g:method:updateState"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleParent"), [getAccessibleRole]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleRole"), [getAllocatedBaseline]("GI.Gtk.Objects.Widget#g:method:getAllocatedBaseline"), [getAllocatedHeight]("GI.Gtk.Objects.Widget#g:method:getAllocatedHeight"), [getAllocatedWidth]("GI.Gtk.Objects.Widget#g:method:getAllocatedWidth"), [getAllocation]("GI.Gtk.Objects.Widget#g:method:getAllocation"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getAtContext]("GI.Gtk.Interfaces.Accessible#g:method:getAtContext"), [getBounds]("GI.Gtk.Interfaces.Accessible#g:method:getBounds"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getColor]("GI.Gtk.Objects.Widget#g:method:getColor"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [getCursor]("GI.Gtk.Objects.Widget#g:method:getCursor"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDirection]("GI.Gtk.Objects.Widget#g:method:getDirection"), [getDisplay]("GI.Gtk.Objects.Widget#g:method:getDisplay"), [getFirstAccessibleChild]("GI.Gtk.Interfaces.Accessible#g:method:getFirstAccessibleChild"), [getFirstChild]("GI.Gtk.Objects.Widget#g:method:getFirstChild"), [getFocusChild]("GI.Gtk.Objects.Widget#g:method:getFocusChild"), [getFocusOnClick]("GI.Gtk.Objects.Widget#g:method:getFocusOnClick"), [getFocusable]("GI.Gtk.Objects.Widget#g:method:getFocusable"), [getFontMap]("GI.Gtk.Objects.Widget#g:method:getFontMap"), [getFontOptions]("GI.Gtk.Objects.Widget#g:method:getFontOptions"), [getFrameClock]("GI.Gtk.Objects.Widget#g:method:getFrameClock"), [getHalign]("GI.Gtk.Objects.Widget#g:method:getHalign"), [getHasTooltip]("GI.Gtk.Objects.Widget#g:method:getHasTooltip"), [getHeight]("GI.Gtk.Objects.Widget#g:method:getHeight"), [getHexpand]("GI.Gtk.Objects.Widget#g:method:getHexpand"), [getHexpandSet]("GI.Gtk.Objects.Widget#g:method:getHexpandSet"), [getLastChild]("GI.Gtk.Objects.Widget#g:method:getLastChild"), [getLayoutManager]("GI.Gtk.Objects.Widget#g:method:getLayoutManager"), [getMapped]("GI.Gtk.Objects.Widget#g:method:getMapped"), [getMarginBottom]("GI.Gtk.Objects.Widget#g:method:getMarginBottom"), [getMarginEnd]("GI.Gtk.Objects.Widget#g:method:getMarginEnd"), [getMarginStart]("GI.Gtk.Objects.Widget#g:method:getMarginStart"), [getMarginTop]("GI.Gtk.Objects.Widget#g:method:getMarginTop"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:getNextAccessibleSibling"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPlatformState]("GI.Gtk.Interfaces.Accessible#g:method:getPlatformState"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRealized]("GI.Gtk.Objects.Widget#g:method:getRealized"), [getReceivesDefault]("GI.Gtk.Objects.Widget#g:method:getReceivesDefault"), [getRequestMode]("GI.Gtk.Objects.Widget#g:method:getRequestMode"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getSensitive]("GI.Gtk.Objects.Widget#g:method:getSensitive"), [getSettings]("GI.Gtk.Objects.Widget#g:method:getSettings"), [getSize]("GI.Gtk.Objects.Widget#g:method:getSize"), [getSizeRequest]("GI.Gtk.Objects.Widget#g:method:getSizeRequest"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getTemplateChild]("GI.Gtk.Objects.Widget#g:method:getTemplateChild"), [getTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:getTooltipMarkup"), [getTooltipText]("GI.Gtk.Objects.Widget#g:method:getTooltipText"), [getValign]("GI.Gtk.Objects.Widget#g:method:getValign"), [getVexpand]("GI.Gtk.Objects.Widget#g:method:getVexpand"), [getVexpandSet]("GI.Gtk.Objects.Widget#g:method:getVexpandSet"), [getView]("GI.GtkSource.Objects.Gutter#g:method:getView"), [getVisible]("GI.Gtk.Objects.Widget#g:method:getVisible"), [getWidth]("GI.Gtk.Objects.Widget#g:method:getWidth").
-- 
-- ==== Setters
-- [setAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:setAccessibleParent"), [setCanFocus]("GI.Gtk.Objects.Widget#g:method:setCanFocus"), [setCanTarget]("GI.Gtk.Objects.Widget#g:method:setCanTarget"), [setChildVisible]("GI.Gtk.Objects.Widget#g:method:setChildVisible"), [setCssClasses]("GI.Gtk.Objects.Widget#g:method:setCssClasses"), [setCursor]("GI.Gtk.Objects.Widget#g:method:setCursor"), [setCursorFromName]("GI.Gtk.Objects.Widget#g:method:setCursorFromName"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDirection]("GI.Gtk.Objects.Widget#g:method:setDirection"), [setFocusChild]("GI.Gtk.Objects.Widget#g:method:setFocusChild"), [setFocusOnClick]("GI.Gtk.Objects.Widget#g:method:setFocusOnClick"), [setFocusable]("GI.Gtk.Objects.Widget#g:method:setFocusable"), [setFontMap]("GI.Gtk.Objects.Widget#g:method:setFontMap"), [setFontOptions]("GI.Gtk.Objects.Widget#g:method:setFontOptions"), [setHalign]("GI.Gtk.Objects.Widget#g:method:setHalign"), [setHasTooltip]("GI.Gtk.Objects.Widget#g:method:setHasTooltip"), [setHexpand]("GI.Gtk.Objects.Widget#g:method:setHexpand"), [setHexpandSet]("GI.Gtk.Objects.Widget#g:method:setHexpandSet"), [setLayoutManager]("GI.Gtk.Objects.Widget#g:method:setLayoutManager"), [setMarginBottom]("GI.Gtk.Objects.Widget#g:method:setMarginBottom"), [setMarginEnd]("GI.Gtk.Objects.Widget#g:method:setMarginEnd"), [setMarginStart]("GI.Gtk.Objects.Widget#g:method:setMarginStart"), [setMarginTop]("GI.Gtk.Objects.Widget#g:method:setMarginTop"), [setName]("GI.Gtk.Objects.Widget#g:method:setName"), [setOpacity]("GI.Gtk.Objects.Widget#g:method:setOpacity"), [setOverflow]("GI.Gtk.Objects.Widget#g:method:setOverflow"), [setParent]("GI.Gtk.Objects.Widget#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setReceivesDefault]("GI.Gtk.Objects.Widget#g:method:setReceivesDefault"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setStateFlags]("GI.Gtk.Objects.Widget#g:method:setStateFlags"), [setTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:setTooltipMarkup"), [setTooltipText]("GI.Gtk.Objects.Widget#g:method:setTooltipText"), [setValign]("GI.Gtk.Objects.Widget#g:method:setValign"), [setVexpand]("GI.Gtk.Objects.Widget#g:method:setVexpand"), [setVexpandSet]("GI.Gtk.Objects.Widget#g:method:setVexpandSet"), [setVisible]("GI.Gtk.Objects.Widget#g:method:setVisible").

#if defined(ENABLE_OVERLOADING)
    ResolveGutterMethod                     ,
#endif

-- ** getView #method:getView#

#if defined(ENABLE_OVERLOADING)
    GutterGetViewMethodInfo                 ,
#endif
    gutterGetView                           ,


-- ** insert #method:insert#

#if defined(ENABLE_OVERLOADING)
    GutterInsertMethodInfo                  ,
#endif
    gutterInsert                            ,


-- ** remove #method:remove#

#if defined(ENABLE_OVERLOADING)
    GutterRemoveMethodInfo                  ,
#endif
    gutterRemove                            ,


-- ** reorder #method:reorder#

#if defined(ENABLE_OVERLOADING)
    GutterReorderMethodInfo                 ,
#endif
    gutterReorder                           ,




 -- * Properties


-- ** view #attr:view#
-- | The t'GI.GtkSource.Objects.View.View' of the gutter.

#if defined(ENABLE_OVERLOADING)
    GutterViewPropertyInfo                  ,
#endif
    constructGutterView                     ,
    getGutterView                           ,
#if defined(ENABLE_OVERLOADING)
    gutterView                              ,
#endif


-- ** windowType #attr:windowType#
-- | The text window type on which the window is placed.

#if defined(ENABLE_OVERLOADING)
    GutterWindowTypePropertyInfo            ,
#endif
    constructGutterWindowType               ,
    getGutterWindowType                     ,
#if defined(ENABLE_OVERLOADING)
    gutterWindowType                        ,
#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 GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Enums as Gtk.Enums
import qualified GI.Gtk.Interfaces.Accessible as Gtk.Accessible
import qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import qualified GI.Gtk.Objects.Widget as Gtk.Widget
import {-# SOURCE #-} qualified GI.GtkSource.Objects.GutterRenderer as GtkSource.GutterRenderer
import {-# SOURCE #-} qualified GI.GtkSource.Objects.View as GtkSource.View

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

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

foreign import ccall "gtk_source_gutter_get_type"
    c_gtk_source_gutter_get_type :: IO B.Types.GType

instance B.Types.TypedObject Gutter where
    glibType :: IO GType
glibType = IO GType
c_gtk_source_gutter_get_type

instance B.Types.GObject Gutter

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

instance O.HasParentTypes Gutter
type instance O.ParentTypes Gutter = '[Gtk.Widget.Widget, GObject.Object.Object, Gtk.Accessible.Accessible, Gtk.Buildable.Buildable, Gtk.ConstraintTarget.ConstraintTarget]

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

-- | Convert 'Gutter' 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 Gutter) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_source_gutter_get_type
    gvalueSet_ :: Ptr GValue -> Maybe Gutter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Gutter
P.Nothing = Ptr GValue -> Ptr Gutter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Gutter
forall a. Ptr a
FP.nullPtr :: FP.Ptr Gutter)
    gvalueSet_ Ptr GValue
gv (P.Just Gutter
obj) = Gutter -> (Ptr Gutter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Gutter
obj (Ptr GValue -> Ptr Gutter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe Gutter)
gvalueGet_ Ptr GValue
gv = do
        Ptr Gutter
ptr <- Ptr GValue -> IO (Ptr Gutter)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Gutter)
        if Ptr Gutter
ptr Ptr Gutter -> Ptr Gutter -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Gutter
forall a. Ptr a
FP.nullPtr
        then Gutter -> Maybe Gutter
forall a. a -> Maybe a
P.Just (Gutter -> Maybe Gutter) -> IO Gutter -> IO (Maybe Gutter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Gutter -> Gutter) -> Ptr Gutter -> IO Gutter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Gutter -> Gutter
Gutter Ptr Gutter
ptr
        else Maybe Gutter -> IO (Maybe Gutter)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Gutter
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveGutterMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveGutterMethod "actionSetEnabled" o = Gtk.Widget.WidgetActionSetEnabledMethodInfo
    ResolveGutterMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveGutterMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveGutterMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveGutterMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveGutterMethod "addCssClass" o = Gtk.Widget.WidgetAddCssClassMethodInfo
    ResolveGutterMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveGutterMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveGutterMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveGutterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveGutterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveGutterMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveGutterMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveGutterMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveGutterMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveGutterMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveGutterMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    ResolveGutterMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveGutterMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveGutterMethod "disposeTemplate" o = Gtk.Widget.WidgetDisposeTemplateMethodInfo
    ResolveGutterMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveGutterMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveGutterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveGutterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveGutterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveGutterMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveGutterMethod "hasCssClass" o = Gtk.Widget.WidgetHasCssClassMethodInfo
    ResolveGutterMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveGutterMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveGutterMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveGutterMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveGutterMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveGutterMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveGutterMethod "insert" o = GutterInsertMethodInfo
    ResolveGutterMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveGutterMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveGutterMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveGutterMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveGutterMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveGutterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveGutterMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveGutterMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveGutterMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveGutterMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveGutterMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveGutterMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveGutterMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveGutterMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveGutterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveGutterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveGutterMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveGutterMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveGutterMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveGutterMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveGutterMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveGutterMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveGutterMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveGutterMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveGutterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveGutterMethod "remove" o = GutterRemoveMethodInfo
    ResolveGutterMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveGutterMethod "removeCssClass" o = Gtk.Widget.WidgetRemoveCssClassMethodInfo
    ResolveGutterMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveGutterMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveGutterMethod "reorder" o = GutterReorderMethodInfo
    ResolveGutterMethod "resetProperty" o = Gtk.Accessible.AccessibleResetPropertyMethodInfo
    ResolveGutterMethod "resetRelation" o = Gtk.Accessible.AccessibleResetRelationMethodInfo
    ResolveGutterMethod "resetState" o = Gtk.Accessible.AccessibleResetStateMethodInfo
    ResolveGutterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveGutterMethod "shouldLayout" o = Gtk.Widget.WidgetShouldLayoutMethodInfo
    ResolveGutterMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveGutterMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveGutterMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveGutterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveGutterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveGutterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveGutterMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveGutterMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveGutterMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveGutterMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveGutterMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveGutterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveGutterMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveGutterMethod "updateNextAccessibleSibling" o = Gtk.Accessible.AccessibleUpdateNextAccessibleSiblingMethodInfo
    ResolveGutterMethod "updateProperty" o = Gtk.Accessible.AccessibleUpdatePropertyMethodInfo
    ResolveGutterMethod "updateRelation" o = Gtk.Accessible.AccessibleUpdateRelationMethodInfo
    ResolveGutterMethod "updateState" o = Gtk.Accessible.AccessibleUpdateStateMethodInfo
    ResolveGutterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveGutterMethod "getAccessibleParent" o = Gtk.Accessible.AccessibleGetAccessibleParentMethodInfo
    ResolveGutterMethod "getAccessibleRole" o = Gtk.Accessible.AccessibleGetAccessibleRoleMethodInfo
    ResolveGutterMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveGutterMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveGutterMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveGutterMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveGutterMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveGutterMethod "getAtContext" o = Gtk.Accessible.AccessibleGetAtContextMethodInfo
    ResolveGutterMethod "getBounds" o = Gtk.Accessible.AccessibleGetBoundsMethodInfo
    ResolveGutterMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
    ResolveGutterMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveGutterMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveGutterMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveGutterMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveGutterMethod "getColor" o = Gtk.Widget.WidgetGetColorMethodInfo
    ResolveGutterMethod "getCssClasses" o = Gtk.Widget.WidgetGetCssClassesMethodInfo
    ResolveGutterMethod "getCssName" o = Gtk.Widget.WidgetGetCssNameMethodInfo
    ResolveGutterMethod "getCursor" o = Gtk.Widget.WidgetGetCursorMethodInfo
    ResolveGutterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveGutterMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveGutterMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveGutterMethod "getFirstAccessibleChild" o = Gtk.Accessible.AccessibleGetFirstAccessibleChildMethodInfo
    ResolveGutterMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveGutterMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveGutterMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveGutterMethod "getFocusable" o = Gtk.Widget.WidgetGetFocusableMethodInfo
    ResolveGutterMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveGutterMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveGutterMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveGutterMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveGutterMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveGutterMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    ResolveGutterMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveGutterMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveGutterMethod "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveGutterMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveGutterMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveGutterMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveGutterMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveGutterMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveGutterMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveGutterMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveGutterMethod "getNative" o = Gtk.Widget.WidgetGetNativeMethodInfo
    ResolveGutterMethod "getNextAccessibleSibling" o = Gtk.Accessible.AccessibleGetNextAccessibleSiblingMethodInfo
    ResolveGutterMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveGutterMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveGutterMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveGutterMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveGutterMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveGutterMethod "getPlatformState" o = Gtk.Accessible.AccessibleGetPlatformStateMethodInfo
    ResolveGutterMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveGutterMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveGutterMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    ResolveGutterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveGutterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveGutterMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveGutterMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveGutterMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveGutterMethod "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveGutterMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveGutterMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveGutterMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveGutterMethod "getSize" o = Gtk.Widget.WidgetGetSizeMethodInfo
    ResolveGutterMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveGutterMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveGutterMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveGutterMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveGutterMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveGutterMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveGutterMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveGutterMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveGutterMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveGutterMethod "getView" o = GutterGetViewMethodInfo
    ResolveGutterMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveGutterMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveGutterMethod "setAccessibleParent" o = Gtk.Accessible.AccessibleSetAccessibleParentMethodInfo
    ResolveGutterMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveGutterMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveGutterMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveGutterMethod "setCssClasses" o = Gtk.Widget.WidgetSetCssClassesMethodInfo
    ResolveGutterMethod "setCursor" o = Gtk.Widget.WidgetSetCursorMethodInfo
    ResolveGutterMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveGutterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveGutterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveGutterMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveGutterMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveGutterMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveGutterMethod "setFocusable" o = Gtk.Widget.WidgetSetFocusableMethodInfo
    ResolveGutterMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveGutterMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveGutterMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveGutterMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveGutterMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveGutterMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveGutterMethod "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveGutterMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveGutterMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveGutterMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveGutterMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveGutterMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveGutterMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveGutterMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveGutterMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveGutterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveGutterMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveGutterMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveGutterMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveGutterMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveGutterMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveGutterMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveGutterMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveGutterMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveGutterMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveGutterMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveGutterMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveGutterMethod t Gutter, O.OverloadedMethod info Gutter p) => OL.IsLabel t (Gutter -> 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 ~ ResolveGutterMethod t Gutter, O.OverloadedMethod info Gutter p, R.HasField t Gutter p) => R.HasField t Gutter p where
    getField = O.overloadedMethod @info

#endif

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

#endif

-- VVV Prop "view"
   -- Type: TInterface (Name {namespace = "GtkSource", name = "View"})
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

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

-- | Construct a `GValueConstruct` with valid value for the “@view@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructGutterView :: (IsGutter o, MIO.MonadIO m, GtkSource.View.IsView a) => a -> m (GValueConstruct o)
constructGutterView :: forall o (m :: * -> *) a.
(IsGutter o, MonadIO m, IsView a) =>
a -> m (GValueConstruct o)
constructGutterView 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
"view" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

#if defined(ENABLE_OVERLOADING)
data GutterViewPropertyInfo
instance AttrInfo GutterViewPropertyInfo where
    type AttrAllowedOps GutterViewPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint GutterViewPropertyInfo = IsGutter
    type AttrSetTypeConstraint GutterViewPropertyInfo = GtkSource.View.IsView
    type AttrTransferTypeConstraint GutterViewPropertyInfo = GtkSource.View.IsView
    type AttrTransferType GutterViewPropertyInfo = GtkSource.View.View
    type AttrGetType GutterViewPropertyInfo = GtkSource.View.View
    type AttrLabel GutterViewPropertyInfo = "view"
    type AttrOrigin GutterViewPropertyInfo = Gutter
    attrGet = getGutterView
    attrSet = undefined
    attrTransfer _ v = do
        unsafeCastTo GtkSource.View.View v
    attrConstruct = constructGutterView
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.view"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#g:attr:view"
        })
#endif

-- VVV Prop "window-type"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@window-type@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' gutter #windowType
-- @
getGutterWindowType :: (MonadIO m, IsGutter o) => o -> m Gtk.Enums.TextWindowType
getGutterWindowType :: forall (m :: * -> *) o.
(MonadIO m, IsGutter o) =>
o -> m TextWindowType
getGutterWindowType o
obj = IO TextWindowType -> m TextWindowType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO TextWindowType -> m TextWindowType)
-> IO TextWindowType -> m TextWindowType
forall a b. (a -> b) -> a -> b
$ o -> String -> IO TextWindowType
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj String
"window-type"

-- | Construct a `GValueConstruct` with valid value for the “@window-type@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructGutterWindowType :: (IsGutter o, MIO.MonadIO m) => Gtk.Enums.TextWindowType -> m (GValueConstruct o)
constructGutterWindowType :: forall o (m :: * -> *).
(IsGutter o, MonadIO m) =>
TextWindowType -> m (GValueConstruct o)
constructGutterWindowType TextWindowType
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 -> TextWindowType -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"window-type" TextWindowType
val

#if defined(ENABLE_OVERLOADING)
data GutterWindowTypePropertyInfo
instance AttrInfo GutterWindowTypePropertyInfo where
    type AttrAllowedOps GutterWindowTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint GutterWindowTypePropertyInfo = IsGutter
    type AttrSetTypeConstraint GutterWindowTypePropertyInfo = (~) Gtk.Enums.TextWindowType
    type AttrTransferTypeConstraint GutterWindowTypePropertyInfo = (~) Gtk.Enums.TextWindowType
    type AttrTransferType GutterWindowTypePropertyInfo = Gtk.Enums.TextWindowType
    type AttrGetType GutterWindowTypePropertyInfo = Gtk.Enums.TextWindowType
    type AttrLabel GutterWindowTypePropertyInfo = "window-type"
    type AttrOrigin GutterWindowTypePropertyInfo = Gutter
    attrGet = getGutterWindowType
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructGutterWindowType
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.windowType"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#g:attr:windowType"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Gutter
type instance O.AttributeList Gutter = GutterAttributeList
type GutterAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("focusable", Gtk.Widget.WidgetFocusablePropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("view", GutterViewPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo), '("windowType", GutterWindowTypePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
gutterView :: AttrLabelProxy "view"
gutterView = AttrLabelProxy

gutterWindowType :: AttrLabelProxy "windowType"
gutterWindowType = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Gutter = GutterSignalList
type GutterSignalList = ('[ '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method Gutter::get_view
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "gutter"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Gutter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceGutter."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "GtkSource" , name = "View" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_get_view" gtk_source_gutter_get_view :: 
    Ptr Gutter ->                           -- gutter : TInterface (Name {namespace = "GtkSource", name = "Gutter"})
    IO (Ptr GtkSource.View.View)

-- | /No description available in the introspection data./
gutterGetView ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutter a) =>
    a
    -- ^ /@gutter@/: a t'GI.GtkSource.Objects.Gutter.Gutter'.
    -> m GtkSource.View.View
    -- ^ __Returns:__ the associated t'GI.GtkSource.Objects.View.View'.
gutterGetView :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsGutter a) =>
a -> m View
gutterGetView a
gutter = IO View -> m View
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO View -> m View) -> IO View -> m View
forall a b. (a -> b) -> a -> b
$ do
    Ptr Gutter
gutter' <- a -> IO (Ptr Gutter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
gutter
    Ptr View
result <- Ptr Gutter -> IO (Ptr View)
gtk_source_gutter_get_view Ptr Gutter
gutter'
    Text -> Ptr View -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gutterGetView" Ptr View
result
    View
result' <- ((ManagedPtr View -> View) -> Ptr View -> IO View
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr View -> View
GtkSource.View.View) Ptr View
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
gutter
    View -> IO View
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return View
result'

#if defined(ENABLE_OVERLOADING)
data GutterGetViewMethodInfo
instance (signature ~ (m GtkSource.View.View), MonadIO m, IsGutter a) => O.OverloadedMethod GutterGetViewMethodInfo a signature where
    overloadedMethod = gutterGetView

instance O.OverloadedMethodInfo GutterGetViewMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.gutterGetView",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#v:gutterGetView"
        })


#endif

-- method Gutter::insert
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "gutter"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Gutter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceGutter."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "renderer"
--           , argType =
--               TInterface
--                 Name { namespace = "GtkSource" , name = "GutterRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a gutter renderer (must inherit from #GtkSourceGutterRenderer)."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the renderer position."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_gutter_insert" gtk_source_gutter_insert :: 
    Ptr Gutter ->                           -- gutter : TInterface (Name {namespace = "GtkSource", name = "Gutter"})
    Ptr GtkSource.GutterRenderer.GutterRenderer -> -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRenderer"})
    Int32 ->                                -- position : TBasicType TInt
    IO CInt

-- | Insert /@renderer@/ into the gutter. If /@renderer@/ is yet unowned then gutter
-- claims its ownership. Otherwise just increases renderer\'s reference count.
-- /@renderer@/ cannot be already inserted to another gutter.
gutterInsert ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) =>
    a
    -- ^ /@gutter@/: a t'GI.GtkSource.Objects.Gutter.Gutter'.
    -> b
    -- ^ /@renderer@/: a gutter renderer (must inherit from t'GI.GtkSource.Objects.GutterRenderer.GutterRenderer').
    -> Int32
    -- ^ /@position@/: the renderer position.
    -> m Bool
    -- ^ __Returns:__ 'P.True' if operation succeeded. Otherwise 'P.False'.
gutterInsert :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsGutter a, IsGutterRenderer b) =>
a -> b -> Int32 -> m Bool
gutterInsert a
gutter b
renderer Int32
position = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Gutter
gutter' <- a -> IO (Ptr Gutter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
gutter
    Ptr GutterRenderer
renderer' <- b -> IO (Ptr GutterRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
renderer
    CInt
result <- Ptr Gutter -> Ptr GutterRenderer -> Int32 -> IO CInt
gtk_source_gutter_insert Ptr Gutter
gutter' Ptr GutterRenderer
renderer' Int32
position
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
gutter
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
renderer
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data GutterInsertMethodInfo
instance (signature ~ (b -> Int32 -> m Bool), MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) => O.OverloadedMethod GutterInsertMethodInfo a signature where
    overloadedMethod = gutterInsert

instance O.OverloadedMethodInfo GutterInsertMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.gutterInsert",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#v:gutterInsert"
        })


#endif

-- method Gutter::remove
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "gutter"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Gutter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "renderer"
--           , argType =
--               TInterface
--                 Name { namespace = "GtkSource" , name = "GutterRenderer" }
--           , 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 "gtk_source_gutter_remove" gtk_source_gutter_remove :: 
    Ptr Gutter ->                           -- gutter : TInterface (Name {namespace = "GtkSource", name = "Gutter"})
    Ptr GtkSource.GutterRenderer.GutterRenderer -> -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRenderer"})
    IO ()

-- | /No description available in the introspection data./
gutterRemove ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) =>
    a
    -> b
    -> m ()
gutterRemove :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsGutter a, IsGutterRenderer b) =>
a -> b -> m ()
gutterRemove a
gutter b
renderer = 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 Gutter
gutter' <- a -> IO (Ptr Gutter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
gutter
    Ptr GutterRenderer
renderer' <- b -> IO (Ptr GutterRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
renderer
    Ptr Gutter -> Ptr GutterRenderer -> IO ()
gtk_source_gutter_remove Ptr Gutter
gutter' Ptr GutterRenderer
renderer'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
gutter
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
renderer
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data GutterRemoveMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) => O.OverloadedMethod GutterRemoveMethodInfo a signature where
    overloadedMethod = gutterRemove

instance O.OverloadedMethodInfo GutterRemoveMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.gutterRemove",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#v:gutterRemove"
        })


#endif

-- method Gutter::reorder
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "gutter"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Gutter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceGutterRenderer."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "renderer"
--           , argType =
--               TInterface
--                 Name { namespace = "GtkSource" , name = "GutterRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkCellRenderer."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the new renderer position."
--                 , 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 "gtk_source_gutter_reorder" gtk_source_gutter_reorder :: 
    Ptr Gutter ->                           -- gutter : TInterface (Name {namespace = "GtkSource", name = "Gutter"})
    Ptr GtkSource.GutterRenderer.GutterRenderer -> -- renderer : TInterface (Name {namespace = "GtkSource", name = "GutterRenderer"})
    Int32 ->                                -- position : TBasicType TInt
    IO ()

-- | Reorders /@renderer@/ in /@gutter@/ to new /@position@/.
gutterReorder ::
    (B.CallStack.HasCallStack, MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) =>
    a
    -- ^ /@gutter@/: a t'GI.GtkSource.Objects.GutterRenderer.GutterRenderer'.
    -> b
    -- ^ /@renderer@/: a t'GI.Gtk.Objects.CellRenderer.CellRenderer'.
    -> Int32
    -- ^ /@position@/: the new renderer position.
    -> m ()
gutterReorder :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsGutter a, IsGutterRenderer b) =>
a -> b -> Int32 -> m ()
gutterReorder a
gutter b
renderer Int32
position = 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 Gutter
gutter' <- a -> IO (Ptr Gutter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
gutter
    Ptr GutterRenderer
renderer' <- b -> IO (Ptr GutterRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
renderer
    Ptr Gutter -> Ptr GutterRenderer -> Int32 -> IO ()
gtk_source_gutter_reorder Ptr Gutter
gutter' Ptr GutterRenderer
renderer' Int32
position
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
gutter
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
renderer
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data GutterReorderMethodInfo
instance (signature ~ (b -> Int32 -> m ()), MonadIO m, IsGutter a, GtkSource.GutterRenderer.IsGutterRenderer b) => O.OverloadedMethod GutterReorderMethodInfo a signature where
    overloadedMethod = gutterReorder

instance O.OverloadedMethodInfo GutterReorderMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Gutter.gutterReorder",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Gutter.html#v:gutterReorder"
        })


#endif