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

Side by Side Diff: ui/views/controls/native/native_view_host.cc

Issue 24299004: Implement features in NativeViewHostAura for scroll end effect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Responded to sky's comments and added some testing Created 7 years, 2 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "ui/views/controls/native/native_view_host.h" 5 #include "ui/views/controls/native/native_view_host.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ui/gfx/canvas.h" 8 #include "ui/gfx/canvas.h"
9 #include "ui/views/accessibility/native_view_accessibility.h" 9 #include "ui/views/accessibility/native_view_accessibility.h"
10 #include "ui/views/controls/native/native_view_host_wrapper.h" 10 #include "ui/views/controls/native/native_view_host_wrapper.h"
(...skipping 15 matching lines...) Expand all
26 const bool NativeViewHost::kRenderNativeControlFocus = true; 26 const bool NativeViewHost::kRenderNativeControlFocus = true;
27 #endif 27 #endif
28 28
29 //////////////////////////////////////////////////////////////////////////////// 29 ////////////////////////////////////////////////////////////////////////////////
30 // NativeViewHost, public: 30 // NativeViewHost, public:
31 31
32 NativeViewHost::NativeViewHost() 32 NativeViewHost::NativeViewHost()
33 : native_view_(NULL), 33 : native_view_(NULL),
34 fast_resize_(false), 34 fast_resize_(false),
35 fast_resize_at_last_layout_(false), 35 fast_resize_at_last_layout_(false),
36 fast_resize_gravity_(GRAVITY_NORTHWEST),
36 focus_view_(NULL) { 37 focus_view_(NULL) {
37 } 38 }
38 39
39 NativeViewHost::~NativeViewHost() { 40 NativeViewHost::~NativeViewHost() {
40 } 41 }
41 42
42 void NativeViewHost::Attach(gfx::NativeView native_view) { 43 void NativeViewHost::Attach(gfx::NativeView native_view) {
43 DCHECK(native_view); 44 DCHECK(native_view);
44 DCHECK(!native_view_); 45 DCHECK(!native_view_);
45 native_view_ = native_view; 46 native_view_ = native_view;
46 // If set_focus_view() has not been invoked, this view is the one that should 47 // If set_focus_view() has not been invoked, this view is the one that should
47 // be seen as focused when the native view receives focus. 48 // be seen as focused when the native view receives focus.
48 if (!focus_view_) 49 if (!focus_view_)
49 focus_view_ = this; 50 focus_view_ = this;
50 native_wrapper_->NativeViewWillAttach(); 51 native_wrapper_->NativeViewWillAttach();
51 Widget::ReparentNativeView(native_view_, GetWidget()->GetNativeView()); 52 Widget::ReparentNativeView(native_view_, GetWidget()->GetNativeView());
52 Layout(); 53 Layout();
53 54
54 Widget* widget = Widget::GetWidgetForNativeView(native_view); 55 Widget* widget = Widget::GetWidgetForNativeView(native_view);
55 if (widget) 56 if (widget)
56 widget->SetNativeWindowProperty(kWidgetNativeViewHostKey, this); 57 widget->SetNativeWindowProperty(kWidgetNativeViewHostKey, this);
58 native_wrapper_->NativeViewAttached();
57 } 59 }
58 60
59 void NativeViewHost::Detach() { 61 void NativeViewHost::Detach() {
60 Detach(false); 62 Detach(false);
61 } 63 }
62 64
63 void NativeViewHost::SetPreferredSize(const gfx::Size& size) { 65 void NativeViewHost::SetPreferredSize(const gfx::Size& size) {
64 preferred_size_ = size; 66 preferred_size_ = size;
65 PreferredSizeChanged(); 67 PreferredSizeChanged();
66 } 68 }
67 69
70 float NativeViewHost::GetWidthScaleFactor() const {
71 float ret_val = 0.0;
72 switch (fast_resize_gravity_) {
73 case GRAVITY_NORTHWEST:
74 ret_val = 0.0;
sky 2013/09/26 22:10:54 There is no point in assigning to ret_val, break,
rharrison 2013/09/30 20:48:45 Done.
75 break;
76 case GRAVITY_NORTH:
77 ret_val = 0.5;
78 break;
79 case GRAVITY_NORTHEAST:
80 ret_val = 1.0;
81 break;
82 case GRAVITY_EAST:
83 ret_val = 1.0;
84 break;
85 case GRAVITY_SOUTHEAST:
86 ret_val = 1.0;
87 break;
88 case GRAVITY_SOUTH:
89 ret_val = 0.5;
90 break;
91 case GRAVITY_SOUTHWEST:
92 ret_val = 0.0;
93 break;
94 case GRAVITY_WEST:
95 ret_val = 0.0;
96 break;
97 case GRAVITY_CENTER:
98 ret_val = 0.5;
99 break;
100 }
101 return ret_val;
102 }
103
104 float NativeViewHost::GetHeightScaleFactor() const {
105 float ret_val = 0.0;
106 switch (fast_resize_gravity_) {
107 case GRAVITY_NORTHWEST:
108 ret_val = 0.0;
109 break;
110 case GRAVITY_NORTH:
111 ret_val = 0.0;
112 break;
113 case GRAVITY_NORTHEAST:
114 ret_val = 0.0;
115 break;
116 case GRAVITY_EAST:
117 ret_val = 0.5;
118 break;
119 case GRAVITY_SOUTHEAST:
120 ret_val = 1.0;
121 break;
122 case GRAVITY_SOUTH:
123 ret_val = 1.0;
124 break;
125 case GRAVITY_SOUTHWEST:
126 ret_val = 1.0;
127 break;
128 case GRAVITY_WEST:
129 ret_val = 0.5;
130 break;
131 case GRAVITY_CENTER:
132 ret_val = 0.5;
133 break;
134 }
135 return ret_val;
136 }
137
68 void NativeViewHost::NativeViewDestroyed() { 138 void NativeViewHost::NativeViewDestroyed() {
69 // Detach so we can clear our state and notify the native_wrapper_ to release 139 // Detach so we can clear our state and notify the native_wrapper_ to release
70 // ref on the native view. 140 // ref on the native view.
71 Detach(true); 141 Detach(true);
72 } 142 }
73 143
74 //////////////////////////////////////////////////////////////////////////////// 144 ////////////////////////////////////////////////////////////////////////////////
75 // NativeViewHost, View overrides: 145 // NativeViewHost, View overrides:
76 146
77 gfx::Size NativeViewHost::GetPreferredSize() { 147 gfx::Size NativeViewHost::GetPreferredSize() {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 Widget::GetAllChildWidgets(native_view(), &widgets); 291 Widget::GetAllChildWidgets(native_view(), &widgets);
222 for (Widget::Widgets::iterator i = widgets.begin(); i != widgets.end(); ++i) { 292 for (Widget::Widgets::iterator i = widgets.begin(); i != widgets.end(); ++i) {
223 focus_manager->ViewRemoved((*i)->GetRootView()); 293 focus_manager->ViewRemoved((*i)->GetRootView());
224 if (!focus_manager->GetFocusedView()) 294 if (!focus_manager->GetFocusedView())
225 return; 295 return;
226 } 296 }
227 } 297 }
228 298
229 299
230 } // namespace views 300 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698