/** * 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; } });