WebKeyboardEvent.cpp [plain text]
#include "config.h"
#include "WebEvent.h"
#include "WebCoreArgumentCoders.h"
namespace WebKit {
WebKeyboardEvent::WebKeyboardEvent(Type type, const String& text, const String& unmodifiedText, const String& keyIdentifier, int windowsVirtualKeyCode, int nativeVirtualKeyCode, int macCharCode, bool isAutoRepeat, bool isKeypad, bool isSystemKey, Modifiers modifiers, double timestamp)
: WebEvent(type, modifiers, timestamp)
, m_text(text)
, m_unmodifiedText(unmodifiedText)
, m_keyIdentifier(keyIdentifier)
, m_windowsVirtualKeyCode(windowsVirtualKeyCode)
, m_nativeVirtualKeyCode(nativeVirtualKeyCode)
, m_macCharCode(macCharCode)
, m_isAutoRepeat(isAutoRepeat)
, m_isKeypad(isKeypad)
, m_isSystemKey(isSystemKey)
{
ASSERT(isKeyboardEventType(type));
}
void WebKeyboardEvent::encode(CoreIPC::ArgumentEncoder* encoder) const
{
WebEvent::encode(encoder);
encoder->encode(m_text);
encoder->encode(m_unmodifiedText);
encoder->encode(m_keyIdentifier);
encoder->encode(m_windowsVirtualKeyCode);
encoder->encode(m_nativeVirtualKeyCode);
encoder->encode(m_macCharCode);
encoder->encode(m_isAutoRepeat);
encoder->encode(m_isKeypad);
encoder->encode(m_isSystemKey);
}
bool WebKeyboardEvent::decode(CoreIPC::ArgumentDecoder* decoder, WebKeyboardEvent& result)
{
if (!WebEvent::decode(decoder, result))
return false;
if (!decoder->decode(result.m_text))
return false;
if (!decoder->decode(result.m_unmodifiedText))
return false;
if (!decoder->decode(result.m_keyIdentifier))
return false;
if (!decoder->decode(result.m_windowsVirtualKeyCode))
return false;
if (!decoder->decode(result.m_nativeVirtualKeyCode))
return false;
if (!decoder->decode(result.m_macCharCode))
return false;
if (!decoder->decode(result.m_isAutoRepeat))
return false;
if (!decoder->decode(result.m_isKeypad))
return false;
if (!decoder->decode(result.m_isSystemKey))
return false;
return true;
}
bool WebKeyboardEvent::isKeyboardEventType(Type type)
{
return type == RawKeyDown || type == KeyDown || type == KeyUp || type == Char;
}
}