blob: 77ae57bb8269cfab81a7edeaa77f536054e1308e [file] [log] [blame]
/*
* Copyright 2009, The Android Open Source Project
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef CachedInput_h
#define CachedInput_h
#include "CachedDebug.h"
#include "HTMLInputElement.h"
#include "PlatformString.h"
namespace android {
class CachedInput {
public:
CachedInput() {
// Initiaized to 0 in its array, so nothing to do in the
// constructor
}
enum Type {
NONE = -1,
NORMAL_TEXT_FIELD = 0,
TEXT_AREA = 1,
PASSWORD = 2,
SEARCH = 3,
EMAIL = 4,
NUMBER = 5,
TELEPHONE = 6,
URL = 7
};
bool autoComplete() const { return mAutoComplete; }
void* formPointer() const { return mForm; }
void init();
void setTypeFromElement(WebCore::HTMLInputElement*);
Type getType() const { return mType; }
bool isRtlText() const { return mIsRtlText; }
bool isTextField() const { return mIsTextField; }
bool isTextArea() const { return mIsTextArea; }
int lineHeight() const { return mLineHeight; }
int maxLength() const { return mMaxLength; };
const WTF::String& name() const { return mName; }
int paddingBottom() const { return mPaddingBottom; }
int paddingLeft() const { return mPaddingLeft; }
int paddingRight() const { return mPaddingRight; }
int paddingTop() const { return mPaddingTop; }
void setAutoComplete(bool autoComplete) { mAutoComplete = autoComplete; }
void setFormPointer(void* form) { mForm = form; }
void setIsRtlText(bool isRtlText) { mIsRtlText = isRtlText; }
void setIsTextField(bool isTextField) { mIsTextField = isTextField; }
void setIsTextArea(bool isTextArea) { mIsTextArea = isTextArea; }
void setLineHeight(int height) { mLineHeight = height; }
void setMaxLength(int maxLength) { mMaxLength = maxLength; }
void setName(const WTF::String& name) { mName = name; }
void setPaddingBottom(int bottom) { mPaddingBottom = bottom; }
void setPaddingLeft(int left) { mPaddingLeft = left; }
void setPaddingRight(int right) { mPaddingRight = right; }
void setPaddingTop(int top) { mPaddingTop = top; }
void setSpellcheck(bool spellcheck) { mSpellcheck = spellcheck; }
void setTextSize(float textSize) { mTextSize = textSize; }
bool spellcheck() const { return mSpellcheck; }
float textSize() const { return mTextSize; }
private:
void* mForm;
int mLineHeight;
int mMaxLength;
WTF::String mName;
int mPaddingBottom;
int mPaddingLeft;
int mPaddingRight;
int mPaddingTop;
float mTextSize;
Type mType;
bool mAutoComplete : 1;
bool mSpellcheck : 1;
bool mIsRtlText : 1;
bool mIsTextField : 1;
bool mIsTextArea : 1;
#if DUMP_NAV_CACHE
public:
class Debug {
public:
CachedInput* base() const;
void print() const;
} mDebug;
#endif
};
}
#endif