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

Unified Diff: ui/base/test/scoped_preferred_scroller_style_mac.mm

Issue 1671313002: MacViews: Overlay Scrollbars with Show/Hide Animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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/base/test/scoped_preferred_scroller_style_mac.mm
diff --git a/ui/base/test/scoped_preferred_scroller_style_legacy_mac.mm b/ui/base/test/scoped_preferred_scroller_style_mac.mm
similarity index 51%
rename from ui/base/test/scoped_preferred_scroller_style_legacy_mac.mm
rename to ui/base/test/scoped_preferred_scroller_style_mac.mm
index 82e9a5b48423d58d11fc5723fcc30c46ad0a3b83..63bf9331a002c3599339f925d43522e1ed56b621 100644
--- a/ui/base/test/scoped_preferred_scroller_style_legacy_mac.mm
+++ b/ui/base/test/scoped_preferred_scroller_style_mac.mm
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#import "ui/base/test/scoped_preferred_scroller_style_legacy_mac.h"
+#import "ui/base/test/scoped_preferred_scroller_style_mac.h"
#import "base/mac/sdk_forward_declarations.h"
#import "base/mac/scoped_objc_class_swizzler.h"
@@ -17,13 +17,18 @@ void NotifyStyleChanged() {
object:nil];
}
+NSScrollerStyle GetScrollerStyle(bool overlay) {
+ return overlay ? NSScrollerStyleOverlay : NSScrollerStyleLegacy;
+}
+
} // namespace
-// Donates a testing implementation of +[NSScroller preferredScrollerStyle].
-@interface FakeNSScrollerPreferredStyleDonor : NSObject
+// Donates a testing implementation of +[NSScroller preferredScrollerStyle] by
+// returning NSScrollerStyleLegacy.
+@interface FakeNSScrollerPreferredStyleLegacyDonor : NSObject
@end
-@implementation FakeNSScrollerPreferredStyleDonor
+@implementation FakeNSScrollerPreferredStyleLegacyDonor
+ (NSInteger)preferredScrollerStyle {
return NSScrollerStyleLegacy;
@@ -31,31 +36,48 @@ void NotifyStyleChanged() {
@end
+// Donates a testing implementation of +[NSScroller preferredScrollerStyle] by
+// returning NSScrollerStyleOverlay.
+@interface FakeNSScrollerPreferredStyleOverlayDonor : NSObject
+@end
+
+@implementation FakeNSScrollerPreferredStyleOverlayDonor
+
++ (NSInteger)preferredScrollerStyle {
+ return NSScrollerStyleOverlay;
+}
+
+@end
+
namespace ui {
namespace test {
-ScopedPreferredScrollerStyleLegacy::ScopedPreferredScrollerStyleLegacy() {
+ScopedPreferredScrollerStyle::ScopedPreferredScrollerStyle(bool overlay) :
+ overlay_(overlay) {
if (![NSScroller respondsToSelector:@selector(preferredScrollerStyle)])
return;
NSInteger previous_style = [NSScroller preferredScrollerStyle];
+ Class style_class = overlay_ ?
+ [FakeNSScrollerPreferredStyleOverlayDonor class] :
+ [FakeNSScrollerPreferredStyleLegacyDonor class];
swizzler_.reset(
new ScopedObjCClassSwizzler([NSScroller class],
- [FakeNSScrollerPreferredStyleDonor class],
+ style_class,
@selector(preferredScrollerStyle)));
- if (previous_style != NSScrollerStyleLegacy)
+ if (previous_style != GetScrollerStyle(overlay_))
NotifyStyleChanged();
}
-ScopedPreferredScrollerStyleLegacy::~ScopedPreferredScrollerStyleLegacy() {
+ScopedPreferredScrollerStyle::~ScopedPreferredScrollerStyle() {
if (!swizzler_)
return; // Handle 10.6, which wouldn't have swizzled anything.
swizzler_.reset();
- if ([NSScroller preferredScrollerStyle] != NSScrollerStyleLegacy)
+ if ([NSScroller preferredScrollerStyle] != GetScrollerStyle(overlay_))
NotifyStyleChanged();
}

Powered by Google App Engine
This is Rietveld 408576698