Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1180)

Unified Diff: Source/core/svg/SVGElement.h

Issue 21042009: [SVG2] Merge SVGStyledElement into SVGElement (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/SVGDescElement.idl ('k') | Source/core/svg/SVGElement.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/SVGElement.h
diff --git a/Source/core/svg/SVGElement.h b/Source/core/svg/SVGElement.h
index 8699a92b5b548a3bc98928d0706cf1a983b73943..2eeb2c69241b703691a8da87f440bcad30fcddaa 100644
--- a/Source/core/svg/SVGElement.h
+++ b/Source/core/svg/SVGElement.h
@@ -24,9 +24,11 @@
#include "core/dom/Element.h"
#include "core/platform/Timer.h"
+#include "core/svg/SVGAnimatedString.h"
#include "core/svg/SVGLangSpace.h"
#include "core/svg/SVGLocatable.h"
#include "core/svg/SVGParsingError.h"
+#include "core/svg/properties/SVGAnimatedPropertyMacros.h"
#include "core/svg/properties/SVGPropertyInfo.h"
#include "wtf/HashMap.h"
@@ -42,6 +44,8 @@ class SVGElementInstance;
class SVGElementRareData;
class SVGSVGElement;
+void mapAttributeToCSSProperty(HashMap<StringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName);
+
class SVGElement : public Element, public SVGLangSpace {
public:
static PassRefPtr<SVGElement> create(const QualifiedName&, Document*);
@@ -49,6 +53,18 @@ public:
bool isOutermostSVGSVGElement() const;
+ virtual String title() const;
+ bool hasRelativeLengths() const { return !m_elementsWithRelativeLengths.isEmpty(); }
+ virtual bool supportsMarkers() const { return false; }
+ PassRefPtr<CSSValue> getPresentationAttribute(const String& name);
+ bool isKnownAttribute(const QualifiedName&);
+ static bool isAnimatableCSSProperty(const QualifiedName&);
+ virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const;
+ virtual bool needsPendingResourceHandling() const { return true; }
+
+ bool instanceUpdatesBlocked() const;
+ void setInstanceUpdatesBlocked(bool);
+
String xmlbase() const;
void setXmlbase(const String&);
@@ -57,7 +73,6 @@ public:
SVGDocumentExtensions* accessDocumentSVGExtensions();
- virtual bool isSVGStyledElement() const { return false; }
virtual bool isSVGGraphicsElement() const { return false; }
virtual bool isSVGSVGElement() const { return false; }
virtual bool isFilterEffect() const { return false; }
@@ -67,7 +82,7 @@ public:
// For SVGTests
virtual bool isValid() const { return true; }
- virtual void svgAttributeChanged(const QualifiedName&) { }
+ virtual void svgAttributeChanged(const QualifiedName&);
virtual void animatedPropertyTypeForAttribute(const QualifiedName&, Vector<AnimatedPropertyType>&);
@@ -104,8 +119,6 @@ public:
virtual void synchronizeRequiredExtensions() { }
virtual void synchronizeSystemLanguage() { }
- virtual SVGAttributeToPropertyMap& localAttributeToPropertyMap() const;
-
#ifndef NDEBUG
bool isAnimatableAttribute(const QualifiedName&) const;
#endif
@@ -130,7 +143,20 @@ protected:
virtual void attributeChanged(const QualifiedName&, const AtomicString&, AttributeModificationReason = ModifiedDirectly) OVERRIDE;
virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const OVERRIDE;
+ virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;
+ virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE;
+ virtual bool rendererIsNeeded(const NodeRenderingContext&) OVERRIDE { return false; }
+ bool rendererIsNeededInternal(const NodeRenderingContext&);
+
+ virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
virtual void removedFrom(ContainerNode*) OVERRIDE;
+ virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+
+ static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName&);
+ void updateRelativeLengthsInformation() { updateRelativeLengthsInformation(selfHasRelativeLengths(), this); }
+ void updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement*);
+
+ virtual bool selfHasRelativeLengths() const { return false; }
SVGElementRareData* svgRareData() const;
SVGElementRareData* ensureSVGRareData();
@@ -149,13 +175,19 @@ private:
virtual RenderStyle* virtualComputedStyle(PseudoId pseudoElementSpecifier = NOPSEUDO) { return computedStyle(pseudoElementSpecifier); }
virtual void willRecalcStyle(StyleChange) OVERRIDE;
virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE;
- virtual bool rendererIsNeeded(const NodeRenderingContext&) { return false; }
+
+ void buildPendingResourcesIfNeeded();
virtual bool isSupported(StringImpl* feature, StringImpl* version) const;
void mapInstanceToElement(SVGElementInstance*);
void removeInstanceMapping(SVGElementInstance*);
+ HashSet<SVGElement*> m_elementsWithRelativeLengths;
+
+ BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGElement)
+ DECLARE_ANIMATED_STRING(ClassName, className)
+ END_DECLARE_ANIMATED_PROPERTIES
};
struct SVGAttributeHashTranslator {
« no previous file with comments | « Source/core/svg/SVGDescElement.idl ('k') | Source/core/svg/SVGElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698