mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Macroize event handler getters and setters.
This commit is contained in:
parent
22d6aaf369
commit
0a84c5d479
8 changed files with 43 additions and 163 deletions
|
@ -185,3 +185,29 @@ macro_rules! untraceable(
|
|||
);
|
||||
)
|
||||
|
||||
/// These are used to generate a event handler which has no special case.
|
||||
macro_rules! define_event_handler(
|
||||
($handler: ident, $event_type: ident, $getter: ident, $setter: ident) => (
|
||||
fn $getter(self) -> Option<$handler> {
|
||||
let eventtarget: JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||
eventtarget.get_event_handler_common(stringify!($event_type))
|
||||
}
|
||||
|
||||
fn $setter(self, listener: Option<$handler>) {
|
||||
let eventtarget: JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||
eventtarget.set_event_handler_common(stringify!($event_type), listener)
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
macro_rules! event_handler(
|
||||
($event_type: ident, $getter: ident, $setter: ident) => (
|
||||
define_event_handler!(EventHandlerNonNull, $event_type, $getter, $setter)
|
||||
)
|
||||
)
|
||||
|
||||
macro_rules! error_event_handler(
|
||||
($event_type: ident, $getter: ident, $setter: ident) => (
|
||||
define_event_handler!(OnErrorEventHandlerNonNull, $event_type, $getter, $setter)
|
||||
)
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue