Library
Module
Module type
Parameter
Class
Class type
Interaction with Pango, a library for laying out and rendering of text.
module Font_map : sig ... end
Interacting with Pango.font_map
.
type cairo_font = [ `pangofont | `cairo ] Gobject.obj
val get_scaled_font : cairo_font -> _ Cairo.Scaled_font.t
val set_resolution : Pango.context -> float -> unit
Sets the resolution for the context. This is a scale factor between points specified in a Pango.font_description
and Cairo units. The default value is 96, meaning that a 10 point font will be 13 units high. (10 * 96. / 72. = 13.3).
val get_resolution : Pango.context -> float
Gets the resolution for the context.
val set_font_options : Pango.context -> Cairo.Font_options.t -> unit
set_font_options cr options
sets the font options used when rendering text with cr
. These options override any options that update_context
derives from the target surface.
val get_font_options : Pango.context -> Cairo.Font_options.t
Retrieves any font rendering options previously set with set_font_options
. This function does not report options that are derived from the target surface by update_context
.
val create_context : Cairo.context -> Pango.context
Creates a context object set up to match the current transformation and target surface of the Cairo context. This context can then be used to create a layout using Pango.Layout.create
.
val update_context : Cairo.context -> Pango.context -> unit
Updates a Pango.context
previously created for use with Cairo to match the current transformation and target surface of a Cairo context. If any layouts have been created for the context, it's necessary to call context_changed
on those layouts.
val create_layout : Cairo.context -> Pango.layout
create_layout cr
creates a layout object set up to match the current transformation and target surface of the Cairo context cr
. This layout can then be used for text measurement with functions like Pango.Layout.get_size
or drawing with functions like show_layout
. If you change the transformation or target surface for cr
, you need to call update_layout
.
val update_layout : Cairo.context -> Pango.layout -> unit
update_layout cr layout
updates the private Pango.context
of layout
created with create_layout
to match the current transformation and target surface of a Cairo context cr
.
val show_layout : Cairo.context -> Pango.layout -> unit
show_layout cr layout
draws a layout
in the specified cairo context cr
. The top-left corner of layout
will be drawn at the current point of the cairo context.
val show_error_underline :
Cairo.context ->
float ->
float ->
w:float ->
h:float ->
unit
show_error_underline cr x y w h
draw a squiggly line in the cairo context cr
that approximately covers the given rectangle in the style of an underline used to indicate a spelling error. (The width w
of the underline is rounded to an integer number of up/down segments and the resulting rectangle is centered in the original rectangle).
val layout_path : Cairo.context -> Pango.layout -> unit
layout_path cr layout
adds the text in a layout
to the current path in cr
. The top-left corner of the layout
will be at the current point of the cairo context.
val error_underline_path :
Cairo.context ->
float ->
float ->
w:float ->
h:float ->
unit
error_underline_path cr x y w h
add a squiggly line to the current path in the cairo context cr
that approximately covers the given rectangle in the style of an underline used to indicate a spelling error. (The width w
of the underline is rounded to an integer number of up/down segments and the resulting rectangle is centered in the original rectangle).