gi-pango-1.0.30: 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
  - getCharOffset
  - 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) => Maybe Item -> m (Maybe Item)
- itemFree :: (HasCallStack, MonadIO m) => Maybe Item -> m ()
- itemGetCharOffset :: (HasCallStack, MonadIO m) => Item -> m Int32
- 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

getCharOffset.

#### 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) |
=> Maybe Item | `item`: a `PangoItem`
-> m (Maybe Item) | Returns: the newly allocated `PangoItem`

Copy an existing `PangoItem` structure.

## free

itemFree Source #

Arguments

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

Free a `PangoItem` and all associated memory.

## getCharOffset

itemGetCharOffset Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Item | `item`: a `PangoItem`
-> m Int32 | Returns: the character offset of the item from the beginning of the itemized text, or -1

Returns the character offset of the item from the beginning of the itemized text.

If the item has not been obtained from Pango's itemization machinery, then the character offset is not available. In that case, this function returns -1.

Since: 1.54

## 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 ]