blob: 9318ccde219793d995188844598f21ed3e53c8c0 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/events/event.h"
#include "base/logging.h"
#include "ui/aura/event.h"
#include "ui/base/keycodes/keyboard_code_conversion.h"
namespace views {
////////////////////////////////////////////////////////////////////////////////
// LocatedEvent, protected:
LocatedEvent::LocatedEvent(const NativeEvent& native_event)
: Event(native_event, native_event->type(), native_event->flags()),
location_(static_cast<aura::LocatedEvent*>(native_event)->location()) {
}
////////////////////////////////////////////////////////////////////////////////
// TouchEvent, public:
TouchEvent::TouchEvent(const NativeEvent& event)
: LocatedEvent(event),
touch_id_(static_cast<aura::TouchEvent*>(event)->touch_id()),
radius_x_(static_cast<aura::TouchEvent*>(event)->radius_x()),
radius_y_(static_cast<aura::TouchEvent*>(event)->radius_y()),
rotation_angle_(static_cast<aura::TouchEvent*>(event)->rotation_angle()),
force_(static_cast<aura::TouchEvent*>(event)->force()) {
}
////////////////////////////////////////////////////////////////////////////////
// KeyEvent, public:
KeyEvent::KeyEvent(const NativeEvent& native_event)
: Event(native_event, native_event->type(), native_event->flags()),
key_code_(static_cast<aura::KeyEvent*>(native_event)->key_code()),
character_(ui::GetCharacterFromKeyCode(key_code_, flags())),
unmodified_character_(0) {
}
uint16 KeyEvent::GetCharacter() const {
return character_;
}
uint16 KeyEvent::GetUnmodifiedCharacter() const {
if (unmodified_character_)
return unmodified_character_;
return ui::GetCharacterFromKeyCode(key_code_, flags() & ui::EF_SHIFT_DOWN);
}
////////////////////////////////////////////////////////////////////////////////
// MouseWheelEvent, public:
MouseWheelEvent::MouseWheelEvent(const NativeEvent& native_event)
: MouseEvent(native_event),
offset_(ui::GetMouseWheelOffset(native_event->native_event())) {
}
////////////////////////////////////////////////////////////////////////////////
// ScrollEvent, public:
ScrollEvent::ScrollEvent(const NativeEvent& native_event)
: MouseEvent(native_event) {
CHECK(ui::GetScrollOffsets(
native_event->native_event(), &x_offset_, &y_offset_));
}
////////////////////////////////////////////////////////////////////////////////
// GestureEvent, public:
GestureEvent::GestureEvent(const NativeEvent& event)
: LocatedEvent(event),
delta_x_(static_cast<aura::GestureEvent*>(event)->delta_x()),
delta_y_(static_cast<aura::GestureEvent*>(event)->delta_y()) {
}
int GestureEvent::GetLowestTouchId() const {
return native_event() ? static_cast<aura::GestureEvent*>(
native_event())->GetLowestTouchId() : 0;
}
} // namespace views