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

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

Issue 24299004: Implement features in NativeViewHostAura for scroll end effect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_ 5 #ifndef UI_VIEWS_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_
6 #define UI_VIEWS_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_ 6 #define UI_VIEWS_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "ui/gfx/native_widget_types.h" 10 #include "ui/gfx/native_widget_types.h"
11 #include "ui/views/view.h" 11 #include "ui/views/view.h"
12 12
13 namespace views { 13 namespace views {
14 14
15 class NativeViewHostAuraTest; 15 class NativeViewHostAuraTest;
16 class NativeViewHostWrapper; 16 class NativeViewHostWrapper;
17 17
18 // When performing fast resizes the contents is not actually resized, but
19 // instead the contents is positioned and clipped to give the impression of
20 // resizing. Gravity indicates the positioning of the content relative to the
21 // clipping. The default value, northwest, indicates that the top left corner of
22 // the clip and the content should align, so the bottom and left sides of the
sky 2013/09/24 20:23:25 left -> right
rharrison 2013/09/26 20:36:48 Done.
23 // content will be clipped. For a value like south the bottom edges will align
24 // at their respective middles, thus the full vertical resize will be reflected
25 // on the top, but half of the horizontal resize will be reflected on the left
26 // and right sides. The following list is the gravity values and their alignment
27 // points for reference, coordinates relative to the respective system for the
28 // clip or contents:
29 // NorthWest (0, 0)
30 // North (width/2, 0)
31 // NorthEast (width, 0)
32 // East (width, height/2)
33 // SouthEast (width, height)
34 // South (width/2, height)
35 // SouthWest (0, height)
36 // West (0, height/2)
37 // Center (width/2, height/2)
38 enum FastResizeGravity {
sky 2013/09/24 20:23:25 I'm not opposed to all of these, but do we really
sky 2013/09/24 20:23:25 Could you also make this a member of NativeViewHos
rharrison 2013/09/26 20:36:48 The default is NW and I would need a southern one
rharrison 2013/09/26 20:36:48 Done.
39 FAST_RESIZE_GRAVITY_NORTHWEST,
40 FAST_RESIZE_GRAVITY_NORTH,
41 FAST_RESIZE_GRAVITY_NORTHEAST,
42 FAST_RESIZE_GRAVITY_EAST,
43 FAST_RESIZE_GRAVITY_SOUTHEAST,
44 FAST_RESIZE_GRAVITY_SOUTH,
45 FAST_RESIZE_GRAVITY_SOUTHWEST,
46 FAST_RESIZE_GRAVITY_WEST,
47 FAST_RESIZE_GRAVITY_CENTER,
48 };
49
18 // If a NativeViewHost's native view is a Widget, this native window 50 // If a NativeViewHost's native view is a Widget, this native window
19 // property is set on the widget, pointing to the owning NativeViewHost. 51 // property is set on the widget, pointing to the owning NativeViewHost.
20 extern const char kWidgetNativeViewHostKey[]; 52 extern const char kWidgetNativeViewHostKey[];
21 53
22 // A View type that hosts a gfx::NativeView. The bounds of the native view are 54 // A View type that hosts a gfx::NativeView. The bounds of the native view are
23 // kept in sync with the bounds of this view as it is moved and sized. 55 // kept in sync with the bounds of this view as it is moved and sized.
24 // Under the hood, a platform-specific NativeViewHostWrapper implementation does 56 // Under the hood, a platform-specific NativeViewHostWrapper implementation does
25 // the platform-specific work of manipulating the underlying OS widget type. 57 // the platform-specific work of manipulating the underlying OS widget type.
26 class VIEWS_EXPORT NativeViewHost : public View { 58 class VIEWS_EXPORT NativeViewHost : public View {
27 public: 59 public:
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 // and don't care about accuracy. Make sure you do a real resize at the 99 // and don't care about accuracy. Make sure you do a real resize at the
68 // end. USE WITH CAUTION. 100 // end. USE WITH CAUTION.
69 void set_fast_resize(bool fast_resize) { fast_resize_ = fast_resize; } 101 void set_fast_resize(bool fast_resize) { fast_resize_ = fast_resize; }
70 bool fast_resize() const { return fast_resize_; } 102 bool fast_resize() const { return fast_resize_; }
71 103
72 // Value of fast_resize() the last time Layout() was invoked. 104 // Value of fast_resize() the last time Layout() was invoked.
73 bool fast_resize_at_last_layout() const { 105 bool fast_resize_at_last_layout() const {
74 return fast_resize_at_last_layout_; 106 return fast_resize_at_last_layout_;
75 } 107 }
76 108
109 // Gravity controls how the clip is positioned relative to the native
110 // view. The specifics of this are discussed in the comment above the related
111 // enum. This call only sets the value being used, but does not cause a
112 // re-layout, so ShowWidget, via Layout, must be called before the new gravity
113 // will have an effect.
114 void set_fast_resize_gravity(FastResizeGravity gravity) {
115 fast_resize_gravity_ = gravity;
116 }
117 FastResizeGravity fast_resize_gravity() {
118 return fast_resize_gravity_;
119 }
120
77 // Accessor for |native_view_|. 121 // Accessor for |native_view_|.
78 gfx::NativeView native_view() const { return native_view_; } 122 gfx::NativeView native_view() const { return native_view_; }
79 123
80 void NativeViewDestroyed(); 124 void NativeViewDestroyed();
81 125
82 // Overridden from View: 126 // Overridden from View:
83 virtual gfx::Size GetPreferredSize() OVERRIDE; 127 virtual gfx::Size GetPreferredSize() OVERRIDE;
84 virtual void Layout() OVERRIDE; 128 virtual void Layout() OVERRIDE;
85 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 129 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
86 virtual void VisibilityChanged(View* starting_from, bool is_visible) OVERRIDE; 130 virtual void VisibilityChanged(View* starting_from, bool is_visible) OVERRIDE;
(...skipping 29 matching lines...) Expand all
116 // The preferred size of this View 160 // The preferred size of this View
117 gfx::Size preferred_size_; 161 gfx::Size preferred_size_;
118 162
119 // True if the native view is being resized using the fast method described 163 // True if the native view is being resized using the fast method described
120 // in the setter/accessor above. 164 // in the setter/accessor above.
121 bool fast_resize_; 165 bool fast_resize_;
122 166
123 // Value of |fast_resize_| during the last call to Layout. 167 // Value of |fast_resize_| during the last call to Layout.
124 bool fast_resize_at_last_layout_; 168 bool fast_resize_at_last_layout_;
125 169
170 // gravity value to be used on the next call to ShowWidget.
171 FastResizeGravity fast_resize_gravity_;
172
126 // The view that should be given focus when this NativeViewHost is focused. 173 // The view that should be given focus when this NativeViewHost is focused.
127 View* focus_view_; 174 View* focus_view_;
128 175
129 DISALLOW_COPY_AND_ASSIGN(NativeViewHost); 176 DISALLOW_COPY_AND_ASSIGN(NativeViewHost);
130 }; 177 };
131 178
132 } // namespace views 179 } // namespace views
133 180
134 #endif // UI_VIEWS_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_ 181 #endif // UI_VIEWS_CONTROLS_NATIVE_NATIVE_VIEW_HOST_H_
OLDNEW
« no previous file with comments | « no previous file | ui/views/controls/native/native_view_host.cc » ('j') | ui/views/controls/native/native_view_host_aura.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698