| Index: chrome/browser/ui/cocoa/gesture_utils.mm
|
| diff --git a/chrome/browser/ui/cocoa/gesture_utils.mm b/chrome/browser/ui/cocoa/gesture_utils.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dbbd038ff70ac0c4365b22a54af45d7b7039ce66
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/cocoa/gesture_utils.mm
|
| @@ -0,0 +1,49 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#import "chrome/browser/ui/cocoa/gesture_utils.h"
|
| +
|
| +#include "base/mac/mac_util.h"
|
| +
|
| +namespace gesture_utils {
|
| +
|
| +BOOL RecognizeTwoFingerGestures() {
|
| + // Lion or higher will have support for two-finger swipe gestures.
|
| + if (!base::mac::IsOSLionOrLater())
|
| + return NO;
|
| +
|
| + // A note about preferences:
|
| + // On Lion System Preferences, the swipe gesture behavior is controlled by the
|
| + // setting in Trackpad --> More Gestures --> Swipe between pages. This setting
|
| + // has three values:
|
| + // A) Scroll left or right with two fingers. This should perform a cool
|
| + // scrolling animation, but doesn't yet <http://crbug.com/90228>.
|
| + // B) Swipe left or right with three fingers.
|
| + // C) Swipe with two or three fingers.
|
| + //
|
| + // The three-finger gesture is controlled by the integer preference
|
| + // |com.apple.trackpad.threeFingerHorizSwipeGesture|. Its value is 0 for (A)
|
| + // and 1 for (B, C).
|
| + //
|
| + // The two-finger gesture is controlled by the preference below and is boolean
|
| + // YES for (A, C) and NO for (B).
|
| + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
| + return [defaults boolForKey:@"AppleEnableSwipeNavigateWithScrolls"];
|
| +}
|
| +
|
| +// On Lion, returns YES if the scroll direction is "natural"/inverted. All other
|
| +// OSes will return NO.
|
| +BOOL IsScrollDirectionInverted() {
|
| + if (!base::mac::IsOSLionOrLater())
|
| + return NO;
|
| +
|
| + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
| + // The defaults must be synchronized here otherwise a stale value will be
|
| + // returned for an indeterminante amount of time. For some reason, this is
|
| + // not necessary in |-recognizeTwoFingerGestures|.
|
| + [defaults synchronize];
|
| + return [defaults boolForKey:@"com.apple.swipescrolldirection"];
|
| +}
|
| +
|
| +} // namespace gesture_utils
|
|
|