Xfce Foundation Classes
Main Page  | IndexNamespace List  |  Alphabetical List  |  Class List  |  File List


Xfc::Pango::GlyphString Class Reference

A PangoGlyphString C++ wrapper class. More...

#include <xfc/pango/glyph.hh>

Inheritance diagram for Xfc::Pango::GlyphString:

Xfc::G::Boxed Xfc::Object Xfc::Trackable List of all members.

Public Member Functions

Constructors
Accessors
Methods

Detailed Description

A PangoGlyphString C++ wrapper class.

GlyphString is used to store strings of glyphs with geometry and visual attribute information. The storage for the glyph information is owned by the structure which simplifies memory management.

Note: dynamically allocated objects must either be unreferenced or assigned to a smart pointer. Stack objects are automatically unreferenced when they go out of scope.


Constructor & Destructor Documentation

Xfc::Pango::GlyphString::GlyphString const char *  text,
int  length,
const Analysis analysis
 

Given a segment of text and the corresponding Analysis structure returned from Pango::Context::itemize(), convert the characters in text into glyphs.

Parameters:
text The text to process.
length The length of the text in bytes.
analysis The Analysis structure from Pango::Context::Itemize().
You may also pass in only a substring of the item from Pango::Context::itemize(). This constructor calls pango_shape(). There is no shape() method. The GlyphString is created with a reference count of 1 that the caller owns.

Xfc::Pango::GlyphString::GlyphString const String text,
const Analysis analysis
 

Given a segment of text and the corresponding Analysis structure returned from Pango::Context::itemize(), convert the characters in text into glyphs.

Parameters:
text The text to process.
analysis The Analysis structure from Pango::Context::Itemize().
You may also pass in only a substring of the item from Pango::Context::itemize(). This constructor calls pango_shape(). There is no shape() method. The GlyphString is created with a reference count of 1 that the caller owns.

Xfc::Pango::GlyphString::GlyphString PangoGlyphString *  string  )  [explicit]
 

Constructs a new glyph string from an existing PangoGlyphString.

Parameters:
string A pointer to a PangoGlyphString.
The string can be a newly created PangoGlyphString or an existing PangoGlyphString. The glyph string object created is a temporary object. It doesn't take over the ownership of PangoGlyphString and PangoGlyphString is not freed by the destructor. The GlyphString is created with a reference count of 1 that the caller owns.

Xfc::Pango::GlyphString::GlyphString PangoGlyphString *  string,
bool  copy
 

Constructs a new glyph string from an existing PangoGlyphString.

Parameters:
string A pointer to a PangoGlyphString.
copy Whether the GlyphString object should make a copy of PangoGlyphString or not.
The string can be a newly created PangoGlyphString or an existing PangoGlyphString. If copy is true GlyphString will make a copy of PangoGlyphString. If copy is false GlyphString wont make a copy but instead takes over the ownership of PangoGlyphString. Either way, the destructor will free PangoGlyphString when the GlyphString object is destroyed. This constructor is used by G::Boxed::wrap() to wrap PangoGlyphString objects in a C++ wrapper. The GlyphString is created with a reference count of 1 that the caller owns.

Xfc::Pango::GlyphString::GlyphString const GlyphString src  ) 
 

Copy constructor.

Parameters:
src The source GlyphString.


Member Function Documentation

void Xfc::Pango::GlyphString::extents const Font font,
Rectangle ink_rect,
Rectangle logical_rect,
int  start = 0,
int  end = -1
const
 

Compute the logical and ink extents of a sub-portion the glyph string, or the entire glyph string.

Parameters:
font A Font.
ink_rect The rectangle used to store the extents of the glyph string as drawn, or null to indicate that the result is not needed.
logical_rect The rectangle used to store the logical extents of the glyph string, or null to indicate that the result is not needed.
start The start index in bytes, or 0 for the start of the string.
end The end index in bytes, or -1 for the end of the string.
The extents are relative to the start of the glyph string range (the origin of their coordinate system is at the start of the range, not at the start of the entire glyph string).

