--- /dev/null
+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;
+});