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

-- * Exported types
    Style(..)                               ,
    IsStyle                                 ,
    toStyle                                 ,
    noStyle                                 ,


 -- * Methods
-- ** apply #method:apply#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleApplyMethodInfo                    ,
#endif
    styleApply                              ,


-- ** copy #method:copy#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleCopyMethodInfo                     ,
#endif
    styleCopy                               ,




 -- * Properties
-- ** background #attr:background#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleBackgroundPropertyInfo             ,
#endif
    constructStyleBackground                ,
    getStyleBackground                      ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleBackground                         ,
#endif


-- ** backgroundSet #attr:backgroundSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleBackgroundSetPropertyInfo          ,
#endif
    constructStyleBackgroundSet             ,
    getStyleBackgroundSet                   ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleBackgroundSet                      ,
#endif


-- ** bold #attr:bold#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleBoldPropertyInfo                   ,
#endif
    constructStyleBold                      ,
    getStyleBold                            ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleBold                               ,
#endif


-- ** boldSet #attr:boldSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleBoldSetPropertyInfo                ,
#endif
    constructStyleBoldSet                   ,
    getStyleBoldSet                         ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleBoldSet                            ,
#endif


-- ** foreground #attr:foreground#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleForegroundPropertyInfo             ,
#endif
    constructStyleForeground                ,
    getStyleForeground                      ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleForeground                         ,
#endif


-- ** foregroundSet #attr:foregroundSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleForegroundSetPropertyInfo          ,
#endif
    constructStyleForegroundSet             ,
    getStyleForegroundSet                   ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleForegroundSet                      ,
#endif


-- ** italic #attr:italic#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleItalicPropertyInfo                 ,
#endif
    constructStyleItalic                    ,
    getStyleItalic                          ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleItalic                             ,
#endif


-- ** italicSet #attr:italicSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleItalicSetPropertyInfo              ,
#endif
    constructStyleItalicSet                 ,
    getStyleItalicSet                       ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleItalicSet                          ,
#endif


-- ** lineBackground #attr:lineBackground#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleLineBackgroundPropertyInfo         ,
#endif
    constructStyleLineBackground            ,
    getStyleLineBackground                  ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleLineBackground                     ,
#endif


-- ** lineBackgroundSet #attr:lineBackgroundSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleLineBackgroundSetPropertyInfo      ,
#endif
    constructStyleLineBackgroundSet         ,
    getStyleLineBackgroundSet               ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleLineBackgroundSet                  ,
#endif


-- ** pangoUnderline #attr:pangoUnderline#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StylePangoUnderlinePropertyInfo         ,
#endif
    constructStylePangoUnderline            ,
    getStylePangoUnderline                  ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    stylePangoUnderline                     ,
#endif


-- ** scale #attr:scale#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleScalePropertyInfo                  ,
#endif
    constructStyleScale                     ,
    getStyleScale                           ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleScale                              ,
#endif


-- ** scaleSet #attr:scaleSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleScaleSetPropertyInfo               ,
#endif
    constructStyleScaleSet                  ,
    getStyleScaleSet                        ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleScaleSet                           ,
#endif


-- ** strikethrough #attr:strikethrough#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleStrikethroughPropertyInfo          ,
#endif
    constructStyleStrikethrough             ,
    getStyleStrikethrough                   ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleStrikethrough                      ,
#endif


-- ** strikethroughSet #attr:strikethroughSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleStrikethroughSetPropertyInfo       ,
#endif
    constructStyleStrikethroughSet          ,
    getStyleStrikethroughSet                ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleStrikethroughSet                   ,
#endif


-- ** underline #attr:underline#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleUnderlinePropertyInfo              ,
#endif
    constructStyleUnderline                 ,
    getStyleUnderline                       ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleUnderline                          ,
#endif


-- ** underlineColor #attr:underlineColor#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleUnderlineColorPropertyInfo         ,
#endif
    constructStyleUnderlineColor            ,
    getStyleUnderlineColor                  ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleUnderlineColor                     ,
#endif


-- ** underlineColorSet #attr:underlineColorSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleUnderlineColorSetPropertyInfo      ,
#endif
    constructStyleUnderlineColorSet         ,
    getStyleUnderlineColorSet               ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleUnderlineColorSet                  ,
