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

Unified Diff: ui/views/controls/native/native_view_host.h

Issue 30993004: Reland: Implement features in NativeViewHostAura for scroll end effect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor cleanup 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 side-by-side diff with in-line comments
Download patch
Index: ui/views/controls/native/native_view_host.h
diff --git a/ui/views/controls/native/native_view_host.h b/ui/views/controls/native/native_view_host.h
index bdc51510550ca1569853639a0d615f1158159f28..917212d0d4a5273b005433be61f32946df898830 100644
--- a/ui/views/controls/native/native_view_host.h
+++ b/ui/views/controls/native/native_view_host.h
@@ -31,7 +31,39 @@ class VIEWS_EXPORT NativeViewHost : public View {
// Should views render the focus when on native controls?
static const bool kRenderNativeControlFocus;
- NativeViewHost();
+ // When performing fast resizes the contents is not actually resized, but
+ // instead the contents is positioned and clipped to give the impression of
+ // resizing. Gravity indicates the positioning of the content relative to the
+ // clipping. The default value, northwest, indicates that the top left corner
+ // of the clip and the content should align, so the bottom and right sides of
+ // the content will be clipped. For a value like south the bottom edges will
+ // align at their respective middles, thus the full vertical resize will be
+ // reflected on the top, but half of the horizontal resize will be reflected
+ // on the left and right sides. The following list is the gravity values and
+ // their alignment points for reference, coordinates relative to the
+ // respective system for the clip or contents:
+ // NorthWest (0, 0)
+ // North (width/2, 0)
+ // NorthEast (width, 0)
+ // East (width, height/2)
+ // SouthEast (width, height)
+ // South (width/2, height)
+ // SouthWest (0, height)
+ // West (0, height/2)
+ // Center (width/2, height/2)
+ enum Gravity {
+ GRAVITY_NORTHWEST,
+ GRAVITY_NORTH,
+ GRAVITY_NORTHEAST,
+ GRAVITY_EAST,
+ GRAVITY_SOUTHEAST,
+ GRAVITY_SOUTH,
+ GRAVITY_SOUTHWEST,
+ GRAVITY_WEST,
+ GRAVITY_CENTER,
+ };
+
+ NativeViewHost();
virtual ~NativeViewHost();
// Attach a gfx::NativeView to this View. Its bounds will be kept in sync
@@ -74,6 +106,23 @@ class VIEWS_EXPORT NativeViewHost : public View {
return fast_resize_at_last_layout_;
}
+ // Gravity controls how the clip is positioned relative to the native
+ // view. The specifics of this are discussed in the comment above the related
+ // enum. This call only sets the value being used, but does not cause a
+ // re-layout, so ShowWidget, via Layout, must be called before the new gravity
+ // will have an effect.
+ void set_fast_resize_gravity(Gravity gravity) {
+ fast_resize_gravity_ = gravity;
+ }
+ Gravity fast_resize_gravity() const {
+ return fast_resize_gravity_;
+ }
+
+ // Returns the appropriate, as in the comment above discussing gravity,
+ // scaling factor for the current gravity.
+ float GetWidthScaleFactor() const;
+ float GetHeightScaleFactor() const;
+
// Accessor for |native_view_|.
gfx::NativeView native_view() const { return native_view_; }
@@ -123,6 +172,9 @@ class VIEWS_EXPORT NativeViewHost : public View {
// Value of |fast_resize_| during the last call to Layout.
bool fast_resize_at_last_layout_;
+ // Gravity value to be used on the next call to ShowWidget.
+ Gravity fast_resize_gravity_;
+
// The view that should be given focus when this NativeViewHost is focused.
View* focus_view_;
« 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.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698