khtml Library API Documentation

html_baseimpl.h

00001 /*
00002  * This file is part of the DOM implementation for KDE.
00003  *
00004  * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org)
00005  *           (C) 2000-2003 Dirk Mueller (mueller@kde.org)
00006  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
00007  *           (C) 2000 Simon Hausmann <hausmann@kde.org>
00008  * Copyright (C) 2002 Apple Computer, Inc.
00009  *
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Library General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Library General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Library General Public License
00021  * along with this library; see the file COPYING.LIB.  If not, write to
00022  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00023  * Boston, MA 02111-1307, USA.
00024  *
00025  */
00026 
00027 #ifndef HTML_BASEIMPL_H
00028 #define HTML_BASEIMPL_H
00029 
00030 #include "html/dtd.h"
00031 #include "html/html_elementimpl.h"
00032 #include "misc/khtmllayout.h"
00033 
00034 #include <qscrollview.h>
00035 
00036 class KHTMLView;
00037 
00038 namespace khtml {
00039     class RenderFrameSet;
00040     class RenderFrame;
00041     class RenderPartObject;
00042 }
00043 
00044 namespace DOM {
00045 
00046 class DOMString;
00047 class CSSStyleSheetImpl;
00048 class HTMLFrameElement;
00049 
00050 // -------------------------------------------------------------------------
00051 
00052 class HTMLBodyElementImpl : public HTMLElementImpl
00053 {
00054 public:
00055     HTMLBodyElementImpl(DocumentPtr *doc);
00056     ~HTMLBodyElementImpl();
00057 
00058     virtual Id id() const;
00059 
00060     virtual void parseAttribute(AttributeImpl *);
00061     virtual void attach();
00062 
00063     virtual void insertedIntoDocument();
00064     virtual void removedFromDocument();
00065 
00066     CSSStyleSheetImpl *sheet() const { return m_styleSheet; }
00067 
00068 protected:
00069     CSSStyleSheetImpl *m_styleSheet;
00070     bool m_bgSet;
00071     bool m_fgSet;
00072 };
00073 
00074 // -------------------------------------------------------------------------
00075 
00076 class HTMLFrameElementImpl : public HTMLElementImpl
00077 {
00078     friend class khtml::RenderFrame;
00079     friend class khtml::RenderPartObject;
00080 
00081 public:
00082     HTMLFrameElementImpl(DocumentPtr *doc);
00083 
00084     ~HTMLFrameElementImpl();
00085 
00086     virtual Id id() const;
00087 
00088     virtual void parseAttribute(AttributeImpl *);
00089     virtual void attach();
00090 
00091     bool noResize() { return noresize; }
00092     void setLocation( const DOMString& str );
00093 
00094     virtual bool isSelectable() const;
00095     virtual void setFocus(bool);
00096 
00097     DocumentImpl* contentDocument() const;
00098 
00099     DOMString url;
00100     DOMString name;
00101 
00102     int marginWidth;
00103     int marginHeight;
00104     QScrollView::ScrollBarMode scrolling;
00105 
00106     bool frameBorder : 1;
00107     bool frameBorderSet : 1;
00108     bool noresize : 1;
00109 };
00110 
00111 // -------------------------------------------------------------------------
00112 
00113 class HTMLFrameSetElementImpl : public HTMLElementImpl
00114 {
00115     friend class khtml::RenderFrameSet;
00116 public:
00117     HTMLFrameSetElementImpl(DocumentPtr *doc);
00118 
00119     ~HTMLFrameSetElementImpl();
00120 
00121     virtual Id id() const;
00122 
00123     virtual void parseAttribute(AttributeImpl *);
00124     virtual void attach();
00125 
00126     virtual void defaultEventHandler(EventImpl *evt);
00127 
00128     bool frameBorder() { return frameborder; }
00129     bool noResize() { return noresize; }
00130 
00131     int totalRows() const { return m_totalRows; }
00132     int totalCols() const { return m_totalCols; }
00133     int border() const { return m_border; }
00134     virtual void detach();
00135 
00136     virtual void recalcStyle( StyleChange ch );
00137 
00138 protected:
00139     khtml::Length* m_rows;
00140     khtml::Length* m_cols;
00141 
00142     int m_totalRows;
00143     int m_totalCols;
00144     int m_border;
00145 
00146     bool frameborder : 1;
00147     bool frameBorderSet : 1;
00148     bool noresize : 1;
00149     bool m_resizing : 1;  // is the user resizing currently
00150 };
00151 
00152 // -------------------------------------------------------------------------
00153 
00154 class HTMLHeadElementImpl : public HTMLElementImpl
00155 {
00156 public:
00157     HTMLHeadElementImpl(DocumentPtr *doc)
00158         : HTMLElementImpl(doc) {}
00159 
00160     virtual Id id() const;
00161 };
00162 
00163 // -------------------------------------------------------------------------
00164 
00165 class HTMLHtmlElementImpl : public HTMLElementImpl
00166 {
00167 public:
00168     HTMLHtmlElementImpl(DocumentPtr *doc)
00169         : HTMLElementImpl(doc) {}
00170 
00171     virtual Id id() const;
00172     virtual void attach();
00173 };
00174 
00175 
00176 // -------------------------------------------------------------------------
00177 
00178 class HTMLIFrameElementImpl : public HTMLFrameElementImpl
00179 {
00180 public:
00181     HTMLIFrameElementImpl(DocumentPtr *doc);
00182 
00183     ~HTMLIFrameElementImpl();
00184 
00185     virtual Id id() const;
00186 
00187     virtual void parseAttribute(AttributeImpl *attr);
00188     virtual void attach();
00189     virtual void recalcStyle( StyleChange ch );
00190 
00191 protected:
00192     bool needWidgetUpdate;
00193 };
00194 
00195 
00196 }; //namespace
00197 
00198 #endif
00199 
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:22:36 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001