| Gtk2Hs | Contents | Index

Graphics.UI.Gtk.Pango.Markup

Portability | portable (depends on GHC)
Stability | provisional
Maintainer | gtk2hs-users@lists.sourceforge.net

Description

This module defines some helper functions for generating texts with embedded attributes. Note that there is no need to use these functions. In particular, if you set markup in labels that are subject to internationalization, it can be of advantage to write out the markup instead of using the functions in this module.

In order to display a string that may contain markup characters, use Graphics.UI.Gtk.Pango.Layout.escapeMarkup.

When you write markup directly, you can make use of the following convenience tags:

`b`
  Bold
`big`
  Makes font relatively larger
`i`
  Italic
`s`
  Strikethrough
`sub`
  Subscript
`sup`
  Superscript
`small`
  Makes font relatively smaller
`tt`
  Monospace font
`u`
  Underline

The full markup language can be found at http://library.gnome.org/devel/pango/stable/PangoMarkupFormat.html.

Synopsis

type Markup = String

data SpanAttribute

= FontDescr String
| FontFamily String
| FontSize Size
| FontStyle FontStyle
| FontWeight Weight
| FontVariant Variant
| FontStretch Stretch
| FontForeground String
| FontBackground String
| FontUnderline Underline
| FontRise Double
| FontLang Language
| FontGravity PangoGravity
| FontGravityHint PangoGravityHint

markSpan :: [SpanAttribute] -> String -> String
parseMarkup :: Markup -> Char -> IO ([[PangoAttribute]], Char, String)

Documentation
type Markup = String

Define a synonym for text with embedded markup commands.

- Markup strings are just simple strings. But it's easier to tell if a method expects text with or without markup.

data SpanAttribute

These are all the attributes the `markSpan` function can express.
Constructors

FontDescr String

Choose a font by textual description.

- Takes a string to completely describe the font, example: `FontDescr` "Sans Italic 12"

FontFamily String

Specify the family of font to use.

- Example: `FontFamily` "Sans"

FontSize Size

Change the size of the current font.

- The constuctor takes the size in points (pt) or a predefined sizes. Setting the absolute size 12.5pt can be achieved by passing `FontSize` (SizePoint 12.5) to `markSpan`. Next to predefined absolute sizes such as `SizeSmall` the size can be changed by asking for the next larger or smaller front with `SizeLarger` and `SizeSmaller`, respectively.

FontStyle FontStyle | Change the slant of the current font.

FontWeight Weight

Change the thickness of the current font.

- The constructor takes one of the six predefined weights. Most likely to be supported: `WeightBold`.

FontVariant Variant

Choosing an alternative rendering for lower case letters.

- The argument `VariantSmallCaps` will display lower case letters as smaller upper case letters, if this option is available.

FontStretch Stretch

Choose a different width.

- Takes one of nine font widths, e.g. Pango.WidthExpanded.

FontForeground String

Foreground color.

- This constructor and `FontBackground` take both a description of the color to be used for rendering. The name is either a hex code of the form "#RRGGBB" or an X11 color name like "dark olive green".

FontBackground String | Background color.
FontUnderline Underline | Specify underlining of text.

FontRise Double

Specify a vertical displacement.

- Takes the vertical displacement in em (the width of the 'm' character in the current font).

FontLang Language

Give a hint about the language to be displayed.

- This hint might help the system rendering a particular piece of text with different fonts that are more suitable for the given language.

FontGravity PangoGravity | Gravity of text, use for ratation.
FontGravityHint PangoGravityHint | Intensity of gravity.

Instances

Show SpanAttribute

markSpan :: [SpanAttribute] -> String -> String
Create the most generic span attribute.
parseMarkup

:: Markup | the string containing markup
-> Char | `accelMarker` - the character that prefixes an accelerator
-> IO ([[PangoAttribute]], Char, String) | list of attributes, the accelerator character found and the input string without markup

Parse the marked-up text (see Graphics.UI.Gtk.Pango.Markup.Markup format) to create a plain-text string and an attribute list.

- The attribute list is a list of lists of attribute. Each list describes the attributes for the same span.
- If `accelMarker` is not `'\0'` (a zero character), the given character will mark the character following it as an accelerator. For example, `accelMarker` might be an ampersand or underscore. All characters marked as an accelerator will receive a `UnderlineLow` attribute, and the first character so marked will be returned as `accelChar`. If no accelerator character is found, the `accelMarker` character itself is returned. Two `accelMarker` characters following each other produce a single literal `accelMarker` character.
- If a parsing error occurs a `GError` is thrown.

Produced by Haddock version 2.4.2