• 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 supportsFocus() const;
46     virtual bool isFocusable() const;
rendererIsNeeded(RenderStyle *)47     virtual bool rendererIsNeeded(RenderStyle*) { return false; }
48     virtual void attach();
49     virtual void detach();
50     virtual void setRenderStyle(PassRefPtr<RenderStyle>);
51 
52     virtual const AtomicString& formControlType() const;
53 
54     virtual String text() const;
55     void setText(const String&, ExceptionCode&);
56 
57     int index() const;
58     virtual void parseMappedAttribute(MappedAttribute*);
59 
60     virtual String value() const;
61     void setValue(const String&);
62 
63     virtual bool selected() const;
64     void setSelected(bool);
65     virtual void setSelectedState(bool);
66 
67     HTMLSelectElement* ownerSelectElement() const;
68 
69     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
70 
71     bool defaultSelected() const;
72     void setDefaultSelected(bool);
73 
74     String label() const;
75     void setLabel(const String&);
76 
77     virtual String textIndentedToRespectGroupLabel() const;
78 
ownElementDisabled()79     bool ownElementDisabled() const { return HTMLFormControlElement::disabled(); }
80     virtual bool disabled() const;
81 
82     virtual void insertedIntoTree(bool);
83     virtual void accessKeyAction(bool);
84 
85 private:
86     virtual RenderStyle* nonRendererRenderStyle() const;
87 
88     OptionElementData m_data;
89     RefPtr<RenderStyle> m_style;
90 };
91 
92 } //namespace
93 
94 #endif
95