namespace Terminal.Gui;
///
/// Settings for how the behaves relative to the View's Content area.
///
///
/// See the Layout Deep Dive for more information:
///
[Flags]
public enum ViewportSettings
{
///
/// No settings.
///
None = 0,
///
/// If set, .X can be set to negative values enabling scrolling beyond the left of
/// the
/// content area.
///
/// When not set, .X is constrained to positive values.
///
///
AllowNegativeX = 1,
///
/// If set, .Y can be set to negative values enabling scrolling beyond the top of the
/// content area.
///
/// When not set, .Y is constrained to positive values.
///
///
AllowNegativeY = 2,
///
/// If set, .Size can be set to negative coordinates enabling scrolling beyond the
/// top-left of the
/// content area.
///
/// When not set, .Size is constrained to positive coordinates.
///
///
AllowNegativeLocation = AllowNegativeX | AllowNegativeY,
///
/// If set, .X can be set values greater than
/// .Width enabling scrolling beyond the right
/// of the content area.
///
/// When not set, .X is constrained to
/// .Width - 1.
/// This means the last column of the content will remain visible even if there is an attempt to scroll the
/// Viewport past the last column.
///
///
/// The practical effect of this is that the last column of the content will always be visible.
///
///
AllowXGreaterThanContentWidth = 4,
///
/// If set, .Y can be set values greater than
/// .Height enabling scrolling beyond the right
/// of the content area.
///
/// When not set, .Y is constrained to
/// .Height - 1.
/// This means the last row of the content will remain visible even if there is an attempt to scroll the Viewport
/// past the last row.
///
///
/// The practical effect of this is that the last row of the content will always be visible.
///
///
AllowYGreaterThanContentHeight = 8,
///
/// If set, .Size can be set values greater than
/// enabling scrolling beyond the bottom-right
/// of the content area.
///
/// When not set, is constrained to -1.
/// This means the last column and row of the content will remain visible even if there is an attempt to
/// scroll the Viewport past the last column or row.
///
///
AllowLocationGreaterThanContentSize = AllowXGreaterThanContentWidth | AllowYGreaterThanContentHeight,
///
/// By default, clipping is applied to the . Setting this flag will cause clipping to be
/// applied to the visible content area.
///
ClipContentOnly = 16,
///
/// If set will clear only the portion of the content
/// area that is visible within the . This is useful for views that have a
/// content area larger than the Viewport and want the area outside the content to be visually distinct.
///
/// must be set for this setting to work (clipping beyond the visible area must be
/// disabled).
///
///
ClearContentOnly = 32
}