Merge "Fix svace issue for dli-extra" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / bounded-paragraph-run.h
1 #ifndef DALI_TOOLKIT_TEXT_BOUNDED_PARAGRAPH_RUN_H
2 #define DALI_TOOLKIT_TEXT_BOUNDED_PARAGRAPH_RUN_H
3
4 /*
5  * Copyright (c) 2022 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 // EXTERNAL INCLUDES
22 #include <dali/public-api/math/vector2.h>
23
24 // INTERNAL INCLUDES
25 #include <dali-toolkit/internal/text/abstract-style-character-run.h>
26 #include <dali-toolkit/public-api/text/text-enumerations.h>
27
28 namespace Dali
29 {
30 namespace Toolkit
31 {
32 namespace Text
33 {
34 /**
35  * @brief BoundedParagraphRun
36  *
37  * In terms of the bidirectional algorithm, a 'paragraph' is understood as a run of characters between Paragraph Separators or appropriate Newline Functions.
38  * A 'paragraph' may also be determined by higher-level protocols like a mark-up tag.
39  * Bounded-paragraph is a pragraph that have been bounded by explicit tags like a mark-up tag.
40  * Bounded-paragraph could contain multi paragraphs that have been breaked by Paragraph Separators or appropriate Newline Functions.
41  * This will be used to handle information for the attributes of markup tag. Like TextAlign, TextDirection, TextIndent, LineHeight, etc.
42  */
43 struct BoundedParagraphRun : public AbstractStyleCharacterRun
44 {
45   /**
46    * Default constructor to set the default values of bitfields
47    */
48   BoundedParagraphRun()
49   : AbstractStyleCharacterRun(),
50     horizontalAlignment(Text::HorizontalAlignment::BEGIN),
51     relativeLineSize(1),
52     horizontalAlignmentDefined{false},
53     relativeLineSizeDefined(false)
54   {
55   }
56
57   Text::HorizontalAlignment::Type horizontalAlignment;            ///< The paragraph horizontal alignment. Values "BEGIN" "CENTER" "END".
58   float                           relativeLineSize;               ///< The relative line height to be used for this paragaraph.
59   bool                            horizontalAlignmentDefined : 1; ///< Whether the horizontal alignment is defined.
60   bool                            relativeLineSizeDefined : 1;    ///< Whether the relative line height is defined for this paragraph.
61 };
62
63 } // namespace Text
64
65 } // namespace Toolkit
66
67 // Allow BoundedParagraphRun to be treated as a POD type
68 template<>
69 struct TypeTraits<Dali::Toolkit::Text::BoundedParagraphRun> : public Dali::BasicTypes<Dali::Toolkit::Text::BoundedParagraphRun>
70 {
71   enum
72   {
73     IS_TRIVIAL_TYPE = true
74   };
75 };
76
77 } // namespace Dali
78
79 #endif // DALI_TOOLKIT_TEXT_BOUNDED_PARAGRAPH_RUN_H