#endif


-- ** underlineSet #attr:underlineSet#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleUnderlineSetPropertyInfo           ,
#endif
    constructStyleUnderlineSet              ,
    getStyleUnderlineSet                    ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleUnderlineSet                       ,
#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.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 qualified GI.Gtk.Objects.TextTag as Gtk.TextTag
import qualified GI.Pango.Enums as Pango.Enums

newtype Style = Style (ManagedPtr Style)
foreign import ccall "gtk_source_style_get_type"
    c_gtk_source_style_get_type :: IO GType

instance GObject Style where
    gobjectType _ = c_gtk_source_style_get_type
    

class GObject o => IsStyle o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError Style a) =>
    IsStyle a
#endif
instance IsStyle Style
instance GObject.Object.IsObject Style

toStyle :: (MonadIO m, IsStyle o) => o -> m Style
toStyle = liftIO . unsafeCastTo Style

noStyle :: Maybe Style
noStyle = Nothing

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveStyleMethod (t :: Symbol) (o :: *) :: * where
    ResolveStyleMethod "apply" o = StyleApplyMethodInfo
    ResolveStyleMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveStyleMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveStyleMethod "copy" o = StyleCopyMethodInfo
    ResolveStyleMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveStyleMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveStyleMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveStyleMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveStyleMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveStyleMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveStyleMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveStyleMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveStyleMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveStyleMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveStyleMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveStyleMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveStyleMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveStyleMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveStyleMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveStyleMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveStyleMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveStyleMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveStyleMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveStyleMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveStyleMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveStyleMethod t Style, O.MethodInfo info Style p) => O.IsLabel t (Style -> 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 "background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleBackground :: (MonadIO m, IsStyle o) => o -> m (Maybe T.Text)
getStyleBackground obj = liftIO $ getObjectPropertyString obj "background"

constructStyleBackground :: (IsStyle o) => T.Text -> IO (GValueConstruct o)
constructStyleBackground val = constructObjectPropertyString "background" (Just val)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleBackgroundPropertyInfo
instance AttrInfo StyleBackgroundPropertyInfo where
    type AttrAllowedOps StyleBackgroundPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleBackgroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint StyleBackgroundPropertyInfo = IsStyle
    type AttrGetType StyleBackgroundPropertyInfo = (Maybe T.Text)
    type AttrLabel StyleBackgroundPropertyInfo = "background"
    type AttrOrigin StyleBackgroundPropertyInfo = Style
    attrGet _ = getStyleBackground
    attrSet _ = undefined
    attrConstruct _ = constructStyleBackground
    attrClear _ = undefined
#endif

-- VVV Prop "background-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleBackgroundSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleBackgroundSet obj = liftIO $ getObjectPropertyBool obj "background-set"

constructStyleBackgroundSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleBackgroundSet val = constructObjectPropertyBool "background-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleBackgroundSetPropertyInfo
instance AttrInfo StyleBackgroundSetPropertyInfo where
    type AttrAllowedOps StyleBackgroundSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleBackgroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleBackgroundSetPropertyInfo = IsStyle
    type AttrGetType StyleBackgroundSetPropertyInfo = Bool
    type AttrLabel StyleBackgroundSetPropertyInfo = "background-set"
    type AttrOrigin StyleBackgroundSetPropertyInfo = Style
    attrGet _ = getStyleBackgroundSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleBackgroundSet
    attrClear _ = undefined
#endif

-- VVV Prop "bold"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleBold :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleBold obj = liftIO $ getObjectPropertyBool obj "bold"

constructStyleBold :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleBold val = constructObjectPropertyBool "bold" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleBoldPropertyInfo
instance AttrInfo StyleBoldPropertyInfo where
    type AttrAllowedOps StyleBoldPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleBoldPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleBoldPropertyInfo = IsStyle
    type AttrGetType StyleBoldPropertyInfo = Bool
    type AttrLabel StyleBoldPropertyInfo = "bold"
    type AttrOrigin StyleBoldPropertyInfo = Style
    attrGet _ = getStyleBold
    attrSet _ = undefined
    attrConstruct _ = constructStyleBold
    attrClear _ = undefined
#endif

-- VVV Prop "bold-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleBoldSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleBoldSet obj = liftIO $ getObjectPropertyBool obj "bold-set"

constructStyleBoldSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleBoldSet val = constructObjectPropertyBool "bold-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleBoldSetPropertyInfo
instance AttrInfo StyleBoldSetPropertyInfo where
    type AttrAllowedOps StyleBoldSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleBoldSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleBoldSetPropertyInfo = IsStyle
    type AttrGetType StyleBoldSetPropertyInfo = Bool
    type AttrLabel StyleBoldSetPropertyInfo = "bold-set"
    type AttrOrigin StyleBoldSetPropertyInfo = Style
    attrGet _ = getStyleBoldSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleBoldSet
    attrClear _ = undefined
#endif

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

getStyleForeground :: (MonadIO m, IsStyle o) => o -> m (Maybe T.Text)
getStyleForeground obj = liftIO $ getObjectPropertyString obj "foreground"

constructStyleForeground :: (IsStyle o) => T.Text -> IO (GValueConstruct o)
constructStyleForeground val = constructObjectPropertyString "foreground" (Just val)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleForegroundPropertyInfo
instance AttrInfo StyleForegroundPropertyInfo where
    type AttrAllowedOps StyleForegroundPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleForegroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint StyleForegroundPropertyInfo = IsStyle
    type AttrGetType StyleForegroundPropertyInfo = (Maybe T.Text)
    type AttrLabel StyleForegroundPropertyInfo = "foreground"
    type AttrOrigin StyleForegroundPropertyInfo = Style
    attrGet _ = getStyleForeground
    attrSet _ = undefined
    attrConstruct _ = constructStyleForeground
    attrClear _ = undefined
#endif

-- VVV Prop "foreground-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleForegroundSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleForegroundSet obj = liftIO $ getObjectPropertyBool obj "foreground-set"

constructStyleForegroundSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleForegroundSet val = constructObjectPropertyBool "foreground-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleForegroundSetPropertyInfo
instance AttrInfo StyleForegroundSetPropertyInfo where
    type AttrAllowedOps StyleForegroundSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleForegroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleForegroundSetPropertyInfo = IsStyle
    type AttrGetType StyleForegroundSetPropertyInfo = Bool
    type AttrLabel StyleForegroundSetPropertyInfo = "foreground-set"
    type AttrOrigin StyleForegroundSetPropertyInfo = Style
    attrGet _ = getStyleForegroundSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleForegroundSet
    attrClear _ = undefined
#endif

-- VVV Prop "italic"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleItalic :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleItalic obj = liftIO $ getObjectPropertyBool obj "italic"

constructStyleItalic :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleItalic val = constructObjectPropertyBool "italic" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleItalicPropertyInfo
instance AttrInfo StyleItalicPropertyInfo where
    type AttrAllowedOps StyleItalicPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleItalicPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleItalicPropertyInfo = IsStyle
    type AttrGetType StyleItalicPropertyInfo = Bool
    type AttrLabel StyleItalicPropertyInfo = "italic"
    type AttrOrigin StyleItalicPropertyInfo = Style
    attrGet _ = getStyleItalic
    attrSet _ = undefined
    attrConstruct _ = constructStyleItalic
    attrClear _ = undefined
#endif

-- VVV Prop "italic-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleItalicSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleItalicSet obj = liftIO $ getObjectPropertyBool obj "italic-set"

constructStyleItalicSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleItalicSet val = constructObjectPropertyBool "italic-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleItalicSetPropertyInfo
instance AttrInfo StyleItalicSetPropertyInfo where
    type AttrAllowedOps StyleItalicSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleItalicSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleItalicSetPropertyInfo = IsStyle
    type AttrGetType StyleItalicSetPropertyInfo = Bool
    type AttrLabel StyleItalicSetPropertyInfo = "italic-set"
    type AttrOrigin StyleItalicSetPropertyInfo = Style
    attrGet _ = getStyleItalicSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleItalicSet
    attrClear _ = undefined
#endif

-- VVV Prop "line-background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleLineBackground :: (MonadIO m, IsStyle o) => o -> m (Maybe T.Text)
getStyleLineBackground obj = liftIO $ getObjectPropertyString obj "line-background"

constructStyleLineBackground :: (IsStyle o) => T.Text -> IO (GValueConstruct o)
constructStyleLineBackground val = constructObjectPropertyString "line-background" (Just val)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleLineBackgroundPropertyInfo
instance AttrInfo StyleLineBackgroundPropertyInfo where
    type AttrAllowedOps StyleLineBackgroundPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleLineBackgroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint StyleLineBackgroundPropertyInfo = IsStyle
    type AttrGetType StyleLineBackgroundPropertyInfo = (Maybe T.Text)
    type AttrLabel StyleLineBackgroundPropertyInfo = "line-background"
    type AttrOrigin StyleLineBackgroundPropertyInfo = Style
    attrGet _ = getStyleLineBackground
    attrSet _ = undefined
    attrConstruct _ = constructStyleLineBackground
    attrClear _ = undefined
#endif

-- VVV Prop "line-background-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleLineBackgroundSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleLineBackgroundSet obj = liftIO $ getObjectPropertyBool obj "line-background-set"

constructStyleLineBackgroundSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleLineBackgroundSet val = constructObjectPropertyBool "line-background-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleLineBackgroundSetPropertyInfo
instance AttrInfo StyleLineBackgroundSetPropertyInfo where
    type AttrAllowedOps StyleLineBackgroundSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleLineBackgroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleLineBackgroundSetPropertyInfo = IsStyle
    type AttrGetType StyleLineBackgroundSetPropertyInfo = Bool
    type AttrLabel StyleLineBackgroundSetPropertyInfo = "line-background-set"
    type AttrOrigin StyleLineBackgroundSetPropertyInfo = Style
    attrGet _ = getStyleLineBackgroundSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleLineBackgroundSet
    attrClear _ = undefined
#endif

-- VVV Prop "pango-underline"
   -- Type: TInterface (Name {namespace = "Pango", name = "Underline"})
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStylePangoUnderline :: (MonadIO m, IsStyle o) => o -> m Pango.Enums.Underline
getStylePangoUnderline obj = liftIO $ getObjectPropertyEnum obj "pango-underline"

constructStylePangoUnderline :: (IsStyle o) => Pango.Enums.Underline -> IO (GValueConstruct o)
constructStylePangoUnderline val = constructObjectPropertyEnum "pango-underline" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StylePangoUnderlinePropertyInfo
instance AttrInfo StylePangoUnderlinePropertyInfo where
    type AttrAllowedOps StylePangoUnderlinePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StylePangoUnderlinePropertyInfo = (~) Pango.Enums.Underline
    type AttrBaseTypeConstraint StylePangoUnderlinePropertyInfo = IsStyle
    type AttrGetType StylePangoUnderlinePropertyInfo = Pango.Enums.Underline
    type AttrLabel StylePangoUnderlinePropertyInfo = "pango-underline"
    type AttrOrigin StylePangoUnderlinePropertyInfo = Style
    attrGet _ = getStylePangoUnderline
    attrSet _ = undefined
    attrConstruct _ = constructStylePangoUnderline
    attrClear _ = undefined
#endif

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

getStyleScale :: (MonadIO m, IsStyle o) => o -> m (Maybe T.Text)
getStyleScale obj = liftIO $ getObjectPropertyString obj "scale"

constructStyleScale :: (IsStyle o) => T.Text -> IO (GValueConstruct o)
constructStyleScale val = constructObjectPropertyString "scale" (Just val)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleScalePropertyInfo
instance AttrInfo StyleScalePropertyInfo where
    type AttrAllowedOps StyleScalePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleScalePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint StyleScalePropertyInfo = IsStyle
    type AttrGetType StyleScalePropertyInfo = (Maybe T.Text)
    type AttrLabel StyleScalePropertyInfo = "scale"
    type AttrOrigin StyleScalePropertyInfo = Style
    attrGet _ = getStyleScale
    attrSet _ = undefined
    attrConstruct _ = constructStyleScale
    attrClear _ = undefined
#endif

-- VVV Prop "scale-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleScaleSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleScaleSet obj = liftIO $ getObjectPropertyBool obj "scale-set"

constructStyleScaleSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleScaleSet val = constructObjectPropertyBool "scale-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleScaleSetPropertyInfo
instance AttrInfo StyleScaleSetPropertyInfo where
    type AttrAllowedOps StyleScaleSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleScaleSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleScaleSetPropertyInfo = IsStyle
    type AttrGetType StyleScaleSetPropertyInfo = Bool
    type AttrLabel StyleScaleSetPropertyInfo = "scale-set"
    type AttrOrigin StyleScaleSetPropertyInfo = Style
    attrGet _ = getStyleScaleSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleScaleSet
    attrClear _ = undefined
#endif

-- VVV Prop "strikethrough"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleStrikethrough :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleStrikethrough obj = liftIO $ getObjectPropertyBool obj "strikethrough"

constructStyleStrikethrough :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleStrikethrough val = constructObjectPropertyBool "strikethrough" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleStrikethroughPropertyInfo
instance AttrInfo StyleStrikethroughPropertyInfo where
    type AttrAllowedOps StyleStrikethroughPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleStrikethroughPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleStrikethroughPropertyInfo = IsStyle
    type AttrGetType StyleStrikethroughPropertyInfo = Bool
    type AttrLabel StyleStrikethroughPropertyInfo = "strikethrough"
    type AttrOrigin StyleStrikethroughPropertyInfo = Style
    attrGet _ = getStyleStrikethrough
    attrSet _ = undefined
    attrConstruct _ = constructStyleStrikethrough
    attrClear _ = undefined
#endif

-- VVV Prop "strikethrough-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleStrikethroughSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleStrikethroughSet obj = liftIO $ getObjectPropertyBool obj "strikethrough-set"

constructStyleStrikethroughSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleStrikethroughSet val = constructObjectPropertyBool "strikethrough-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleStrikethroughSetPropertyInfo
instance AttrInfo StyleStrikethroughSetPropertyInfo where
    type AttrAllowedOps StyleStrikethroughSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleStrikethroughSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleStrikethroughSetPropertyInfo = IsStyle
    type AttrGetType StyleStrikethroughSetPropertyInfo = Bool
    type AttrLabel StyleStrikethroughSetPropertyInfo = "strikethrough-set"
    type AttrOrigin StyleStrikethroughSetPropertyInfo = Style
    attrGet _ = getStyleStrikethroughSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleStrikethroughSet
    attrClear _ = undefined
#endif

-- VVV Prop "underline"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleUnderline :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleUnderline obj = liftIO $ getObjectPropertyBool obj "underline"

constructStyleUnderline :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleUnderline val = constructObjectPropertyBool "underline" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleUnderlinePropertyInfo
instance AttrInfo StyleUnderlinePropertyInfo where
    type AttrAllowedOps StyleUnderlinePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleUnderlinePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleUnderlinePropertyInfo = IsStyle
    type AttrGetType StyleUnderlinePropertyInfo = Bool
    type AttrLabel StyleUnderlinePropertyInfo = "underline"
    type AttrOrigin StyleUnderlinePropertyInfo = Style
    attrGet _ = getStyleUnderline
    attrSet _ = undefined
    attrConstruct _ = constructStyleUnderline
    attrClear _ = undefined
#endif

-- VVV Prop "underline-color"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleUnderlineColor :: (MonadIO m, IsStyle o) => o -> m (Maybe T.Text)
getStyleUnderlineColor obj = liftIO $ getObjectPropertyString obj "underline-color"

constructStyleUnderlineColor :: (IsStyle o) => T.Text -> IO (GValueConstruct o)
constructStyleUnderlineColor val = constructObjectPropertyString "underline-color" (Just val)

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleUnderlineColorPropertyInfo
instance AttrInfo StyleUnderlineColorPropertyInfo where
    type AttrAllowedOps StyleUnderlineColorPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleUnderlineColorPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint StyleUnderlineColorPropertyInfo = IsStyle
    type AttrGetType StyleUnderlineColorPropertyInfo = (Maybe T.Text)
    type AttrLabel StyleUnderlineColorPropertyInfo = "underline-color"
    type AttrOrigin StyleUnderlineColorPropertyInfo = Style
    attrGet _ = getStyleUnderlineColor
    attrSet _ = undefined
    attrConstruct _ = constructStyleUnderlineColor
    attrClear _ = undefined
#endif

-- VVV Prop "underline-color-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleUnderlineColorSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleUnderlineColorSet obj = liftIO $ getObjectPropertyBool obj "underline-color-set"

constructStyleUnderlineColorSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleUnderlineColorSet val = constructObjectPropertyBool "underline-color-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleUnderlineColorSetPropertyInfo
instance AttrInfo StyleUnderlineColorSetPropertyInfo where
    type AttrAllowedOps StyleUnderlineColorSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleUnderlineColorSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleUnderlineColorSetPropertyInfo = IsStyle
    type AttrGetType StyleUnderlineColorSetPropertyInfo = Bool
    type AttrLabel StyleUnderlineColorSetPropertyInfo = "underline-color-set"
    type AttrOrigin StyleUnderlineColorSetPropertyInfo = Style
    attrGet _ = getStyleUnderlineColorSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleUnderlineColorSet
    attrClear _ = undefined
#endif

-- VVV Prop "underline-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getStyleUnderlineSet :: (MonadIO m, IsStyle o) => o -> m Bool
getStyleUnderlineSet obj = liftIO $ getObjectPropertyBool obj "underline-set"

constructStyleUnderlineSet :: (IsStyle o) => Bool -> IO (GValueConstruct o)
constructStyleUnderlineSet val = constructObjectPropertyBool "underline-set" val

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleUnderlineSetPropertyInfo
instance AttrInfo StyleUnderlineSetPropertyInfo where
    type AttrAllowedOps StyleUnderlineSetPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint StyleUnderlineSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint StyleUnderlineSetPropertyInfo = IsStyle
    type AttrGetType StyleUnderlineSetPropertyInfo = Bool
    type AttrLabel StyleUnderlineSetPropertyInfo = "underline-set"
    type AttrOrigin StyleUnderlineSetPropertyInfo = Style
    attrGet _ = getStyleUnderlineSet
    attrSet _ = undefined
    attrConstruct _ = constructStyleUnderlineSet
    attrClear _ = undefined
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList Style
type instance O.AttributeList Style = StyleAttributeList
type StyleAttributeList = ('[ '("background", StyleBackgroundPropertyInfo), '("backgroundSet", StyleBackgroundSetPropertyInfo), '("bold", StyleBoldPropertyInfo), '("boldSet", StyleBoldSetPropertyInfo), '("foreground", StyleForegroundPropertyInfo), '("foregroundSet", StyleForegroundSetPropertyInfo), '("italic", StyleItalicPropertyInfo), '("italicSet", StyleItalicSetPropertyInfo), '("lineBackground", StyleLineBackgroundPropertyInfo), '("lineBackgroundSet", StyleLineBackgroundSetPropertyInfo), '("pangoUnderline", StylePangoUnderlinePropertyInfo), '("scale", StyleScalePropertyInfo), '("scaleSet", StyleScaleSetPropertyInfo), '("strikethrough", StyleStrikethroughPropertyInfo), '("strikethroughSet", StyleStrikethroughSetPropertyInfo), '("underline", StyleUnderlinePropertyInfo), '("underlineColor", StyleUnderlineColorPropertyInfo), '("underlineColorSet", StyleUnderlineColorSetPropertyInfo), '("underlineSet", StyleUnderlineSetPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
styleBackground :: AttrLabelProxy "background"
styleBackground = AttrLabelProxy

styleBackgroundSet :: AttrLabelProxy "backgroundSet"
styleBackgroundSet = AttrLabelProxy

styleBold :: AttrLabelProxy "bold"
styleBold = AttrLabelProxy

styleBoldSet :: AttrLabelProxy "boldSet"
styleBoldSet = AttrLabelProxy

styleForeground :: AttrLabelProxy "foreground"
styleForeground = AttrLabelProxy

styleForegroundSet :: AttrLabelProxy "foregroundSet"
styleForegroundSet = AttrLabelProxy

styleItalic :: AttrLabelProxy "italic"
styleItalic = AttrLabelProxy

styleItalicSet :: AttrLabelProxy "italicSet"
styleItalicSet = AttrLabelProxy

styleLineBackground :: AttrLabelProxy "lineBackground"
styleLineBackground = AttrLabelProxy

styleLineBackgroundSet :: AttrLabelProxy "lineBackgroundSet"
styleLineBackgroundSet = AttrLabelProxy

stylePangoUnderline :: AttrLabelProxy "pangoUnderline"
stylePangoUnderline = AttrLabelProxy

styleScale :: AttrLabelProxy "scale"
styleScale = AttrLabelProxy

styleScaleSet :: AttrLabelProxy "scaleSet"
styleScaleSet = AttrLabelProxy

styleStrikethrough :: AttrLabelProxy "strikethrough"
styleStrikethrough = AttrLabelProxy

styleStrikethroughSet :: AttrLabelProxy "strikethroughSet"
styleStrikethroughSet = AttrLabelProxy

styleUnderline :: AttrLabelProxy "underline"
styleUnderline = AttrLabelProxy

styleUnderlineColor :: AttrLabelProxy "underlineColor"
styleUnderlineColor = AttrLabelProxy

styleUnderlineColorSet :: AttrLabelProxy "underlineColorSet"
styleUnderlineColorSet = AttrLabelProxy

styleUnderlineSet :: AttrLabelProxy "underlineSet"
styleUnderlineSet = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type instance O.SignalList Style = StyleSignalList
type StyleSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method Style::apply
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "style", argType = TInterface (Name {namespace = "GtkSource", name = "Style"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyle to apply, or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextTag to apply styles to.", 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_style_apply" gtk_source_style_apply :: 
    Ptr Style ->                            -- style : TInterface (Name {namespace = "GtkSource", name = "Style"})
    Ptr Gtk.TextTag.TextTag ->              -- tag : TInterface (Name {namespace = "Gtk", name = "TextTag"})
    IO ()

{- |
This function modifies the 'GI.Gtk.Objects.TextTag.TextTag' properties that are related to the
'GI.GtkSource.Objects.Style.Style' properties. Other 'GI.Gtk.Objects.TextTag.TextTag' properties are left untouched.

If /@style@/ is non-'Nothing', applies /@style@/ to /@tag@/.

If /@style@/ is 'Nothing', the related *-set properties of 'GI.Gtk.Objects.TextTag.TextTag' are set to
'False'.

@since 3.22
-}
styleApply ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyle a, Gtk.TextTag.IsTextTag b) =>
    a
    {- ^ /@style@/: a 'GI.GtkSource.Objects.Style.Style' to apply, or 'Nothing'. -}
    -> b
    {- ^ /@tag@/: a 'GI.Gtk.Objects.TextTag.TextTag' to apply styles to. -}
    -> m ()
styleApply style tag = liftIO $ do
    style' <- unsafeManagedPtrCastPtr style
    tag' <- unsafeManagedPtrCastPtr tag
    gtk_source_style_apply style' tag'
    touchManagedPtr style
    touchManagedPtr tag
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleApplyMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsStyle a, Gtk.TextTag.IsTextTag b) => O.MethodInfo StyleApplyMethodInfo a signature where
    overloadedMethod _ = styleApply

#endif

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

foreign import ccall "gtk_source_style_copy" gtk_source_style_copy :: 
    Ptr Style ->                            -- style : TInterface (Name {namespace = "GtkSource", name = "Style"})
    IO (Ptr Style)

{- |
Creates a copy of /@style@/, that is a new 'GI.GtkSource.Objects.Style.Style' instance which
has the same attributes set.

@since 2.0
-}
styleCopy ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyle a) =>
    a
    {- ^ /@style@/: a 'GI.GtkSource.Objects.Style.Style' structure to copy. -}
    -> m Style
    {- ^ __Returns:__ copy of /@style@/, call 'GI.GObject.Objects.Object.objectUnref'
when you are done with it. -}
styleCopy style = liftIO $ do
    style' <- unsafeManagedPtrCastPtr style
    result <- gtk_source_style_copy style'
    checkUnexpectedReturnNULL "styleCopy" result
    result' <- (wrapObject Style) result
    touchManagedPtr style
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleCopyMethodInfo
instance (signature ~ (m Style), MonadIO m, IsStyle a) => O.MethodInfo StyleCopyMethodInfo a signature where
    overloadedMethod _ = styleCopy

#endif