Gnash  0.8.11dev
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
gnash::SWF::TextRecord Class Reference

Store a TextRecord. More...

#include <TextRecord.h>

Classes

struct  GlyphEntry
 
struct  RecordCounter
 Accumulate the number of glyphs in a TextRecord. More...
 

Public Types

typedef std::vector< TextRecordTextRecords
 
typedef std::vector< GlyphEntryGlyphs
 

Public Member Functions

 TextRecord ()
 
bool read (SWFStream &in, movie_definition &m, int glyphBits, int advanceBits, TagType tag)
 Read a TextRecord from the stream. More...
 
const Glyphsglyphs () const
 
void addGlyph (const GlyphEntry &ge, Glyphs::size_type num=1)
 
void clearGlyphs (Glyphs::size_type num=0)
 
void setFont (boost::intrusive_ptr< const Font > f)
 
void setURL (std::string url)
 
const std::string & getURL () const
 
void setTarget (std::string target)
 
const std::string & getTarget () const
 
const FontgetFont () const
 
void setTextHeight (std::uint16_t height)
 
float recordWidth () const
 
std::uint16_t textHeight () const
 
bool hasXOffset () const
 
void setXOffset (float x)
 
float xOffset () const
 
bool hasYOffset () const
 
void setYOffset (float y)
 
float yOffset () const
 
void setColor (const rgba &color)
 
const rgbacolor () const
 
bool underline () const
 
void setUnderline (bool b)
 

Static Public Member Functions

static void displayRecords (Renderer &renderer, const Transform &xform, const TextRecords &records, bool embedded=true)
 Render the given glyph records. More...
 

Detailed Description

Store a TextRecord.

This consists of style information and a number of glyphs. This may be parsed from a SWFStream, or it can be constructed dynamically by TextField. A static TextField has fewer possible properties than a dynamic one.

Member Typedef Documentation

§ Glyphs

§ TextRecords

Constructor & Destructor Documentation

§ TextRecord()

gnash::SWF::TextRecord::TextRecord ( )
inline

Member Function Documentation

§ addGlyph()

void gnash::SWF::TextRecord::addGlyph ( const GlyphEntry ge,
Glyphs::size_type  num = 1 
)
inline

§ clearGlyphs()

void gnash::SWF::TextRecord::clearGlyphs ( Glyphs::size_type  num = 0)
inline

§ color()

const rgba& gnash::SWF::TextRecord::color ( ) const
inline

§ displayRecords()

void gnash::SWF::TextRecord::displayRecords ( Renderer renderer,
const Transform xform,
const TextRecords records,
bool  embedded = true 
)
static

Render the given glyph records.

Display of device fonts is complicated in Gnash as we use the same rendering process as for embedded fonts. The shape and position of a font relies on the concatenated transformation of its containing DisplayObject and all parent DisplayObjects. Device fonts have the peculiarity that the glyphs are always scaled equally in both dimensions, using the y scale only. However, indentation and left margin (the starting x position) are scaled using the given x scale. The translation is applied as normal. The proprietary player does not display rotated or skewed device fonts. Gnash does.

References gnash::Transform::colorTransform, gnash::SWFMatrix::concatenate_scale(), gnash::SWFMatrix::concatenate_translation(), gnash::Renderer::drawGlyph(), gnash::Renderer::drawLine(), gnash::Font::get_glyph(), gnash::SWFMatrix::get_x_scale(), gnash::SWFMatrix::get_y_scale(), IF_VERBOSE_MALFORMED_SWF, gnash::log_debug(), gnash::log_swferror(), gnash::key::m, gnash::rgba::m_a, gnash::Transform::matrix, gnash::SWFCxForm::transform(), gnash::SWFMatrix::tx(), gnash::SWFMatrix::ty(), underline(), gnash::Font::unitsPerEM(), x, and y.

Referenced by gnash::SWF::DefineTextTag::display(), gnash::TextField::display(), and gnash::SWF::TextRecord::RecordCounter::operator()().

§ getFont()

const Font* gnash::SWF::TextRecord::getFont ( ) const
inline

§ getTarget()

const std::string& gnash::SWF::TextRecord::getTarget ( ) const
inline

§ getURL()

const std::string& gnash::SWF::TextRecord::getURL ( ) const
inline

§ glyphs()

const Glyphs& gnash::SWF::TextRecord::glyphs ( ) const
inline

§ hasXOffset()

bool gnash::SWF::TextRecord::hasXOffset ( ) const
inline

§ hasYOffset()

bool gnash::SWF::TextRecord::hasYOffset ( ) const
inline

§ read()

bool gnash::SWF::TextRecord::read ( SWFStream in,
movie_definition m,
int  glyphBits,
int  advanceBits,
TagType  tag 
)

Read a TextRecord from the stream.

Parameters
inThe SWFStream to read from.
mThe movie_definition containing this TextRecord.
glyphBitsThe number of bits per glyph
advanceBitsThe number of bits per advance
tagThe tag type of this TextRecord. This must be DefineText or DefineText2
Returns
False if we have reached the end of the TextRecords, true if there are more to parse.

References _, gnash::SWF::TextRecord::GlyphEntry::advance, gnash::SWF::DEFINETEXT, gnash::SWFStream::ensureBits(), gnash::SWFStream::ensureBytes(), gnash::movie_definition::get_font(), gnash::key::i, IF_VERBOSE_PARSE, gnash::SWF::TextRecord::GlyphEntry::index, gnash::log_parse(), gnash::SWFStream::read_s16(), gnash::SWFStream::read_sint(), gnash::SWFStream::read_u16(), gnash::SWFStream::read_u8(), gnash::SWFStream::read_uint(), gnash::readRGB(), and gnash::readRGBA().

Referenced by gnash::SWF::TextRecord::RecordCounter::operator()().

§ recordWidth()

float gnash::SWF::TextRecord::recordWidth ( ) const
inline

References glyphs(), and width.

§ setColor()

void gnash::SWF::TextRecord::setColor ( const rgba color)
inline

§ setFont()

void gnash::SWF::TextRecord::setFont ( boost::intrusive_ptr< const Font f)
inline

References gnash::key::f.

Referenced by gnash::TextField::setFont().

§ setTarget()

void gnash::SWF::TextRecord::setTarget ( std::string  target)
inline

§ setTextHeight()

void gnash::SWF::TextRecord::setTextHeight ( std::uint16_t  height)
inline

References height.

Referenced by gnash::TextField::setFont().

§ setUnderline()

void gnash::SWF::TextRecord::setUnderline ( bool  b)
inline

References gnash::key::b.

Referenced by gnash::TextField::setFont().

§ setURL()

void gnash::SWF::TextRecord::setURL ( std::string  url)
inline

References url.

Referenced by gnash::TextField::setFont().

§ setXOffset()

void gnash::SWF::TextRecord::setXOffset ( float  x)
inline

§ setYOffset()

void gnash::SWF::TextRecord::setYOffset ( float  y)
inline

References y.

Referenced by gnash::TextField::setFont().

§ textHeight()

std::uint16_t gnash::SWF::TextRecord::textHeight ( ) const
inline

§ underline()

bool gnash::SWF::TextRecord::underline ( ) const
inline

§ xOffset()

float gnash::SWF::TextRecord::xOffset ( ) const
inline

§ yOffset()

float gnash::SWF::TextRecord::yOffset ( ) const
inline

The documentation for this class was generated from the following files: