File indexing completed on 2024-04-28 15:24:17

0001 /*
0002  * This file is part of the WebKit project.
0003  *
0004  * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
0005  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
0006  *
0007  * This library is free software; you can redistribute it and/or
0008  * modify it under the terms of the GNU Library General Public
0009  * License as published by the Free Software Foundation; either
0010  * version 2 of the License, or (at your option) any later version.
0011  *
0012  * This library is distributed in the hope that it will be useful,
0013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015  * Library General Public License for more details.
0016  *
0017  * You should have received a copy of the GNU Library General Public License
0018  * along with this library; see the file COPYING.LIB.  If not, write to
0019  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0020  * Boston, MA 02110-1301, USA.
0021  *
0022  */
0023 
0024 #ifndef RenderSVGInlineText_h
0025 #define RenderSVGInlineText_h
0026 
0027 #if ENABLE(SVG)
0028 
0029 //#include "RenderText.h"
0030 #include "render_text.h"
0031 
0032 namespace WebCore
0033 {
0034 using namespace khtml;
0035 class RenderSVGInlineText : public RenderText
0036 {
0037 public:
0038     RenderSVGInlineText(DOM::NodeImpl *, DOM::DOMStringImpl *);
0039     const char *renderName() const override
0040     {
0041         return "RenderSVGInlineText";
0042     }
0043     virtual void absoluteRects(Vector<IntRect> &rects, int tx, int ty, bool topLevel = true);
0044     bool requiresLayer() const override
0045     {
0046         return false;
0047     }
0048     virtual IntRect selectionRect(bool clipToVisibleContent = true);
0049     bool isSVGText() const override
0050     {
0051         return true;
0052     }
0053     virtual InlineTextBox *createInlineTextBox();
0054     InlineBox *createInlineBox(bool, bool) override
0055     {
0056         return createInlineTextBox();
0057     }
0058 
0059     /*virtual IntRect caretRect(int offset, EAffinity, int* extraWidthToEndOfLine = 0);
0060     virtual VisiblePosition positionForCoordinates(int x, int y);*/
0061 
0062 private:
0063     IntRect computeAbsoluteRectForRange(int startPos, int endPos);
0064 };
0065 
0066 }
0067 
0068 #endif // ENABLE(SVG)
0069 
0070 #endif // !RenderSVGInlineText_h