You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
3 years ago
|
/**
|
||
|
* Event maker.
|
||
|
*/
|
||
|
Ext.define('Ext.ux.event.Maker', {
|
||
|
|
||
|
eventQueue: [],
|
||
|
|
||
|
startAfter: 500,
|
||
|
|
||
|
timerIncrement: 500,
|
||
|
|
||
|
currentTiming: 0,
|
||
|
|
||
|
|
||
|
constructor: function(config) {
|
||
|
var me = this;
|
||
|
|
||
|
me.currentTiming = me.startAfter;
|
||
|
|
||
|
if(!Ext.isArray(config)) {
|
||
|
config = [config];
|
||
|
}
|
||
|
|
||
|
Ext.Array.each(config, function(item) {
|
||
|
item.el = item.el || 'el';
|
||
|
Ext.Array.each(Ext.ComponentQuery.query(item.cmpQuery), function(cmp) {
|
||
|
var event = {}, x, y, el;
|
||
|
|
||
|
if (!item.domQuery) {
|
||
|
el = cmp[item.el];
|
||
|
} else {
|
||
|
el = cmp.el.down(item.domQuery);
|
||
|
}
|
||
|
|
||
|
event.target = '#' + el.dom.id;
|
||
|
|
||
|
event.type = item.type;
|
||
|
|
||
|
event.button = config.button || 0;
|
||
|
|
||
|
x = el.getX() + (el.getWidth() / 2);
|
||
|
y = el.getY() + (el.getHeight() / 2);
|
||
|
|
||
|
event.xy = [x,y];
|
||
|
|
||
|
event.ts = me.currentTiming;
|
||
|
|
||
|
me.currentTiming += me.timerIncrement;
|
||
|
|
||
|
me.eventQueue.push(event);
|
||
|
});
|
||
|
|
||
|
if (item.screenshot) {
|
||
|
me.eventQueue[me.eventQueue.length - 1].screenshot = true;
|
||
|
}
|
||
|
});
|
||
|
return me.eventQueue;
|
||
|
}
|
||
|
});
|