22 #ifndef GNASH_MOVIECLIP_H 23 #define GNASH_MOVIECLIP_H 32 #include <boost/ptr_container/ptr_list.hpp> 33 #include <boost/intrusive_ptr.hpp> 47 class LoadVariablesThread;
54 class PlaceObject2Tag;
90 typedef std::map<ObjectURI, TextFields, ObjectURI::LessThan>
127 virtual Movie* get_root()
const;
129 virtual bool trackAsMenu();
135 void queueEvent(
const event_id&
id,
int lvl);
146 virtual SWFRect getBounds()
const;
149 virtual bool pointInShape(std::int32_t
x, std::int32_t
y)
const;
152 virtual bool pointInVisibleShape(std::int32_t
x, std::int32_t
y)
const;
158 virtual bool pointInHitableShape(std::int32_t
x, std::int32_t
y)
const;
163 return _currentFrame;
168 return _def ? _def->get_frame_count() : 1;
178 return _def ? _def->get_loading_frame() : 1;
185 return isDynamic() ? 0 : _def->get_bytes_total();
192 return isDynamic() ? 0 : _def->get_bytes_loaded();
198 return _def ? _def->get_frame_size() :
r;
211 void set_background_color(
const rgba&
color);
217 virtual bool mouseEnabled()
const;
227 const DisplayObject* findDropTarget(std::int32_t x, std::int32_t y,
241 virtual void advance();
248 DSOEXPORT void goto_frame(
size_t target_frame_number);
266 bool get_frame_number(
const as_value& frame_spec,
size_t& frameno)
const;
269 bool goto_labeled_frame(
const std::string& label);
287 _displayList.swapDepths(ch1, newdepth);
342 void remove_display_object(
int depth,
int );
366 virtual void construct(
as_object* initObj =
nullptr);
390 if (!_callingFrameActions) queueAction(*a);
391 else execute_action(*a);
426 virtual void getLoadedMovie(
Movie* newMovie);
443 void loadVariables(
const std::string& urlstr,
474 virtual void call_frame_actions(
const as_value& frame_spec);
494 MovieClip* duplicateMovieClip(
const std::string& newname,
495 int newdepth,
as_object* init_object =
nullptr);
506 void notifyEvent(
const event_id&
id);
532 return _displayList.getNextHighestDepth();
538 void setStreamSoundId(
int id);
561 void removeMovieClip();
572 virtual bool handleFocus();
577 DSOEXPORT void setVariables(
const MovieVariables& vars);
582 virtual void visitNonProperties(
KeyVisitor&
v)
const;
586 void cleanupDisplayList();
601 void constructAsScriptObject();
612 virtual int getDefinitionVersion()
const;
619 virtual bool unloadChildren();
631 virtual void markOwnResources()
const;
635 _displayList.placeDisplayObject(ch, depth);
641 void processCompletedLoadVariableRequests();
657 void executeFrameTags(
size_t frame,
DisplayList& dlist,
661 void stopStreamSound();
669 bool isEnabled()
const;
676 bool hitTestDrawable(std::int32_t x, std::int32_t y)
const;
716 void restoreDisplayList(
size_t targetFrame);
719 void increment_frame_and_check_for_loop();
722 void cleanup_textfield_variables();
726 const boost::intrusive_ptr<const movie_definition> _def;
729 typedef boost::ptr_list<LoadVariablesThread> LoadVariablesThreads;
736 LoadVariablesThreads _loadVariableRequests;
752 std::unique_ptr<TextFieldIndex> _text_variables;
754 std::string _droptarget;
757 size_t _currentFrame;
760 int m_sound_stream_id;
767 bool _flushedOrphanedTags;
770 bool _callingFrameActions;
779 #endif // GNASH_SPRITE_INSTANCE_H Definition: GnashKey.h:147
VariablesMethod
The various methods for sending data in requests.
Definition: MovieClip.h:418
std::vector< TextField * > TextFields
Definition: MovieClip.h:87
std::map< ObjectURI, TextFields, ObjectURI::LessThan > TextFieldIndex
A container for textfields, indexed by their variable name.
Definition: MovieClip.h:91
Client program's interface to the definition of a movie or sprite.
Definition: movie_definition.h:95
Definition: ControlTag.h:51
size_t get_loaded_frames() const
Return number of completely loaded frames of this sprite/movie.
Definition: MovieClip.h:176
MovieClip * to_movie()
Definition: MovieClip.h:413
A MovieClip is a container for DisplayObjects.
Definition: MovieClip.h:83
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:168
ActionScript value type.
Definition: as_value.h:94
const SWFRect & get_frame_size() const
Definition: MovieClip.h:195
movie_definition::PlayList PlayList
Definition: MovieClip.h:95
uri
Definition: test.py:12
virtual as_environment & get_environment()
Return a reference to the variable scope of this DisplayObject.
Definition: MovieClip.h:509
A top-level, standalone Movie that can be loaded and played.
Definition: Movie.h:46
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
std::map< std::string, std::string > MovieVariables
Definition: MovieClip.h:93
bool getLockRoot() const
Definition: MovieClip.h:605
The base class for all ActionScript objects.
Definition: as_object.h:161
SWF Tag PlaceObject (4) or PlaceObject2 (9)
Definition: PlaceObject2Tag.h:85
Base class for render handlers.
Definition: Renderer.h:188
size_t get_bytes_total() const
Definition: MovieClip.h:183
const VGfloat color[4]
Definition: testr_gtk.cpp:82
A URI for describing as_objects.
Definition: ObjectURI.h:44
Definition: GnashKey.h:164
PlayState
Definition: MovieClip.h:97
The DynamicShape class represents a mutable shape.
Definition: DynamicShape.h:44
Provides information about timeline context.
Definition: as_environment.h:50
size_t get_frame_count() const
Definition: MovieClip.h:166
void swapDepths(DisplayObject *ch1, int newdepth)
Swap depth of the given DisplayObjects in the DisplayList.
Definition: MovieClip.h:285
A manager for loadVariable requests.
Definition: LoadVariablesThread.h:48
std::vector< boost::intrusive_ptr< SWF::ControlTag > > PlayList
Definition: movie_definition.h:98
int getNextHighestDepth() const
Return the next highest available depth.
Definition: MovieClip.h:531
const std::string & getDropTarget() const
Definition: MovieClip.h:234
const DisplayList & getDisplayList() const
Definition: MovieClip.h:522
std::int32_t x
Definition: BitmapData_as.cpp:434
size_t get_bytes_loaded() const
Definition: MovieClip.h:190
Definition: DisplayObjectContainer.h:42
#define DSOEXPORT
Definition: dsodefs.h:55
DynamicShape & graphics()
Direct access to the Graphics object for drawing.
Definition: MovieClip.h:564
Definition: MovieClip.h:99
void setDropTarget(const std::string &tgt)
Definition: MovieClip.h:230
virtual void mouseEvent(const event_id &id)
Called when a mouse event affects this MovieClip.
Definition: MovieClip.h:498
The base class for interactive objects.
Definition: InteractiveObject.h:44
std::int32_t y
Definition: BitmapData_as.cpp:435
Rectangle class, see swf defined rectangle record.
Definition: SWFRect.h:44
#define DSOTEXPORT
Definition: dsodefs.h:63
Definition: MovieClip.h:421
PlayState getPlayState() const
Definition: MovieClip.h:208
void add_action_buffer(const action_buffer *a)
Definition: MovieClip.h:388
A class to identify 'static' SWF events (system events).
Definition: event_id.h:52
size_t get_current_frame() const
Return 0-based index to current frame.
Definition: MovieClip.h:161
Definition: GnashKey.h:165
A code segment.
Definition: action_buffer.h:49
void setLockRoot(bool lr)
Definition: MovieClip.h:609
An abstract key visitor.
Definition: PropertyList.h:58
A list of on-stage DisplayObjects, ordered by depth.
Definition: DisplayList.h:64
std::string name
Definition: LocalConnection_as.cpp:149
Definition: GnashKey.h:331
An instance of a DefineEditTextTag.
Definition: TextField.h:56
void placeDisplayObject(DisplayObject *ch, int depth)
Definition: MovieClip.h:634
Definition: ControlTag.h:50
A basic RGBA type.
Definition: RGBA.h:35