[NUI] TCSACR-226 code change (#1032)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / Layouting / MeasuredSize.cs
1 /*
2  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 using System.ComponentModel;
19 using Tizen.NUI.BaseComponents;
20
21 namespace Tizen.NUI
22 {
23     /// <summary>
24     /// [Draft] Class that encodes a measurement and a measure state, which is set if the measured size is too small.
25     /// </summary>
26     public struct MeasuredSize
27     {
28         /// <summary>
29         /// Constructor
30         /// </summary>
31         /// <param name="measuredSize">size parameter</param>
32         /// <param name="state">State</param>
33         /// <since_tizen> 6 </since_tizen>
34         public MeasuredSize(LayoutLength measuredSize, MeasuredSize.StateType state)
35         {
36             Size = measuredSize;
37             State = state;
38         }
39
40         /// <summary>
41         /// Creates a MeasuredSize from a LayoutLength
42         /// </summary>
43         /// <param name="measuredSize">LayoutLength to create </param>
44         /// <since_tizen> 6 </since_tizen>
45         /// <returns> Returns a MeasuredSize object</returns>
46         public static implicit operator MeasuredSize(LayoutLength measuredSize)
47         {
48             return new MeasuredSize(measuredSize, StateType.MeasuredSizeOK);
49         }
50
51         /// <summary>
52         /// LayoutLength size property
53         /// </summary>
54         /// <since_tizen> 6 </since_tizen>
55         public LayoutLength Size{ get; set;}
56
57         /// <summary>
58         /// Measured state for this size.
59         /// </summary>
60         /// <since_tizen> 6 </since_tizen>
61         public StateType State{ get; set; }
62
63         /// <summary>
64         /// Measured states for a Size value.
65         /// </summary>
66         /// <since_tizen> 6 </since_tizen>
67         public enum StateType
68         {
69             /// <summary>
70             /// The measured size is good
71             /// </summary>
72             MeasuredSizeOK,
73             /// <summary>
74             /// The measured size is too small
75             /// </summary>
76             MeasuredSizeTooSmall
77         }
78     }
79 }