<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>pyjamas-khtml/pyjamas/dom.py</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -27,12 +27,18 @@ global listeners
 listeners = {}
 
 def set_listener(elem, listener):
-    print &quot;set listener&quot;, elem.elementId(), listener
+    print &quot;set listener&quot;, elem, listener
+    elem.set_listener(listener)
+    print dir(elem._)
+    print elem._.id
+    error
+    return
     global listeners
     listeners[long(elem.elementId())] = listener
 
 def get_listener(elem):
-    print &quot;get listener&quot;, elem.elementId(), listeners
+    print &quot;get_listener&quot;, elem, elem.get_listener(), dir(elem)
+    return elem.get_listener()
     global listeners
     return listeners.get(long(elem.elementId()))
 
@@ -136,7 +142,7 @@ def old_javascript_based_init():
         return true;
         };
 
-    $wnd.addEventListener(
+    $wnd.element.addEventListener(
         'mouseout',
         function(evt){
             var cap = $wnd._captureElem;
@@ -157,14 +163,14 @@ def old_javascript_based_init():
     );
 
 
-    $wnd.addEventListener('click', $wnd.__dispatchCapturedMouseEvent, true);
-    $wnd.addEventListener('dblclick', $wnd.__dispatchCapturedMouseEvent, true);
-    $wnd.addEventListener('mousedown', $wnd.__dispatchCapturedMouseEvent, true);
-    $wnd.addEventListener('mouseup', $wnd.__dispatchCapturedMouseEvent, true);
-    $wnd.addEventListener('mousemove', $wnd.__dispatchCapturedMouseEvent, true);
-    $wnd.addEventListener('keydown', $wnd.__dispatchCapturedEvent, true);
-    $wnd.addEventListener('keyup', $wnd.__dispatchCapturedEvent, true);
-    $wnd.addEventListener('keypress', $wnd.__dispatchCapturedEvent, true);
+    $wnd.element.addEventListener('click', $wnd.__dispatchCapturedMouseEvent, true);
+    $wnd.element.addEventListener('dblclick', $wnd.__dispatchCapturedMouseEvent, true);
+    $wnd.element.addEventListener('mousedown', $wnd.__dispatchCapturedMouseEvent, true);
+    $wnd.element.addEventListener('mouseup', $wnd.__dispatchCapturedMouseEvent, true);
+    $wnd.element.addEventListener('mousemove', $wnd.__dispatchCapturedMouseEvent, true);
+    $wnd.element.addEventListener('keydown', $wnd.__dispatchCapturedEvent, true);
+    $wnd.element.addEventListener('keyup', $wnd.__dispatchCapturedEvent, true);
+    $wnd.element.addEventListener('keypress', $wnd.__dispatchCapturedEvent, true);
     
     $wnd.__dispatchEvent = function(evt) {
     
@@ -194,7 +200,9 @@ def appendChild(parent, child):
     parent.appendChild(child)
 
 def compare(elem1, elem2):
-    return elem1.is_same_node(elem2)
+    print &quot;TODO: check compare&quot;
+    return elem1 == elem2
+    #return elem1.isSameNode(elem2)
 
 def createAnchor():
     return createElement(&quot;A&quot;)
@@ -209,7 +217,7 @@ def createDiv():
     return createElement(&quot;div&quot;)
 
 def createElement(tag):
-    return doc().createElement(KDOM.DOMString(tag))
+    return doc().createElement(tag)
 
 def createFieldSet():
     return createElement(&quot;fieldset&quot;)
@@ -312,7 +320,7 @@ def eventGetShiftKey(evt):
     return evt.props.shift_key
 
 def eventGetTarget(event):
-    return event.props.target
+    return event.target()
 
 def eventGetToElement(evt):
     return KDOM.MouseEvent(evt).relatedTarget()
@@ -360,7 +368,7 @@ def iframeGetSrc(elem):
 
 def getBody():
     els = doc().getElementsByTagName(KDOM.DOMString(&quot;body&quot;))
-    return els.item(0)
+    return list(els)[0]
 
 def getAbsoluteLeft(elem):
     left = 0
@@ -392,13 +400,10 @@ def getAbsoluteTop(elem):
     return top + getIntAttribute(getBody(), &quot;scrollTop&quot;)
 
 def getAttribute(elem, attr):
-    if not hasattr(elem, &quot;getAttribute&quot;):
-        elem = KDOM.HTMLElement(elem) #errr...
-    ni = elem.getAttribute(KDOM.DOMString(attr))
-    return ni and ni.string()
-    #a = elem.attributes()
-    #ni = a.getNamedItem(KDOM.DOMString(attr))
-    #return ni.nodeValue().string()
+    print elem
+    print elem._, dir(elem._), elem.hasAttribute(attr)
+    print elem._.nodeType(), elem._.tagName().string()
+    return getattr(elem, attr)
 
 def getElemAttribute(elem, attr):
     return getAttribute(elem, attr)
@@ -544,7 +549,7 @@ def getStyleAttribute(elem, attr):
 def insertChild(parent, toAdd, index):
     count = 0
     child = parent.firstChild()
-    before = None;
+    before = None
     while parent.hasChildNodes() and child:
         if child.nodeType == 1:
             if (count == index):
@@ -714,16 +719,13 @@ def removeAttribute(element, attribute):
     elem.remove_attribute(attribute)
 
 def setAttribute(element, attribute, value):
-    if not hasattr(element, &quot;getAttribute&quot;):
-        element = KDOM.HTMLElement(element) #errr...
-    element.setAttribute(KDOM.DOMString(attribute), KDOM.DOMString(str(value)))
+    setattr(element, attribute, value)
 
 def setElemAttribute(element, attribute, value):
     element.set_attribute(attribute, value)
 
 def setBooleanAttribute(elem, attr, value):
     print &quot;setBooleanAttr&quot;, elem, dir(elem)
-    elem = KDOM.HTMLButtonElement(elem)
     setAttribute(elem, attr.upper(), bool(value) and &quot;&quot; or None)
     print elem, dir(elem), elem.disabled()
 
@@ -748,16 +750,15 @@ def setEventListener(element, listener):
     set_listener(element, listener)
 
 def setInnerHTML(element, html):
-    e = KDOM.HTMLElement(element)
-    e.setInnerHTML(KDOM.DOMString(html))
+    element.innerHTML = html
 
 def setInnerText(elem, text):
     #Remove all children first.
     while 1:
-        nodes = elem.childNodes()
-        if nodes.length() == 0:
+        nodes = elem.childNodes
+        if len(nodes) == 0:
             break
-        elem.removeChild(nodes.item(0))
+        elem.removeChild(nodes[0])
     elem.appendChild(doc().createTextNode(KDOM.DOMString(text or '')))
 
 def setIntElemAttribute(elem, attr, value):
@@ -779,11 +780,7 @@ def setOptionText(select, text, index):
     &quot;&quot;&quot;)
 
 def setStyleAttribute(element, name, value):
-    if not hasattr(element, &quot;style&quot;):
-        element = KDOM.HTMLElement(element) #errr...
-    element.style().setProperty(KDOM.DOMString(mash_name_for_glib(name)),
-                                KDOM.DOMString(value),
-                                KDOM.DOMString(&quot;&quot;))
+    element.setStyleAttribute(name, value)
 
 def dispatch_event_cb(element, event, capture):
     print &quot;dispatch_event_cb&quot;, element, event, capture
@@ -809,39 +806,39 @@ def sinkEvents(element, bits):
     element.__eventBits = bits;
 
     if (bits &amp; 0x00001):
-        element.addEventListener(KDOM.DOMString(&quot;click&quot;), ce, True)
+        element.addEvent(&quot;click&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00002):
-        element.addEventListener(KDOM.DOMString(&quot;dblclick&quot;), ce, True)
+        element.addEvent(&quot;dblclick&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00004):
-        element.addEventListener(KDOM.DOMString(&quot;mousedown&quot;), ce, True)
+        element.addEvent(&quot;mousedown&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00008):
-        element.addEventListener(KDOM.DOMString(&quot;mouseup&quot;), ce, True)
+        element.addEvent(&quot;mouseup&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00010):
-        element.addEventListener(KDOM.DOMString(&quot;mouseover&quot;), ce, True)
+        element.addEvent(&quot;mouseover&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00020):
-        element.addEventListener(KDOM.DOMString(&quot;mouseout&quot;), ce, True)
+        element.addEvent(&quot;mouseout&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00040):
-        element.addEventListener(KDOM.DOMString(&quot;mousemove&quot;), ce, True)
+        element.addEvent(&quot;mousemove&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00080):
-        element.addEventListener(KDOM.DOMString(&quot;keydown&quot;), ce, True)
+        element.addEvent(&quot;keydown&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00100):
-        element.addEventListener(KDOM.DOMString(&quot;keypress&quot;), ce, True)
+        element.addEvent(&quot;keypress&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00200):
-        element.addEventListener(KDOM.DOMString(&quot;keyup&quot;), ce, True)
+        element.addEvent(&quot;keyup&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00400):
-        element.addEventListener(KDOM.DOMString(&quot;change&quot;), ce, True)
+        element.addEvent(&quot;change&quot;, _dispatchEvent, True)
     if (bits &amp; 0x00800):
-        element.addEventListener(KDOM.DOMString(&quot;focus&quot;), ce, True)
+        element.addEvent(&quot;focus&quot;, _dispatchEvent, True)
     if (bits &amp; 0x01000):
-        element.addEventListener(KDOM.DOMString(&quot;blur&quot;), ce, True)
+        element.addEvent(&quot;blur&quot;, _dispatchEvent, True)
     if (bits &amp; 0x02000):
-        element.addEventListener(KDOM.DOMString(&quot;losecapture&quot;), ce, True)
+        element.addEvent(&quot;losecapture&quot;, _dispatchEvent, True)
     if (bits &amp; 0x04000):
-        element.addEventListener(KDOM.DOMString(&quot;scroll&quot;), ce, True)
+        element.addEvent(&quot;scroll&quot;, _dispatchEvent, True)
     if (bits &amp; 0x08000):
-        element.addEventListener(KDOM.DOMString(&quot;load&quot;), ce, True)
+        element.addEvent(&quot;load&quot;, _dispatchEvent, True)
     if (bits &amp; 0x10000):
-        element.addEventListener(KDOM.DOMString(&quot;error&quot;), ce, True)
+        element.addEvent(&quot;error&quot;, _dispatchEvent, True)
 
 def toString(elem):
     temp = elem.clone_node(True)</diff>
      <filename>pyjamas-khtml/pyjamas/DOM.py</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,12 @@
 &quot;&quot;&quot;
 from traceback import print_stack
 
+import dom
+
 global main_frame
 main_frame = None
+global main_doc
+main_doc = None
 
 def unescape(str):
     s = s.replace(&quot;&amp;amp;&quot;, &quot;&amp;&quot;)
@@ -15,15 +19,17 @@ def unescape(str):
 
 def set_main_frame(frame):
     global main_frame
+    global main_doc
     main_frame = frame
+    main_doc = dom.Document(main_frame.document(), main_frame)
 
 def get_main_frame():
     global main_frame
     return main_frame
 
 def doc():
-    global main_frame
-    return main_frame.document()
+    global main_doc
+    return main_doc
 
 def wnd():
     &quot;&quot;&quot; try to avoid using this function until a bug in pywebkitgtk
@@ -55,19 +61,9 @@ def pygwt_processMetas():
     import khtml
     from khtml import DOM as KDOM
     global pygwt_moduleNames
-    metas = doc().getElementsByTagName(KDOM.DOMString(&quot;meta&quot;))
-    for i in range(metas.length()):
-        meta = metas.item(i)
-        print dir(meta)
-        print dir(meta.attributes())
-        a = meta.attributes()
-        ni = a.getNamedItem(KDOM.DOMString(&quot;name&quot;))
-        print dir(ni)
-        print ni.toHTML()
-        print ni.nodeValue().string()
-        name = DOM.getAttribute(meta, &quot;name&quot;)
-        if name == &quot;pygwt:module&quot;:
-            content = DOM.getAttribute(meta, &quot;content&quot;)
+    for meta in doc().getElementsByTagName(KDOM.DOMString(&quot;meta&quot;)):
+        if meta.attributes['name'] == &quot;pygwt:module&quot;:
+            content = meta.attributes[&quot;content&quot;]
             if content:
                 pygwt_moduleNames.append(content)
     return pygwt_moduleNames</diff>
      <filename>pyjamas-khtml/pyjamas/__pyjamas__.py</filename>
    </modified>
    <modified>
      <diff>@@ -437,7 +437,9 @@ class FocusWidget(Widget):
         DOM.setAttribute(self.getElement(), &quot;accessKey&quot;, &quot;&quot; + key)
         
     def setEnabled(self, enabled):
-        DOM.setBooleanAttribute(self.getElement(), &quot;disabled&quot;, not enabled)
+        print &quot;setEnabled&quot;, enabled
+        KDOM.HTMLButtonElement(self.getElement()).setDisabled(not enabled)
+        #DOM.setBooleanAttribute(self.getElement(), &quot;disabled&quot;, not enabled)
 
     def setFocus(self, focused):
         if (focused):
@@ -493,7 +495,7 @@ class Button(ButtonBase):
             self.addClickListener(listener)
 
     def adjustType(self, button):
-        if DOM.getAttribute(button, &quot;type&quot;) == 'submit':
+        if button.type() == 'submit':
             try:
                 DOM.setAttribute(button, &quot;type&quot;, &quot;button&quot;)
             except:</diff>
      <filename>pyjamas-khtml/pyjamas/ui.py</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ from pyjamas.__pyjamas__ import pygwt_processMetas, set_main_frame
 from pyjamas import DOM
 
 import sys
-sys.path.append(&quot;examples/gridtest&quot;)
+sys.path.append(&quot;examples/helloworld&quot;)
 
 def module_load(m):
     minst = None
@@ -37,7 +37,7 @@ class TestTextPart(KHTMLPart):
         self.splitter.set_documents(url)
         
     def setDocument(self):
-        doc = open(&quot;examples/gridtest/GridTest.html&quot;).read()
+        doc = open(&quot;examples/helloworld/Hello.html&quot;).read()
 
         app = KApplication.kApplication()
         # here we try to make a blank page first</diff>
      <filename>pyjamas-khtml/textbrowser_image.py</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>pyjd-qt4/f</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>4786caf884162a89aacf051a7c7edeb0c598bee7</id>
    </parent>
  </parents>
  <author>
    <name>lkcl</name>
    <email>lkcl@lkcl.net</email>
  </author>
  <url>http://github.com/lkcl/pyjamas-desktop/commit/4d1d41fd046eb18d035a1413eb03081248775d8c</url>
  <id>4d1d41fd046eb18d035a1413eb03081248775d8c</id>
  <committed-date>2008-10-14T12:42:35-07:00</committed-date>
  <authored-date>2008-10-14T12:42:35-07:00</authored-date>
  <message>ran into brick wall even after using pykhtml's dom.py module</message>
  <tree>56311c2b40668208579cd2084f15c81a0794c4f4</tree>
  <committer>
    <name>lkcl</name>
    <email>lkcl@lkcl.net</email>
  </committer>
</commit>
