khtml Library API Documentation

render_list.h

00001 /*
00002  * This file is part of the DOM implementation for KDE.
00003  *
00004  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
00005  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Library General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Library General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Library General Public License
00018  * along with this library; see the file COPYING.LIB.  If not, write to
00019  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020  * Boston, MA 02111-1307, USA.
00021  *
00022  * $Id: render_list.h,v 1.25.2.2 2003/05/18 12:34:40 mueller Exp $
00023  */
00024 #ifndef RENDER_LIST_H
00025 #define RENDER_LIST_H
00026 
00027 #include "render_flow.h"
00028 
00029 // ### list-style-position, list-style-image is still missing
00030 
00031 namespace khtml
00032 {
00033 
00034 class RenderListItem;
00035 
00036 /* used to render the lists marker.
00037      This class always has to be a direct child of a RenderListItem!
00038 */
00039 class RenderListMarker : public RenderBox
00040 {
00041 public:
00042     RenderListMarker();
00043     ~RenderListMarker();
00044 
00045     virtual void setStyle(RenderStyle *style);
00046 
00047     virtual const char *renderName() const { return "RenderListMarker"; }
00048     // so the marker gets to layout itself. Only needed for
00049     // list-style-position: inside
00050 
00051     virtual void paint(QPainter *p, int x, int y, int w, int h,
00052                            int xoff, int yoff);
00053     virtual void paintObject(QPainter *p, int x, int y, int w, int h,
00054                              int xoff, int yoff);
00055     virtual void layout( );
00056     virtual void calcMinMaxWidth();
00057 
00058     virtual short verticalPositionHint( bool firstLine ) const;
00059 
00060     virtual void setPixmap( const QPixmap &, const QRect&, CachedImage *);
00061 
00062     virtual void calcWidth();
00063 
00064 protected:
00065     friend class RenderListItem;
00066 
00067     QString m_item;
00068     CachedImage *m_listImage;
00069     long m_value;
00070 };
00071 
00072 class RenderListItem : public RenderFlow
00073 {
00074 public:
00075     RenderListItem(DOM::NodeImpl*);
00076     virtual ~RenderListItem();
00077 
00078     virtual const char *renderName() const { return "RenderListItem"; }
00079 
00080     virtual void setStyle(RenderStyle *style);
00081 
00082     virtual bool isListItem() const { return true; }
00083     virtual bool containsSpecial() { return (specialObjects != 0 && specialObjects->count() > 1 ); }
00084 
00085     long value() const { return m_marker->m_value; }
00086     void setValue( long v ) { predefVal = v; }
00087     void calcListValue();
00088 
00089     virtual void layout( );
00090 
00091 protected:
00092     long int predefVal;
00093     RenderListMarker *m_marker;
00094 };
00095 
00096 } //namespace
00097 
00098 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:34:37 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001