KHtml

html_baseimpl.h
1 /*
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 1999-2003 Lars Knoll ([email protected])
5  * (C) 2000-2003 Dirk Mueller ([email protected])
6  * (C) 1999 Antti Koivisto ([email protected])
7  * (C) 2000 Simon Hausmann <[email protected]>
8  * Copyright (C) 2002 Apple Computer, Inc.
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Library General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  * Library General Public License for more details.
19  *
20  * You should have received a copy of the GNU Library General Public License
21  * along with this library; see the file COPYING.LIB. If not, write to
22  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23  * Boston, MA 02110-1301, USA.
24  *
25  */
26 
27 #ifndef HTML_BASEIMPL_H
28 #define HTML_BASEIMPL_H
29 
30 #include "html/dtd.h"
31 #include "html/html_elementimpl.h"
32 #include "html/html_objectimpl.h"
33 #include "misc/khtmllayout.h"
34 
35 class KHTMLPart;
36 
37 namespace khtml
38 {
39 class RenderFrameSet;
40 class RenderFrame;
41 class RenderPartObject;
42 }
43 
44 namespace DOM
45 {
46 
47 class DOMString;
48 class CSSStyleSheetImpl;
49 class HTMLFrameElement;
50 
51 // -------------------------------------------------------------------------
52 
53 class HTMLBodyElementImpl : public HTMLElementImpl
54 {
55 public:
56  HTMLBodyElementImpl(DocumentImpl *doc);
57  ~HTMLBodyElementImpl();
58 
59  Id id() const override;
60 
61  DOMString aLink() const;
62  void setALink(const DOMString &value);
63  DOMString bgColor() const;
64  void setBgColor(const DOMString &value);
65  DOMString link() const;
66  void setLink(const DOMString &value);
67  DOMString text() const;
68  void setText(const DOMString &value);
69  DOMString vLink() const;
70  void setVLink(const DOMString &value);
71 
72  void parseAttribute(AttributeImpl *) override;
73  void attach() override;
74 
75  void insertedIntoDocument() override;
76  void removedFromDocument() override;
77 
78  CSSStyleSheetImpl *sheet() const
79  {
80  return m_styleSheet;
81  }
82 
83 protected:
84  CSSStyleSheetImpl *m_styleSheet;
85  bool m_bgSet;
86  bool m_fgSet;
87 };
88 
89 // -------------------------------------------------------------------------
90 
91 class HTMLFrameElementImpl : public HTMLPartContainerElementImpl
92 {
93  friend class khtml::RenderFrame;
94  friend class khtml::RenderPartObject;
95 
96 public:
97  HTMLFrameElementImpl(DocumentImpl *doc);
98 
99  ~HTMLFrameElementImpl();
100 
101  Id id() const override;
102 
103  void parseAttribute(AttributeImpl *) override;
104  void attach() override;
105  void defaultEventHandler(EventImpl *evt) override;
106 
107  bool noResize()
108  {
109  return noresize;
110  }
111  void setLocation(const QString &str);
112 
113  bool isFocusableImpl(FocusType ft) const override;
114  void setFocus(bool) override;
115 
116  DocumentImpl *contentDocument() const;
117  KHTMLPart *contentPart() const;
118 
119  QString url;
120  DOMString name; //Computed name for the frame map
121 
122  int marginWidth;
123  int marginHeight;
124  Qt::ScrollBarPolicy scrolling;
125 
126  bool frameBorder : 1;
127  bool frameBorderSet : 1;
128  bool noresize : 1;
129 
130  void ensureUniqueName();
131  void computeContent() override;
132  void setWidgetNotify(QWidget *widget) override;
133 };
134 
135 // -------------------------------------------------------------------------
136 
137 class HTMLFrameSetElementImpl : public HTMLElementImpl
138 {
139  friend class khtml::RenderFrameSet;
140 public:
141  HTMLFrameSetElementImpl(DocumentImpl *doc);
142 
143  ~HTMLFrameSetElementImpl();
144 
145  Id id() const override;
146 
147  void parseAttribute(AttributeImpl *) override;
148  void attach() override;
149 
150  void defaultEventHandler(EventImpl *evt) override;
151 
152  bool frameBorder()
153  {
154  return frameborder;
155  }
156  bool noResize()
157  {
158  return noresize;
159  }
160 
161  int totalRows() const
162  {
163  return m_totalRows;
164  }
165  int totalCols() const
166  {
167  return m_totalCols;
168  }
169  int border() const
170  {
171  return frameborder ? m_border : 0;
172  }
173  void detach() override;
174 
175  void recalcStyle(StyleChange ch) override;
176 
177 protected:
178  khtml::Length *m_rows;
179  khtml::Length *m_cols;
180 
181  int m_totalRows;
182  int m_totalCols;
183  int m_border;
184 
185  bool frameborder : 1;
186  bool frameBorderSet : 1;
187  bool noresize : 1;
188  bool m_resizing : 1; // is the user resizing currently
189 };
190 
191 // -------------------------------------------------------------------------
192 
193 class HTMLHeadElementImpl : public HTMLElementImpl
194 {
195 public:
196  HTMLHeadElementImpl(DocumentImpl *doc)
197  : HTMLElementImpl(doc) {}
198 
199  Id id() const override;
200 };
201 
202 // -------------------------------------------------------------------------
203 
204 class HTMLHtmlElementImpl : public HTMLElementImpl
205 {
206 public:
207  HTMLHtmlElementImpl(DocumentImpl *doc)
208  : HTMLElementImpl(doc) {}
209 
210  Id id() const override;
211 };
212 
213 // -------------------------------------------------------------------------
214 
215 class HTMLIFrameElementImpl : public HTMLFrameElementImpl
216 {
217 public:
218  HTMLIFrameElementImpl(DocumentImpl *doc);
219 
220  ~HTMLIFrameElementImpl();
221 
222  Id id() const override;
223 
224  void parseAttribute(AttributeImpl *attr) override;
225  void attach() override;
226 
227  void computeContent() override;
228  void setWidgetNotify(QWidget *widget) override;
229 
230  void insertedIntoDocument() override;
231  void removedFromDocument() override;
232 protected:
233 
234  void updateFrame();
235  bool m_frame;
236 };
237 
238 } //namespace
239 
240 #endif
241 
ScrollBarPolicy
QString name(const QVariant &location)
This file is part of the HTML rendering engine for KDE.
This class is khtml&#39;s main class.
Definition: khtml_part.h:208
This class implements the basic string we use in the DOM.
Definition: dom_string.h:44
int64_t Id
This library provides a full-featured HTML parser and widget.
KIOCORE_EXPORT CopyJob * link(const QUrl &src, const QUrl &destDir, JobFlags flags=DefaultFlags)
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Tue Oct 26 2021 22:48:01 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.