PageRenderTime 209ms CodeModel.GetById 195ms RepoModel.GetById 0ms app.codeStats 0ms

/library/platform/DOMOldMoz.py

http://pyjamas.googlecode.com/
Python | 100 lines | 100 code | 0 blank | 0 comment | 0 complexity | b7ee33d601b5c9c321339a6c8300bf81 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. def compare(elem1, elem2):
  2. JS("""
  3. if (!elem1 && !elem2) {
  4. return true;
  5. } else if (!elem1 || !elem2) {
  6. return false;
  7. }
  8. return (elem1.isSameNode(elem2));
  9. """)
  10. def eventGetButton(evt):
  11. JS("""
  12. var button = evt.button;
  13. if(button == 0) {
  14. return 1;
  15. } else if (button == 1) {
  16. return 4;
  17. } else {
  18. return button;
  19. }
  20. """)
  21. def getAbsoluteLeft(elem):
  22. JS("""
  23. var left = 0;
  24. var parent = elem;
  25. while (parent) {
  26. if (parent.scrollLeft > 0) {
  27. left = left - parent.scrollLeft;
  28. }
  29. parent = parent.parentNode;
  30. }
  31. while (elem) {
  32. left = left + elem.offsetLeft;
  33. elem = elem.offsetParent;
  34. }
  35. return left + $doc.body.scrollLeft + $doc.documentElement.scrollLeft;
  36. """)
  37. def getAbsoluteTop(elem):
  38. JS("""
  39. var top = 0;
  40. var parent = elem;
  41. while (parent) {
  42. if (parent.scrollTop > 0) {
  43. top -= parent.scrollTop;
  44. }
  45. parent = parent.parentNode;
  46. }
  47. while (elem) {
  48. top += elem.offsetTop;
  49. elem = elem.offsetParent;
  50. }
  51. return top + $doc.body.scrollTop + $doc.documentElement.scrollTop;
  52. """)
  53. def getChildIndex(parent, child):
  54. JS("""
  55. var count = 0, current = parent.firstChild;
  56. while (current) {
  57. if (current.isSameNode(child)) {
  58. return count;
  59. }
  60. if (current.nodeType == 1) {
  61. ++count;
  62. }
  63. current = current.nextSibling;
  64. }
  65. return -1;
  66. """)
  67. def isOrHasChild(parent, child):
  68. JS("""
  69. while (child) {
  70. if (parent.isSameNode(child)) {
  71. return true;
  72. }
  73. child = child.parentNode;
  74. if (child.nodeType != 1) {
  75. child = null;
  76. }
  77. }
  78. return false;
  79. """)
  80. def releaseCapture(elem):
  81. JS("""
  82. if ((DOM_sCaptureElem != null) && DOM_compare(elem, DOM_sCaptureElem))
  83. DOM_sCaptureElem = null;
  84. if (elem.isSameNode($wnd.__captureElem)) {
  85. $wnd.__captureElem = null;
  86. }
  87. """)