diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch) | |
tree | 5ac38a06f3dde268dc7927dc155896926aaf7012 /khtml/rendering/render_generated.h | |
download | tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'khtml/rendering/render_generated.h')
-rw-r--r-- | khtml/rendering/render_generated.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/khtml/rendering/render_generated.h b/khtml/rendering/render_generated.h new file mode 100644 index 000000000..15b30b8c7 --- /dev/null +++ b/khtml/rendering/render_generated.h @@ -0,0 +1,125 @@ +/* + * This file is part of the HTML rendering engine for KDE. + * + * Copyright (C) 2004,2005 Allan Sandfeld Jensen (kde@carewolf.com) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +#ifndef RENDER_GENERATED_H +#define RENDER_GENERATED_H + +#include "rendering/render_text.h" +#include "rendering/render_box.h" + +namespace DOM { + class CounterImpl; +} + +namespace khtml { + class CounterNode; + +// ----------------------------------------------------------------------------- + +class RenderCounterBase : public RenderText +{ +public: + RenderCounterBase(DOM::NodeImpl* node); + + virtual const char *renderName() const { return "RenderCounterBase"; } + + virtual void layout( ); + virtual void calcMinMaxWidth(); + virtual bool isCounter() const { return true; } + + virtual void generateContent() = 0; + void updateContent(); + +protected: + QString m_item; + CounterNode *m_counterNode; // Cache of the counternode +}; + +// ----------------------------------------------------------------------------- + +class RenderCounter : public RenderCounterBase +{ +public: + RenderCounter(DOM::NodeImpl* node, const DOM::CounterImpl* counter); + virtual ~RenderCounter() {}; + + virtual const char *renderName() const { return "RenderCounter"; } + + virtual void generateContent(); + +protected: + QString toListStyleType(int value, int total, EListStyleType type); + + const DOM::CounterImpl* m_counter; +}; + +// ----------------------------------------------------------------------------- + +class RenderQuote : public RenderCounterBase +{ +public: + RenderQuote(DOM::NodeImpl* node, EQuoteContent type); + virtual ~RenderQuote() {}; + + virtual const char *renderName() const { return "RenderQuote"; } + + virtual bool isQuote() const { return true; } + virtual int quoteCount() const; + + virtual void generateContent(); + +protected: + EQuoteContent m_quoteType; +}; + +// ----------------------------------------------------------------------------- + +// Is actually a special case of renderCounter for non-counted list-styles +// These have traditionally been drawn rather than use Unicode characters +class RenderGlyph : public RenderBox +{ +public: + RenderGlyph(DOM::NodeImpl* node, EListStyleType type); + virtual ~RenderGlyph() {}; + + virtual const char *renderName() const { return "RenderGlyph"; } + + virtual void paint(PaintInfo& paintInfo, int _tx, int _ty); + virtual void calcMinMaxWidth(); + + virtual void setStyle(RenderStyle *_style); + + virtual short lineHeight( bool firstLine ) const; + virtual short baselinePosition( bool firstLine ) const; + + virtual bool isGlyph() const { return true; } + + virtual void position(InlineBox* box, int /*from*/, int /*len*/, bool /*reverse*/) { + setPos( box->xPos(), box->yPos() ); + } + +protected: + EListStyleType m_type; +}; + +} //namespace + +#endif |