not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

60 lines
1.7 KiB

/**
A control designed to display a group of stacked items, typically used in
lists. Items are displayed with small guide lines between them; by default,
they are highlighted when tapped. Set *tapHighlight* to false to prevent the
highlighting.
{kind: "onyx.Item", tapHighlight: false}
*/
enyo.kind({
name: "onyx.Item",
classes: "onyx-item",
tapHighlight: true,
handlers: {
onhold: "hold",
onrelease: "release"
},
//* @public
hold: function(inSender, inEvent) {
if (this.tapHighlight) {
onyx.Item.addFlyweightClass(this.controlParent || this, "onyx-highlight", inEvent);
}
},
//* @public
release: function(inSender, inEvent) {
if (this.tapHighlight) {
onyx.Item.removeFlyweightClass(this.controlParent || this, "onyx-highlight", inEvent);
}
},
//* @protected
statics: {
addFlyweightClass: function(inControl, inClass, inEvent, inIndex) {
var flyweight = inEvent.flyweight;
if (flyweight) {
var index = inIndex != undefined ? inIndex : inEvent.index;
flyweight.performOnRow(index, function() {
if (!inControl.hasClass(inClass)) {
inControl.addClass(inClass);
} else {
inControl.setClassAttribute(inControl.getClassAttribute());
}
});
inControl.removeClass(inClass);
}
},
// FIXME: dry
removeFlyweightClass: function(inControl, inClass, inEvent, inIndex) {
var flyweight = inEvent.flyweight;
if (flyweight) {
var index = inIndex != undefined ? inIndex : inEvent.index;
flyweight.performOnRow(index, function() {
if (!inControl.hasClass(inClass)) {
inControl.setClassAttribute(inControl.getClassAttribute());
} else {
inControl.removeClass(inClass);
}
});
}
}
}
});