#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_TEXT_CONTROL_ELEMENT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_TEXT_CONTROL_ELEMENT_H_
#include "base/gtest_prod_util.h"
#include "third_party/blink/public/mojom/input/focus_type.mojom-blink-forward.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/editing/forward.h"
#include "third_party/blink/renderer/core/html/forms/html_form_control_element_with_state.h"
#include "third_party/blink/renderer/core/html/forms/text_control_inner_elements.h"
namespace blink {
class ExceptionState;
class V8SelectionMode;
enum TextFieldSelectionDirection { … };
enum class TextFieldEventBehavior { … };
enum class TextControlSetValueSelection { … };
class CORE_EXPORT TextControlElement : public HTMLFormControlElementWithState { … };
inline bool IsTextControl(const Node& node) { … }
inline bool IsTextControl(const Node* node) { … }
#define DEFINE_TEXT_CONTROL_CASTS …
DEFINE_TEXT_CONTROL_CASTS;
DEFINE_TEXT_CONTROL_CASTS(const TextControlElement, const Node);
#undef DEFINE_TEXT_CONTROL_CASTS
template <>
struct DowncastTraits<TextControlElement> { … };
TextControlElement* EnclosingTextControl(const Position&);
TextControlElement* EnclosingTextControl(const PositionInFlatTree&);
CORE_EXPORT TextControlElement* EnclosingTextControl(const Node*);
}
#endif