diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 20:12:13 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 20:12:13 +0000 |
commit | c94f85914e13f04fa35a56c82ce0eb3cd46f46cf (patch) | |
tree | 4931dd5dacc240aa9e9482cf4a14bbda4dc94b25 /views/widget | |
parent | e0379d56b61dc1bca0ee1c66b93b9c19279332b3 (diff) | |
download | chromium_src-c94f85914e13f04fa35a56c82ce0eb3cd46f46cf.zip chromium_src-c94f85914e13f04fa35a56c82ce0eb3cd46f46cf.tar.gz chromium_src-c94f85914e13f04fa35a56c82ce0eb3cd46f46cf.tar.bz2 |
Beginnings of basic Focus and Key Events.
http://crbug.com/93934
http://crbug.com/93949
TEST=see unittest
Review URL: http://codereview.chromium.org/7830031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99434 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r-- | views/widget/native_widget_aura.cc | 29 | ||||
-rw-r--r-- | views/widget/native_widget_aura.h | 3 |
2 files changed, 27 insertions, 5 deletions
diff --git a/views/widget/native_widget_aura.cc b/views/widget/native_widget_aura.cc index 92572e2..9f50974 100644 --- a/views/widget/native_widget_aura.cc +++ b/views/widget/native_widget_aura.cc @@ -48,7 +48,9 @@ gfx::Font NativeWidgetAura::GetWindowTitleFont() { // NativeWidgetAura, internal::NativeWidgetPrivate implementation: void NativeWidgetAura::InitNativeWidget(const Widget::InitParams& params) { + window_->set_user_data(this); window_->Init(); + delegate_->OnNativeWidgetCreated(); window_->SetBounds(params.bounds, 0); window_->SetParent(params.parent); // TODO(beng): do this some other way. @@ -363,6 +365,18 @@ void NativeWidgetAura::DispatchKeyEventPostIME(const KeyEvent& key) { //////////////////////////////////////////////////////////////////////////////// // NativeWidgetAura, aura::WindowDelegate implementation: +void NativeWidgetAura::OnFocus() { + delegate_->OnNativeFocus(window_); +} + +void NativeWidgetAura::OnBlur() { + delegate_->OnNativeBlur(NULL); +} + +bool NativeWidgetAura::OnKeyEvent(aura::KeyEvent* event) { + return delegate_->OnKeyEvent(KeyEvent(event)); +} + int NativeWidgetAura::GetNonClientComponent(const gfx::Point& point) const { return delegate_->GetNonClientComponent(point); } @@ -412,21 +426,26 @@ NativeWidgetPrivate* NativeWidgetPrivate::CreateNativeWidget( // static NativeWidgetPrivate* NativeWidgetPrivate::GetNativeWidgetForNativeView( gfx::NativeView native_view) { - NOTIMPLEMENTED(); - return NULL; + return reinterpret_cast<NativeWidgetAura*>(native_view->user_data()); } // static NativeWidgetPrivate* NativeWidgetPrivate::GetNativeWidgetForNativeWindow( gfx::NativeWindow native_window) { - NOTIMPLEMENTED(); - return NULL; + return reinterpret_cast<NativeWidgetAura*>(native_window->user_data()); } // static NativeWidgetPrivate* NativeWidgetPrivate::GetTopLevelNativeWidget( gfx::NativeView native_view) { - NOTIMPLEMENTED(); + aura::Window* toplevel = native_view; + aura::Window* parent = native_view->parent(); + while (parent) { + if (parent->IsTopLevelWindowContainer()) + return GetNativeWidgetForNativeView(toplevel); + toplevel = parent; + parent = parent->parent(); + } return NULL; } diff --git a/views/widget/native_widget_aura.h b/views/widget/native_widget_aura.h index 3a870d9..2877a8c 100644 --- a/views/widget/native_widget_aura.h +++ b/views/widget/native_widget_aura.h @@ -109,6 +109,9 @@ class NativeWidgetAura : public internal::NativeWidgetPrivate, virtual void DispatchKeyEventPostIME(const KeyEvent& key) OVERRIDE; // Overridden from aura::WindowDelegate: + virtual void OnFocus() OVERRIDE; + virtual void OnBlur() OVERRIDE; + virtual bool OnKeyEvent(aura::KeyEvent* event) OVERRIDE; virtual int GetNonClientComponent(const gfx::Point& point) const OVERRIDE; virtual bool OnMouseEvent(aura::MouseEvent* event) OVERRIDE; virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; |