See the documentation for Pango::Font::get_glyph_extents() for details about the interpretation of the rectangles.

void Xfc::Pango::GlyphString::get_logical_widths const String text,
int  embedding_level,
std::vector< int > &  logical_widths
const
 

Given a GlyphString resulting from pango_shape() and the corresponding text, determine the screen width corresponding to each character.

Parameters:
text The text corresponding to the glyphs.
embedding_level The embedding level of the string.
logical_widths A reference to a vector of int to be filled in with the resulting character widths.
When multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.

void Xfc::Pango::GlyphString::get_logical_widths const char *  text,
int  length,
int  embedding_level,
std::vector< int > &  logical_widths
const
 

Given a GlyphString resulting from pango_shape() and the corresponding text, determine the screen width corresponding to each character.

Parameters:
text The text corresponding to the glyphs.
length The length of the text in bytes.
embedding_level The embedding level of the string.
logical_widths A reference to a vector of int to be filled in with the resulting character widths.
When multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.

int Xfc::Pango::GlyphString::index_to_x const String text,
const Analysis analysis,
int  index,
bool  trailing
 

Converts from a character position to an x position.

Parameters:
text The text for the run.
analysis The analysis information returned from Pango::Context::itemize().
index The byte index within text.
trailing Whether we should compute the result for the beginning or end of the character.
Returns:
The x position.
X position is measured from the left edge of the run. Character positions are computed by dividing up each cluster into equal portions.

int Xfc::Pango::GlyphString::index_to_x const char *  text,
int  length,
const Analysis analysis,
int  index,
bool  trailing
 

Converts from a character position to an x position.

Parameters:
text The text for the run.
length The length of the text in bytes.
analysis The analysis information returned from Pango::Context::itemize().
index The byte index within text.
trailing Whether we should compute the result for the beginning or end of the character.
Returns:
The x position.
X position is measured from the left edge of the run. Character positions are computed by dividing up each cluster into equal portions.

int* Xfc::Pango::GlyphString::log_clusters  )  const
 

For each glyph, returns the byte index of the starting character for the cluster.

The indices are relative to the start of the text corresponding to the GlyphString.

GlyphString& Xfc::Pango::GlyphString::operator= const GlyphString src  ) 
 

Assignment operator.

Parameters:
src The source GlyphString.

void Xfc::Pango::GlyphString::set_size int  length  ) 
 

Resize a glyph string to the given length.

Parameters:
length The new length of the string.

void Xfc::Pango::GlyphString::x_to_index const String text,
const Analysis analysis,
int  x_pos,
int *  index,
bool *  trailing
 

Convert from an x offset to character position.

Parameters:
text The text for the run.
analysis The analysis information returned from Pango::Context::itemize().
x_pos The x offset (in GlyphUnit).
index The location to store calculated byte index within the text.
trailing The location to store whether the user clicked on the leading or trailing edge of the character.
Character positions are computed by dividing up each cluster into equal portions. In scripts where positioning within a cluster is not allowed (such as Thai), the returned value may not be a valid cursor position; the caller must combine the result with the logical attributes for the text to compute the valid cursor position.

void Xfc::Pango::GlyphString::x_to_index const char *  text,
int  length,
const Analysis analysis,
int  x_pos,
int *  index,
bool *  trailing
 

Convert from an x offset to character position.

Parameters:
text The text for the run.
length The length of the text in bytes.
analysis The analysis information returned from Pango::Context::itemize().
x_pos The x offset (in GlyphUnit).
index The location to store calculated byte index within the text.
trailing The location to store whether the user clicked on the leading or trailing edge of the character.
Character positions are computed by dividing up each cluster into equal portions. In scripts where positioning within a cluster is not allowed (such as Thai), the returned value may not be a valid cursor position; the caller must combine the result with the logical attributes for the text to compute the valid cursor position.


The documentation for this class was generated from the following file: Xfce Foundation Classes
Copyright © 2004-2005 The XFC Development Team XFC 4.3