summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 20:12:13 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 20:12:13 +0000
commitc94f85914e13f04fa35a56c82ce0eb3cd46f46cf (patch)
tree4931dd5dacc240aa9e9482cf4a14bbda4dc94b25 /views/widget
parente0379d56b61dc1bca0ee1c66b93b9c19279332b3 (diff)
downloadchromium_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.cc29
-rw-r--r--views/widget/native_widget_aura.h3
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;