• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
4  *           (C) 2000 Dirk Mueller (mueller@kde.org)
5  * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public License
18  * along with this library; see the file COPYING.LIB.  If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  *
22  */
23 #ifndef HTMLOptionElement_h
24 #define HTMLOptionElement_h
25 
26 #include "HTMLFormControlElement.h"
27 #include "OptionElement.h"
28 
29 namespace WebCore {
30 
31 class HTMLSelectElement;
32 class HTMLFormElement;
33 class MappedAttribute;
34 
35 class HTMLOptionElement : public HTMLFormControlElement, public OptionElement {
36     friend class HTMLSelectElement;
37     friend class RenderMenuList;
38 
39 public:
40     HTMLOptionElement(const QualifiedName&, Document*, HTMLFormElement* = 0);
41 
endTagRequirement()42     virtual HTMLTagStatus endTagRequirement() const { return TagStatusOptional; }
tagPriority()43     virtual int tagPriority() const { return 2; }
44     virtual bool checkDTD(const Node* newChild);
45     virtual bool isFocusable() const;
rendererIsNeeded(RenderStyle *)46     virtual bool rendererIsNeeded(RenderStyle*) { return false; }
47     virtual void attach();
48     virtual void detach();
49     virtual void setRenderStyle(PassRefPtr<RenderStyle>);
50 
51     virtual const AtomicString& type() const;
52 
53     String text() const;
54     void setText(const String&, ExceptionCode&);
55 
56     int index() const;
57     virtual void parseMappedAttribute(MappedAttribute*);
58 
59     virtual String value() const;
60     void setValue(const String&);
61 
62     virtual bool selected() const;
63     void setSelected(bool);
64     virtual void setSelectedState(bool);
65 
66     HTMLSelectElement* ownerSelectElement() const;
67 
68     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
69 
70     bool defaultSelected() const;
71     void setDefaultSelected(bool);
72 
73     String label() const;
74     void setLabel(const String&);
75 
76     virtual String textIndentedToRespectGroupLabel() const;
77 
78     virtual bool disabled() const;
79 
80     virtual void insertedIntoDocument();
81     virtual void accessKeyAction(bool);
82 
83 private:
84     virtual RenderStyle* nonRendererRenderStyle() const;
85 
86     OptionElementData m_data;
87     RefPtr<RenderStyle> m_style;
88 };
89 
90 } //namespace
91 
92 #endif
93