]> git.wh0rd.org - tt-rss.git/blame - lib/dijit/_CssStateMixin.js
switch twitter support from twitteroauth to tmhOAuth
[tt-rss.git] / lib / dijit / _CssStateMixin.js
CommitLineData
2f01fe57
AD
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
8if(!dojo._hasResource["dijit._CssStateMixin"]){
9dojo._hasResource["dijit._CssStateMixin"]=true;
10dojo.provide("dijit._CssStateMixin");
11dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},postCreate:function(){
12this.inherited(arguments);
13dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){
14this.connect(this.domNode,e,"_cssMouseEvent");
15},this);
16this.connect(this,"set",function(_1,_2){
17if(arguments.length>=2&&{disabled:true,readOnly:true,checked:true,selected:true}[_1]){
18this._setStateClass();
19}
20});
21dojo.forEach(["_onFocus","_onBlur"],function(ap){
22this.connect(this,ap,"_setStateClass");
23},this);
24for(var ap in this.cssStateNodes){
25this._trackMouseState(this[ap],this.cssStateNodes[ap]);
26}
27this._setStateClass();
28},_cssMouseEvent:function(_3){
29if(!this.disabled){
30switch(_3.type){
31case "mouseenter":
32case "mouseover":
33this._hovering=true;
34this._active=this._mouseDown;
35break;
36case "mouseleave":
37case "mouseout":
38this._hovering=false;
39this._active=false;
40break;
41case "mousedown":
42this._active=true;
43this._mouseDown=true;
44var _4=this.connect(dojo.body(),"onmouseup",function(){
45this._active=false;
46this._mouseDown=false;
47this._setStateClass();
48this.disconnect(_4);
49});
50break;
51}
52this._setStateClass();
53}
54},_setStateClass:function(){
55var _5=this.baseClass.split(" ");
56function _6(_7){
57_5=_5.concat(dojo.map(_5,function(c){
58return c+_7;
59}),"dijit"+_7);
60};
61if(!this.isLeftToRight()){
62_6("Rtl");
63}
64if(this.checked){
65_6("Checked");
66}
67if(this.state){
68_6(this.state);
69}
70if(this.selected){
71_6("Selected");
72}
73if(this.disabled){
74_6("Disabled");
75}else{
76if(this.readOnly){
77_6("ReadOnly");
78}else{
79if(this._active){
80_6("Active");
81}else{
82if(this._hovering){
83_6("Hover");
84}
85}
86}
87}
88if(this._focused){
89_6("Focused");
90}
91var tn=this.stateNode||this.domNode,_8={};
92dojo.forEach(tn.className.split(" "),function(c){
93_8[c]=true;
94});
95if("_stateClasses" in this){
96dojo.forEach(this._stateClasses,function(c){
97delete _8[c];
98});
99}
100dojo.forEach(_5,function(c){
101_8[c]=true;
102});
103var _9=[];
104for(var c in _8){
105_9.push(c);
106}
107tn.className=_9.join(" ");
108this._stateClasses=_5;
109},_trackMouseState:function(_a,_b){
110var _c=false,_d=false,_e=false;
111var _f=this,cn=dojo.hitch(this,"connect",_a);
112function _10(){
113var _11=("disabled" in _f&&_f.disabled)||("readonly" in _f&&_f.readonly);
114dojo.toggleClass(_a,_b+"Hover",_c&&!_d&&!_11);
115dojo.toggleClass(_a,_b+"Active",_d&&!_11);
116dojo.toggleClass(_a,_b+"Focused",_e&&!_11);
117};
118cn("onmouseenter",function(){
119_c=true;
120_10();
121});
122cn("onmouseleave",function(){
123_c=false;
124_d=false;
125_10();
126});
127cn("onmousedown",function(){
128_d=true;
129_10();
130});
131cn("onmouseup",function(){
132_d=false;
133_10();
134});
135cn("onfocus",function(){
136_e=true;
137_10();
138});
139cn("onblur",function(){
140_e=false;
141_10();
142});
143this.connect(this,"set",function(_12,_13){
144if(_12=="disabled"||_12=="readOnly"){
145_10();
146}
147});
148}});
149}