2 * Copyright (c) 2019 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.ComponentModel;
19 using Tizen.NUI.BaseComponents;
24 /// [Draft] A MeasureSpecification is used during the Measure pass by a LayoutGroup to inform it's children how to be measured.
25 /// For instance, it may measure a child with an exact width and an unspecified height in order to determine height for width.
27 public struct MeasureSpecification
30 /// MeasureSpecification Size value.
32 /// <since_tizen> 6 </since_tizen>
33 public LayoutLength Size;
36 /// MeasureSpecification Mode.
38 /// <since_tizen> 6 </since_tizen>
39 public MeasureSpecification.ModeType Mode;
42 /// Constructor taking size and mode type.
44 /// <param name="size">size value.</param>
45 /// <param name="mode">mode value.</param>
46 /// <since_tizen> 6 </since_tizen>
47 public MeasureSpecification(LayoutLength size, MeasureSpecification.ModeType mode)
54 /// Size mode for this MeasureSpecification
56 /// <since_tizen> 6 </since_tizen>
60 /// This is used by a parent to determine the desired dimension of a child layout.
64 /// This is used by a parent to impose an exact size on the child.
65 /// The child must use this size, and guarantee that all of its descendants will fit within this size.
69 /// This is used by the parent to impose a maximum size on the child.
70 /// The child must guarantee that it and all of it's descendants will fit within this size.