- From: Cameron McCormack <cam@mcc.id.au>
- Date: Thu, 15 Dec 2011 12:52:13 +1100
- To: Anne van Kesteren <annevk@opera.com>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
Cameron McCormack:
>> Also if someone knows of any interfaces that use a [Callback] with
>> attributes on it, please let me know. It would simplify matters to
>> drop support for that too.
Anne van Kesteren:
> http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-nodefilter
> has them (sad face), but I am not really sure how that ends up being
> exposed.
Luckily that is constants and not attributes, and there is no strict
need to have the NodeFilter callback be the same as the interface on
which those constants are defined:
interface NodeFilter {
const ...;
};
callback NodeFilterCallback = unsigned short acceptNode(Node node);
>> callback EventListener = void handleEvent(Event evt);
>> typedef [FunctionOnly] EventListener EventListenerAttribute;
>> attribute EventListenerAttribute onclick;
> I think we should introduce a native IDL type "eventhandler" so you can
> write
>
> eventhandler onclick;
>
> Event handlers are extremely common and worthy of such blessing, in my
> opinion.
That makes Web IDL have a dependency on DOM Core. Seems a bit
backwards. Why not just include the typedef in DOM Core itself? You
can even rename it from "EventListenerAttribute" to "EventHandler" if
you wish. :)
// This line you need to include anyway in DOM Core, for
// addEventListener to use.
callback EventListener = void handleEvent(Event evt);
// So you're just adding this one line:
typedef [FunctionOnly] EventListener EventHandler;
And all specs defining event handler properties just do:
attribute EventHandler onclick;
Received on Thursday, 15 December 2011 01:52:43 UTC