fune/layout/base/ScrollTypes.h
Emilio Cobos Álvarez 11ea945833 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

Differential Revision: https://phabricator.services.mozilla.com/D28681

--HG--
extra : moz-landing-system : lando
2019-04-25 23:03:04 +00:00

46 lines
1.9 KiB
C++

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_ScrollTypes_h
#define mozilla_ScrollTypes_h
// Types used in main-thread scrolling interfaces such as nsIScrollableFrame.
namespace mozilla {
/**
* Scroll modes for main-thread scroll operations. These are mostly used
* by nsIScrollableFrame methods.
*
* When a scroll operation is requested, we ask for instant, smooth,
* smooth msd, or normal scrolling.
*
* |eSmooth| scrolls have a symmetrical acceleration and deceleration curve
* modeled with a set of splines that guarantee that the destination will be
* reached over a fixed time interval. |eSmooth| will only be smooth if smooth
* scrolling is actually enabled. This behavior is utilized by keyboard and
* mouse wheel scrolling events.
*
* |eSmoothMsd| implements a physically based model that approximates the
* behavior of a mass-spring-damper system. |eSmoothMsd| scrolls have a
* non-symmetrical acceleration and deceleration curve, can potentially
* overshoot the destination on intermediate frames, and complete over a
* variable time interval. |eSmoothMsd| will only be smooth if cssom-view
* smooth-scrolling is enabled.
*
* |eInstant| is always synchronous, |eNormal| can be asynchronous.
*
* If an |eInstant| scroll request happens while a |eSmooth| or async scroll is
* already in progress, the async scroll is interrupted and we instantly
* scroll to the destination.
*
* If an |eInstant| or |eSmooth| scroll request happens while a |eSmoothMsd|
* scroll is already in progress, the |eSmoothMsd| scroll is interrupted without
* first scrolling to the destination.
*/
enum class ScrollMode { Instant, Smooth, SmoothMsd, Normal };
} // namespace mozilla
#endif // mozilla_ScrollTypes_h