| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_VIEWS_WIDGET_NATIVE_WIDGET_AURA_H_ | 5 #ifndef UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_ |
| 6 #define UI_VIEWS_WIDGET_NATIVE_WIDGET_AURA_H_ | 6 #define UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" |
| 9 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| 9 #include "ui/aura/client/focus_change_observer.h" | 11 #include "ui/aura/client/focus_change_observer.h" |
| 10 #include "ui/aura/window_delegate.h" | 12 #include "ui/aura/window_delegate.h" |
| 11 #include "ui/aura/window_observer.h" | 13 #include "ui/aura/window_observer.h" |
| 14 #include "ui/aura/window_tree_host_observer.h" |
| 12 #include "ui/base/cursor/cursor.h" | 15 #include "ui/base/cursor/cursor.h" |
| 13 #include "ui/events/event_constants.h" | 16 #include "ui/events/event_constants.h" |
| 14 #include "ui/views/views_export.h" | 17 #include "ui/views/views_export.h" |
| 15 #include "ui/views/widget/native_widget_private.h" | 18 #include "ui/views/widget/native_widget_private.h" |
| 16 #include "ui/wm/public/activation_change_observer.h" | 19 #include "ui/wm/public/activation_change_observer.h" |
| 17 #include "ui/wm/public/activation_delegate.h" | 20 #include "ui/wm/public/activation_delegate.h" |
| 18 #include "ui/wm/public/drag_drop_delegate.h" | 21 #include "ui/wm/public/drag_drop_delegate.h" |
| 19 | 22 |
| 20 namespace aura { | 23 namespace aura { |
| 21 class Window; | 24 class Window; |
| 25 class WindowTreeHost; |
| 26 namespace client { |
| 27 class DefaultCaptureClient; |
| 28 class DispatcherClient; |
| 29 class ScreenPositionClient; |
| 30 class WindowTreeClient; |
| 31 } |
| 22 } | 32 } |
| 23 namespace gfx { | 33 namespace gfx { |
| 24 class FontList; | 34 class FontList; |
| 25 } | 35 } |
| 36 namespace wm { |
| 37 class FocusController; |
| 38 } |
| 26 | 39 |
| 27 namespace views { | 40 namespace views { |
| 28 | 41 |
| 29 class DropHelper; | |
| 30 class TooltipManagerAura; | 42 class TooltipManagerAura; |
| 31 class WindowReorderer; | 43 class WindowReorderer; |
| 32 | 44 |
| 33 class VIEWS_EXPORT NativeWidgetAura | 45 // NativeWidgetAndroid creates and hosts the Widget in an Android native window. |
| 46 // It is used to create a top level window on Android platform. |
| 47 class VIEWS_EXPORT NativeWidgetAndroid |
| 34 : public internal::NativeWidgetPrivate, | 48 : public internal::NativeWidgetPrivate, |
| 35 public aura::WindowDelegate, | 49 public aura::WindowDelegate, |
| 36 public aura::WindowObserver, | |
| 37 public aura::client::ActivationDelegate, | 50 public aura::client::ActivationDelegate, |
| 38 public aura::client::ActivationChangeObserver, | 51 public aura::client::ActivationChangeObserver, |
| 39 public aura::client::FocusChangeObserver, | 52 public aura::client::FocusChangeObserver, |
| 40 public aura::client::DragDropDelegate { | 53 public aura::client::DragDropDelegate, |
| 54 public aura::WindowTreeHostObserver { |
| 41 public: | 55 public: |
| 42 explicit NativeWidgetAura(internal::NativeWidgetDelegate* delegate); | 56 explicit NativeWidgetAndroid(internal::NativeWidgetDelegate* delegate); |
| 43 | 57 |
| 44 // Called internally by NativeWidgetAura and DesktopNativeWidgetAura to | 58 aura::WindowTreeHost* host() { return host_.get(); } |
| 45 // associate |native_widget| with |window|. | |
| 46 static void RegisterNativeWidgetForWindow( | |
| 47 internal::NativeWidgetPrivate* native_widget, | |
| 48 aura::Window* window); | |
| 49 | 59 |
| 50 // Overridden from internal::NativeWidgetPrivate: | 60 // Overridden from internal::NativeWidgetPrivate: |
| 51 void InitNativeWidget(const Widget::InitParams& params) override; | 61 void InitNativeWidget(const Widget::InitParams& params) override; |
| 52 NonClientFrameView* CreateNonClientFrameView() override; | 62 NonClientFrameView* CreateNonClientFrameView() override; |
| 53 bool ShouldUseNativeFrame() const override; | 63 bool ShouldUseNativeFrame() const override; |
| 54 bool ShouldWindowContentsBeTransparent() const override; | 64 bool ShouldWindowContentsBeTransparent() const override; |
| 55 void FrameTypeChanged() override; | 65 void FrameTypeChanged() override; |
| 56 Widget* GetWidget() override; | 66 Widget* GetWidget() override; |
| 57 const Widget* GetWidget() const override; | 67 const Widget* GetWidget() const override; |
| 58 gfx::NativeView GetNativeView() const override; | 68 gfx::NativeView GetNativeView() const override; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 bool CanFocus() override; | 156 bool CanFocus() override; |
| 147 void OnCaptureLost() override; | 157 void OnCaptureLost() override; |
| 148 void OnPaint(const ui::PaintContext& context) override; | 158 void OnPaint(const ui::PaintContext& context) override; |
| 149 void OnDeviceScaleFactorChanged(float device_scale_factor) override; | 159 void OnDeviceScaleFactorChanged(float device_scale_factor) override; |
| 150 void OnWindowDestroying(aura::Window* window) override; | 160 void OnWindowDestroying(aura::Window* window) override; |
| 151 void OnWindowDestroyed(aura::Window* window) override; | 161 void OnWindowDestroyed(aura::Window* window) override; |
| 152 void OnWindowTargetVisibilityChanged(bool visible) override; | 162 void OnWindowTargetVisibilityChanged(bool visible) override; |
| 153 bool HasHitTestMask() const override; | 163 bool HasHitTestMask() const override; |
| 154 void GetHitTestMask(gfx::Path* mask) const override; | 164 void GetHitTestMask(gfx::Path* mask) const override; |
| 155 | 165 |
| 156 // Overridden from aura::WindowObserver: | |
| 157 void OnWindowPropertyChanged(aura::Window* window, | |
| 158 const void* key, | |
| 159 intptr_t old) override; | |
| 160 | |
| 161 // Overridden from ui::EventHandler: | 166 // Overridden from ui::EventHandler: |
| 162 void OnKeyEvent(ui::KeyEvent* event) override; | 167 void OnKeyEvent(ui::KeyEvent* event) override; |
| 163 void OnMouseEvent(ui::MouseEvent* event) override; | 168 void OnMouseEvent(ui::MouseEvent* event) override; |
| 164 void OnScrollEvent(ui::ScrollEvent* event) override; | 169 void OnScrollEvent(ui::ScrollEvent* event) override; |
| 165 void OnGestureEvent(ui::GestureEvent* event) override; | 170 void OnGestureEvent(ui::GestureEvent* event) override; |
| 166 | 171 |
| 167 // Overridden from aura::client::ActivationDelegate: | 172 // Overridden from aura::client::ActivationDelegate: |
| 168 bool ShouldActivate() const override; | 173 bool ShouldActivate() const override; |
| 169 | 174 |
| 170 // Overridden from aura::client::ActivationChangeObserver: | 175 // Overridden from aura::client::ActivationChangeObserver: |
| 171 void OnWindowActivated( | 176 void OnWindowActivated( |
| 172 aura::client::ActivationChangeObserver::ActivationReason reason, | 177 aura::client::ActivationChangeObserver::ActivationReason reason, |
| 173 aura::Window* gained_active, | 178 aura::Window* gained_active, |
| 174 aura::Window* lost_active) override; | 179 aura::Window* lost_active) override; |
| 175 | 180 |
| 176 // Overridden from aura::client::FocusChangeObserver: | 181 // Overridden from aura::client::FocusChangeObserver: |
| 177 void OnWindowFocused(aura::Window* gained_focus, | 182 void OnWindowFocused(aura::Window* gained_focus, |
| 178 aura::Window* lost_focus) override; | 183 aura::Window* lost_focus) override; |
| 179 | 184 |
| 180 // Overridden from aura::client::DragDropDelegate: | 185 // Overridden from aura::client::DragDropDelegate: |
| 181 void OnDragEntered(const ui::DropTargetEvent& event) override; | 186 void OnDragEntered(const ui::DropTargetEvent& event) override; |
| 182 int OnDragUpdated(const ui::DropTargetEvent& event) override; | 187 int OnDragUpdated(const ui::DropTargetEvent& event) override; |
| 183 void OnDragExited() override; | 188 void OnDragExited() override; |
| 184 int OnPerformDrop(const ui::DropTargetEvent& event) override; | 189 int OnPerformDrop(const ui::DropTargetEvent& event) override; |
| 185 | 190 |
| 191 // Overridden from aura::WindowTreeHostObserver: |
| 192 void OnHostCloseRequested(const aura::WindowTreeHost* host) override; |
| 193 void OnHostResized(const aura::WindowTreeHost* host) override; |
| 194 void OnHostMoved(const aura::WindowTreeHost* host, |
| 195 const gfx::Point& new_origin) override; |
| 196 |
| 186 protected: | 197 protected: |
| 187 ~NativeWidgetAura() override; | 198 ~NativeWidgetAndroid() override; |
| 188 | 199 |
| 189 internal::NativeWidgetDelegate* delegate() { return delegate_; } | 200 internal::NativeWidgetDelegate* delegate() { return delegate_; } |
| 190 | 201 |
| 191 private: | 202 private: |
| 192 class ActiveWindowObserver; | 203 class ActiveWindowObserver; |
| 193 | 204 |
| 194 bool IsDocked() const; | 205 bool IsDocked() const; |
| 195 void SetInitialFocus(ui::WindowShowState show_state); | 206 void SetInitialFocus(ui::WindowShowState show_state); |
| 196 | 207 |
| 197 internal::NativeWidgetDelegate* delegate_; | 208 internal::NativeWidgetDelegate* delegate_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 211 | 222 |
| 212 // The saved window state for exiting full screen state. | 223 // The saved window state for exiting full screen state. |
| 213 ui::WindowShowState saved_window_state_; | 224 ui::WindowShowState saved_window_state_; |
| 214 | 225 |
| 215 scoped_ptr<TooltipManagerAura> tooltip_manager_; | 226 scoped_ptr<TooltipManagerAura> tooltip_manager_; |
| 216 | 227 |
| 217 // Reorders child windows of |window_| associated with a view based on the | 228 // Reorders child windows of |window_| associated with a view based on the |
| 218 // order of the associated views in the widget's view hierarchy. | 229 // order of the associated views in the widget's view hierarchy. |
| 219 scoped_ptr<WindowReorderer> window_reorderer_; | 230 scoped_ptr<WindowReorderer> window_reorderer_; |
| 220 | 231 |
| 221 scoped_ptr<DropHelper> drop_helper_; | 232 scoped_ptr<aura::WindowTreeHost> host_; |
| 222 int last_drop_operation_; | 233 scoped_ptr<wm::FocusController> focus_client_; |
| 234 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; |
| 235 scoped_ptr<aura::client::WindowTreeClient> window_tree_client_; |
| 236 scoped_ptr<aura::client::ScreenPositionClient> screen_position_client_; |
| 237 scoped_ptr<aura::client::DispatcherClient> dispatcher_client_; |
| 223 | 238 |
| 224 // The following factory is used for calls to close the NativeWidgetAura | 239 // The following factory is used for calls to close the |
| 225 // instance. | 240 // NativeWidgetAndroid instance. |
| 226 base::WeakPtrFactory<NativeWidgetAura> close_widget_factory_; | 241 base::WeakPtrFactory<NativeWidgetAndroid> close_widget_factory_; |
| 227 | 242 |
| 228 DISALLOW_COPY_AND_ASSIGN(NativeWidgetAura); | 243 DISALLOW_COPY_AND_ASSIGN(NativeWidgetAndroid); |
| 229 }; | 244 }; |
| 230 | 245 |
| 231 } // namespace views | 246 } // namespace views |
| 232 | 247 |
| 233 #endif // UI_VIEWS_WIDGET_NATIVE_WIDGET_AURA_H_ | 248 #endif // UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_ |
| OLD | NEW |