ttrss/lib/dojo/Evented.js.uncompressed.js

33 lines
988 B
JavaScript
Raw Normal View History

2012-08-14 14:59:10 +00:00
define("dojo/Evented", ["./aspect", "./on"], function(aspect, on){
// summary:
// The export of this module is a class that can be used as a mixin or base class,
// to add on() and emit() methods to a class
// for listening for events and emiting events:
// |define(["dojo/Evented"], function(Evented){
// | var EventedWidget = dojo.declare([Evented, dijit._Widget], {...});
// | widget = new EventedWidget();
// | widget.on("open", function(event){
// | ... do something with event
// | });
// |
// | widget.emit("open", {name:"some event", ...});
"use strict";
var after = aspect.after;
function Evented(){
}
Evented.prototype = {
on: function(type, listener){
return on.parse(this, type, listener, function(target, type){
return after(target, 'on' + type, listener, true);
});
},
emit: function(type, event){
var args = [this];
args.push.apply(args, arguments);
return on.emit.apply(on, args);
}
};
return Evented;
});