1 #ifndef DALI_TOOLKIT_LAYOUTING_MEASURED_SIZE_H
2 #define DALI_TOOLKIT_LAYOUTING_MEASURED_SIZE_H
5 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
20 #include <dali/public-api/common/dali-common.h>
21 #include <dali-toolkit/devel-api/layouting/layout-length.h>
22 #include <dali-toolkit/public-api/dali-toolkit-common.h>
30 * Class that encodes a measurement and a measure state, which is set if the measured size is too small.
32 class DALI_TOOLKIT_API MeasuredSize
38 MEASURED_SIZE_OK, ///< The measured size is good
39 MEASURED_SIZE_TOO_SMALL ///< The measured size is too small
43 : mMeasuredSize( 0u ),
44 mState ( MeasuredSize::State::MEASURED_SIZE_OK )
48 MeasuredSize( LayoutLength measuredSize )
49 : mMeasuredSize( measuredSize ),
50 mState ( MeasuredSize::State::MEASURED_SIZE_OK )
54 MeasuredSize( LayoutLength measuredSize, MeasuredSize::State state )
55 : mMeasuredSize( measuredSize ),
60 ~MeasuredSize() = default;
62 MeasuredSize& operator=( const MeasuredSize& rhs )
64 this->mMeasuredSize = rhs.mMeasuredSize;
65 this->mState = rhs.mState;
69 MeasuredSize& operator=( LayoutLength::IntType rhs )
71 this->mMeasuredSize = rhs;
72 this->mState = State::MEASURED_SIZE_OK;
76 inline bool operator==( MeasuredSize value )
78 return mMeasuredSize == value.mMeasuredSize;
81 inline bool operator!=( MeasuredSize value )
83 return mMeasuredSize != value.mMeasuredSize;
86 inline operator LayoutLength::IntType()
88 return mMeasuredSize.mValue;
91 inline void SetState( MeasuredSize::State state )
96 inline MeasuredSize::State GetState()
101 inline void SetSize( LayoutLength size )
103 mMeasuredSize = size;
105 inline LayoutLength GetSize()
107 return mMeasuredSize;
111 LayoutLength mMeasuredSize; ///< The measured size
112 State mState; ///< The measured state
115 } //namespace Toolkit
119 #endif // DALI_TOOLKIT_LAYOUTING_MEASURED_SIZE_H