{-# LINE 2 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
-- -*-haskell-*-
-- GIMP Toolkit (GTK) Widget TextTag
--
-- Author : Duncan Coutts
--
-- Created: 4 August 2004
--
-- Copyright (C) 2004-2005 Duncan Coutts
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- TODO
--
-- Didn't bind `textTagTabs` properties, we need to bind PangoTab first (in `pango-tabs.c`)
--
-- |
-- Maintainer : gtk2hs-users@lists.sourceforge.net
-- Stability : provisional
-- Portability : portable (depends on GHC)
--
-- A tag that can be applied to text in a 'TextBuffer'
--
module Graphics.UI.Gtk.Multiline.TextTag (
-- * Detail
--
-- | You may wish to begin by reading the text widget conceptual overview
-- which gives an overview of all the objects and data types related to the
-- text widget and how they work together.
--
-- Tags should be in the 'TextTagTable' for a given
-- 'Graphics.UI.Gtk.Multiline.TextBuffer.TextBuffer' before
-- using them with that buffer.
--
-- 'Graphics.UI.Gtk.Multiline.TextBuffer.textBufferCreateTag' is the best way
-- to create tags.
--
-- The 'textTagInvisible' property was not implemented for Gtk+ 2.0; it's planned
-- to be implemented in future releases.

-- * Class Hierarchy
-- |
-- @
-- | 'GObject'
-- | +----TextTag
-- @

-- * Types
  TextTag,
  TextTagClass,
  castToTextTag, gTypeTextTag,
  toTextTag,
  TagName,

-- * Constructors
  textTagNew,

-- * Methods
  textTagSetPriority,
  textTagGetPriority,
  TextAttributes(..),
  textAttributesNew,
  textAttributesCopy,
  textAttributesCopyValues,
  makeNewTextAttributes, -- internal

-- * Attributes
  textTagName,
  textTagBackground,
  textTagBackgroundSet,
  textTagBackgroundFullHeight,
  textTagBackgroundFullHeightSet,
  textTagBackgroundGdk,

  textTagBackgroundStipple,
  textTagBackgroundStippleSet,

  textTagForeground,
  textTagForegroundSet,
  textTagForegroundGdk,

  textTagForegroundStipple,
  textTagForegroundStippleSet,

  textTagDirection,
  textTagEditable,
  textTagEditableSet,
  textTagFont,
  textTagFontDesc,
  textTagFamily,
  textTagFamilySet,
  textTagStyle,
  textTagStyleSet,
  -- textTagTabs,
  textTagTabsSet,
  textTagVariant,
  textTagVariantSet,
  textTagWeight,
  textTagWeightSet,
  textTagStretch,
  textTagStretchSet,
  textTagSize,
  textTagSizeSet,
  textTagScale,
  textTagScaleSet,
  textTagSizePoints,
  textTagJustification,
  textTagJustificationSet,
  textTagLanguage,
  textTagLanguageSet,
  textTagLeftMargin,
  textTagLeftMarginSet,
  textTagRightMargin,
  textTagRightMarginSet,
  textTagIndent,
  textTagIndentSet,
  textTagRise,
  textTagRiseSet,
  textTagPixelsAboveLines,
  textTagPixelsAboveLinesSet,
  textTagPixelsBelowLines,
  textTagPixelsBelowLinesSet,
  textTagPixelsInsideWrap,
  textTagPixelsInsideWrapSet,
  textTagStrikethrough,
  textTagStrikethroughSet,
  textTagUnderline,
  textTagUnderlineSet,
  textTagWrapMode,
  textTagWrapModeSet,

  textTagInvisible,
  textTagInvisibleSet,
  textTagParagraphBackground,
  textTagParagraphBackgroundSet,
  textTagParagraphBackgroundGdk,

  textTagPriority,

-- * Signals
  textTagEvent,

-- * Deprecated

  onTextTagEvent

  ) where

import Control.Monad (liftM)

import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import Graphics.UI.Gtk.Types
{-# LINE 164 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
import Graphics.UI.Gtk.Signals
{-# LINE 165 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
import Graphics.Rendering.Pango.Font
import Graphics.Rendering.Pango.BasicTypes (FontDescription (..), makeNewFontDescription)
import Graphics.Rendering.Pango.Enums (FontStyle(..), Variant(..),
                                         Stretch(..), Underline(..))
import Graphics.UI.Gtk.General.Enums (TextDirection(..),
                                         Justification(..), WrapMode(..))
import Graphics.UI.Gtk.General.Structs (Color(..))
import Graphics.UI.Gtk.Multiline.Types ( TextIter, mkTextIterCopy )

import Graphics.UI.Gtk.Gdk.Events (Event, marshalEvent)

import Graphics.UI.Gtk.Gdk.EventM (EventM, EAny)
import Control.Monad.Reader ( runReaderT )


{-# LINE 180 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

type TagName = DefaultGlibString

--------------------
-- Constructors

-- | Creates a 'TextTag'.
--
-- * Supplying @Nothing@ as tag name results in an anonymous tag.
--
textTagNew :: Maybe TagName -> IO TextTag
textTagNew :: Maybe TagName -> IO TextTag
textTagNew (Just TagName
name) =
  (ForeignPtr TextTag -> TextTag, FinalizerPtr TextTag)
-> IO (Ptr TextTag) -> IO TextTag
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
wrapNewGObject (ForeignPtr TextTag -> TextTag, FinalizerPtr TextTag)
forall {a}. (ForeignPtr TextTag -> TextTag, FinalizerPtr a)
mkTextTag (IO (Ptr TextTag) -> IO TextTag) -> IO (Ptr TextTag) -> IO TextTag
forall a b. (a -> b) -> a -> b
$
  TagName -> (CString -> IO (Ptr TextTag)) -> IO (Ptr TextTag)
forall s a. GlibString s => s -> (CString -> IO a) -> IO a
forall a. TagName -> (CString -> IO a) -> IO a
withUTFString TagName
name ((CString -> IO (Ptr TextTag)) -> IO (Ptr TextTag))
-> (CString -> IO (Ptr TextTag)) -> IO (Ptr TextTag)
forall a b. (a -> b) -> a -> b
$ \CString
namePtr ->
  CString -> IO (Ptr TextTag)
gtk_text_tag_new
{-# LINE 195 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
    namePtr
textTagNew Maybe TagName
Nothing =
  (ForeignPtr TextTag -> TextTag, FinalizerPtr TextTag)
-> IO (Ptr TextTag) -> IO TextTag
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
wrapNewGObject (ForeignPtr TextTag -> TextTag, FinalizerPtr TextTag)
forall {a}. (ForeignPtr TextTag -> TextTag, FinalizerPtr a)
mkTextTag (IO (Ptr TextTag) -> IO TextTag) -> IO (Ptr TextTag) -> IO TextTag
forall a b. (a -> b) -> a -> b
$ CString -> IO (Ptr TextTag)
gtk_text_tag_new CString
forall a. Ptr a
nullPtr


--------------------
-- Methods

-- | Get the tag priority.
--
textTagGetPriority :: TextTagClass self => self -> IO Int
textTagGetPriority :: forall self. TextTagClass self => self -> IO Int
textTagGetPriority self
self =
  (CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$
  (\(TextTag ForeignPtr TextTag
arg1) -> ForeignPtr TextTag -> (Ptr TextTag -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextTag
arg1 ((Ptr TextTag -> IO CInt) -> IO CInt)
-> (Ptr TextTag -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextTag
argPtr1 ->Ptr TextTag -> IO CInt
gtk_text_tag_get_priority Ptr TextTag
argPtr1)
{-# LINE 209 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
    (toTextTag self)

-- | Sets the priority of a 'TextTag'. Valid priorities are start at 0 and go
-- to one less than
-- 'Graphics.UI.Gtk.Multiline.TextTagTable.textTagTableGetSize'.
-- Each tag in a table has a unique
-- priority; setting the priority of one tag shifts the priorities of all the
-- other tags in the table to maintain a unique priority for each tag. Higher
-- priority tags \"win\" if two tags both set the same text attribute. When
-- adding a tag to a tag table, it will be assigned the highest priority in the
-- table by default; so normally the precedence of a set of tags is the order
-- in which they were added to the table, or created with
-- 'Graphics.UI.Gtk.Multiline.TextBuffer.textBufferCreateTag', which adds the tag to the buffer's table
-- automatically.
--
textTagSetPriority :: TextTagClass self => self -> Int -> IO ()
textTagSetPriority :: forall self. TextTagClass self => self -> Int -> IO ()
textTagSetPriority self
self Int
priority =
  (\(TextTag ForeignPtr TextTag
arg1) CInt
arg2 -> ForeignPtr TextTag -> (Ptr TextTag -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextTag
arg1 ((Ptr TextTag -> IO ()) -> IO ())
-> (Ptr TextTag -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextTag
argPtr1 ->Ptr TextTag -> CInt -> IO ()
gtk_text_tag_set_priority Ptr TextTag
argPtr1 CInt
arg2)
{-# LINE 227 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}
    (toTextTag self)
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
priority)

-- TextAttributes methods

newtype TextAttributes = TextAttributes (ForeignPtr (TextAttributes))
{-# LINE 233 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Creates a 'TextAttributes', which describes a set of properties on some
-- text.
--
textAttributesNew :: IO TextAttributes
textAttributesNew :: IO TextAttributes
textAttributesNew =
  IO (Ptr TextAttributes)
gtk_text_attributes_new IO (Ptr TextAttributes)
-> (Ptr TextAttributes -> IO TextAttributes) -> IO TextAttributes
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Ptr TextAttributes -> IO TextAttributes
makeNewTextAttributes

-- | Copies src and returns a new 'TextAttributes'.
--
textAttributesCopy ::
  TextAttributes -- ^ @src@ - a 'TextAttributes' to be copied
 -> IO TextAttributes
textAttributesCopy :: TextAttributes -> IO TextAttributes
textAttributesCopy TextAttributes
src =
  (\(TextAttributes ForeignPtr TextAttributes
arg1) -> ForeignPtr TextAttributes
-> (Ptr TextAttributes -> IO (Ptr TextAttributes))
-> IO (Ptr TextAttributes)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextAttributes
arg1 ((Ptr TextAttributes -> IO (Ptr TextAttributes))
 -> IO (Ptr TextAttributes))
-> (Ptr TextAttributes -> IO (Ptr TextAttributes))
-> IO (Ptr TextAttributes)
forall a b. (a -> b) -> a -> b
$ \Ptr TextAttributes
argPtr1 ->Ptr TextAttributes -> IO (Ptr TextAttributes)
gtk_text_attributes_copy Ptr TextAttributes
argPtr1) TextAttributes
src IO (Ptr TextAttributes)
-> (Ptr TextAttributes -> IO TextAttributes) -> IO TextAttributes
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Ptr TextAttributes -> IO TextAttributes
makeNewTextAttributes

-- | Copies the values from src to dest so that dest has the same values as src.
--
textAttributesCopyValues :: TextAttributes -> TextAttributes -> IO ()
textAttributesCopyValues :: TextAttributes -> TextAttributes -> IO ()
textAttributesCopyValues TextAttributes
src TextAttributes
dest =
  (\(TextAttributes ForeignPtr TextAttributes
arg1) (TextAttributes ForeignPtr TextAttributes
arg2) -> ForeignPtr TextAttributes -> (Ptr TextAttributes -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextAttributes
arg1 ((Ptr TextAttributes -> IO ()) -> IO ())
-> (Ptr TextAttributes -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextAttributes
argPtr1 ->ForeignPtr TextAttributes -> (Ptr TextAttributes -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextAttributes
arg2 ((Ptr TextAttributes -> IO ()) -> IO ())
-> (Ptr TextAttributes -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextAttributes
argPtr2 ->Ptr TextAttributes -> Ptr TextAttributes -> IO ()
gtk_text_attributes_copy_values Ptr TextAttributes
argPtr1 Ptr TextAttributes
argPtr2) TextAttributes
src TextAttributes
dest

-- | This function is use internal for transform TextAttributes.
-- Don't expoert this function.
makeNewTextAttributes :: Ptr TextAttributes -> IO TextAttributes
makeNewTextAttributes :: Ptr TextAttributes -> IO TextAttributes
makeNewTextAttributes Ptr TextAttributes
ptr =
  (ForeignPtr TextAttributes -> TextAttributes)
-> IO (ForeignPtr TextAttributes) -> IO TextAttributes
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM ForeignPtr TextAttributes -> TextAttributes
TextAttributes (IO (ForeignPtr TextAttributes) -> IO TextAttributes)
-> IO (ForeignPtr TextAttributes) -> IO TextAttributes
forall a b. (a -> b) -> a -> b
$ Ptr TextAttributes
-> FinalizerPtr TextAttributes -> IO (ForeignPtr TextAttributes)
forall a. Ptr a -> FinalizerPtr a -> IO (ForeignPtr a)
newForeignPtr Ptr TextAttributes
ptr FinalizerPtr TextAttributes
text_attributes_unref

foreign import ccall unsafe "&gtk_text_attributes_unref"
  text_attributes_unref :: FinalizerPtr TextAttributes

--------------------
-- Attributes

-- | Name used to refer to the text tag. @Nothing@ for anonymous tags.
--
-- Default value: @Nothing@
--
textTagName :: (TextTagClass self, GlibString string) => Attr self (Maybe string)
textTagName :: forall self string.
(TextTagClass self, GlibString string) =>
Attr self (Maybe string)
textTagName = String -> Attr self (Maybe string)
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> Attr gobj (Maybe string)
newAttrFromMaybeStringProperty String
"name"

-- | Background color as a string.
--
-- Default value: \"\"
--
textTagBackground :: (TextTagClass self, GlibString string) => WriteAttr self string
textTagBackground :: forall self string.
(TextTagClass self, GlibString string) =>
WriteAttr self string
textTagBackground = String -> WriteAttr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> WriteAttr gobj string
writeAttrFromStringProperty String
"background"

-- | Whether this tag affects the background color.
--
-- Default value: @False@
--
textTagBackgroundSet :: TextTagClass self => Attr self Bool
textTagBackgroundSet :: forall self. TextTagClass self => Attr self Bool
textTagBackgroundSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"background-set"

-- | Whether the background color fills the entire line height or only the
-- height of the tagged characters.
--
-- Default value: @False@
--
textTagBackgroundFullHeight :: TextTagClass self => Attr self Bool
textTagBackgroundFullHeight :: forall self. TextTagClass self => Attr self Bool
textTagBackgroundFullHeight = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"background-full-height"

-- | Whether this tag affects background height.
--
-- Default value: @False@
--
textTagBackgroundFullHeightSet :: TextTagClass self => Attr self Bool
textTagBackgroundFullHeightSet :: forall self. TextTagClass self => Attr self Bool
textTagBackgroundFullHeightSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"background-full-height-set"

-- | Background color as a (possibly unallocated) GdkColor.
--
textTagBackgroundGdk :: TextTagClass self => Attr self Color
textTagBackgroundGdk :: forall self. TextTagClass self => Attr self Color
textTagBackgroundGdk =
  String -> GType -> Attr self Color
forall gobj boxed.
(GObjectClass gobj, Storable boxed) =>
String -> GType -> Attr gobj boxed
newAttrFromBoxedStorableProperty String
"background-gdk"
  GType
gdk_color_get_type
{-# LINE 309 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}


-- | Bitmap to use as a mask when drawing the text background.
--
-- Removed in Gtk3.
textTagBackgroundStipple :: (TextTagClass self, PixmapClass pixmap) => ReadWriteAttr self Pixmap pixmap
textTagBackgroundStipple :: forall self pixmap.
(TextTagClass self, PixmapClass pixmap) =>
ReadWriteAttr self Pixmap pixmap
textTagBackgroundStipple = String -> GType -> ReadWriteAttr self Pixmap pixmap
forall gobj gobj' gobj''.
(GObjectClass gobj, GObjectClass gobj', GObjectClass gobj'') =>
String -> GType -> ReadWriteAttr gobj gobj' gobj''
newAttrFromObjectProperty String
"background-stipple"
  GType
gdk_pixmap_get_type
{-# LINE 317 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects the background stipple.
--
-- Default value: @False@
--
-- Removed in Gtk3.
textTagBackgroundStippleSet :: TextTagClass self => Attr self Bool
textTagBackgroundStippleSet :: forall self. TextTagClass self => Attr self Bool
textTagBackgroundStippleSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"background-stipple-set"


-- | Foreground color as a string.
--
-- Default value: \"\"
--
textTagForeground :: (TextTagClass self, GlibString string) => WriteAttr self string
textTagForeground :: forall self string.
(TextTagClass self, GlibString string) =>
WriteAttr self string
textTagForeground = String -> WriteAttr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> WriteAttr gobj string
writeAttrFromStringProperty String
"foreground"

-- | Whether this tag affects the foreground color.
--
-- Default value: @False@
--
textTagForegroundSet :: TextTagClass self => Attr self Bool
textTagForegroundSet :: forall self. TextTagClass self => Attr self Bool
textTagForegroundSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"foreground-set"

-- | Foreground color as a (possibly unallocated) GdkColor.
--
textTagForegroundGdk :: TextTagClass self => Attr self Color
textTagForegroundGdk :: forall self. TextTagClass self => Attr self Color
textTagForegroundGdk =
  String -> GType -> Attr self Color
forall gobj boxed.
(GObjectClass gobj, Storable boxed) =>
String -> GType -> Attr gobj boxed
newAttrFromBoxedStorableProperty String
"foreground-gdk"
  GType
gdk_color_get_type
{-# LINE 347 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}


-- | Bitmap to use as a mask when drawing the text foreground.
--
-- Removed in Gtk3.
textTagForegroundStipple :: (TextTagClass self, PixmapClass pixmap) => ReadWriteAttr self Pixmap pixmap
textTagForegroundStipple :: forall self pixmap.
(TextTagClass self, PixmapClass pixmap) =>
ReadWriteAttr self Pixmap pixmap
textTagForegroundStipple = String -> GType -> ReadWriteAttr self Pixmap pixmap
forall gobj gobj' gobj''.
(GObjectClass gobj, GObjectClass gobj', GObjectClass gobj'') =>
String -> GType -> ReadWriteAttr gobj gobj' gobj''
newAttrFromObjectProperty String
"foreground-stipple"
  GType
gdk_pixmap_get_type
{-# LINE 355 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects the foreground stipple.
--
-- Default value: @False@
--
-- Removed in Gtk3.
textTagForegroundStippleSet :: TextTagClass self => Attr self Bool
textTagForegroundStippleSet :: forall self. TextTagClass self => Attr self Bool
textTagForegroundStippleSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"foreground-stipple-set"


-- | Text direction, e.g. right-to-left or left-to-right.
--
-- Default value: 'TextDirLtr'
--
textTagDirection :: TextTagClass self => Attr self TextDirection
textTagDirection :: forall self. TextTagClass self => Attr self TextDirection
textTagDirection = String -> GType -> Attr self TextDirection
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"direction"
  GType
gtk_text_direction_get_type
{-# LINE 372 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether the text can be modified by the user.
--
-- Default value: @True@
--
textTagEditable :: TextTagClass self => Attr self Bool
textTagEditable :: forall self. TextTagClass self => Attr self Bool
textTagEditable = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"editable"

-- | Whether this tag affects text editability.
--
-- Default value: @False@
--
textTagEditableSet :: TextTagClass self => Attr self Bool
textTagEditableSet :: forall self. TextTagClass self => Attr self Bool
textTagEditableSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"editable-set"

-- | Font description as a string, e.g. \"Sans Italic 12\".
--
-- Default value: \"\"
--
textTagFont :: (TextTagClass self, GlibString string) => Attr self string
textTagFont :: forall self string.
(TextTagClass self, GlibString string) =>
Attr self string
textTagFont = String -> Attr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> Attr gobj string
newAttrFromStringProperty String
"font"

-- | Font description as a 'FontDescription' struct.
--
textTagFontDesc :: TextTagClass self => Attr self FontDescription
textTagFontDesc :: forall self. TextTagClass self => Attr self FontDescription
textTagFontDesc = (Ptr FontDescription -> IO FontDescription)
-> (FontDescription -> (Ptr FontDescription -> IO ()) -> IO ())
-> String
-> GType
-> Attr self FontDescription
forall gobj boxed.
GObjectClass gobj =>
(Ptr boxed -> IO boxed)
-> (boxed -> (Ptr boxed -> IO ()) -> IO ())
-> String
-> GType
-> Attr gobj boxed
newAttrFromBoxedOpaqueProperty Ptr FontDescription -> IO FontDescription
makeNewFontDescription
  (\(FontDescription ForeignPtr FontDescription
fd) Ptr FontDescription -> IO ()
act -> ForeignPtr FontDescription
-> (Ptr FontDescription -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr FontDescription
fd Ptr FontDescription -> IO ()
act) String
"font-desc"
  GType
pango_font_description_get_type
{-# LINE 400 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Name of the font family, e.g. Sans, Helvetica, Times, Monospace.
--
-- Default value: \"\"
--
textTagFamily :: (TextTagClass self, GlibString string) => Attr self string
textTagFamily :: forall self string.
(TextTagClass self, GlibString string) =>
Attr self string
textTagFamily = String -> Attr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> Attr gobj string
newAttrFromStringProperty String
"family"

-- | Whether this tag affects the font family.
--
-- Default value: @False@
--
textTagFamilySet :: TextTagClass self => Attr self Bool
textTagFamilySet :: forall self. TextTagClass self => Attr self Bool
textTagFamilySet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"family-set"

-- | Font style as a 'Style', e.g. 'StyleItalic'.
--
-- Default value: 'StyleNormal'
--
textTagStyle :: TextTagClass self => Attr self FontStyle
textTagStyle :: forall self. TextTagClass self => Attr self FontStyle
textTagStyle = String -> GType -> Attr self FontStyle
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"style"
  GType
pango_style_get_type
{-# LINE 422 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects the font style.
--
-- Default value: @False@
--
textTagStyleSet :: TextTagClass self => Attr self Bool
textTagStyleSet :: forall self. TextTagClass self => Attr self Bool
textTagStyleSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"style-set"

-- | Custom tabs for this text.
-- textTagTabs :: TextTagClass self => Attr self TabArray

-- | Whether this tag affects tabs.
--
-- Default value: @False@
--
textTagTabsSet :: TextTagClass self => Attr self Bool
textTagTabsSet :: forall self. TextTagClass self => Attr self Bool
textTagTabsSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"tabs-set"

-- | Font variant as a 'Variant', e.g. 'VariantSmallCaps'.
--
-- Default value: 'VariantNormal'
--
textTagVariant :: TextTagClass self => Attr self Variant
textTagVariant :: forall self. TextTagClass self => Attr self Variant
textTagVariant = String -> GType -> Attr self Variant
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"variant"
  GType
pango_variant_get_type
{-# LINE 447 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects the font variant.
--
-- Default value: @False@
--
textTagVariantSet :: TextTagClass self => Attr self Bool
textTagVariantSet :: forall self. TextTagClass self => Attr self Bool
textTagVariantSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"variant-set"

-- | Font weight as an integer, see predefined values in 'Graphics.Rendering.Pango.Enums.Weight'; for
-- example, 'Graphics.Rendering.Pango.Enums.WeightBold'.
--
-- Allowed values: >= 0
--
-- Default value: 400
--
textTagWeight :: TextTagClass self => Attr self Int
textTagWeight :: forall self. TextTagClass self => Attr self Int
textTagWeight = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"weight"

-- | Whether this tag affects the font weight.
--
-- Default value: @False@
--
textTagWeightSet :: TextTagClass self => Attr self Bool
textTagWeightSet :: forall self. TextTagClass self => Attr self Bool
textTagWeightSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"weight-set"

-- | Font stretch as a 'Stretch', e.g. 'StretchCondensed'.
--
-- Default value: 'StretchNormal'
--
textTagStretch :: TextTagClass self => Attr self Stretch
textTagStretch :: forall self. TextTagClass self => Attr self Stretch
textTagStretch = String -> GType -> Attr self Stretch
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"stretch"
  GType
pango_stretch_get_type
{-# LINE 479 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects the font stretch.
textTagStretchSet :: TextTagClass self => Attr self Bool
textTagStretchSet :: forall self. TextTagClass self => Attr self Bool
textTagStretchSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"stretch-set"

-- | Font size in Pango units.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagSize :: TextTagClass self => Attr self Int
textTagSize :: forall self. TextTagClass self => Attr self Int
textTagSize = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"size"

-- | Whether this tag affects the font size.
--
-- Default value: @False@
--
textTagSizeSet :: TextTagClass self => Attr self Bool
textTagSizeSet :: forall self. TextTagClass self => Attr self Bool
textTagSizeSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"size-set"

-- | Font size as a scale factor relative to the default font size. This
-- properly adapts to theme changes etc. so is recommended.
--
-- Allowed values: >= 0
--
-- Default value: 1
--
textTagScale :: TextTagClass self => Attr self Double
textTagScale :: forall self. TextTagClass self => Attr self Double
textTagScale = String -> Attr self Double
forall gobj. GObjectClass gobj => String -> Attr gobj Double
newAttrFromDoubleProperty String
"scale"

-- | Whether this tag scales the font size by a factor.
--
-- Default value: @False@
--
textTagScaleSet :: TextTagClass self => Attr self Bool
textTagScaleSet :: forall self. TextTagClass self => Attr self Bool
textTagScaleSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"scale-set"

-- | Font size in points.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagSizePoints :: TextTagClass self => Attr self Double
textTagSizePoints :: forall self. TextTagClass self => Attr self Double
textTagSizePoints = String -> Attr self Double
forall gobj. GObjectClass gobj => String -> Attr gobj Double
newAttrFromDoubleProperty String
"size-points"

-- | Left, right, or center justification.
--
-- Default value: 'JustifyLeft'
--
textTagJustification :: TextTagClass self => Attr self Justification
textTagJustification :: forall self. TextTagClass self => Attr self Justification
textTagJustification = String -> GType -> Attr self Justification
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"justification"
  GType
gtk_justification_get_type
{-# LINE 533 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects paragraph justification.
--
-- Default value: @False@
--
textTagJustificationSet :: TextTagClass self => Attr self Bool
textTagJustificationSet :: forall self. TextTagClass self => Attr self Bool
textTagJustificationSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"justification-set"

-- | The language this text is in, as an ISO code. Pango can use this as a
-- hint when rendering the text. If not set, an appropriate default will be
-- used.
--
-- Default value: \"\"
--
textTagLanguage :: (TextTagClass self, GlibString string) => Attr self string
textTagLanguage :: forall self string.
(TextTagClass self, GlibString string) =>
Attr self string
textTagLanguage = String -> Attr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> Attr gobj string
newAttrFromStringProperty String
"language"

-- | Whether this tag affects the language the text is rendered as.
--
-- Default value: @False@
--
textTagLanguageSet :: TextTagClass self => Attr self Bool
textTagLanguageSet :: forall self. TextTagClass self => Attr self Bool
textTagLanguageSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"language-set"

-- | Width of the left margin in pixels.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagLeftMargin :: TextTagClass self => Attr self Int
textTagLeftMargin :: forall self. TextTagClass self => Attr self Int
textTagLeftMargin = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"left-margin"

-- | Whether this tag affects the left margin.
--
-- Default value: @False@
--
textTagLeftMarginSet :: TextTagClass self => Attr self Bool
textTagLeftMarginSet :: forall self. TextTagClass self => Attr self Bool
textTagLeftMarginSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"left-margin-set"

-- | Width of the right margin in pixels.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagRightMargin :: TextTagClass self => Attr self Int
textTagRightMargin :: forall self. TextTagClass self => Attr self Int
textTagRightMargin = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"right-margin"

-- | Whether this tag affects the right margin.
--
-- Default value: @False@
--
textTagRightMarginSet :: TextTagClass self => Attr self Bool
textTagRightMarginSet :: forall self. TextTagClass self => Attr self Bool
textTagRightMarginSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"right-margin-set"

-- | Amount to indent the paragraph, in pixels.
--
-- Default value: 0
--
textTagIndent :: TextTagClass self => Attr self Int
textTagIndent :: forall self. TextTagClass self => Attr self Int
textTagIndent = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"indent"

-- | Whether this tag affects indentation.
--
-- Default value: @False@
--
textTagIndentSet :: TextTagClass self => Attr self Bool
textTagIndentSet :: forall self. TextTagClass self => Attr self Bool
textTagIndentSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"indent-set"

-- | Offset of text above the baseline (below the baseline if rise is
-- negative) in pixels.
--
-- Default value: 0
--
textTagRise :: TextTagClass self => Attr self Int
textTagRise :: forall self. TextTagClass self => Attr self Int
textTagRise = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"rise"

-- | Whether this tag affects the rise.
textTagRiseSet :: TextTagClass self => Attr self Bool
textTagRiseSet :: forall self. TextTagClass self => Attr self Bool
textTagRiseSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"rise-set"

-- | Pixels of blank space above paragraphs.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagPixelsAboveLines :: TextTagClass self => Attr self Int
textTagPixelsAboveLines :: forall self. TextTagClass self => Attr self Int
textTagPixelsAboveLines = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"pixels-above-lines"

-- | Whether this tag affects the number of pixels above lines.
--
-- Default value: @False@
--
textTagPixelsAboveLinesSet :: TextTagClass self => Attr self Bool
textTagPixelsAboveLinesSet :: forall self. TextTagClass self => Attr self Bool
textTagPixelsAboveLinesSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"pixels-above-lines-set"

-- | Pixels of blank space below paragraphs.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagPixelsBelowLines :: TextTagClass self => Attr self Int
textTagPixelsBelowLines :: forall self. TextTagClass self => Attr self Int
textTagPixelsBelowLines = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"pixels-below-lines"

-- | Whether this tag affects the number of pixels below lines.
--
-- Default value: @False@
--
textTagPixelsBelowLinesSet :: TextTagClass self => Attr self Bool
textTagPixelsBelowLinesSet :: forall self. TextTagClass self => Attr self Bool
textTagPixelsBelowLinesSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"pixels-below-lines-set"

-- | Pixels of blank space between wrapped lines in a paragraph.
--
-- Allowed values: >= 0
--
-- Default value: 0
--
textTagPixelsInsideWrap :: TextTagClass self => Attr self Int
textTagPixelsInsideWrap :: forall self. TextTagClass self => Attr self Int
textTagPixelsInsideWrap = String -> Attr self Int
forall gobj. GObjectClass gobj => String -> Attr gobj Int
newAttrFromIntProperty String
"pixels-inside-wrap"

-- | Whether this tag affects the number of pixels between wrapped lines.
--
-- Default value: @False@
--
textTagPixelsInsideWrapSet :: TextTagClass self => Attr self Bool
textTagPixelsInsideWrapSet :: forall self. TextTagClass self => Attr self Bool
textTagPixelsInsideWrapSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"pixels-inside-wrap-set"

-- | Whether to strike through the text.
--
-- Default value: @False@
--
textTagStrikethrough :: TextTagClass self => Attr self Bool
textTagStrikethrough :: forall self. TextTagClass self => Attr self Bool
textTagStrikethrough = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"strikethrough"

-- | Whether this tag affects strikethrough.
--
-- Default value: @False@
--
textTagStrikethroughSet :: TextTagClass self => Attr self Bool
textTagStrikethroughSet :: forall self. TextTagClass self => Attr self Bool
textTagStrikethroughSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"strikethrough-set"

-- | Style of underline for this text.
--
-- Default value: 'UnderlineNone'
--
textTagUnderline :: TextTagClass self => Attr self Underline
textTagUnderline :: forall self. TextTagClass self => Attr self Underline
textTagUnderline = String -> GType -> Attr self Underline
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"underline"
  GType
pango_underline_get_type
{-# LINE 684 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects underlining.
--
-- Default value: @False@
--
textTagUnderlineSet :: TextTagClass self => Attr self Bool
textTagUnderlineSet :: forall self. TextTagClass self => Attr self Bool
textTagUnderlineSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"underline-set"

-- | Whether to wrap lines never, at word boundaries, or at character
-- boundaries.
--
-- Default value: 'WrapNone'
--
textTagWrapMode :: TextTagClass self => Attr self WrapMode
textTagWrapMode :: forall self. TextTagClass self => Attr self WrapMode
textTagWrapMode = String -> GType -> Attr self WrapMode
forall gobj enum.
(GObjectClass gobj, Enum enum) =>
String -> GType -> Attr gobj enum
newAttrFromEnumProperty String
"wrap-mode"
  GType
gtk_wrap_mode_get_type
{-# LINE 700 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}

-- | Whether this tag affects line wrap mode.
--
-- Default value: @False@
--
textTagWrapModeSet :: TextTagClass self => Attr self Bool
textTagWrapModeSet :: forall self. TextTagClass self => Attr self Bool
textTagWrapModeSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"wrap-mode-set"


-- | Whether this text is hidden.
--
-- Note that there may still be problems with the support for invisible
-- text, in particular when navigating programmatically inside a buffer
-- containing invisible segments.
--
-- Default value: @False@
--
textTagInvisible :: TextTagClass self => Attr self Bool
textTagInvisible :: forall self. TextTagClass self => Attr self Bool
textTagInvisible = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"invisible"

-- | Whether this tag affects text visibility.
--
-- Default value: @False@
--
textTagInvisibleSet :: TextTagClass self => Attr self Bool
textTagInvisibleSet :: forall self. TextTagClass self => Attr self Bool
textTagInvisibleSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"invisible-set"

-- | The paragraph background color as a string.
--
-- Default value: \"\"
--
textTagParagraphBackground :: (TextTagClass self, GlibString string) => WriteAttr self string
textTagParagraphBackground :: forall self string.
(TextTagClass self, GlibString string) =>
WriteAttr self string
textTagParagraphBackground = String -> WriteAttr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> WriteAttr gobj string
writeAttrFromStringProperty String
"paragraph-background"

-- | Whether this tag affects the paragraph background color.
--
-- Default value: @False@
--
textTagParagraphBackgroundSet :: TextTagClass self => Attr self Bool
textTagParagraphBackgroundSet :: forall self. TextTagClass self => Attr self Bool
textTagParagraphBackgroundSet = String -> Attr self Bool
forall gobj. GObjectClass gobj => String -> Attr gobj Bool
newAttrFromBoolProperty String
"paragraph-background-set"

-- | The paragraph background color as a as a (possibly unallocated) 'Color'.
--
textTagParagraphBackgroundGdk :: TextTagClass self => Attr self Color
textTagParagraphBackgroundGdk :: forall self. TextTagClass self => Attr self Color
textTagParagraphBackgroundGdk =
  String -> GType -> Attr self Color
forall gobj boxed.
(GObjectClass gobj, Storable boxed) =>
String -> GType -> Attr gobj boxed
newAttrFromBoxedStorableProperty String
"paragraph-background-gdk"
  GType
gdk_color_get_type
{-# LINE 747 "./Graphics/UI/Gtk/Multiline/TextTag.chs" #-}


-- | \'priority\' property. See 'textTagGetPriority' and 'textTagSetPriority'
--
textTagPriority :: TextTagClass self => Attr self Int
textTagPriority :: forall self. TextTagClass self => Attr self Int
textTagPriority = (self -> IO Int)
-> (self -> Int -> IO ()) -> ReadWriteAttr self Int Int
forall o a b.
(o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
newAttr
  self -> IO Int
forall self. TextTagClass self => self -> IO Int
textTagGetPriority
  self -> Int -> IO ()
forall self. TextTagClass self => self -> Int -> IO ()
textTagSetPriority

--------------------
-- Signals

-- the following signal only really makes sense if the EventM module provides dynamic upcast
-- functions since the user must test what kind of event has been delivered.

-- | An event has occurred that affects the given tag.
--
-- * Adding an event handler to the tag makes it possible to react on
-- e.g. mouse clicks to implement hyperlinking.
--
-- * The first argument is the object the event was fired from (typically a 'TextView').
-- The second argument is the iterator indicating where the event happened.
--
textTagEvent :: TextTagClass self => Signal self (GObject -> TextIter -> EventM EAny Bool)
textTagEvent :: forall self.
TextTagClass self =>
Signal self (GObject -> TextIter -> EventM EAny Bool)
textTagEvent = (Bool
 -> self
 -> (GObject -> TextIter -> EventM EAny Bool)
 -> IO (ConnectId self))
-> Signal self (GObject -> TextIter -> EventM EAny Bool)
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (\Bool
after self
obj GObject -> TextIter -> EventM EAny Bool
fun ->
                       String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (GObject -> Ptr EAny -> TextIter -> IO Bool)
-> IO (ConnectId self)
forall a' obj c' c b.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> Ptr b -> c -> IO Bool)
-> IO (ConnectId obj)
connect_OBJECT_PTR_BOXED__BOOL String
"event" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
after self
obj
                         (\GObject
tv Ptr EAny
eventPtr TextIter
iter -> EventM EAny Bool -> Ptr EAny -> IO Bool
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT (GObject -> TextIter -> EventM EAny Bool
fun GObject
tv TextIter
iter) Ptr EAny
eventPtr)
                      )

--------------------
-- Deprecated Signals and Events



-- | An event has occurred that affects the given tag.
--
-- * Adding an event handler to the tag makes it possible to react on
-- e.g. mouse clicks to implement hyperlinking.
--
onTextTagEvent :: TextTagClass t => t -> (Event -> TextIter -> IO ()) ->
                  IO (ConnectId t)
onTextTagEvent :: forall t.
TextTagClass t =>
t -> (Event -> TextIter -> IO ()) -> IO (ConnectId t)
onTextTagEvent t
tt Event -> TextIter -> IO ()
act =
  String
-> (Ptr Event -> IO Event)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> t
-> (Ptr Any -> Event -> TextIter -> IO Bool)
-> IO (ConnectId t)
forall obj b' b c' c a.
GObjectClass obj =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (Ptr a -> b -> c -> IO Bool)
-> IO (ConnectId obj)
connect_PTR_BOXED_BOXED__BOOL String
"event" Ptr Event -> IO Event
marshalEvent Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False t
tt
    (\Ptr Any
_ Event
event TextIter
iter -> Event -> TextIter -> IO ()
act Event
event TextIter
iter IO () -> IO Bool -> IO Bool
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
False)

foreign import ccall unsafe "gtk_text_tag_new"
  gtk_text_tag_new :: ((Ptr CChar) -> (IO (Ptr TextTag)))

foreign import ccall unsafe "gtk_text_tag_get_priority"
  gtk_text_tag_get_priority :: ((Ptr TextTag) -> (IO CInt))

foreign import ccall safe "gtk_text_tag_set_priority"
  gtk_text_tag_set_priority :: ((Ptr TextTag) -> (CInt -> (IO ())))

foreign import ccall unsafe "gtk_text_attributes_new"
  gtk_text_attributes_new :: (IO (Ptr TextAttributes))

foreign import ccall safe "gtk_text_attributes_copy"
  gtk_text_attributes_copy :: ((Ptr TextAttributes) -> (IO (Ptr TextAttributes)))

foreign import ccall safe "gtk_text_attributes_copy_values"
  gtk_text_attributes_copy_values :: ((Ptr TextAttributes) -> ((Ptr TextAttributes) -> (IO ())))

foreign import ccall unsafe "gdk_color_get_type"
  gdk_color_get_type :: CULong

foreign import ccall unsafe "gdk_pixmap_get_type"
  gdk_pixmap_get_type :: CULong

foreign import ccall unsafe "gtk_text_direction_get_type"
  gtk_text_direction_get_type :: CULong

foreign import ccall unsafe "pango_font_description_get_type"
  pango_font_description_get_type :: CULong

foreign import ccall unsafe "pango_style_get_type"
  pango_style_get_type :: CULong

foreign import ccall unsafe "pango_variant_get_type"
  pango_variant_get_type :: CULong

foreign import ccall unsafe "pango_stretch_get_type"
  pango_stretch_get_type :: CULong

foreign import ccall unsafe "gtk_justification_get_type"
  gtk_justification_get_type :: CULong

foreign import ccall unsafe "pango_underline_get_type"
  pango_underline_get_type :: CULong

foreign import ccall unsafe "gtk_wrap_mode_get_type"
  gtk_wrap_mode_get_type :: CULong