1 #ifndef DALI_TOOLKIT_DEVEL_LAYOUT_CONTROLLER_H
2 #define DALI_TOOLKIT_DEVEL_LAYOUT_CONTROLLER_H
4 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 #include <dali/public-api/object/base-handle.h>
20 #include <dali/public-api/common/dali-common.h>
21 #include <dali-toolkit/public-api/controls/control.h>
22 #include <dali-toolkit/devel-api/layouting/layout-item.h>
23 #include <dali-toolkit/devel-api/layouting/layout-group.h>
32 class LayoutController;
36 * @brief Controls the process of layouting the control tree. It provides methods to enable
37 * controls to re-layout and internal systems to separately measure and layout controls.
39 class DALI_TOOLKIT_API LayoutController : public BaseHandle
43 * @brief Constructor - create an uninitialized handle.
45 * This can be initialized with LayoutController::Get().
46 * Calling member functions with an uninitialized handle is not allowed.
53 * This is non-virtual since derived Handle types must not contain data or virtual methods.
58 * @brief Gets the singleton of the LayoutController object.
60 * @return A handle to the LayoutController object.
62 static LayoutController Get();
65 * @brief Request for a particular layout (wrapping a control or a visual) to be measured and laid out.
66 * @param[in] layout The layout to measure & relayout.
68 void RequestLayout( LayoutItem layout );
73 * @brief This constructor is used by LayoutController::New() methods.
75 * @param[in] actor A pointer to a newly allocated Dali resource
77 explicit DALI_INTERNAL LayoutController( Internal::LayoutController *impl );
81 } // namespace Toolkit
84 #endif // DALI_TOOLKIT_DEVEL_LAYOUT_CONTROLLER_H