8e2ecd01c7065ffaafab006e7b36d82d0c9cc33c
[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
56     virtual bool rendererIsNeeded(RenderStyle*);
57     virtual RenderObject *createRenderer(RenderArena*, RenderStyle*);
58     
59     void insertedIntoDocument();
60     virtual void willRemove();
61
62     bool noResize() { return m_noResize; }
63
64     void setLocation(const String&);
65
66     virtual bool isFocusable() const;
67     virtual void setFocus(bool);
68
69     Frame* contentFrame() const;
70     Document* contentDocument() const;
71     HTMLFrameSetElement* containingFrameSetElement() const;
72     
73     virtual bool isURLAttribute(Attribute*) const;
74
75     ScrollbarMode scrollingMode() const { return m_scrolling; }
76     int getMarginWidth() const { return m_marginWidth; }
77     int getMarginHeight() const { return m_marginHeight; }
78
79     String frameBorder() const;
80     void setFrameBorder(const String&);
81
82     String longDesc() const;
83     void setLongDesc(const String&);
84
85     String marginHeight() const;
86     void setMarginHeight(const String&);
87
88     String marginWidth() const;
89     void setMarginWidth(const String&);
90
91     String name() const;
92     void setName(const String&);
93
94     void setNoResize(bool);
95
96     String scrolling() const;
97     void setScrolling(const String&);
98
99     virtual String src() const;
100     void setSrc(const String&);
101
102     int frameWidth() const;
103     int frameHeight() const;
104
105     bool viewSourceMode() const { return m_viewSource; }
106
107 protected:
108     bool isURLAllowed(const AtomicString&) const;
109     virtual void openURL();
110
111     AtomicString m_URL;
112     AtomicString m_name;
113
114     int m_marginWidth;
115     int m_marginHeight;
116     ScrollbarMode m_scrolling;
117
118     bool m_frameBorder : 1;
119     bool m_frameBorderSet : 1;
120     bool m_noResize : 1;
121     bool m_viewSource : 1;
122 };
123
124 } //namespace
125
126 #endif