Made to Order Software Corporation Logo

libsswf: sswf::TagText Class Reference

Enter a label (text string) in an SWF file. More...

#include <libsswf.h>

Inheritance diagram for sswf::TagText:

:TagBaseID :TagCSMTextSettings :TagBase :MemoryManager

List of all members.

Public Member Functions

void AddColor (Color &color)
 Defines the color in the current setup.
void AddFont (const TagFont *font, long height)
 Set the specified font to the current setup.
void AddOffsets (long x, long y)
 Set the specified offset in the current setup.
ErrorManager::error_code_t AddText (const char *string, long advance=LONG_MIN)
 Add a new text string.
virtual ErrorManager::error_code_t Save (Data &data)
 Save the TagText in a Data buffer.
void SetBounds (const SRectangle &bounds)
 Set the graphical bounds of this text.
void SetMatrix (const Matrix &matrix)
 Set the text matrix.
 TagText (TagBase *parent)
 Initializes a text tag.
virtual swf_type_t TypeFlags (void) const
 Defines the type of a text tag.

Private Types

enum  text_type_t { TEXT_ENTRY_TEXT = 0, TEXT_ENTRY_SETUP }

Private Member Functions

int DefineText (int start, text_setup_t *s, const TagFont *font, int font_height)
 Internal function to work on text entries.
void NewSetup (void)
virtual ErrorManager::error_code_t ParseTag (swf_tag_t tag, const Data &data)
 Parse data from a file into a CSMTextSettings tag.
virtual ErrorManager::error_code_t PreSave (void)
 Makes the TagText ready for saving.
ErrorManager::error_code_t RecordSetup (void)
 Record one setup in the text array.

Private Attributes

SRectangle f_bounds
Matrix f_matrix
bool f_new_text
Vectors f_records
text_setup_t f_setup
int f_version


struct  text_define_t
 Structure used to memories the type of definition. More...
struct  text_entry_t
 Structure representing a text entry (an actual string). More...
struct  text_setup_t
 Structure representing a text setup. More...

Detailed Description

This tag is used to have a string of text rendered in the screen.

This is very flexible since each glyph can be rendered pretty much where you want it to be. However, it can be much more tedious to use that an sswf::TagEditText.

See also:

SWF Alexis' Reference—DefineText

SWF Alexis' Reference—swf_tag

Member Enumeration Documentation


Constructor & Destructor Documentation

TagText::TagText ( TagBase parent  ) 

The constructor initializes the text tag so it looks empty.

[in] parent The sswf::TagHeader this text tag is included in

References f_new_text.

Member Function Documentation

void TagText::AddColor ( Color color  ) 

This function defines the color of the current setup.

If the color transparency is not solid (255) then the movie version is forced to version 3.

The setup will be saved only once a string is added. Until then, calling this function multiple times will simply overwrite what the previous call saved.
[in] color The RGBA color for the text.

References sswf::TagText::text_setup_t::f_color, sswf::TagText::text_setup_t::f_has_color, and f_setup.

