]> git.wh0rd.org - tt-rss.git/blob - lib/dijit/Tooltip.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dijit / Tooltip.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["dijit.Tooltip"]){
9 dojo._hasResource["dijit.Tooltip"]=true;
10 dojo.provide("dijit.Tooltip");
11 dojo.require("dijit._Widget");
12 dojo.require("dijit._Templated");
13 dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"),postCreate:function(){
14 dojo.body().appendChild(this.domNode);
15 this.bgIframe=new dijit.BackgroundIframe(this.domNode);
16 this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});
17 this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});
18 },show:function(_1,_2,_3,_4){
19 if(this.aroundNode&&this.aroundNode===_2){
20 return;
21 }
22 if(this.fadeOut.status()=="playing"){
23 this._onDeck=arguments;
24 return;
25 }
26 this.containerNode.innerHTML=_1;
27 var _5=dijit.placeOnScreenAroundElement(this.domNode,_2,dijit.getPopupAroundAlignment((_3&&_3.length)?_3:dijit.Tooltip.defaultPosition,!_4),dojo.hitch(this,"orient"));
28 dojo.style(this.domNode,"opacity",0);
29 this.fadeIn.play();
30 this.isShowingNow=true;
31 this.aroundNode=_2;
32 },orient:function(_6,_7,_8){
33 _6.className="dijitTooltip "+{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_7+"-"+_8];
34 },_onShow:function(){
35 if(dojo.isIE){
36 this.domNode.style.filter="";
37 }
38 },hide:function(_9){
39 if(this._onDeck&&this._onDeck[1]==_9){
40 this._onDeck=null;
41 }else{
42 if(this.aroundNode===_9){
43 this.fadeIn.stop();
44 this.isShowingNow=false;
45 this.aroundNode=null;
46 this.fadeOut.play();
47 }else{
48 }
49 }
50 },_onHide:function(){
51 this.domNode.style.cssText="";
52 this.containerNode.innerHTML="";
53 if(this._onDeck){
54 this.show.apply(this,this._onDeck);
55 this._onDeck=null;
56 }
57 }});
58 dijit.showTooltip=function(_a,_b,_c,_d){
59 if(!dijit._masterTT){
60 dijit._masterTT=new dijit._MasterTooltip();
61 }
62 return dijit._masterTT.show(_a,_b,_c,_d);
63 };
64 dijit.hideTooltip=function(_e){
65 if(!dijit._masterTT){
66 dijit._masterTT=new dijit._MasterTooltip();
67 }
68 return dijit._masterTT.hide(_e);
69 };
70 dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],constructor:function(){
71 this._nodeConnectionsById={};
72 },_setConnectIdAttr:function(_f){
73 for(var _10 in this._nodeConnectionsById){
74 this.removeTarget(_10);
75 }
76 dojo.forEach(dojo.isArrayLike(_f)?_f:[_f],this.addTarget,this);
77 },_getConnectIdAttr:function(){
78 var ary=[];
79 for(var id in this._nodeConnectionsById){
80 ary.push(id);
81 }
82 return ary;
83 },addTarget:function(id){
84 var _11=dojo.byId(id);
85 if(!_11){
86 return;
87 }
88 if(_11.id in this._nodeConnectionsById){
89 return;
90 }
91 this._nodeConnectionsById[_11.id]=[this.connect(_11,"onmouseenter","_onTargetMouseEnter"),this.connect(_11,"onmouseleave","_onTargetMouseLeave"),this.connect(_11,"onfocus","_onTargetFocus"),this.connect(_11,"onblur","_onTargetBlur")];
92 },removeTarget:function(_12){
93 var id=_12.id||_12;
94 if(id in this._nodeConnectionsById){
95 dojo.forEach(this._nodeConnectionsById[id],this.disconnect,this);
96 delete this._nodeConnectionsById[id];
97 }
98 },postCreate:function(){
99 dojo.addClass(this.domNode,"dijitTooltipData");
100 },startup:function(){
101 this.inherited(arguments);
102 var ids=this.connectId;
103 dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this);
104 },_onTargetMouseEnter:function(e){
105 this._onHover(e);
106 },_onTargetMouseLeave:function(e){
107 this._onUnHover(e);
108 },_onTargetFocus:function(e){
109 this._focus=true;
110 this._onHover(e);
111 },_onTargetBlur:function(e){
112 this._focus=false;
113 this._onUnHover(e);
114 },_onHover:function(e){
115 if(!this._showTimer){
116 var _13=e.target;
117 this._showTimer=setTimeout(dojo.hitch(this,function(){
118 this.open(_13);
119 }),this.showDelay);
120 }
121 },_onUnHover:function(e){
122 if(this._focus){
123 return;
124 }
125 if(this._showTimer){
126 clearTimeout(this._showTimer);
127 delete this._showTimer;
128 }
129 this.close();
130 },open:function(_14){
131 if(this._showTimer){
132 clearTimeout(this._showTimer);
133 delete this._showTimer;
134 }
135 dijit.showTooltip(this.label||this.domNode.innerHTML,_14,this.position,!this.isLeftToRight());
136 this._connectNode=_14;
137 this.onShow(_14,this.position);
138 },close:function(){
139 if(this._connectNode){
140 dijit.hideTooltip(this._connectNode);
141 delete this._connectNode;
142 this.onHide();
143 }
144 if(this._showTimer){
145 clearTimeout(this._showTimer);
146 delete this._showTimer;
147 }
148 },onShow:function(_15,_16){
149 },onHide:function(){
150 },uninitialize:function(){
151 this.close();
152 this.inherited(arguments);
153 }});
154 dijit.Tooltip.defaultPosition=["after","before"];
155 }