Gnash  0.8.11dev
DefinitionTag.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 // Free Software Foundation, Inc
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 
19 #ifndef GNASH_DEFINITION_TAG_H
20 #define GNASH_DEFINITION_TAG_H
21 
22 
23 #include <cstdint>
24 
25 #include "ControlTag.h"
26 #include "dsodefs.h" // for DSOTEXPORT
27 
28 // Forward declarations
29 
30 namespace gnash {
31  class DisplayObject;
32  class Global_as;
33  class SWFMatrix;
34  class SWFRect;
35  namespace SWF {
36  class TextRecord;
37  }
38 }
39 
40 namespace gnash {
41 namespace SWF {
42 
44 //
48 {
49 public:
50 
51  virtual ~DefinitionTag() {};
52 
54  //
57  //
60  //
64  virtual DisplayObject* createDisplayObject(Global_as& gl,
65  DisplayObject* parent) const = 0;
66 
68  //
71  DSOTEXPORT virtual void executeState(MovieClip* m, DisplayList& /*dlist*/) const;
72 
74  //
76  std::uint16_t id() const {
77  return _id;
78  }
79 
80 protected:
81 
82  DefinitionTag(std::uint16_t id) : _id(id) {}
83 
84 private:
85 
86  const std::uint16_t _id;
87 
88 };
89 
90 } // namespace SWF
91 } // namespace gnash
92 
93 #endif
94 
95 // Local Variables:
96 // mode: C++
97 // indent-tabs-mode: t
98 // End:
A MovieClip is a container for DisplayObjects.
Definition: MovieClip.h:83
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:168
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
Immutable data representing the definition of a movie display element.
Definition: DefinitionTag.h:47
Control tags are swf tags that control the operation of the movie.
Definition: ControlTag.h:43
std::uint16_t id() const
The immutable id of the DefinitionTag.
Definition: DefinitionTag.h:76
DefinitionTag(std::uint16_t id)
Definition: DefinitionTag.h:82
#define DSOEXPORT
Definition: dsodefs.h:55
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:49
virtual ~DefinitionTag()
Definition: DefinitionTag.h:51
#define DSOTEXPORT
Definition: dsodefs.h:63
Definition: GnashKey.h:159
A list of on-stage DisplayObjects, ordered by depth.
Definition: DisplayList.h:64
Definition: GnashKey.h:331