[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / anchor.h
1 #ifndef DALI_TOOLKIT_TEXT_ANCHOR_H
2 #define DALI_TOOLKIT_TEXT_ANCHOR_H
3
4 /*
5  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali-toolkit/internal/text/text-definitions.h>
23
24 namespace Dali
25 {
26 namespace Toolkit
27 {
28 namespace Text
29 {
30 /**
31  * @brief An anchor within the text.
32  */
33 struct Anchor
34 {
35   CharacterIndex startIndex; ///< The character's start index of the anchor within the string.
36   CharacterIndex endIndex;   ///< The character's end index of the anchor within the string.
37   char*          href;       ///< The url path
38
39   uint32_t colorRunIndex;               ///< RunIndex of color run, used to change color when property updated or clicked.
40   uint32_t underlinedCharacterRunIndex; ///< RunIndex of underline run, used to change color when property updated or clicked.
41
42   Vector4 markupClickedColor; ///< The markup color of the anchor when clicked. if there is no markup attribute, the default color stored in the controller is used.
43
44   bool     isClicked               = false; ///< Whether the anchor is clicked or not.
45   bool     isMarkupColorSet        = false; ///< Whether the markup color has been set or not.
46   bool     isMarkupClickedColorSet = false; ///< Whether the markup clicked color has been set or not.
47 };
48
49 } // namespace Text
50
51 } // namespace Toolkit
52
53 } // namespace Dali
54
55 #endif // DALI_TOOLKIT_TEXT_ANCHOR_H