#include "core/CSSPropertyNames.h"
#include "core/CSSValueKeywords.h"
#include "core/editing/WritingDirection.h"
+#include "platform/fonts/FixedPitchFontType.h"
#include "platform/heap/Handle.h"
#include "wtf/Forward.h"
#include "wtf/RefCounted.h"
#include "wtf/Vector.h"
#include "wtf/text/WTFString.h"
-namespace WebCore {
+namespace blink {
class CSSStyleDeclaration;
class CSSComputedStyleDeclaration;
class CSSPrimitiveValue;
class CSSValue;
+class ContainerNode;
class Document;
class Element;
class HTMLElement;
return adoptRefWillBeNoop(new EditingStyle());
}
- static PassRefPtrWillBeRawPtr<EditingStyle> create(Node* node, PropertiesToInclude propertiesToInclude = OnlyEditingInheritableProperties)
+ static PassRefPtrWillBeRawPtr<EditingStyle> create(ContainerNode* node, PropertiesToInclude propertiesToInclude = OnlyEditingInheritableProperties)
{
return adoptRefWillBeNoop(new EditingStyle(node, propertiesToInclude));
}
PassRefPtrWillBeRawPtr<EditingStyle> extractAndRemoveBlockProperties();
PassRefPtrWillBeRawPtr<EditingStyle> extractAndRemoveTextDirection();
void removeBlockProperties();
- void removeStyleAddedByNode(Node*);
- void removeStyleConflictingWithStyleOfNode(Node*);
+ void removeStyleAddedByElement(Element*);
+ void removeStyleConflictingWithStyleOfElement(Element*);
void collapseTextDecorationProperties();
enum ShouldIgnoreTextOnlyProperties { IgnoreTextOnlyProperties, DoNotIgnoreTextOnlyProperties };
TriState triStateOfStyle(EditingStyle*) const;
TriState triStateOfStyle(const VisibleSelection&) const;
- bool conflictsWithInlineStyleOfElement(Element* element) const { return conflictsWithInlineStyleOfElement(element, 0, 0); }
- bool conflictsWithInlineStyleOfElement(Element* element, EditingStyle* extractedStyle, Vector<CSSPropertyID>& conflictingProperties) const
+ bool conflictsWithInlineStyleOfElement(HTMLElement* element) const { return conflictsWithInlineStyleOfElement(element, 0, 0); }
+ bool conflictsWithInlineStyleOfElement(HTMLElement* element, EditingStyle* extractedStyle, Vector<CSSPropertyID>& conflictingProperties) const
{
return conflictsWithInlineStyleOfElement(element, extractedStyle, &conflictingProperties);
}
void prepareToApplyAt(const Position&, ShouldPreserveWritingDirection = DoNotPreserveWritingDirection);
void mergeTypingStyle(Document*);
enum CSSPropertyOverrideMode { OverrideValues, DoNotOverrideValues };
- void mergeInlineStyleOfElement(Element*, CSSPropertyOverrideMode, PropertiesToInclude = AllProperties);
- static PassRefPtrWillBeRawPtr<EditingStyle> wrappingStyleForSerialization(Node* context, bool shouldAnnotate);
+ void mergeInlineStyleOfElement(HTMLElement*, CSSPropertyOverrideMode, PropertiesToInclude = AllProperties);
+ static PassRefPtrWillBeRawPtr<EditingStyle> wrappingStyleForSerialization(ContainerNode* context, bool shouldAnnotate);
void mergeStyleFromRules(Element*);
void mergeStyleFromRulesForSerialization(Element*);
- void removeStyleFromRulesAndContext(Element*, Node* context);
+ void removeStyleFromRulesAndContext(Element*, ContainerNode* context);
void removePropertiesInElementDefaultStyle(Element*);
+ void addAbsolutePositioningFromElement(const Element&);
void forceInline();
int legacyFontSize(Document*) const;
private:
EditingStyle();
- EditingStyle(Node*, PropertiesToInclude);
+ EditingStyle(ContainerNode*, PropertiesToInclude);
EditingStyle(const Position&, PropertiesToInclude);
explicit EditingStyle(const StylePropertySet*);
EditingStyle(CSSPropertyID, const String& value);
void replaceFontSizeByKeywordIfPossible(RenderStyle*, CSSComputedStyleDeclaration*);
void extractFontSizeDelta();
TriState triStateOfStyle(CSSStyleDeclaration* styleToCompare, ShouldIgnoreTextOnlyProperties) const;
- bool conflictsWithInlineStyleOfElement(Element*, EditingStyle* extractedStyle, Vector<CSSPropertyID>* conflictingProperties) const;
+ bool conflictsWithInlineStyleOfElement(HTMLElement*, EditingStyle* extractedStyle, Vector<CSSPropertyID>* conflictingProperties) const;
void mergeInlineAndImplicitStyleOfElement(Element*, CSSPropertyOverrideMode, PropertiesToInclude);
void mergeStyle(const StylePropertySet*, CSSPropertyOverrideMode);
RefPtrWillBeMember<MutableStylePropertySet> m_mutableStyle;
- bool m_shouldUseFixedDefaultFontSize;
+ FixedPitchFontType m_fixedPitchFontType;
float m_fontSizeDelta;
friend class HTMLElementEquivalent;
return !(*this == other);
}
private:
- void extractTextStyles(Document*, MutableStylePropertySet*, bool shouldUseFixedFontDefaultSize);
+ void extractTextStyles(Document*, MutableStylePropertySet*, FixedPitchFontType);
String m_cssStyle;
bool m_applyBold;
CSSValueID getIdentifierValue(CSSStyleDeclaration*, CSSPropertyID);
CSSValueID getIdentifierValue(StylePropertySet*, CSSPropertyID);
-} // namespace WebCore
+} // namespace blink
#endif // EditingStyle_h