]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/connect.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dojo / _base / connect.js
1 /*
2 Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
5 */
6
7
8 if(!dojo._hasResource["dojo._base.connect"]){
9 dojo._hasResource["dojo._base.connect"]=true;
10 dojo.provide("dojo._base.connect");
11 dojo.require("dojo._base.lang");
12 dojo._listener={getDispatcher:function(){
13 return function(){
14 var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target;
15 var r=t&&t.apply(this,arguments);
16 var i,_1;
17 _1=[].concat(ls);
18 for(i in _1){
19 if(!(i in ap)){
20 _1[i].apply(this,arguments);
21 }
22 }
23 return r;
24 };
25 },add:function(_2,_3,_4){
26 _2=_2||dojo.global;
27 var f=_2[_3];
28 if(!f||!f._listeners){
29 var d=dojo._listener.getDispatcher();
30 d.target=f;
31 d._listeners=[];
32 f=_2[_3]=d;
33 }
34 return f._listeners.push(_4);
35 },remove:function(_5,_6,_7){
36 var f=(_5||dojo.global)[_6];
37 if(f&&f._listeners&&_7--){
38 delete f._listeners[_7];
39 }
40 }};
41 dojo.connect=function(_8,_9,_a,_b,_c){
42 var a=arguments,_d=[],i=0;
43 _d.push(dojo.isString(a[0])?null:a[i++],a[i++]);
44 var a1=a[i+1];
45 _d.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);
46 for(var l=a.length;i<l;i++){
47 _d.push(a[i]);
48 }
49 return dojo._connect.apply(this,_d);
50 };
51 dojo._connect=function(_e,_f,_10,_11){
52 var l=dojo._listener,h=l.add(_e,_f,dojo.hitch(_10,_11));
53 return [_e,_f,h,l];
54 };
55 dojo.disconnect=function(_12){
56 if(_12&&_12[0]!==undefined){
57 dojo._disconnect.apply(this,_12);
58 delete _12[0];
59 }
60 };
61 dojo._disconnect=function(obj,_13,_14,_15){
62 _15.remove(obj,_13,_14);
63 };
64 dojo._topics={};
65 dojo.subscribe=function(_16,_17,_18){
66 return [_16,dojo._listener.add(dojo._topics,_16,dojo.hitch(_17,_18))];
67 };
68 dojo.unsubscribe=function(_19){
69 if(_19){
70 dojo._listener.remove(dojo._topics,_19[0],_19[1]);
71 }
72 };
73 dojo.publish=function(_1a,_1b){
74 var f=dojo._topics[_1a];
75 if(f){
76 f.apply(this,_1b||[]);
77 }
78 };
79 dojo.connectPublisher=function(_1c,obj,_1d){
80 var pf=function(){
81 dojo.publish(_1c,arguments);
82 };
83 return _1d?dojo.connect(obj,_1d,pf):dojo.connect(obj,pf);
84 };
85 }