1 #ifndef DALI_TOOLKIT_INTERNAL_LAYOUTING_LAYOUT_BASE_DATA_IMPL_H_H
2 #define DALI_TOOLKIT_INTERNAL_LAYOUTING_LAYOUT_BASE_DATA_IMPL_H_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-toolkit/devel-api/layouting/layout-item-impl.h>
21 #include <dali-toolkit/devel-api/layouting/layout-controller.h>
22 #include <dali-toolkit/devel-api/layouting/layout-size.h>
33 class LayoutItem::Impl
39 BaseObject* mOwner; ///< Control or Visual that owns this layout. Raw pointer to prevent cyclic references
40 LayoutParent* mLayoutParent; ///< The containing layout parent.
42 MeasureSpec mOldWidthMeasureSpec;
43 MeasureSpec mOldHeightMeasureSpec;
44 LayoutSize mMinimumSize;
46 MeasuredSize mMeasuredWidth;
47 MeasuredSize mMeasuredHeight;
55 * This view is visible.
56 * Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
57 * android:visibility}.
59 static const int VISIBLE = 0x00000000;
62 * This view is invisible, but it still takes up space for layout purposes.
63 * Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
64 * android:visibility}.
66 static const int INVISIBLE = 0x00000004;
69 * This view is invisible, and it doesn't take any space for layout
70 * purposes. Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
71 * android:visibility}.
73 static const int GONE = 0x00000008;
76 * Mask for use with setFlags indicating bits used for visibility.
79 static const int VISIBILITY_MASK = 0x0000000C;
81 static const int PRIVATE_FLAG_MEASURED_DIMENSION_SET = 0x00000001;
82 static const int PRIVATE_FLAG_FORCE_LAYOUT = 0x00000002;
83 static const int PRIVATE_FLAG_LAYOUT_REQUIRED = 0x00000004;
84 static const int PRIVATE_FLAG_IS_LAID_OUT = 0x00000008;
85 static const int PRIVATE_FLAG_MEASURE_NEEDED_BEFORE_LAYOUT = 0x00000010; ///< Flag indicating that a call to measure() was skipped and should be done instead when layout() is invoked.
86 static const int PRIVATE_FLAG_HAS_BOUNDS = 0x00000020;
93 inline void ClearPrivateFlag( int flag )
95 mPrivateFlags &= ~flag;
98 inline void SetPrivateFlag( int flag )
100 mPrivateFlags |= flag;
103 inline bool GetPrivateFlag( int flag )
105 return ( mPrivateFlags & flag ) != 0;
108 static bool sUseZeroUnspecifiedMeasureSpec;
112 } // namespace Internal
113 } // namespace Toolkit
116 #endif //DALI_TOOLKIT_INTERNAL_LAYOUTING_LAYOUT_BASE_DATA_IMPL_H_H