mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-24 04:01:27 +00:00
add dijit/dojo stuff; initial ui mockup
This commit is contained in:
149
lib/dijit/_CssStateMixin.js
Normal file
149
lib/dijit/_CssStateMixin.js
Normal file
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||||
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
||||
see: http://dojotoolkit.org/license for details
|
||||
*/
|
||||
|
||||
|
||||
if(!dojo._hasResource["dijit._CssStateMixin"]){
|
||||
dojo._hasResource["dijit._CssStateMixin"]=true;
|
||||
dojo.provide("dijit._CssStateMixin");
|
||||
dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},postCreate:function(){
|
||||
this.inherited(arguments);
|
||||
dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){
|
||||
this.connect(this.domNode,e,"_cssMouseEvent");
|
||||
},this);
|
||||
this.connect(this,"set",function(_1,_2){
|
||||
if(arguments.length>=2&&{disabled:true,readOnly:true,checked:true,selected:true}[_1]){
|
||||
this._setStateClass();
|
||||
}
|
||||
});
|
||||
dojo.forEach(["_onFocus","_onBlur"],function(ap){
|
||||
this.connect(this,ap,"_setStateClass");
|
||||
},this);
|
||||
for(var ap in this.cssStateNodes){
|
||||
this._trackMouseState(this[ap],this.cssStateNodes[ap]);
|
||||
}
|
||||
this._setStateClass();
|
||||
},_cssMouseEvent:function(_3){
|
||||
if(!this.disabled){
|
||||
switch(_3.type){
|
||||
case "mouseenter":
|
||||
case "mouseover":
|
||||
this._hovering=true;
|
||||
this._active=this._mouseDown;
|
||||
break;
|
||||
case "mouseleave":
|
||||
case "mouseout":
|
||||
this._hovering=false;
|
||||
this._active=false;
|
||||
break;
|
||||
case "mousedown":
|
||||
this._active=true;
|
||||
this._mouseDown=true;
|
||||
var _4=this.connect(dojo.body(),"onmouseup",function(){
|
||||
this._active=false;
|
||||
this._mouseDown=false;
|
||||
this._setStateClass();
|
||||
this.disconnect(_4);
|
||||
});
|
||||
break;
|
||||
}
|
||||
this._setStateClass();
|
||||
}
|
||||
},_setStateClass:function(){
|
||||
var _5=this.baseClass.split(" ");
|
||||
function _6(_7){
|
||||
_5=_5.concat(dojo.map(_5,function(c){
|
||||
return c+_7;
|
||||
}),"dijit"+_7);
|
||||
};
|
||||
if(!this.isLeftToRight()){
|
||||
_6("Rtl");
|
||||
}
|
||||
if(this.checked){
|
||||
_6("Checked");
|
||||
}
|
||||
if(this.state){
|
||||
_6(this.state);
|
||||
}
|
||||
if(this.selected){
|
||||
_6("Selected");
|
||||
}
|
||||
if(this.disabled){
|
||||
_6("Disabled");
|
||||
}else{
|
||||
if(this.readOnly){
|
||||
_6("ReadOnly");
|
||||
}else{
|
||||
if(this._active){
|
||||
_6("Active");
|
||||
}else{
|
||||
if(this._hovering){
|
||||
_6("Hover");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(this._focused){
|
||||
_6("Focused");
|
||||
}
|
||||
var tn=this.stateNode||this.domNode,_8={};
|
||||
dojo.forEach(tn.className.split(" "),function(c){
|
||||
_8[c]=true;
|
||||
});
|
||||
if("_stateClasses" in this){
|
||||
dojo.forEach(this._stateClasses,function(c){
|
||||
delete _8[c];
|
||||
});
|
||||
}
|
||||
dojo.forEach(_5,function(c){
|
||||
_8[c]=true;
|
||||
});
|
||||
var _9=[];
|
||||
for(var c in _8){
|
||||
_9.push(c);
|
||||
}
|
||||
tn.className=_9.join(" ");
|
||||
this._stateClasses=_5;
|
||||
},_trackMouseState:function(_a,_b){
|
||||
var _c=false,_d=false,_e=false;
|
||||
var _f=this,cn=dojo.hitch(this,"connect",_a);
|
||||
function _10(){
|
||||
var _11=("disabled" in _f&&_f.disabled)||("readonly" in _f&&_f.readonly);
|
||||
dojo.toggleClass(_a,_b+"Hover",_c&&!_d&&!_11);
|
||||
dojo.toggleClass(_a,_b+"Active",_d&&!_11);
|
||||
dojo.toggleClass(_a,_b+"Focused",_e&&!_11);
|
||||
};
|
||||
cn("onmouseenter",function(){
|
||||
_c=true;
|
||||
_10();
|
||||
});
|
||||
cn("onmouseleave",function(){
|
||||
_c=false;
|
||||
_d=false;
|
||||
_10();
|
||||
});
|
||||
cn("onmousedown",function(){
|
||||
_d=true;
|
||||
_10();
|
||||
});
|
||||
cn("onmouseup",function(){
|
||||
_d=false;
|
||||
_10();
|
||||
});
|
||||
cn("onfocus",function(){
|
||||
_e=true;
|
||||
_10();
|
||||
});
|
||||
cn("onblur",function(){
|
||||
_e=false;
|
||||
_10();
|
||||
});
|
||||
this.connect(this,"set",function(_12,_13){
|
||||
if(_12=="disabled"||_12=="readOnly"){
|
||||
_10();
|
||||
}
|
||||
});
|
||||
}});
|
||||
}
|
||||
Reference in New Issue
Block a user