Public Types | Public Member Functions | Static Public Member Functions | Friends

gnash::SWF::DefineButtonTag Class Reference

A class for parsing DefineButton and DefineButton2 tags. More...

#include <DefineButtonTag.h>

Inheritance diagram for gnash::SWF::DefineButtonTag:
Inheritance graph
[legend]
Collaboration diagram for gnash::SWF::DefineButtonTag:
Collaboration graph
[legend]

List of all members.

Public Types

typedef std::vector< ButtonRecordButtonRecords
typedef std::vector
< ButtonAction * > 
ButtonActions

Public Member Functions

virtual ~DefineButtonTag ()
DisplayObjectcreateDisplayObject (Global_as &gl, DisplayObject *parent) const
 Create a mutable instance of our definition.
ButtonRecordsbuttonRecords ()
const ButtonRecordsbuttonRecords () const
 Read-only access to the ButtonRecords directly.
bool hasSound () const
 Does this button have an associated DefineButtonSoundTag?
void addSoundTag (std::auto_ptr< SWF::DefineButtonSoundTag > soundTag)
const
DefineButtonSoundTag::ButtonSound
buttonSound (size_t index) const
 Return one of the four sounds associated with this Button.
int getSWFVersion () const
 Return version of the SWF containing this button definition.
bool trackAsMenu () const
 Whether to track this button as a menu.
bool hasKeyPressHandler () const
template<class E >
void forEachTrigger (const event_id &ev, E &f) const
 Invoke a functor for each action triggered by given event.

Static Public Member Functions

static void loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &r)
 Load a DefineButtonTag.

Friends

class DefineButton2Tag
 DefineButton2Tag::loader also needs to create a DefineButtonTag.

Detailed Description

A class for parsing DefineButton and DefineButton2 tags.


Member Typedef Documentation


Constructor & Destructor Documentation

gnash::SWF::DefineButtonTag::~DefineButtonTag (  )  [virtual]

Member Function Documentation

void gnash::SWF::DefineButtonTag::addSoundTag ( std::auto_ptr< SWF::DefineButtonSoundTag soundTag  )  [inline]

Add a DefineButtonSoundTag to the button. This should not be done twice, so check hasSound() first.

Referenced by gnash::SWF::DefineButtonSoundTag::loader().

const ButtonRecords& gnash::SWF::DefineButtonTag::buttonRecords (  )  const [inline]

Read-only access to the ButtonRecords directly.

ButtonRecords& gnash::SWF::DefineButtonTag::buttonRecords (  )  [inline]

Access the ButtonRecords directly. Used for modifying the Cxform by a DefineButtonCxform tag.

Referenced by gnash::SWF::DefineButtonCxformTag::loader().

const DefineButtonSoundTag::ButtonSound& gnash::SWF::DefineButtonTag::buttonSound ( size_t  index  )  const [inline]

Return one of the four sounds associated with this Button.

Parameters:
index The sound index (0-3) to get. Do not call this function without checking hasSound() first.
DisplayObject * gnash::SWF::DefineButtonTag::createDisplayObject ( Global_as gl,
DisplayObject parent 
) const [virtual]

Create a mutable instance of our definition.

Implements gnash::SWF::DefinitionTag.

References gnash::NSV::CLASS_BUTTON, and gnash::getObjectWithPrototype().

template<class E >
void gnash::SWF::DefineButtonTag::forEachTrigger ( const event_id ev,
E &  f 
) const [inline]

Invoke a functor for each action triggered by given event.

The functor will be passed a const action_buffer& and is not expected to return anything.

References gnash::SWF::ButtonAction::_actions, gnash::key::e, s2x::f, gnash::key::i, and gnash::SWF::ButtonAction::triggeredBy().

int gnash::SWF::DefineButtonTag::getSWFVersion (  )  const

Return version of the SWF containing this button definition.

References gnash::movie_definition::get_version().

bool gnash::SWF::DefineButtonTag::hasKeyPressHandler (  )  const
bool gnash::SWF::DefineButtonTag::hasSound (  )  const [inline]

Does this button have an associated DefineButtonSoundTag?

Referenced by gnash::SWF::DefineButtonSoundTag::loader().

void gnash::SWF::DefineButtonTag::loader ( SWFStream in,
TagType  tag,
movie_definition m,
const RunResources r 
) [static]
bool gnash::SWF::DefineButtonTag::trackAsMenu (  )  const [inline]

Whether to track this button as a menu.


Friends And Related Function Documentation

friend class DefineButton2Tag [friend]

DefineButton2Tag::loader also needs to create a DefineButtonTag.


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