LayoutTests:
[WebKit-https.git] / WebCore / html / HTMLTextAreaElement.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 Dirk Mueller (mueller@kde.org)
7  * Copyright (C) 2004, 2005, 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 HTML_HTMLTextAreaElementImpl_H
27 #define HTML_HTMLTextAreaElementImpl_H
28
29 #include "HTMLGenericFormElement.h"
30
31 namespace WebCore {
32
33 class HTMLTextAreaElement : public HTMLGenericFormElement {
34 public:
35     enum WrapMethod { ta_NoWrap, ta_Virtual, ta_Physical };
36
37     HTMLTextAreaElement(Document*, HTMLFormElement* = 0);
38     ~HTMLTextAreaElement();
39
40     virtual bool checkDTD(const Node* newChild) { return newChild->isTextNode(); }
41
42     int cols() const { return m_cols; }
43     int rows() const { return m_rows; }
44
45     WrapMethod wrap() const { return m_wrap; }
46
47     virtual bool isEnumeratable() const { return true; }
48
49     virtual const AtomicString& type() const;
50
51     virtual String stateValue() const;
52     virtual void restoreState(const String&);
53
54     bool readOnly() const { return isReadOnlyControl(); }
55
56     int selectionStart();
57     int selectionEnd();
58
59     void setSelectionStart(int);
60     void setSelectionEnd(int);
61
62     void select();
63     void setSelectionRange(int, int);
64
65     virtual void childrenChanged();
66     virtual void parseMappedAttribute(MappedAttribute*);
67     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
68     virtual bool appendFormData(FormDataList&, bool);
69     virtual void reset();
70     virtual void defaultEventHandler(Event*);
71     virtual bool isMouseFocusable() const;
72     virtual bool isKeyboardFocusable(KeyboardEvent*) const;
73     virtual void focus();
74     virtual void updateFocusAppearance();
75
76     String value() const;
77     void setValue(const String&);
78     String defaultValue() const;
79     void setDefaultValue(const String&);
80     
81     void rendererWillBeDestroyed();
82     
83     virtual void accessKeyAction(bool sendToAnyElement);
84     
85     String accessKey() const;
86     void setAccessKey(const String&);
87
88     void setCols(int);
89     void setRows(int);
90     
91     void cacheSelection(int s, int e) { cachedSelStart = s; cachedSelEnd = e; };
92
93 private:
94     void updateValue() const;
95
96     int m_rows;
97     int m_cols;
98     WrapMethod m_wrap;
99     mutable String m_value;
100     int cachedSelStart;
101     int cachedSelEnd;
102 };
103
104 } //namespace
105
106 #endif