Maker.html 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>The source code</title>
  6. <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  7. <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  8. <style type="text/css">
  9. .highlight { display: block; background-color: #ddd; }
  10. </style>
  11. <script type="text/javascript">
  12. function highlight() {
  13. document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
  14. }
  15. </script>
  16. </head>
  17. <body onload="prettyPrint(); highlight();">
  18. <pre class="prettyprint lang-js"><span id='Ext-ux-event-Maker'>/**
  19. </span> * Event maker.
  20. */
  21. Ext.define('Ext.ux.event.Maker', {
  22. eventQueue: [],
  23. startAfter: 500,
  24. timerIncrement: 500,
  25. currentTiming: 0,
  26. constructor: function(config) {
  27. var me = this;
  28. me.currentTiming = me.startAfter;
  29. if(!Ext.isArray(config)) {
  30. config = [config];
  31. }
  32. Ext.Array.each(config, function(item) {
  33. item.el = item.el || 'el';
  34. Ext.Array.each(Ext.ComponentQuery.query(item.cmpQuery), function(cmp) {
  35. var event = {}, x, y, el;
  36. if (!item.domQuery) {
  37. el = cmp[item.el];
  38. } else {
  39. el = cmp.el.down(item.domQuery);
  40. }
  41. event.target = '#' + el.dom.id;
  42. event.type = item.type;
  43. event.button = config.button || 0;
  44. x = el.getX() + (el.getWidth() / 2);
  45. y = el.getY() + (el.getHeight() / 2);
  46. event.xy = [x,y];
  47. event.ts = me.currentTiming;
  48. me.currentTiming += me.timerIncrement;
  49. me.eventQueue.push(event);
  50. });
  51. if (item.screenshot) {
  52. me.eventQueue[me.eventQueue.length - 1].screenshot = true;
  53. }
  54. });
  55. return me.eventQueue;
  56. }
  57. });</pre>
  58. </body>
  59. </html>