File indexing completed on 2024-11-10 09:39:09

0001 /*
0002  * This file is part of the WebKit project.
0003  *
0004  * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
0005  *
0006  * This library is free software; you can redistribute it and/or
0007  * modify it under the terms of the GNU Library General Public
0008  * License as published by the Free Software Foundation; either
0009  * version 2 of the License, or (at your option) any later version.
0010  *
0011  * This library is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014  * Library General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU Library General Public License
0017  * along with this library; see the file COPYING.LIB.  If not, write to
0018  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0019  * Boston, MA 02110-1301, USA.
0020  *
0021  */
0022 
0023 #ifndef RenderSVGTextPath_h
0024 #define RenderSVGTextPath_h
0025 
0026 #if ENABLE(SVG)
0027 #include "RenderSVGInline.h"
0028 
0029 namespace WebCore
0030 {
0031 
0032 class RenderSVGTextPath : public RenderSVGInline
0033 {
0034 public:
0035     RenderSVGTextPath(DOM::NodeImpl *);
0036 
0037     Path layoutPath() const;
0038     float startOffset() const;
0039     bool exactAlignment() const;
0040     bool stretchMethod() const;
0041 
0042     const char *renderName() const override
0043     {
0044         return "RenderSVGTextPath";
0045     }
0046     virtual void absoluteRects(Vector<IntRect> &rects, int tx, int ty);
0047 
0048 private:
0049     float m_startOffset;
0050 
0051     bool m_exactAlignment : 1;
0052     bool m_stretchMethod : 1;
0053 
0054     Path m_layoutPath;
0055 };
0056 }
0057 
0058 #endif // ENABLE(SVG)
0059 #endif // RenderSVGTextPath_h