Make automated FSCommand invocation tests show player-side output.
[gnash.git] / libcore / event_id.cpp
blob78f1757bb9b7be77f79094a55131e7b031fab320
1 // event_id.cpp: static ActionScript events for Gnash.
2 //
3 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4 // Free Software Foundation, Inc
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 3 of the License, or
9 // (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 #include "log.h"
23 #include "event_id.h"
24 #include "namedStrings.h"
25 #include "ObjectURI.h"
27 #include <map>
28 #include <string>
29 #include <algorithm>
30 #include <boost/format.hpp>
31 #include <cassert>
33 namespace gnash {
35 const std::string&
36 event_id::functionName() const
38 typedef std::map<EventCode, std::string> EventFunctionNameMap;
39 static const EventFunctionNameMap e = {
40 {INVALID, "INVALID"},
41 {PRESS, "onPress"},
42 {RELEASE, "onRelease"},
43 {RELEASE_OUTSIDE, "onReleaseOutside"},
44 {ROLL_OVER, "onRollOver"},
45 {ROLL_OUT, "onRollOut"},
46 {DRAG_OVER, "onDragOver"},
47 {DRAG_OUT, "onDragOut"},
48 {KEY_PRESS, "onKeyPress"},
49 {INITIALIZE, "onInitialize"},
50 {LOAD, "onLoad"},
51 {UNLOAD, "onUnload"},
52 {ENTER_FRAME, "onEnterFrame"},
53 {MOUSE_DOWN, "onMouseDown"},
54 {MOUSE_UP, "onMouseUp"},
55 {MOUSE_MOVE, "onMouseMove"},
56 {KEY_DOWN, "onKeyDown"},
57 {KEY_UP, "onKeyUp"},
58 {DATA, "onData"},
59 {CONSTRUCT, "onConstruct"}
62 EventFunctionNameMap::const_iterator it = e.find(_id);
63 assert(it != e.end());
64 return it->second;
67 const ObjectURI&
68 event_id::functionURI() const
70 typedef std::map<EventCode, ObjectURI> EventFunctionMap;
72 // TODO: make this table non-static, as
73 // it contains string_table-dependent
74 // mutable entries
76 static const EventFunctionMap e = {
77 {PRESS, NSV::PROP_ON_PRESS},
78 {RELEASE, NSV::PROP_ON_RELEASE},
79 {RELEASE_OUTSIDE, NSV::PROP_ON_RELEASE_OUTSIDE},
80 {ROLL_OVER, NSV::PROP_ON_ROLL_OVER },
81 {ROLL_OUT, NSV::PROP_ON_ROLL_OUT},
82 {DRAG_OVER, NSV::PROP_ON_DRAG_OVER},
83 {DRAG_OUT, NSV::PROP_ON_DRAG_OUT},
84 {KEY_PRESS, NSV::PROP_ON_KEY_PRESS},
85 {INITIALIZE, NSV::PROP_ON_INITIALIZE},
86 {LOAD, NSV::PROP_ON_LOAD},
87 {UNLOAD, NSV::PROP_ON_UNLOAD},
88 {ENTER_FRAME, NSV::PROP_ON_ENTER_FRAME},
89 {MOUSE_DOWN, NSV::PROP_ON_MOUSE_DOWN},
90 {MOUSE_UP, NSV::PROP_ON_MOUSE_UP},
91 {MOUSE_MOVE, NSV::PROP_ON_MOUSE_MOVE},
92 {KEY_DOWN, NSV::PROP_ON_KEY_DOWN},
93 {KEY_UP, NSV::PROP_ON_KEY_UP},
94 {DATA, NSV::PROP_ON_DATA},
95 {CONSTRUCT, NSV::PROP_ON_CONSTRUCT}
98 EventFunctionMap::const_iterator it = e.find(_id);
99 assert(it != e.end());
100 return it->second;
103 bool
104 isKeyEvent(const event_id& e)
106 switch (e.id())
108 case event_id::KEY_DOWN:
109 case event_id::KEY_PRESS:
110 case event_id::KEY_UP:
111 return true;
112 default:
113 return false;
117 bool
118 isButtonEvent(const event_id& e)
120 switch (e.id())
122 case event_id::PRESS:
123 case event_id::RELEASE:
124 case event_id::RELEASE_OUTSIDE:
125 case event_id::ROLL_OVER:
126 case event_id::ROLL_OUT:
127 case event_id::DRAG_OVER:
128 case event_id::DRAG_OUT:
129 case event_id::KEY_PRESS:
130 return true;
131 default:
132 return false;
136 std::ostream& operator<< (std::ostream& o, const event_id& ev)
138 return (o << ev.functionName());
141 } // end of namespace gnash
143 // Local Variables:
144 // mode: C++
145 // indent-tabs-mode: t
146 // End: