Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Side by Side Diff: ui/views/widget/android/native_widget_android.h

Issue 1403293003: Introduce AndroidFocusRules and NativeWidgetAndroid (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add NOTIMPLEMENTED Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
mfomitchev 2015/11/04 23:21:14 2015
bshe 2015/11/11 00:38:29 Done.
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_MAC_H_ 5 #ifndef UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_
6 #define UI_VIEWS_WIDGET_NATIVE_WIDGET_MAC_H_ 6 #define UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_
7 7
8 #include "ui/gfx/native_widget_types.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
9 #include "ui/views/widget/native_widget_private.h" 10 #include "ui/views/widget/native_widget_private.h"
10 11
11 #if defined(__OBJC__) 12 namespace aura {
12 @class NativeWidgetMacNSWindow; 13 class Window;
13 #else 14 class WindowTreeHost;
14 class NativeWidgetMacNSWindow; 15 namespace client {
15 #endif 16 class DefaultCaptureClient;
17 class WindowTreeClient;
18 }
19 }
20
21 namespace wm {
22 class FocusController;
23 }
24
25 namespace gfx {
26 class Rect;
27 class Size;
28 }
16 29
17 namespace views { 30 namespace views {
18 namespace test {
19 class HitTestNativeWidgetMac;
20 class MockNativeWidgetMac;
21 }
22 31
23 class BridgedNativeWidget; 32 class VIEWS_EXPORT NativeWidgetAndroid : public internal::NativeWidgetPrivate {
33 public:
34 explicit NativeWidgetAndroid(internal::NativeWidgetDelegate* delegate);
35 ~NativeWidgetAndroid() override;
36 aura::WindowTreeHost* host() { return host_.get(); }
24 37
25 class VIEWS_EXPORT NativeWidgetMac : public internal::NativeWidgetPrivate { 38 protected:
26 public: 39 // Overridden from internal::NativeWidgetPrivate:
27 NativeWidgetMac(internal::NativeWidgetDelegate* delegate);
28 ~NativeWidgetMac() override;
29
30 // Retrieves the bridge associated with the given NSWindow. Returns null if
31 // the supplied handle has no associated Widget.
32 static BridgedNativeWidget* GetBridgeForNativeWindow(
33 gfx::NativeWindow window);
34
35 // Return true if the delegate's modal type is window-modal. These display as
36 // a native window "sheet", and have a different lifetime to regular windows.
37 bool IsWindowModalSheet() const;
38
39 // Deletes |bridge_| and informs |delegate_| that the native widget is
40 // destroyed.
41 // This is usually called from the NSWindowDelegate. A derived class can
42 // override this method for an early hook into the native window teardown.
43 virtual void OnWindowWillClose();
44
45 // Returns the vertical position that sheets should be anchored, in pixels
46 // from the bottom of the window.
47 virtual int SheetPositionY();
48
49 // internal::NativeWidgetPrivate:
50 void InitNativeWidget(const Widget::InitParams& params) override; 40 void InitNativeWidget(const Widget::InitParams& params) override;
51 NonClientFrameView* CreateNonClientFrameView() override; 41 NonClientFrameView* CreateNonClientFrameView() override;
52 bool ShouldUseNativeFrame() const override; 42 bool ShouldUseNativeFrame() const override;
53 bool ShouldWindowContentsBeTransparent() const override; 43 bool ShouldWindowContentsBeTransparent() const override;
54 void FrameTypeChanged() override; 44 void FrameTypeChanged() override;
55 Widget* GetWidget() override; 45 Widget* GetWidget() override;
56 const Widget* GetWidget() const override; 46 const Widget* GetWidget() const override;
57 gfx::NativeView GetNativeView() const override; 47 gfx::NativeView GetNativeView() const override;
58 gfx::NativeWindow GetNativeWindow() const override; 48 gfx::NativeWindow GetNativeWindow() const override;
59 Widget* GetTopLevelWidget() override; 49 Widget* GetTopLevelWidget() override;
60 const ui::Compositor* GetCompositor() const override; 50 const ui::Compositor* GetCompositor() const override;
61 const ui::Layer* GetLayer() const override; 51 const ui::Layer* GetLayer() const override;
62 void ReorderNativeViews() override; 52 void ReorderNativeViews() override;
63 void ViewRemoved(View* view) override; 53 void ViewRemoved(View* view) override;
64 void SetNativeWindowProperty(const char* name, void* value) override; 54 void SetNativeWindowProperty(const char* name, void* value) override;
65 void* GetNativeWindowProperty(const char* name) const override; 55 void* GetNativeWindowProperty(const char* name) const override;
66 TooltipManager* GetTooltipManager() const override; 56 TooltipManager* GetTooltipManager() const override;
67 void SetCapture() override; 57 void SetCapture() override;
68 void ReleaseCapture() override; 58 void ReleaseCapture() override;
69 bool HasCapture() const override; 59 bool HasCapture() const override;
70 ui::InputMethod* GetInputMethod() override; 60 ui::InputMethod* GetInputMethod() override;
71 void CenterWindow(const gfx::Size& size) override; 61 void CenterWindow(const gfx::Size& size) override;
72 void GetWindowPlacement(gfx::Rect* bounds, 62 void GetWindowPlacement(gfx::Rect* bounds,
73 ui::WindowShowState* show_state) const override; 63 ui::WindowShowState* maximized) const override;
sadrul 2015/11/04 19:00:53 |show_state| would make more sense, instead of |ma
bshe 2015/11/11 00:38:29 Done.
74 bool SetWindowTitle(const base::string16& title) override; 64 bool SetWindowTitle(const base::string16& title) override;
75 void SetWindowIcons(const gfx::ImageSkia& window_icon, 65 void SetWindowIcons(const gfx::ImageSkia& window_icon,
76 const gfx::ImageSkia& app_icon) override; 66 const gfx::ImageSkia& app_icon) override;
77 void InitModalType(ui::ModalType modal_type) override; 67 void InitModalType(ui::ModalType modal_type) override;
78 gfx::Rect GetWindowBoundsInScreen() const override; 68 gfx::Rect GetWindowBoundsInScreen() const override;
79 gfx::Rect GetClientAreaBoundsInScreen() const override; 69 gfx::Rect GetClientAreaBoundsInScreen() const override;
80 gfx::Rect GetRestoredBounds() const override; 70 gfx::Rect GetRestoredBounds() const override;
81 void SetBounds(const gfx::Rect& bounds) override; 71 void SetBounds(const gfx::Rect& bounds) override;
82 void SetSize(const gfx::Size& size) override; 72 void SetSize(const gfx::Size& size) override;
83 void StackAbove(gfx::NativeView native_view) override; 73 void StackAbove(gfx::NativeView native_view) override;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void SetVisibilityChangedAnimationsEnabled(bool value) override; 115 void SetVisibilityChangedAnimationsEnabled(bool value) override;
126 void SetVisibilityAnimationDuration(const base::TimeDelta& duration) override; 116 void SetVisibilityAnimationDuration(const base::TimeDelta& duration) override;
127 void SetVisibilityAnimationTransition( 117 void SetVisibilityAnimationTransition(
128 Widget::VisibilityTransition transition) override; 118 Widget::VisibilityTransition transition) override;
129 ui::NativeTheme* GetNativeTheme() const override; 119 ui::NativeTheme* GetNativeTheme() const override;
130 void OnRootViewLayout() override; 120 void OnRootViewLayout() override;
131 bool IsTranslucentWindowOpacitySupported() const override; 121 bool IsTranslucentWindowOpacitySupported() const override;
132 void OnSizeConstraintsChanged() override; 122 void OnSizeConstraintsChanged() override;
133 void RepostNativeEvent(gfx::NativeEvent native_event) override; 123 void RepostNativeEvent(gfx::NativeEvent native_event) override;
134 124
135 protected: 125 private:
136 // Creates the NSWindow that will be passed to the BridgedNativeWidget. 126 internal::NativeWidgetDelegate* delegate_;
137 // Called by InitNativeWidget. The return value will be autoreleased. 127 scoped_ptr<aura::WindowTreeHost> host_;
138 virtual NativeWidgetMacNSWindow* CreateNSWindow( 128 scoped_ptr<wm::FocusController> focus_client_;
139 const Widget::InitParams& params); 129 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_;
130 scoped_ptr<aura::client::WindowTreeClient> window_tree_client_;
140 131
141 internal::NativeWidgetDelegate* delegate() { return delegate_; } 132 DISALLOW_COPY_AND_ASSIGN(NativeWidgetAndroid);
142
143 private:
144 friend class test::MockNativeWidgetMac;
145 friend class test::HitTestNativeWidgetMac;
146
147 internal::NativeWidgetDelegate* delegate_;
148 scoped_ptr<BridgedNativeWidget> bridge_;
149
150 Widget::InitParams::Ownership ownership_;
151
152 DISALLOW_COPY_AND_ASSIGN(NativeWidgetMac);
153 }; 133 };
154 134
155 } // namespace views 135 } // namespace views
156 136
157 #endif // UI_VIEWS_WIDGET_NATIVE_WIDGET_MAC_H_ 137 #endif // UI_VIEWS_WIDGET_ANDROID_NATIVE_WIDGET_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698