📄 button.js
字号:
Class("linb.UI.Button", ["linb.UI.Widget","linb.absValue"],{
Instance:{
activate:function(){
this.getSubNode('FOCUS').focus();
return this;
},
_setCtrlValue:function(value){
if(_.isNull(value) || !_.exists(value))value=false;
return this.each(function(profile){
var pp=profile.properties;
if(pp.type!='status')return;
profile.getSubNode('BORDER').tagClass('-checked', value);
if(pp.border){
var b = profile.getSubNode('BORDER').$getBorder();
if(b)b.get(0).root.tagClass('-checked', value);
}
});
}
},
Initialize:function(){
this.addTemplateKeys(['DROP']);
//modify default template for shell
var t = this.getTemplate();
_.merge(t.FRAME,{
FOCUS:{
$order:2,
tagName:'a',
href :"{href}",
tabindex: '{tabindex}',
TB:{
cellpadding:"0",
cellspacing:"0",
width:'100%',
height:'100%',
border:'0',
tagName:'table',
TR:{
tagName:'tr',
TDL:{
tagName:'td'
},
TD:{
$order:1,
align:'{hAlign}',
valign:'{vAlign}',
tagName:'td',
width:'100%',
height:'100%',
BOX:{
ICON:{
$order:1,
className:'ui-icon',
style:'background:url({image}) transparent no-repeat {imagePos};{iconDisplay}'
},
CAPTION:{
$order:2,
text: '{caption}'
}
}
},
TDR:{
$order:2,
tagName:'td',
className:'{dropCls}',
TDRI:{}
}
}
}
}
},'all');
this.setTemplate(t);
},
Static:{
Appearances:{
KEY:{
'font-size':'12px',
'line-height':'14px'
},
BORDER:{
'font-size':0,
'line-height':0,
'background-color':'#D2D7DF'
},
'BORDER-mouseover':{
$order:2,
'background-color':'#F7D928'
},
'BORDER-mousedown, BORDER-checked':{
$order:2,
'background-color':'#F9E56A'
},
'DROP':{
$order:10,
background: linb.UI.$bg('drop.gif', 'no-repeat left bottom','Button'),
'padding-left':'16px'
},
'DROP-mouseover':{
$order:11,
'background-position':'-16px bottom'
},
'DROP-mousedown':{
$order:12,
'background-position':'right bottom'
},
'TDR,TDL':{
'padding-left':'6px'
},
//border<<<
'.setting-linb-button':{
'border-top-width':'1px',
'border-bottom-width':'1px',
'border-left-width':'1px',
'border-right-width':'1px'
},
'KEY-b-t':{
top:'-1px',
height:'10px',
background: linb.UI.$bg('vertical.gif', 'repeat-x left top','Button')
},
'KEY-b-b':{
bottom:'-1px',
height:'10px',
background: linb.UI.$bg('vertical.gif', 'repeat-x left bottom','Button')
},
'BORDER-mouseover KEY-b-t, BORDER-mouseover KEY-b-b':{
$order:1,
'background-image':linb.UI.$bg('vertical_mouseover.gif','','Button')
},
'BORDER-checked KEY-b-t, BORDER-checked KEY-b-b, BORDER-mousedown KEY-b-t, BORDER-mousedown KEY-b-b':{
$order:2,
'background-image':linb.UI.$bg('vertical_mousedown.gif','','Button')
},
'KEY-b-l':{
left:'-1px',
width:'4px',
background: linb.UI.$bg('horizontal.gif', 'repeat-y left top','Button')
},
'KEY-b-r':{
right:'-1px',
width:'4px',
background: linb.UI.$bg('horizontal.gif', 'repeat-y right top','Button')
},
'BORDER-mouseover KEY-b-l, BORDER-mouseover KEY-b-r':{
$order:1,
'background-image': linb.UI.$bg('horizontal_mouseover.gif','','Button')
},
'BORDER-checked KEY-b-l, BORDER-checked KEY-b-r, BORDER-mousedown KEY-b-l, BORDER-mousedown KEY-b-r':{
$order:2,
'background-image': linb.UI.$bg('horizontal_mousedown.gif','','Button')
},
'KEY-b-lt':{
top:'-1px',
left:'-1px',
width:'4px',
height:'10px',
background: linb.UI.$bg('corner.gif', 'no-repeat left top','Button')
},
'KEY-b-rt':{
top:'-1px',
right:'-1px',
width:'4px',
height:'10px',
background: linb.UI.$bg('corner.gif', 'no-repeat right top','Button')
},
'KEY-b-rb':{
right:'-1px',
bottom:'-1px',
width:'4px',
height:'10px',
background: linb.UI.$bg('corner.gif', 'no-repeat right bottom','Button')
},
'KEY-b-lb':{
left:'-1px',
bottom:'-1px',
width:'4px',
height:'10px',
background: linb.UI.$bg('corner.gif', 'no-repeat left bottom','Button')
},
'BORDER-mouseover KEY-b-lt, BORDER-mouseover KEY-b-rt, BORDER-mouseover KEY-b-rb, BORDER-mouseover KEY-b-lb':{
$order:1,
'background-image': linb.UI.$bg('corner_mouseover.gif','','Button')
},
'BORDER-checked KEY-b-lt, BORDER-checked KEY-b-rt, BORDER-checked KEY-b-rb, BORDER-checked KEY-b-lb, BORDER-mousedown KEY-b-lt, BORDER-mousedown KEY-b-rt, BORDER-mousedown KEY-b-rb, BORDER-mousedown KEY-b-lb':{
$order:2,
'background-image' : linb.UI.$bg('corner_mousedown.gif','','Button')
},
//border>>>
/*a*/
FOCUS:{
overflow:'hidden',
display:'block',
left:0,
top:0,
'z-index':'20',
width:'100%',
height:'100%',
position:'absolute',
'-moz-outline-offset':'-1px !important'
},
/*span*/
BOX:{
display:'inline',
'white-space':'nowrap'
},
CAPTION:{
cursor:'pointer',
'vertical-align':'middle',
display:'inline',
'font-size':'12px',
'line-height':'14px'
}
},
Behaviors:{
HoverEffected:{KEY:['BORDER']},
ClickEffected:{KEY:['BORDER']},
NavKeys:{FOCUS:1},
onClick:function(profile, e, src){
var p=profile.properties;
if(p.disabled)return false;
//before event
profile.getSubNode('FOCUS').focus();
var b=profile.boxing();
if(p.type=='status'){
b.setUIValue(!p.$UIvalue);
if(profile.onChecked)
b.onChecked(profile, e, p.$UIvalue);
}
//onClick event
if(profile.onClick)
b.onClick(profile, e, src, p.$UIvalue);
},
TDR:{
onMousedown:function(profile){
if(profile.properties.type!='drop')return;
linb([this]).addClass(profile.getClass('DROP','-mousedown'));
return false;
},
onMouseup:function(profile){
if(profile.properties.type!='drop')return;
linb([this]).removeClass(profile.getClass('DROP','-mousedown'));
return false;
},
onMouseover:function(profile){
if(profile.properties.type!='drop')return;
linb([this]).addClass(profile.getClass('DROP','-mouseover'));
},
onMouseout:function(profile){
if(profile.properties.type!='drop')return;
linb([this]).removeClass(profile.getClass('DROP','-mouseover')).removeClass(profile.getClass('DROP','-mousedown'));
},
onClick:function(profile, e, src){
if(profile.properties.type!='drop')return;
profile.boxing().onClickDrop(profile, e, src);
return false;
}
}
},
DataModel:{
caption:{
ini:undefined,
// ui update function when setCaption
action: function(value){
this.getSubNode('CAPTION').get(0).innerHTML = value;
}
},
image:{
action: function(value){
this.getSubNode('ICON')
.css('display',value?'':'none')
.css('backgroundImage','url('+(value||'')+')');
}
},
imagePos:{
action: function(value){
this.getSubNode('ICON')
.css('backgroundPosition', value);
}
},
hAlign:{
ini:'center',
listbox:['left','center','right'],
action: function(v){
this.getSubNode('TD').attr('align',v);
}
},
vAlign:{
ini:'middle',
listbox:['top','middle','bottom'],
action: function(v){
this.getSubNode('TD').attr('valign',v);
}
},
tabindex:{
action:function(value){
this.getSubNode('FOCUS').attr('tabIndex',value);
}
},
href:linb.$href,
value:false,
type:{
ini:'normal',
listbox:['normal','status','drop'],
action:function(value){
var self=this,
root=self.getRoot(),
tdr=self.getSubNode('TDR'),
drop=self.getClass('DROP');
if(value=='drop')
tdr.addClass(drop);
else
tdr.removeClass(drop);
self.box._onresize(self);
}
},
width:120,
height:22,
_customBorder:'BORDER',
border:true
},
_ensureValue:function(profile,value){
return !!value;
},
_prepareData:function(profile){
var data=arguments.callee.upper.call(this, profile);
data.dropCls = data.type=='drop'?profile.getClass('DROP'):'';
return data;
},
RenderTrigger:function(){
var self=this,p = self.properties, o=self.boxing();
//set value later
if(p.type=='status' && p.value)
o.setValue(true, true);
},
EventHandlers:{
onClick:function(profile, e, src, value){},
onClickDrop:function(profile, e, src){},
onChecked:function(profile, e, value){}
}
}
});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -