[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta
From:       Rob Buis <rwlbuis () xs4all ! nl>
Date:       2005-11-16 22:22:37
Message-ID: 1132179757.753759.27376.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 480882 by buis:

Handle event attrs like onclick at the kdom level, as before.


 M  +40 -7     kdom/core/ElementImpl.cpp  
 M  +25 -10    ksvg2/svg/SVGElementImpl.cpp  


--- trunk/kdenonbeta/kdom/core/ElementImpl.cpp #480881:480882
@@ -438,11 +438,47 @@
     }
 #endif
 }
-#if 0
+
+static KDOM::QualifiedName onfocusinAttr(KDOM::nullAtom, "onfocusin", KDOM::nullAtom);
+static KDOM::QualifiedName onfocusoutAttr(KDOM::nullAtom, "onfocusout", KDOM::nullAtom);
+static KDOM::QualifiedName onactivateAttr(KDOM::nullAtom, "onactivate", KDOM::nullAtom);
+static KDOM::QualifiedName onclickAttr(KDOM::nullAtom, "onclick", KDOM::nullAtom);
+static KDOM::QualifiedName onmousedownAttr(KDOM::nullAtom, "onmousedown", KDOM::nullAtom);
+static KDOM::QualifiedName onmousemoveAttr(KDOM::nullAtom, "onmousemove", KDOM::nullAtom);
+static KDOM::QualifiedName onmouseoutAttr(KDOM::nullAtom, "onmouseout", KDOM::nullAtom);
+static KDOM::QualifiedName onmouseoverAttr(KDOM::nullAtom, "onmouseover", KDOM::nullAtom);
+static KDOM::QualifiedName onmouseupAttr(KDOM::nullAtom, "onmouseup", KDOM::nullAtom);
+static KDOM::QualifiedName onkeydownAttr(KDOM::nullAtom, "onkeydown", KDOM::nullAtom);
+static KDOM::QualifiedName onkeyupAttr(KDOM::nullAtom, "onkeyup", KDOM::nullAtom);
+
 void ElementImpl::parseAttribute(AttributeImpl *attr)
 {
-    int id = (attr->id() & NodeImpl_IdLocalMask);
-    DOMString value(attr->value());
+    const KDOM::AtomicString& value = attr->value();
+    const KDOM::QualifiedName& name = attr->name();
+    Ecma *ecmaEngine = (ownerDocument() ? ownerDocument()->ecmaEngine() : 0);
+	if (name == onfocusinAttr)
+        addDOMEventListener(ecmaEngine, DOMString("focusin").impl(), value.impl());
+	else if (name == onfocusoutAttr)
+        addDOMEventListener(ecmaEngine, DOMString("focusout").impl(), value.impl());
+	else if (name == onactivateAttr)
+        addDOMEventListener(ecmaEngine, DOMString("activate").impl(), value.impl());
+	else if (name == onclickAttr)
+        addDOMEventListener(ecmaEngine, DOMString("click").impl(), value.impl());
+	else if (name == onmousedownAttr)
+        addDOMEventListener(ecmaEngine, DOMString("mousedown").impl(), value.impl());
+	else if (name == onmousemoveAttr)
+        addDOMEventListener(ecmaEngine, DOMString("mousemove").impl(), value.impl());
+	else if (name == onmouseoutAttr)
+        addDOMEventListener(ecmaEngine, DOMString("mouseout").impl(), value.impl());
+	else if (name == onmouseoverAttr)
+        addDOMEventListener(ecmaEngine, DOMString("mouseover").impl(), value.impl());
+	else if (name == onmouseupAttr)
+        addDOMEventListener(ecmaEngine, DOMString("mouseup").impl(), value.impl());
+	else if (name == onkeydownAttr)
+        addDOMEventListener(ecmaEngine, DOMString("keydown").impl(), value.impl());
+	else if (name == onkeyupAttr)
+        addDOMEventListener(ecmaEngine, DOMString("keyup").impl(), value.impl());
+#if 0
     switch(id)
     {
         case ATTR_ID:
@@ -470,13 +506,10 @@
         default:
             break;
     }
-}
 #endif
-
-void ElementImpl::parseAttribute(AttributeImpl *attr)
-{
 }
 
+
 CSSStyleDeclarationImpl *ElementImpl::styleRules() const
 {
     if(!m_styleDeclarations)
--- trunk/kdenonbeta/ksvg2/svg/SVGElementImpl.cpp #480881:480882
@@ -126,8 +126,13 @@
     return defaultVal;
 }
 
-static KDOM::QualifiedName loadAttr(KDOM::nullAtom, "onload", KDOM::nullAtom);
-static KDOM::QualifiedName clickAttr(KDOM::nullAtom, "onclick", KDOM::nullAtom);
+static KDOM::QualifiedName onloadAttr(KDOM::nullAtom, "onload", KDOM::nullAtom);
+static KDOM::QualifiedName onunloadAttr(KDOM::nullAtom, "onunload", KDOM::nullAtom);
+static KDOM::QualifiedName onabortAttr(KDOM::nullAtom, "onabort", KDOM::nullAtom);
+static KDOM::QualifiedName onerrorAttr(KDOM::nullAtom, "onerror", KDOM::nullAtom);
+static KDOM::QualifiedName onresizeAttr(KDOM::nullAtom, "onresize", KDOM::nullAtom);
+static KDOM::QualifiedName onscrollAttr(KDOM::nullAtom, "onscroll", KDOM::nullAtom);
+static KDOM::QualifiedName onzoomAttr(KDOM::nullAtom, "onzoom", KDOM::nullAtom);
 
 void SVGElementImpl::parseAttribute(KDOM::AttributeImpl *attr)
 {
@@ -135,14 +140,24 @@
     if(!doc)
         return;
 
-    if (attr->name() == /*SVGNames::*/loadAttr)
-    {
-        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("load").impl(), attr->value().impl());
-    }
-    else if (attr->name() == /*SVGNames::*/clickAttr)
-    {
-        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("click").impl(), attr->value().impl());
-	}
+    const KDOM::AtomicString& value = attr->value();
+    const KDOM::QualifiedName& name = attr->name();
+    if (name == /*SVGNames::*/onloadAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("load").impl(), value.impl());
+	else if (name == /*SVGNames::*/onunloadAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("unload").impl(), value.impl());
+	else if (name == /*SVGNames::*/onabortAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("abort").impl(), value.impl());
+	else if (name == /*SVGNames::*/onerrorAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("error").impl(), value.impl());
+	else if (name == /*SVGNames::*/onresizeAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("resize").impl(), value.impl());
+	else if (name == /*SVGNames::*/onscrollAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("scroll").impl(), value.impl());
+	else if (name == /*SVGNames::*/onzoomAttr)
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("zoom").impl(), value.impl());
+    //else if (name == /*SVGNames::*/onclickAttr)
+    //    addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("click").impl(), value.impl());
     else
         KDOM::ElementImpl::parseAttribute(attr);
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic