/*
* Copyright (c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using System.ComponentModel;
using Tizen.NUI.BaseComponents;
namespace Tizen.NUI
{
///
/// [Draft] A MeasureSpecification is used during the Measure pass by a LayoutGroup to inform it's children how to be measured.
/// For instance, it may measure a child with an exact width and an unspecified height in order to determine height for width.
///
internal struct MeasureSpecification
{
///
/// MeasureSpecification Size value.
///
public LayoutLength Size;
///
/// MeasureSpecification Mode.
///
public MeasureSpecification.ModeType Mode;
///
/// Constructor taking size and mode type.
///
/// size value.
/// mode vaue.
public MeasureSpecification(LayoutLength size, MeasureSpecification.ModeType mode)
{
Size = size;
Mode = mode;
}
public enum ModeType
{
///
/// This is used by a parent to determine the desired dimension of a child layout.
///
Unspecified,
///
/// This is used by a parent to impose an exact size on the child.
/// The child must use this size, and guarantee that all of its descendants will fit within this size.
///
Exactly,
///
/// This is used by the parent to impose a maximum size on the child.
/// The child must guarantee that it and all of it's descendants will fit within this size.
///
AtMost
}
}
}