Gnash
0.8.11dev
|
The base class for interactive objects. More...
#include <InteractiveObject.h>
Public Member Functions | |
InteractiveObject (as_object *object, DisplayObject *parent) | |
virtual | ~InteractiveObject () |
virtual void | display (Renderer &renderer, const Transform &xform)=0 |
Render this InteractiveObject. More... | |
virtual bool | mouseEnabled () const =0 |
Whether the DisplayObject can handle a mouse event. More... | |
virtual bool | trackAsMenu () |
ActionScript property of Buttons and MovieClips altering mouse handling. More... | |
virtual StaticText * | getStaticText (std::vector< const SWF::TextRecord *> &, size_t &) |
Allow extraction of static text. More... | |
virtual SWFRect | getBounds () const =0 |
Returns local, untransformed bounds of this DisplayObject in TWIPS. More... | |
virtual InteractiveObject * | topmostMouseEntity (std::int32_t, std::int32_t)=0 |
Return the topmost entity covering the given point and enabled to receive mouse events. More... | |
virtual void | mouseEvent (const event_id &id)=0 |
Called whenever a mouse event affects this InteractiveObject. More... | |
virtual bool | pointInShape (std::int32_t x, std::int32_t y) const |
Return true if the given point falls in this DisplayObject's shape. More... | |
void | add_invalidated_bounds (InvalidatedRanges &ranges, bool force)=0 |
Add the DisplayObject's invalidated bounds to the given ranges list. More... | |
![]() | |
DisplayObject (movie_root &mr, as_object *object, DisplayObject *parent) | |
Construct a DisplayObject. More... | |
virtual | ~DisplayObject () |
virtual as_environment & | get_environment () |
Return a reference to the variable scope of this DisplayObject. More... | |
virtual void | visitNonProperties (KeyVisitor &) const |
Enumerate any non-proper properties. More... | |
DisplayObject * | parent () const |
Return the parent of this DisplayObject, or NULL if the DisplayObject has no parent. More... | |
void | set_parent (DisplayObject *parent) |
Set the parent of this DisplayObject. More... | |
virtual MovieClip * | to_movie () |
int | get_depth () const |
void | set_depth (int d) |
int | getVolume () const |
Get sound volume for this DisplayObject. More... | |
void | setVolume (int vol) |
Set sound volume for this DisplayObject. More... | |
int | getWorldVolume () const |
Get concatenated sound volume for this DisplayObject. More... | |
virtual int | getDefinitionVersion () const |
DisplayObjects can return the version of the SWF they were parsed from. More... | |
const Transform & | transform () const |
void | setMatrix (const SWFMatrix &m, bool updateCache=false) |
Set local transform SWFMatrix for this DisplayObject. More... | |
void | set_x_scale (double factor) |
Set the xscale value of current SWFMatrix. More... | |
void | set_y_scale (double factor) |
Set the yscale value of current SWFMatrix. More... | |
void | set_rotation (double rot) |
Set the rotation value of current SWFMatrix. More... | |
virtual void | setWidth (double width) |
Set the width of this DisplayObject, modifying its SWFMatrix. More... | |
virtual void | setHeight (double height) |
Set the height of this DisplayObject, modifying its SWFMatrix. More... | |
void | setCxForm (const SWFCxForm &cx) |
std::uint16_t | get_ratio () const |
void | set_ratio (std::uint16_t r) |
int | get_clip_depth () const |
void | set_clip_depth (int d) |
See get_clip_depth() More... | |
bool | isMaskLayer () const |
bool | isDynamicMask () const |
DisplayObject * | getMask () const |
Return the DisplayObject masking this instance (if any) More... | |
void | setMask (DisplayObject *mask) |
void | set_name (const ObjectURI &uri) |
Set DisplayObject name, initializing the original target member. More... | |
const ObjectURI & | get_name () const |
std::unique_ptr< ExecutableCode > | get_event_handler (const event_id &id) const |
Get the built-in function handlers code for the given event. More... | |
void | add_event_handler (const event_id &id, const action_buffer &code) |
Set a built-in function handler for the given event. More... | |
bool | pointInBounds (std::int32_t x, std::int32_t y) const |
Return true if the given point falls in this DisplayObject's bounds. More... | |
virtual bool | pointInVisibleShape (std::int32_t x, std::int32_t y) const |
true if the given point falls in this DisplayObject's visible shape More... | |
virtual Movie * | get_root () const |
Return the relative root of this DisplayObject. More... | |
virtual MovieClip * | getAsRoot () |
Return the _root ActionScript property of this DisplayObject. More... | |
virtual as_object * | pathElement (const ObjectURI &uri) |
bool | get_accept_anim_moves () const |
Return true if PlaceObjects tag are allowed to move this DisplayObject. More... | |
bool | isDynamic () const |
Was this DisplayObject dynamically created ? More... | |
void | setDynamic () |
Mark this DisplayObject as dynamically created. More... | |
void | transformedByScript () |
Call this function when the sprite has been transformed due to ActionScript code. More... | |
void | set_visible (bool visible) |
Set whether this DisplayObject should be rendered. More... | |
bool | visible () const |
bool | hasEventHandler (const event_id &id) const |
Return true if an handler for the given event is defined. More... | |
virtual const DisplayObject * | findDropTarget (std::int32_t x, std::int32_t y, DisplayObject *dragging) const |
Point coordinates in global twips. More... | |
bool | invalidated () const |
Return whether this DisplayObject has been invalidated or not. More... | |
bool | childInvalidated () const |
Return whether this DisplayObject has and invalidated child or not. More... | |
virtual void | update () |
Notify a change in the DisplayObject's appearance. More... | |
void | set_invalidated () |
This function marks the DisplayObject as being modified in aspect and keeps track of current invalidated bounds the first time it's called after each call to clear_invalidated(). More... | |
void | set_invalidated (const char *debug_file, int debug_line) |
void | extend_invalidated_bounds (const InvalidatedRanges &ranges) |
void | set_child_invalidated () |
void | clear_invalidated () |
virtual void | omit_display () |
virtual void | construct (as_object *=nullptr) |
Callback invoked whenever a DisplayObject is placed on stage. More... | |
bool | unload () |
Unload this instance from the stage. More... | |
virtual void | getLoadedMovie (Movie *newMovie) |
Accept a loaded Movie. More... | |
bool | unloaded () const |
Return true if this DisplayObject was unloaded from the stage. More... | |
virtual void | destroy () |
Mark this DisplayObject as destroyed. More... | |
bool | isDestroyed () const |
Return true if this DisplayObject was destroyed. More... | |
bool | boundsInClippingArea (Renderer &renderer) const |
std::string | getTargetPath () const |
Return full path to this object, in slash notation. More... | |
const std::string & | getOrigTarget () const |
std::string DSOEXPORT | getTarget () const |
Return full path to this object, in dot notation. More... | |
virtual bool | isSelectableTextField () const |
Return true if this DisplayObject is a selectable TextField. More... | |
bool DSOEXPORT | allowHandCursor () const |
Return true if this DisplayObject allows turning the cursor into an hand shape when it happens to be the one receiving mouse events. More... | |
ObjectURI | getNextUnnamedInstanceName () |
Used to assign a name to unnamed instances. More... | |
BlendMode | getBlendMode () const |
void | setBlendMode (BlendMode bm) |
virtual bool | handleFocus () |
Set the current focus to this DisplayObject. More... | |
virtual void | killFocus () |
Some DisplayObjects require actions on losing focus. More... | |
double | rotation () const |
double | scaleX () const |
double | scaleY () const |
as_object * | object () const |
virtual void | markReachableResources () const |
Mark all reachable resources. More... | |
virtual void | markOwnResources () const |
Called by markReachableResources() More... | |
boost::tribool | focusRect () const |
void | focusRect (boost::tribool focus) |
![]() | |
GcResource (GC &gc) | |
Create a Garbage-collected resource associated with a GC. More... | |
void | setReachable () const |
Mark this resource as being reachable. More... | |
bool | isReachable () const |
Return true if this object is marked as reachable. More... | |
void | clearReachable () const |
Clear the reachable flag. More... | |
The base class for interactive objects.
Objects of type InteractiveObject can receive focus, mouse events, and key events for user interaction. Derived classes include TextField, Button, and MovieClip.
|
inline |
|
inlinevirtual |
|
pure virtual |
Add the DisplayObject's invalidated bounds to the given ranges list.
NOTE that this method should include the bounds that it covered the last time clear_invalidated() was called, as those need to be rerendered as well (to clear the region previously occupied by this DisplayObject).
That's why it returns the union of old_invalidated_ranges and the current bounds. The function is also used internally by set_invalidated() to update m_old_invalidated_ranges itself (you may notice some kind of circular reference), but that's no problem since old_invalidated_ranges is NULL during that call.
It is used to determine what area needs to be re-rendered. The coordinates are world coordinates (in TWIPS). Only instances with _invalidated flag set are checked unless force is set.
Reimplemented from gnash::DisplayObject.
Implemented in gnash::MovieClip, gnash::TextField, and gnash::Button.
|
pure virtual |
Render this InteractiveObject.
Implements gnash::DisplayObject.
Implemented in gnash::MovieClip, gnash::TextField, and gnash::Button.
|
pure virtual |
Returns local, untransformed bounds of this DisplayObject in TWIPS.
Container DisplayObjects (sprite and buttons) return the composite bounds of all their children, appropriately transformed with their local SWFMatrix.
Implements gnash::DisplayObject.
Implemented in gnash::TextField, gnash::MovieClip, and gnash::Button.
|
inlinevirtual |
Allow extraction of static text.
Default returns 0, implemented only for DefineText though DisplayObject.
Reimplemented from gnash::DisplayObject.
|
pure virtual |
Whether the DisplayObject can handle a mouse event.
Implemented in gnash::MovieClip, gnash::TextField, and gnash::Button.
|
pure virtual |
Called whenever a mouse event affects this InteractiveObject.
All InteractiveObjects (Button, MovieClip, TextField) can handle mouse input, so must override this function.
Implemented in gnash::MovieClip, gnash::TextField, and gnash::Button.
Referenced by gnash::movie_root::testInvariant().
|
inlinevirtual |
Return true if the given point falls in this DisplayObject's shape.
Point coordinates are in world TWIPS
The default implementation warns about a missing override and invokes pointInBounds().
Implements gnash::DisplayObject.
Reimplemented in gnash::TextField, gnash::MovieClip, and gnash::Button.
References gnash::log_error().
|
pure virtual |
Return the topmost entity covering the given point and enabled to receive mouse events.
Return NULL if no "active" entity is found under the pointer.
Coordinates of the point are given in parent's coordinate space. This means that in order to convert the point to the local coordinate space you need to apply an inverse transformation using this DisplayObject SWFMatrix. Example:
point p(x,y); getMatrix().transform_by_inverse(p); – p is now in local coordinates
Don't blame me for this mess, I'm just trying to document the existing functions ... –strk
x | X ordinate of the pointer, in parent's coordinate space. |
y | Y ordinate of the pointer, in parent's coordiante space. |
Reimplemented from gnash::DisplayObject.
Implemented in gnash::MovieClip, gnash::TextField, and gnash::Button.
|
inlinevirtual |
ActionScript property of Buttons and MovieClips altering mouse handling.
Reimplemented in gnash::MovieClip, and gnash::Button.