235 lines
6.3 KiB
C#
235 lines
6.3 KiB
C#
![]() |
/**
|
|||
|
* Copyright (c) 2014-present, Facebook, Inc.
|
|||
|
* All rights reserved.
|
|||
|
*
|
|||
|
* This source code is licensed under the BSD-style license found in the
|
|||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|||
|
*/
|
|||
|
|
|||
|
using System;
|
|||
|
|
|||
|
namespace Facebook.CSSLayout
|
|||
|
{
|
|||
|
public partial class CSSNode
|
|||
|
{
|
|||
|
public static CSSNode Create(
|
|||
|
CSSDirection? styleDirection = null,
|
|||
|
CSSFlexDirection? flexDirection = null,
|
|||
|
CSSJustify? justifyContent = null,
|
|||
|
CSSAlign? alignContent = null,
|
|||
|
CSSAlign? alignItems = null,
|
|||
|
CSSAlign? alignSelf = null,
|
|||
|
CSSPositionType? positionType = null,
|
|||
|
CSSWrap? wrap = null,
|
|||
|
CSSOverflow? overflow = null,
|
|||
|
float? flex = null,
|
|||
|
float? flexGrow = null,
|
|||
|
float? flexShrink = null,
|
|||
|
float? flexBasis = null,
|
|||
|
Spacing position = null,
|
|||
|
Spacing margin = null,
|
|||
|
Spacing padding = null,
|
|||
|
Spacing border = null,
|
|||
|
float? styleWidth = null,
|
|||
|
float? styleHeight = null,
|
|||
|
float? styleMaxWidth = null,
|
|||
|
float? styleMaxHeight = null,
|
|||
|
float? styleMinWidth = null,
|
|||
|
float? styleMinHeight = null)
|
|||
|
{
|
|||
|
CSSNode node = new CSSNode();
|
|||
|
|
|||
|
if (styleDirection.HasValue)
|
|||
|
{
|
|||
|
node.StyleDirection = styleDirection.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (flexDirection.HasValue)
|
|||
|
{
|
|||
|
node.FlexDirection = flexDirection.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (justifyContent.HasValue)
|
|||
|
{
|
|||
|
node.JustifyContent = justifyContent.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (alignContent.HasValue)
|
|||
|
{
|
|||
|
node.AlignContent = alignContent.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (alignItems.HasValue)
|
|||
|
{
|
|||
|
node.AlignItems = alignItems.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (alignSelf.HasValue)
|
|||
|
{
|
|||
|
node.AlignSelf = alignSelf.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (positionType.HasValue)
|
|||
|
{
|
|||
|
node.PositionType = positionType.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (wrap.HasValue)
|
|||
|
{
|
|||
|
node.Wrap = wrap.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (overflow.HasValue)
|
|||
|
{
|
|||
|
node.Overflow = overflow.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (flex.HasValue)
|
|||
|
{
|
|||
|
node.Flex = flex.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (flexGrow.HasValue)
|
|||
|
{
|
|||
|
node.FlexGrow = flexGrow.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (flexShrink.HasValue)
|
|||
|
{
|
|||
|
node.FlexShrink = flexShrink.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (flexBasis.HasValue)
|
|||
|
{
|
|||
|
node.FlexBasis = flexBasis.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (position != null)
|
|||
|
{
|
|||
|
if (position.Top.HasValue)
|
|||
|
{
|
|||
|
node.SetPosition(CSSEdge.Top, position.Top.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (position.Bottom.HasValue)
|
|||
|
{
|
|||
|
node.SetPosition(CSSEdge.Bottom, position.Bottom.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (position.Left.HasValue)
|
|||
|
{
|
|||
|
node.SetPosition(CSSEdge.Left, position.Left.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (position.Right.HasValue)
|
|||
|
{
|
|||
|
node.SetPosition(CSSEdge.Right, position.Right.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (margin != null)
|
|||
|
{
|
|||
|
if (margin.Top.HasValue)
|
|||
|
{
|
|||
|
node.SetMargin(CSSEdge.Top, margin.Top.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (margin.Bottom.HasValue)
|
|||
|
{
|
|||
|
node.SetMargin(CSSEdge.Bottom, margin.Bottom.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (margin.Left.HasValue)
|
|||
|
{
|
|||
|
node.SetMargin(CSSEdge.Left, margin.Left.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (margin.Right.HasValue)
|
|||
|
{
|
|||
|
node.SetMargin(CSSEdge.Right, margin.Right.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (padding != null)
|
|||
|
{
|
|||
|
if (padding.Top.HasValue)
|
|||
|
{
|
|||
|
node.SetPadding(CSSEdge.Top, padding.Top.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (padding.Bottom.HasValue)
|
|||
|
{
|
|||
|
node.SetPadding(CSSEdge.Bottom, padding.Bottom.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (padding.Left.HasValue)
|
|||
|
{
|
|||
|
node.SetPadding(CSSEdge.Left, padding.Left.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (padding.Right.HasValue)
|
|||
|
{
|
|||
|
node.SetPadding(CSSEdge.Right, padding.Right.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (border != null)
|
|||
|
{
|
|||
|
if (border.Top.HasValue)
|
|||
|
{
|
|||
|
node.SetBorder(CSSEdge.Top, border.Top.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (border.Bottom.HasValue)
|
|||
|
{
|
|||
|
node.SetBorder(CSSEdge.Bottom, border.Bottom.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (border.Left.HasValue)
|
|||
|
{
|
|||
|
node.SetBorder(CSSEdge.Left, border.Left.Value);
|
|||
|
}
|
|||
|
|
|||
|
if (border.Right.HasValue)
|
|||
|
{
|
|||
|
node.SetBorder(CSSEdge.Right, border.Right.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (styleWidth.HasValue)
|
|||
|
{
|
|||
|
node.StyleWidth = styleWidth.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (styleHeight.HasValue)
|
|||
|
{
|
|||
|
node.StyleHeight = styleHeight.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (styleMinWidth.HasValue)
|
|||
|
{
|
|||
|
node.StyleMinWidth = styleMinWidth.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (styleMinHeight.HasValue)
|
|||
|
{
|
|||
|
node.StyleMinHeight = styleMinHeight.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (styleMaxWidth.HasValue)
|
|||
|
{
|
|||
|
node.StyleMaxWidth = styleMaxWidth.Value;
|
|||
|
}
|
|||
|
|
|||
|
if (styleMaxHeight.HasValue)
|
|||
|
{
|
|||
|
node.StyleMaxHeight = styleMaxHeight.Value;
|
|||
|
}
|
|||
|
|
|||
|
return node;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|