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

Side by Side Diff: Source/core/editing/EditingStyle.cpp

Issue 420603002: Use tighter typing in editing/ (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/editing/DeleteSelectionCommand.cpp ('k') | Source/core/editing/EditorCommand.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009 Apple Computer, Inc. 2 * Copyright (C) 2007, 2008, 2009 Apple Computer, Inc.
3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 #include "core/dom/NodeTraversal.h" 46 #include "core/dom/NodeTraversal.h"
47 #include "core/dom/Position.h" 47 #include "core/dom/Position.h"
48 #include "core/dom/QualifiedName.h" 48 #include "core/dom/QualifiedName.h"
49 #include "core/editing/ApplyStyleCommand.h" 49 #include "core/editing/ApplyStyleCommand.h"
50 #include "core/editing/Editor.h" 50 #include "core/editing/Editor.h"
51 #include "core/editing/FrameSelection.h" 51 #include "core/editing/FrameSelection.h"
52 #include "core/editing/HTMLInterchange.h" 52 #include "core/editing/HTMLInterchange.h"
53 #include "core/editing/htmlediting.h" 53 #include "core/editing/htmlediting.h"
54 #include "core/frame/LocalFrame.h" 54 #include "core/frame/LocalFrame.h"
55 #include "core/html/HTMLFontElement.h" 55 #include "core/html/HTMLFontElement.h"
56 #include "core/html/HTMLSpanElement.h"
56 #include "core/rendering/RenderBox.h" 57 #include "core/rendering/RenderBox.h"
57 #include "core/rendering/RenderObject.h" 58 #include "core/rendering/RenderObject.h"
58 #include "core/rendering/style/RenderStyle.h" 59 #include "core/rendering/style/RenderStyle.h"
59 60
60 namespace blink { 61 namespace blink {
61 62
62 static const CSSPropertyID& textDecorationPropertyForEditing() 63 static const CSSPropertyID& textDecorationPropertyForEditing()
63 { 64 {
64 static const CSSPropertyID property = RuntimeEnabledFeatures::css3TextDecora tionsEnabled() ? CSSPropertyTextDecorationLine : CSSPropertyTextDecoration; 65 static const CSSPropertyID property = RuntimeEnabledFeatures::css3TextDecora tionsEnabled() ? CSSPropertyTextDecorationLine : CSSPropertyTextDecoration;
65 return property; 66 return property;
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 449
449 template<typename T> 450 template<typename T>
450 static int textAlignResolvingStartAndEnd(T* style) 451 static int textAlignResolvingStartAndEnd(T* style)
451 { 452 {
452 return textAlignResolvingStartAndEnd(getIdentifierValue(style, CSSPropertyTe xtAlign), getIdentifierValue(style, CSSPropertyDirection)); 453 return textAlignResolvingStartAndEnd(getIdentifierValue(style, CSSPropertyTe xtAlign), getIdentifierValue(style, CSSPropertyDirection));
453 } 454 }
454 455
455 void EditingStyle::init(Node* node, PropertiesToInclude propertiesToInclude) 456 void EditingStyle::init(Node* node, PropertiesToInclude propertiesToInclude)
456 { 457 {
457 if (isTabSpanTextNode(node)) 458 if (isTabSpanTextNode(node))
458 node = tabSpanNode(node)->parentNode(); 459 node = tabSpanElement(node)->parentNode();
459 else if (isTabSpanNode(node)) 460 else if (isTabSpanElement(node))
460 node = node->parentNode(); 461 node = node->parentNode();
461 462
462 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleAtPosition = CS SComputedStyleDeclaration::create(node); 463 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleAtPosition = CS SComputedStyleDeclaration::create(node);
463 m_mutableStyle = propertiesToInclude == AllProperties && computedStyleAtPosi tion ? computedStyleAtPosition->copyProperties() : editingStyleFromComputedStyle (computedStyleAtPosition); 464 m_mutableStyle = propertiesToInclude == AllProperties && computedStyleAtPosi tion ? computedStyleAtPosition->copyProperties() : editingStyleFromComputedStyle (computedStyleAtPosition);
464 465
465 if (propertiesToInclude == EditingPropertiesInEffect) { 466 if (propertiesToInclude == EditingPropertiesInEffect) {
466 if (RefPtrWillBeRawPtr<CSSValue> value = backgroundColorInEffect(node)) 467 if (RefPtrWillBeRawPtr<CSSValue> value = backgroundColorInEffect(node))
467 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssTe xt()); 468 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssTe xt());
468 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect)) 469 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect))
469 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex t()); 470 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex t());
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 739
739 const StylePropertySet* inlineStyle = element->inlineStyle(); 740 const StylePropertySet* inlineStyle = element->inlineStyle();
740 if (!m_mutableStyle || !inlineStyle) 741 if (!m_mutableStyle || !inlineStyle)
741 return false; 742 return false;
742 743
743 unsigned propertyCount = m_mutableStyle->propertyCount(); 744 unsigned propertyCount = m_mutableStyle->propertyCount();
744 for (unsigned i = 0; i < propertyCount; ++i) { 745 for (unsigned i = 0; i < propertyCount; ++i) {
745 CSSPropertyID propertyID = m_mutableStyle->propertyAt(i).id(); 746 CSSPropertyID propertyID = m_mutableStyle->propertyAt(i).id();
746 747
747 // We don't override whitespace property of a tab span because that woul d collapse the tab into a space. 748 // We don't override whitespace property of a tab span because that woul d collapse the tab into a space.
748 if (propertyID == CSSPropertyWhiteSpace && isTabSpanNode(element)) 749 if (propertyID == CSSPropertyWhiteSpace && isTabSpanElement(element))
749 continue; 750 continue;
750 751
751 if (propertyID == CSSPropertyWebkitTextDecorationsInEffect && inlineStyl e->getPropertyCSSValue(textDecorationPropertyForEditing())) { 752 if (propertyID == CSSPropertyWebkitTextDecorationsInEffect && inlineStyl e->getPropertyCSSValue(textDecorationPropertyForEditing())) {
752 if (!conflictingProperties) 753 if (!conflictingProperties)
753 return true; 754 return true;
754 conflictingProperties->append(CSSPropertyTextDecoration); 755 conflictingProperties->append(CSSPropertyTextDecoration);
755 // Because text-decoration expands to text-decoration-line when CSS3 756 // Because text-decoration expands to text-decoration-line when CSS3
756 // Text Decoration is enabled, we also state it as conflicting. 757 // Text Decoration is enabled, we also state it as conflicting.
757 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) 758 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled())
758 conflictingProperties->append(CSSPropertyTextDecorationLine); 759 conflictingProperties->append(CSSPropertyTextDecorationLine);
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
1426 1427
1427 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle(); 1428 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle();
1428 // FIXME: take care of background-color in effect 1429 // FIXME: take care of background-color in effect
1429 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get()); 1430 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get());
1430 1431
1431 reconcileTextDecorationProperties(mutableStyle.get()); 1432 reconcileTextDecorationProperties(mutableStyle.get());
1432 if (!document->frame()->editor().shouldStyleWithCSS()) 1433 if (!document->frame()->editor().shouldStyleWithCSS())
1433 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc hFontType()); 1434 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc hFontType());
1434 1435
1435 // Changing the whitespace style in a tab span would collapse the tab into a space. 1436 // Changing the whitespace style in a tab span would collapse the tab into a space.
1436 if (isTabSpanTextNode(position.deprecatedNode()) || isTabSpanNode((position. deprecatedNode()))) 1437 if (isTabSpanTextNode(position.deprecatedNode()) || isTabSpanElement((positi on.deprecatedNode())))
1437 mutableStyle->removeProperty(CSSPropertyWhiteSpace); 1438 mutableStyle->removeProperty(CSSPropertyWhiteSpace);
1438 1439
1439 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle. 1440 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle.
1440 // FIXME: Shouldn't this be done in getPropertiesNotIn? 1441 // FIXME: Shouldn't this be done in getPropertiesNotIn?
1441 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection)) 1442 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection))
1442 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection)); 1443 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection));
1443 1444
1444 // Save the result for later 1445 // Save the result for later
1445 m_cssStyle = mutableStyle->asText().stripWhiteSpace(); 1446 m_cssStyle = mutableStyle->asText().stripWhiteSpace();
1446 } 1447 }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1675 { 1676 {
1676 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { 1677 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) {
1677 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor); 1678 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor);
1678 if (!hasTransparentBackgroundColor(ancestorStyle.get())) 1679 if (!hasTransparentBackgroundColor(ancestorStyle.get()))
1679 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor ); 1680 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor );
1680 } 1681 }
1681 return nullptr; 1682 return nullptr;
1682 } 1683 }
1683 1684
1684 } 1685 }
OLDNEW
« no previous file with comments | « Source/core/editing/DeleteSelectionCommand.cpp ('k') | Source/core/editing/EditorCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698