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

Side by Side Diff: Source/core/rendering/RenderObject.h

Issue 219633002: Proper support for multiple text decorations. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Resolve decoration colors dynamically. Created 6 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 // Used only by Element::pseudoStyleCacheIsInvalid to get a first line style based off of a 793 // Used only by Element::pseudoStyleCacheIsInvalid to get a first line style based off of a
794 // given new style, without accessing the cache. 794 // given new style, without accessing the cache.
795 PassRefPtr<RenderStyle> uncachedFirstLineStyle(RenderStyle*) const; 795 PassRefPtr<RenderStyle> uncachedFirstLineStyle(RenderStyle*) const;
796 796
797 // Anonymous blocks that are part of of a continuation chain will return the ir inline continuation's outline style instead. 797 // Anonymous blocks that are part of of a continuation chain will return the ir inline continuation's outline style instead.
798 // This is typically only relevant when repainting. 798 // This is typically only relevant when repainting.
799 virtual RenderStyle* outlineStyleForRepaint() const { return style(); } 799 virtual RenderStyle* outlineStyleForRepaint() const { return style(); }
800 800
801 virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const; 801 virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const;
802 802
803 struct AppliedTextDecoration { 803 struct ResolvedDecoration {
804 ResolvedDecoration();
805 ResolvedDecoration(const AppliedTextDecoration&, const Color&);
806
807 TextDecoration line;
808 TextDecorationStyle style;
804 Color color; 809 Color color;
805 TextDecorationStyle style;
806 AppliedTextDecoration() : color(Color::transparent), style(TextDecoratio nStyleSolid) { }
807 }; 810 };
808 811
809 void getTextDecorations(unsigned decorations, AppliedTextDecoration& underli ne, AppliedTextDecoration& overline, AppliedTextDecoration& linethrough, bool qu irksMode = false, bool firstlineStyle = false); 812 typedef Vector<ResolvedDecoration, 1> ResolvedDecorationVector;
813
814 void resolvedDecorations(bool firstlineStyle, const Vector<AppliedTextDecora tion>&, ResolvedDecorationVector&);
810 815
811 // Return the RenderLayerModelObject in the container chain which is respons ible for painting this object, or 0 816 // Return the RenderLayerModelObject in the container chain which is respons ible for painting this object, or 0
812 // if painting is root-relative. This is the container that should be passed to the 'forRepaint' 817 // if painting is root-relative. This is the container that should be passed to the 'forRepaint'
813 // methods. 818 // methods.
814 RenderLayerModelObject* containerForRepaint() const; 819 RenderLayerModelObject* containerForRepaint() const;
815 820
816 // Actually do the repaint of rect r for this object which has been computed in the coordinate space 821 // Actually do the repaint of rect r for this object which has been computed in the coordinate space
817 // of repaintContainer. If repaintContainer is 0, repaint via the view. 822 // of repaintContainer. If repaintContainer is 0, repaint via the view.
818 void repaintUsingContainer(const RenderLayerModelObject* repaintContainer, c onst IntRect&, InvalidationReason) const; 823 void repaintUsingContainer(const RenderLayerModelObject* repaintContainer, c onst IntRect&, InvalidationReason) const;
819 824
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 void showTree(const WebCore::RenderObject*); 1440 void showTree(const WebCore::RenderObject*);
1436 void showLineTree(const WebCore::RenderObject*); 1441 void showLineTree(const WebCore::RenderObject*);
1437 void showRenderTree(const WebCore::RenderObject* object1); 1442 void showRenderTree(const WebCore::RenderObject* object1);
1438 // We don't make object2 an optional parameter so that showRenderTree 1443 // We don't make object2 an optional parameter so that showRenderTree
1439 // can be called from gdb easily. 1444 // can be called from gdb easily.
1440 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2); 1445 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2);
1441 1446
1442 #endif 1447 #endif
1443 1448
1444 #endif // RenderObject_h 1449 #endif // RenderObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698