1 // event_id.cpp: static ActionScript events for Gnash.
3 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4 // Free Software Foundation, Inc
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
24 #include "namedStrings.h"
25 #include "ObjectURI.h"
30 #include <boost/format.hpp>
36 event_id::functionName() const
38 typedef std::map
<EventCode
, std::string
> EventFunctionNameMap
;
39 static const EventFunctionNameMap e
= {
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"},
52 {ENTER_FRAME
, "onEnterFrame"},
53 {MOUSE_DOWN
, "onMouseDown"},
54 {MOUSE_UP
, "onMouseUp"},
55 {MOUSE_MOVE
, "onMouseMove"},
56 {KEY_DOWN
, "onKeyDown"},
59 {CONSTRUCT
, "onConstruct"}
62 EventFunctionNameMap::const_iterator it
= e
.find(_id
);
63 assert(it
!= e
.end());
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
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());
104 isKeyEvent(const event_id
& e
)
108 case event_id::KEY_DOWN
:
109 case event_id::KEY_PRESS
:
110 case event_id::KEY_UP
:
118 isButtonEvent(const event_id
& e
)
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
:
136 std::ostream
& operator<< (std::ostream
& o
, const event_id
& ev
)
138 return (o
<< ev
.functionName());
141 } // end of namespace gnash
145 // indent-tabs-mode: t