1 #ifndef DALI_TOOLKIT_INTERNAL_ABSOLUTE_LAYOUT_H
2 #define DALI_TOOLKIT_INTERNAL_ABSOLUTE_LAYOUT_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/intrusive-ptr.h>
21 #include <dali/public-api/object/base-object.h>
22 #include <dali-toolkit/devel-api/layouting/layout-group-impl.h>
23 #include <dali-toolkit/devel-api/layouting/absolute-layout.h>
33 using AbsoluteLayoutPtr = IntrusivePtr<AbsoluteLayout>;
35 class AbsoluteLayout final : public LayoutGroup
38 static AbsoluteLayoutPtr New();
50 virtual ~AbsoluteLayout();
53 * @copydoc LayoutItem::OnMeasure
55 virtual void OnMeasure( MeasureSpec widthMeasureSpec, MeasureSpec heightMeasureSpec ) override;
58 * @copydoc LayoutItem::OnLayout
60 virtual void OnLayout( bool changed, LayoutLength l, LayoutLength t, LayoutLength r, LayoutLength b ) override;
63 AbsoluteLayout( const AbsoluteLayout& other ) = delete;
64 AbsoluteLayout& operator=( const AbsoluteLayout& other ) = delete;
68 } // namespace Internal
70 inline Internal::AbsoluteLayout& GetImplementation( Dali::Toolkit::AbsoluteLayout& handle )
72 DALI_ASSERT_ALWAYS( handle && "AbsoluteLayout handle is empty" );
73 BaseObject& object = handle.GetBaseObject();
74 return static_cast<Internal::AbsoluteLayout&>( object );
77 inline const Internal::AbsoluteLayout& GetImplementation( const Dali::Toolkit::AbsoluteLayout& handle )
79 DALI_ASSERT_ALWAYS( handle && "AbsoluteLayout handle is empty" );
80 const BaseObject& object = handle.GetBaseObject();
81 return static_cast<const Internal::AbsoluteLayout&>( object );
84 } // namespace Toolkit
87 #endif // DALI_TOOLKIT_INTERNAL_ABSOLUTE_LAYOUT_H