]> git.saurik.com Git - iphone-api.git/blob - WebCore/bidi.h
Add support for new WinterBoard Settings features.
[iphone-api.git] / WebCore / bidi.h
1 /*
2 * This file is part of the html renderer for KDE.
3 *
4 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
5 * Copyright (C) 2003 Apple Computer, Inc.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 *
22 */
23
24 #ifndef bidi_h
25 #define bidi_h
26
27 #include "BidiResolver.h"
28
29 namespace WebCore {
30
31 class RenderArena;
32 class RenderBlock;
33 class RenderObject;
34 class InlineBox;
35
36 struct BidiRun : BidiCharacterRun {
37 BidiRun(int start, int stop, RenderObject* object, BidiContext* context, WTF::Unicode::Direction dir)
38 : BidiCharacterRun(start, stop, context, dir)
39 , m_object(object)
40 , m_box(0)
41 {
42 }
43
44 void destroy();
45
46 // Overloaded new operator.
47 void* operator new(size_t, RenderArena*) throw();
48
49 // Overridden to prevent the normal delete from being called.
50 void operator delete(void*, size_t);
51
52 BidiRun* next() { return static_cast<BidiRun*>(m_next); }
53
54 private:
55 // The normal operator new is disallowed.
56 void* operator new(size_t) throw();
57
58 public:
59 RenderObject* m_object;
60 InlineBox* m_box;
61 };
62
63 } // namespace WebCore
64
65 #endif // bidi_h