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

Side by Side Diff: Source/core/rendering/svg/SVGTextMetricsBuilder.h

Issue 184103024: Refactor away SVGTextMetricsBuilder::advance (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | « no previous file | Source/core/rendering/svg/SVGTextMetricsBuilder.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) Research In Motion Limited 2010-2012. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 23 matching lines...) Expand all
34 struct MeasureTextData; 34 struct MeasureTextData;
35 35
36 class SVGTextMetricsBuilder { 36 class SVGTextMetricsBuilder {
37 WTF_MAKE_NONCOPYABLE(SVGTextMetricsBuilder); 37 WTF_MAKE_NONCOPYABLE(SVGTextMetricsBuilder);
38 public: 38 public:
39 SVGTextMetricsBuilder(); 39 SVGTextMetricsBuilder();
40 void measureTextRenderer(RenderSVGInlineText*); 40 void measureTextRenderer(RenderSVGInlineText*);
41 void buildMetricsAndLayoutAttributes(RenderSVGText*, RenderSVGInlineText* st opAtLeaf, SVGCharacterDataMap& allCharactersMap); 41 void buildMetricsAndLayoutAttributes(RenderSVGText*, RenderSVGInlineText* st opAtLeaf, SVGCharacterDataMap& allCharactersMap);
42 42
43 private: 43 private:
44 bool advance(); 44 SVGTextMetrics computeMetricsForCurrentCharacter();
45 void advanceSimpleText(); 45 SVGTextMetrics computeMetricsForCurrentCharacterSimple();
46 void advanceComplexText(); 46 SVGTextMetrics computeMetricsForCurrentCharacterComplex();
47 bool currentCharacterStartsSurrogatePair() const; 47 bool currentCharacterStartsSurrogatePair() const;
48 48
49 void initializeMeasurementWithTextRenderer(RenderSVGInlineText*); 49 void initializeMeasurementWithTextRenderer(RenderSVGInlineText*);
50 void walkTree(RenderObject*, RenderSVGInlineText* stopAtLeaf, MeasureTextDat a*); 50 void walkTree(RenderObject*, RenderSVGInlineText* stopAtLeaf, MeasureTextDat a*);
51 void measureTextRenderer(RenderSVGInlineText*, MeasureTextData*, bool proces sRenderer); 51 void measureTextRenderer(RenderSVGInlineText*, MeasureTextData*, bool proces sRenderer);
52 52
53 RenderSVGInlineText* m_text; 53 RenderSVGInlineText* m_text;
54 TextRun m_run; 54 TextRun m_run;
55 unsigned m_textPosition; 55 unsigned m_textPosition;
56 bool m_isComplexText; 56 bool m_isComplexText;
57 SVGTextMetrics m_currentMetrics;
58 float m_totalWidth; 57 float m_totalWidth;
59 58
60 // Simple text only. 59 // Simple text only.
61 OwnPtr<WidthIterator> m_simpleWidthIterator; 60 OwnPtr<WidthIterator> m_simpleWidthIterator;
62
63 // Complex text only.
64 SVGTextMetrics m_complexStartToCurrentMetrics;
65 }; 61 };
66 62
67 } // namespace WebCore 63 } // namespace WebCore
68 64
69 #endif 65 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/rendering/svg/SVGTextMetricsBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698