gi-pango-1.0.29: Pango bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | Safe-Inferred
Language | Haskell2010

GI.Pango.Structs.Item

Contents

- Exported types
- Methods
  - applyAttrs
  - copy
  - free
  - new
  - split
- Properties
  - analysis
  - length
  - numChars
  - offset

Description

The `PangoItem` structure stores information about a segment of text.

You typically obtain `PangoItems` by itemizing a piece of text with [func`itemize`].

Synopsis

- newtype Item = Item (ManagedPtr Item)
- newZeroItem :: MonadIO m => m Item
- itemApplyAttrs :: (HasCallStack, MonadIO m) => Item -> AttrIterator -> m ()
- itemCopy :: (HasCallStack, MonadIO m) => Item -> m (Maybe Item)
- itemFree :: (HasCallStack, MonadIO m) => Item -> m ()
- itemNew :: (HasCallStack, MonadIO m) => m Item
- itemSplit :: (HasCallStack, MonadIO m) => Item -> Int32 -> Int32 -> m Item
- getItemAnalysis :: MonadIO m => Item -> m Analysis
- getItemLength :: MonadIO m => Item -> m Int32
- setItemLength :: MonadIO m => Item -> Int32 -> m ()
- getItemNumChars :: MonadIO m => Item -> m Int32
- setItemNumChars :: MonadIO m => Item -> Int32 -> m ()
- getItemOffset :: MonadIO m => Item -> m Int32
- setItemOffset :: MonadIO m => Item -> Int32 -> m ()

# Exported types

newtype Item Source #

Memory-managed wrapper type.

Constructors

Item (ManagedPtr Item) |

#### Instances

Instances details

Eq Item Source # |
Instance details Defined in GI.Pango.Structs.Item Methods (==) :: Item -> Item -> Bool Source # (/=) :: Item -> Item -> Bool Source #
GBoxed Item Source # |
Instance details Defined in GI.Pango.Structs.Item
ManagedPtrNewtype Item Source # |
Instance details Defined in GI.Pango.Structs.Item Methods toManagedPtr :: Item -> ManagedPtr Item Source #
TypedObject Item Source # |
Instance details Defined in GI.Pango.Structs.Item Methods glibType :: IO GType Source #
HasParentTypes Item Source # |
Instance details Defined in GI.Pango.Structs.Item
tag ~ 'AttrSet => Constructible Item tag Source # |
Instance details Defined in GI.Pango.Structs.Item Methods new :: MonadIO m => (ManagedPtr Item -> Item) -> [AttrOp Item tag] -> m Item Source #
IsGValue (Maybe Item) Source # | Convert `Item` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Pango.Structs.Item Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe Item -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe Item) Source #
type ParentTypes Item Source # |
Instance details Defined in GI.Pango.Structs.Item type ParentTypes Item = '[] :: [Type]

newZeroItem :: MonadIO m => m Item Source #

Construct a `Item` struct initialized to zero.

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

applyAttrs, copy, free, split.

#### Getters

None.

#### Setters

None.

## applyAttrs

itemApplyAttrs Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Item | `item`: a `PangoItem`
-> AttrIterator | `iter`: a `PangoAttrIterator`
-> m () |

Add attributes to a `PangoItem`.

The idea is that you have attributes that don't affect itemization, such as font features, so you filter them out using `attrListFilter`, itemize your text, then reapply the attributes to the resulting items using this function.

The `iter` should be positioned before the range of the item, and will be advanced past it. This function is meant to be called in a loop over the items resulting from itemization, while passing the iter to each call.

Since: 1.44

## copy

itemCopy Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Item | `item`: a `PangoItem`
-> m (Maybe Item) | Returns: the newly allocated `PangoItem`

Copy an existing `PangoItem` structure.

## free

itemFree Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Item | `item`: a `PangoItem`, may be `Nothing`
-> m () |

Free a `PangoItem` and all associated memory.

## new

itemNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m Item | Returns: the newly allocated `PangoItem`, which should be freed with `itemFree`.

Creates a new `PangoItem` structure initialized to default values.

## split

itemSplit Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Item | `orig`: a `PangoItem`
-> Int32 | `splitIndex`: byte index of position to split item, relative to the start of the item
-> Int32 | `splitOffset`: number of chars between start of `orig` and `splitIndex`
-> m Item | Returns: new item representing text before `splitIndex`, which should be freed with `itemFree`.

Modifies `orig` to cover only the text after `splitIndex`, and returns a new item that covers the text before `splitIndex` that used to be in `orig`.

You can think of `splitIndex` as the length of the returned item. `splitIndex` may not be 0, and it may not be greater than or equal to the length of `orig` (that is, there must be at least one byte assigned to each item, you can't create a zero-length item). `splitOffset` is the length of the first item in chars, and must be provided because the text used to generate the item isn't available, so `pango_item_split()` can't count the char length of the split items itself.

# Properties

## analysis

analysis results for the item.

getItemAnalysis :: MonadIO m => Item -> m Analysis Source #

Get the value of the “`analysis`” field. When overloading is enabled, this is equivalent to

    get item #analysis

## length

length of this item in bytes.

getItemLength :: MonadIO m => Item -> m Int32 Source #

Get the value of the “`length`” field. When overloading is enabled, this is equivalent to

    get item #length

setItemLength :: MonadIO m => Item -> Int32 -> m () Source #

Set the value of the “`length`” field. When overloading is enabled, this is equivalent to

    set item [ #length := value ]

## numChars

number of Unicode characters in the item.

getItemNumChars :: MonadIO m => Item -> m Int32 Source #

Get the value of the “`num_chars`” field. When overloading is enabled, this is equivalent to

    get item #numChars

setItemNumChars :: MonadIO m => Item -> Int32 -> m () Source #

Set the value of the “`num_chars`” field. When overloading is enabled, this is equivalent to

    set item [ #numChars := value ]

## offset

byte offset of the start of this item in text.

getItemOffset :: MonadIO m => Item -> m Int32 Source #

Get the value of the “`offset`” field. When overloading is enabled, this is equivalent to

    get item #offset

setItemOffset :: MonadIO m => Item -> Int32 -> m () Source #

Set the value of the “`offset`” field. When overloading is enabled, this is equivalent to

    set item [ #offset := value ]