void TagText::AddFont ( const TagFont font,
long  height 

This function is used to declare the font and its height.

The setup will be saved only once a string is added. Until then, calling this function multiple times will simply overwrite what the previous call saved.
[in] font The font to use to render this text.
[in] height The height used to render this font.

References sswf::TagText::text_setup_t::f_font, sswf::TagText::text_setup_t::f_font_height, sswf::TagText::text_setup_t::f_has_font, and f_setup.

void TagText::AddOffsets ( long  x,
long  y 

This function saves the x and y offsets to skip from the current position.

The setup will be saved only once a string is added. Until then, calling this function multiple times will simply overwrite what the previous call saved.
[in] x The horizontal movement
[in] y The vertical movement

References sswf::TagText::text_setup_t::f_has_xoffset, sswf::TagText::text_setup_t::f_has_yoffset, f_setup, sswf::TagText::text_setup_t::f_x, and sswf::TagText::text_setup_t::f_y.

ErrorManager::error_code_t TagText::AddText ( const char *  string,
long  advance = LONG_MIN 

This function is used to add a new string to the text tag.

It is possible to specify the exact space to skip between characters. Set the advance parameter to LONG_MIN to avoid that effect and let the system determine the advance size automatically from the font information.

[in] string The string of text to add to this tag
[in] advance The space to skip between characters or LONG_MIN
An error or ErrorManager::ERROR_CODE_NONE

References sswf::Vectors::Count(), sswf::ErrorManager::ERROR_CODE_INVALID_TEXT_SETUP, sswf::ErrorManager::ERROR_CODE_NONE, f_new_text, f_records, f_setup, sswf::TagText::text_setup_t::IsUsed(), sswf::mbtowc(), sswf::MemoryManager::MemAlloc(), sswf::MemoryManager::MemAttach(), sswf::TagBase::OnError(), RecordSetup(), and sswf::Vectors::Set().

int TagText::DefineText ( int  start,
text_setup_t s,
const TagFont font,
int  font_height 
) [private]

void sswf::TagText::NewSetup ( void   )  [private]

virtual ErrorManager::error_code_t sswf::TagText::ParseTag ( swf_tag_t  tag,
const Data data 
) [private, virtual]

This function does nothing since the CSMTextSettings tag has no data.

[in] tag The tag that generated this call
[in] data The Data buffer from the Flash file being loaded
An error if one occurs, or ErrorManager::ERROR_CODE_NONE

Reimplemented from sswf::TagCSMTextSettings.

ErrorManager::error_code_t TagText::Save ( Data data  )  [virtual]

This function saves the TagText in the specified Data buffer.

[in] data The Data buffer where the TagText is saved
An error code or ErrorManager::ERROR_CODE_NONE

Implements sswf::TagBase.

References sswf::Data::Align(), sswf::Data::Append(), sswf::assert(), sswf::Data::ByteSize(), sswf::Vectors::Count(), sswf::TagFont::font_info_t::f_advance, f_bounds, sswf::TagText::text_setup_t::f_color, sswf::TagText::text_entry_t::f_entries, sswf::TagText::text_entry_t::f_exact_length, sswf::TagText::text_setup_t::f_font, sswf::TagText::text_setup_t::f_font_height, sswf::TagText::text_setup_t::f_has_color, sswf::TagText::text_setup_t::f_has_font, sswf::TagText::text_setup_t::f_has_xadjust, sswf::TagText::text_setup_t::f_has_xoffset, sswf::TagText::text_setup_t::f_has_yoffset, sswf::TagFont::font_info_t::f_index, f_matrix, f_new_text, f_records, sswf::TagFont::font_info_t::f_saved_index, sswf::TagText::text_define_t::f_type, f_version, sswf::TagText::text_setup_t::f_x, sswf::TagText::text_setup_t::f_xadjust, sswf::TagText::text_setup_t::f_y, sswf::Vectors::Get(), sswf::TagFont::GlyphInfo(), sswf::Color::IsInvisible(), sswf::Data::PutByte(), sswf::Data::PutShort(), sswf::Matrix::Save(), sswf::SRectangle::Save(), sswf::Color::Save(), sswf::TagCSMTextSettings::SaveCSMTextSettings(), sswf::TagBaseID::SaveID(), sswf::TagBase::SaveTag(), sswf::Color::Set(), sswf::TagBase::SIBitSize(), sswf::TagBase::SWF_TAG_DEFINE_TEXT, sswf::TagBase::SWF_TAG_DEFINE_TEXT2, TEXT_ENTRY_SETUP, TEXT_ENTRY_TEXT, sswf::TagBase::UIBitSize(), and sswf::Data::WriteBits().

void TagText::SetBounds ( const SRectangle bounds  ) 

This function is used to define the largest box where the text appears. This is used to know whenever the text object needs to be rerendered on the screen.

The bounds can be larger. If smaller, some parts of the text may not get drawn properly.

[in] bounds The rectangle representing the bounds of this text.

References f_bounds.

void TagText::SetMatrix ( const Matrix matrix  ) 

This function saves a copy of the specified matrix in the text tag. It is used to position the text, rotate it and scale it.

[in] matrix The text matrix

References f_matrix.

TagBase::swf_type_t TagText::TypeFlags ( void   )  const [virtual]

This function returns a set of flags defining an text tag.


Implements sswf::TagBase.


Member Data Documentation

Referenced by Save(), and SetBounds().

Referenced by Save(), and SetMatrix().

bool sswf::TagText::f_new_text [private]

Referenced by AddText(), PreSave(), Save(), and TagText().

int sswf::TagText::f_version [private]

Referenced by PreSave(), and Save().

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

Generated on Wed Mar 18 15:14:00 2009 for libsswf by  doxygen 1.5.5