Maker.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * Event maker.
  3. */
  4. Ext.define('Ext.ux.event.Maker', {
  5. eventQueue: [],
  6. startAfter: 500,
  7. timerIncrement: 500,
  8. currentTiming: 0,
  9. constructor: function(config) {
  10. var me = this;
  11. me.currentTiming = me.startAfter;
  12. if(!Ext.isArray(config)) {
  13. config = [config];
  14. }
  15. Ext.Array.each(config, function(item) {
  16. item.el = item.el || 'el';
  17. Ext.Array.each(Ext.ComponentQuery.query(item.cmpQuery), function(cmp) {
  18. var event = {}, x, y, el;
  19. if (!item.domQuery) {
  20. el = cmp[item.el];
  21. } else {
  22. el = cmp.el.down(item.domQuery);
  23. }
  24. event.target = '#' + el.dom.id;
  25. event.type = item.type;
  26. event.button = config.button || 0;
  27. x = el.getX() + (el.getWidth() / 2);
  28. y = el.getY() + (el.getHeight() / 2);
  29. event.xy = [x,y];
  30. event.ts = me.currentTiming;
  31. me.currentTiming += me.timerIncrement;
  32. me.eventQueue.push(event);
  33. });
  34. if (item.screenshot) {
  35. me.eventQueue[me.eventQueue.length - 1].screenshot = true;
  36. }
  37. });
  38. return me.eventQueue;
  39. }
  40. });