LayoutTests:
[WebKit-https.git] / WebCore / html / HTMLFrameElement.h
1 /*
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
5  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
6  *           (C) 2000 Simon Hausmann <hausmann@kde.org>
7  * Copyright (C) 2004, 2006 Apple Computer, Inc.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public License
20  * along with this library; see the file COPYING.LIB.  If not, write to
21  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22  * Boston, MA 02111-1307, USA.
23  *
24  */
25
26 #ifndef HTMLFrameElement_H
27 #define HTMLFrameElement_H
28
29 #include "HTMLElement.h"
30 #include "ScrollBarMode.h"
31
32 namespace WebCore {
33
34 class Frame;
35 class HTMLFrameSetElement;
36
37 class HTMLFrameElement : public HTMLElement
38 {
39     friend class RenderFrame;
40     friend class RenderPartObject;
41
42 public:
43     HTMLFrameElement(Document*);
44     HTMLFrameElement(const QualifiedName&, Document*);
45     ~HTMLFrameElement();
46
47     void init();
48
49     virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; }
50     virtual int tagPriority() const { return 0; }
51   
52     virtual void parseMappedAttribute(MappedAttribute*);
53
54     virtual void attach();
55     virtual void detach();
56
57     virtual bool rendererIsNeeded(RenderStyle*);
58     virtual RenderObject *createRenderer(RenderArena*, RenderStyle*);
59     
60     void insertedIntoDocument();
61     virtual void willRemove();
62
63     void close();
64
65     bool noResize() { return m_noResize; }
66
67     void setLocation(const String&);
68
69     virtual bool isFocusable() const;
70     virtual void setFocus(bool);
71
72     Frame* contentFrame() const;
73     Document* contentDocument() const;
74     HTMLFrameSetElement* containingFrameSetElement() const;
75     
76     virtual bool isURLAttribute(Attribute*) const;
77
78     ScrollBarMode scrollingMode() const { return m_scrolling; }
79     int getMarginWidth() const { return m_marginWidth; }
80     int getMarginHeight() const { return m_marginHeight; }
81
82     String frameBorder() const;
83     void setFrameBorder(const String&);
84
85     String longDesc() const;
86     void setLongDesc(const String&);
87
88     String marginHeight() const;
89     void setMarginHeight(const String&);
90
91     String marginWidth() const;
92     void setMarginWidth(const String&);
93
94     String name() const;
95     void setName(const String&);
96
97     void setNoResize(bool);
98
99     String scrolling() const;
100     void setScrolling(const String&);
101
102     virtual String src() const;
103     void setSrc(const String&);
104
105     int frameWidth() const;
106     int frameHeight() const;
107
108     bool viewSourceMode() const { return m_viewSource; }
109
110 protected:
111     bool isURLAllowed(const AtomicString&) const;
112     virtual void openURL();
113
114     AtomicString m_URL;
115     AtomicString m_name;
116
117     int m_marginWidth;
118     int m_marginHeight;
119     ScrollBarMode m_scrolling;
120
121     bool m_frameBorder : 1;
122     bool m_frameBorderSet : 1;
123     bool m_noResize : 1;
124     bool m_viewSource : 1;
125 };
126
127 } //namespace
128
129 #endif