/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */
// Flags to pass to PresShell::SetCapturingContent(). enumclass CaptureFlags {
None = 0, // When assigning capture, ignore whether capture is allowed or not.
IgnoreAllowedState = 1 << 0, // Set if events should be targeted at the capturing content or its children.
RetargetToElement = 1 << 1, // Set if the current capture wants drags to be prevented.
PreventDragStart = 1 << 2, // Set when the mouse is pointer locked, and events are sent to locked // element.
PointerLock = 1 << 3,
};
enumclass ResizeReflowOptions : uint32_t {
NoOption = 0, // the resulting BSize can be less than the given one, producing // shrink-to-fit sizing in the block dimension
BSizeLimit = 1 << 0,
};
enumclass IntrinsicDirty { // Don't mark any intrinsic inline sizes dirty.
None, // Mark intrinsic inline sizes dirty on aFrame and its ancestors.
FrameAndAncestors, // Mark intrinsic inline sizes dirty on aFrame, its ancestors, and its // descendants.
FrameAncestorsAndDescendants,
};
enumclass ReflowRootHandling {
PositionOrSizeChange, // aFrame is changing position or size
NoPositionOrSizeChange, // ... NOT changing ...
InferFromBitToAdd, // is changing iff (aBitToAdd == NS_FRAME_IS_DIRTY)
// Note: With IntrinsicDirty::FrameAncestorsAndDescendants, these can also // apply to out-of-flows in addition to aFrame.
};
// Indicates where to scroll on a given axis. struct WhereToScroll { // The percentage of the scroll axis that we're scrolling to. // Nothing() represents "scroll to nearest".
Maybe<int16_t> mPercentage;
// Default is nearest.
constexpr WhereToScroll() = default;
// See the comment for constructor of ScrollAxis for the detail. enumclass WhenToScroll : uint8_t {
Always,
IfNotVisible,
IfNotFullyVisible,
};
struct ScrollAxis final { /** * aWhere: * Either a percentage or a special value. PresShell defines: * * (Default) kScrollMinimum = -1: The visible area is scrolled the * minimum amount to show as much as possible of the frame. This won't * hide any initially visible part of the frame. * * kScrollToTop = 0: The frame's upper edge is aligned with the top edge * of the visible area. * * kScrollToBottom = 100: The frame's bottom edge is aligned with the * bottom edge of the visible area. * * kScrollToLeft = 0: The frame's left edge is aligned with the left edge * of the visible area. * * kScrollToRight = 100: The frame's right edge is aligned* with the right * edge of the visible area. * * kScrollToCenter = 50: The frame is centered along the axis the * ScrollAxis is used for. * * Other values are treated as a percentage, and the point*"percent" * down the frame is placed at the point "percent" down the visible area. * * aWhen: * * (Default) WhenToScroll::IfNotFullyVisible: Move the frame only if it is * not fully visible (including if it's not visible at all). Note that * in this case if the frame is too large to fit in view, it will only * be scrolled if more of it can fit than is already in view. * * WhenToScroll::IfNotVisible: Move the frame only if none of it is * visible. * * WhenToScroll::Always: Move the frame regardless of its current * visibility. * * aOnlyIfPerceivedScrollableDirection: * If the direction is not a perceived scrollable direction (i.e. no * scrollbar showing and less than one device pixel of scrollable * distance), don't scroll. Defaults to false.
*/ explicit ScrollAxis(WhereToScroll aWhere = WhereToScroll::Nearest,
WhenToScroll aWhen = WhenToScroll::IfNotFullyVisible, bool aOnlyIfPerceivedScrollableDirection = false)
: mWhereToScroll(aWhere),
mWhenToScroll(aWhen),
mOnlyIfPerceivedScrollableDirection(
aOnlyIfPerceivedScrollableDirection) {}
// This is a private enum class of PresShell, but currently, // MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS isn't available in class definition. // Therefore, we need to put this here. enumclass RenderingStateFlags : uint8_t {
None = 0,
IgnoringViewportScrolling = 1 << 0,
DrawWindowNotFlushing = 1 << 1,
};
// The state of the dynamic toolbar on Mobile. enumclass DynamicToolbarState {
None, // No dynamic toolbar, i.e. the toolbar is static or there is // no available toolbar.
Expanded, // The dynamic toolbar is expanded to the maximum height.
InTransition, // The dynamic toolbar is being shown/hidden.
Collapsed, // The dynamic toolbar is collapsed to zero height.
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.