[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-14 21:34:15
Message-ID: 1132004055.717555.975.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 480429 by buis:
Use the (old) event system again, as a first test try onload, that
works, as interact-onload works again. WildFox should decide whether
to keep using the old system or go for what WebCore uses...
CCMAIL: wildfox@kde.org
M +2 -2 kdom/events/EventTargetImpl.cpp
M +14 -13 ksvg2/svg/SVGDocumentImpl.cpp
M +16 -2 ksvg2/svg/SVGElementImpl.cpp
M +2 -0 ksvg2/svg/SVGElementImpl.h
M +2 -1 ksvg2/svg/SVGNames.cpp
M +1 -1 ksvg2/svg/SVGNames.h
--- trunk/kdenonbeta/kdom/events/EventTargetImpl.cpp #480428:480429
@@ -86,8 +86,8 @@
}
}
-// addListenerType(doc->addListenerType(type));
-// m_eventListeners->append(new RegisteredEventListener(type, listener, \
useCapture)); + addListenerType(doc->addListenerType(type.impl()));
+ m_eventListeners->append(new RegisteredEventListener(type, listener, \
useCapture)); }
void EventTargetImpl::removeEventListener(const AtomicString &type, \
EventListenerImpl *listener, bool useCapture)
--- trunk/kdenonbeta/ksvg2/svg/SVGDocumentImpl.cpp #480428:480429
@@ -83,16 +83,15 @@
SVGDocumentImpl::~SVGDocumentImpl()
{
-#if 0
// Fire UNLOAD_EVENT upon destruction...
- //if(KDOM::DocumentImpl::hasListenerType(KDOM::UNLOAD_EVENT))
+ if(KDOM::DocumentImpl::hasListenerType(KDOM::UNLOAD_EVENT))
{
- int exceptioncode;
- KDOM::EventImpl *event = createEvent("SVGEvents"/*, exceptioncode*/);
- event->initEvent(KDOM::EventNames::unloadEvent, false, false);
+ SVGEventImpl *event = static_cast<SVGEventImpl *>(createEvent("SVGEvents"));
+ event->ref();
+ event->initEvent(KDOM::DOMString("unload").impl(), false, false);
dispatchRecursiveEvent(event, lastChild());
+ event->deref();
}
-#endif
delete m_scriptsIt;
delete m_timeScheduler;
@@ -154,15 +153,17 @@
return 0;
}
-KDOM::EventImpl *SVGDocumentImpl::createEvent(const KDOM::AtomicString \
&eventTypeImpl) +static KDOM::QualifiedName SVGEventsEventType(KDOM::nullAtom, \
"SVGEvents", KDOM::nullAtom); +static KDOM::QualifiedName \
SVGZoomEventsEventType(KDOM::nullAtom, "SVGZoomEvents", KDOM::nullAtom); +
+KDOM::EventImpl *SVGDocumentImpl::createEvent(const KDOM::AtomicString &eventType)
{
-#if 0
- if(eventType == EventNames::SVGEventsEventType)
+ if(eventType == /*EventNames::*/SVGEventsEventType)
return new SVGEventImpl();
- else if(eventType == EventNames::SVGZoomEventsEventType)
+ else if(eventType == /*EventNames::*/SVGZoomEventsEventType)
return new SVGZoomEventImpl();
-#endif
- return DocumentEventImpl::createEvent(eventTypeImpl);
+
+ return DocumentEventImpl::createEvent(eventType);
}
void SVGDocumentImpl::notifyFinished(KDOM::CachedObject *finishedObj)
@@ -449,7 +450,7 @@
// Fire LOAD_EVENT after all scripts are evaluated
if(KDOM::DocumentImpl::hasListenerType(KDOM::LOAD_EVENT) && \
!m_scriptsIt->current()) {
- SVGEventImpl *event = static_cast<SVGEventImpl \
*>(createEvent(KDOM::DOMString("SVGEvents").impl())); + SVGEventImpl *event = \
static_cast<SVGEventImpl *>(createEvent("SVGEvents")); event->ref();
event->initEvent(KDOM::DOMString("load").impl(), false, false);
--- trunk/kdenonbeta/ksvg2/svg/SVGElementImpl.cpp #480428:480429
@@ -46,6 +46,13 @@
{
}
+const KDOM::AtomicStringList* SVGElementImpl::getClassList() const
+{
+ // TODO
+ return 0;
+// return namedAttrMap ? \
static_cast<KDOM::NamedMappedAttrMapImpl*>(namedAttrMap)->getClassList() : 0; +}
+
bool SVGElementImpl::isSupported(KDOM::DOMStringImpl *feature, KDOM::DOMStringImpl \
*version) const {
if(SVGDOMImplementationImpl::self()->hasFeature(feature, version))
@@ -119,13 +126,20 @@
return defaultVal;
}
+static KDOM::QualifiedName loadAttr(KDOM::nullAtom, "onload", KDOM::nullAtom);
+
void SVGElementImpl::parseAttribute(KDOM::AttributeImpl *attr)
{
const KDOM::DocumentImpl *doc = ownerDocument();
if(!doc)
return;
- KDOM::ElementImpl::parseAttribute(attr);
+ if (attr->name() == /*SVGNames::*/loadAttr)
+ {
+ addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("load").impl(), \
attr->value().impl()); + }
+ else
+ KDOM::ElementImpl::parseAttribute(attr);
}
void SVGElementImpl::addSVGEventListener(KDOM::Ecma *ecmaEngine, KDOM::DOMStringImpl \
*type, KDOM::DOMStringImpl *value) @@ -157,7 +171,7 @@
void SVGElementImpl::attributeChanged(KDOM::AttributeImpl *attr, bool )
{
- parseAttribute(attr);
+ parseAttribute(attr);
}
// vim:ts=4:noet
--- trunk/kdenonbeta/ksvg2/svg/SVGElementImpl.h #480428:480429
@@ -45,6 +45,8 @@
SVGElementImpl(const KDOM::QualifiedName& qName, KDOM::DocumentPtr *doc);
virtual ~SVGElementImpl();
+ virtual const KDOM::AtomicStringList* getClassList() const;
+
virtual bool isSupported(KDOM::DOMStringImpl *feature, KDOM::DOMStringImpl \
*version) const;
// 'SVGElement' functions
--- trunk/kdenonbeta/ksvg2/svg/SVGNames.cpp #480428:480429
@@ -154,4 +154,5 @@
}
-} }
\ No newline at end of file
+} }
+
--- trunk/kdenonbeta/ksvg2/svg/SVGNames.h #480428:480429
@@ -23,7 +23,7 @@
#ifndef DOM_SVGNAMES_H
#define DOM_SVGNAMES_H
-#include "QualifiedName.h"
+#include <kdom/core/QualifiedName.h>
namespace KSVG { namespace SVGNames {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic