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 <boost/noncopyable.hpp>
24 #include <boost/cstdint.hpp>
25 
26 #include "ControlTag.h"
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 //
47 class DefinitionTag : public ControlTag
48 {
49 public:
50 
51  virtual ~DefinitionTag() {};
52 
54  //
57  //
60  //
65  DisplayObject* parent) const = 0;
66 
68  //
71  virtual void executeState(MovieClip* m, DisplayList& /*dlist*/) const;
72 
74  //
76  boost::uint16_t id() const {
77  return _id;
78  }
79 
80 protected:
81 
82  DefinitionTag(boost::uint16_t id) : _id(id) {}
83 
84 private:
85 
86  const boost::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: