1 #ifndef DALI_TOOLKIT_TEXT_FONT_DESCRIPTION_RUN_H
2 #define DALI_TOOLKIT_TEXT_FONT_DESCRIPTION_RUN_H
5 * Copyright (c) 2022 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.
22 #include <dali/devel-api/text-abstraction/font-list.h>
25 #include <dali-toolkit/internal/text/abstract-style-character-run.h>
26 #include <dali-toolkit/internal/text/text-definitions.h>
35 * @brief Run of characters with the same font.
37 struct FontDescriptionRun : public AbstractStyleCharacterRun
40 * Default constructor to set the default values of bitfields
43 : AbstractStyleCharacterRun(),
46 weight{FontWeight::NONE},
47 width{FontWidth::NONE},
48 slant{FontSlant::NONE},
58 FontDescriptionRun(const CharacterRun& characterRun,
70 : AbstractStyleCharacterRun(characterRun),
71 familyName{familyName},
72 familyLength{familyLength},
77 familyDefined{familyDefined},
78 weightDefined{weightDefined},
79 widthDefined{widthDefined},
80 slantDefined{slantDefined},
81 sizeDefined{sizeDefined}
85 char* familyName; ///< The font's family name.
86 Length familyLength; ///< The length of the font's family name.
87 FontWeight weight; ///< The font's weight.
88 FontWidth width; ///< The font's width.
89 FontSlant slant; ///< The font's slant.
90 PointSize26Dot6 size; ///< The font's size.
92 bool familyDefined : 1; ///< Whether the font's family is defined.
93 bool weightDefined : 1; ///< Whether the font's weight is defined.
94 bool widthDefined : 1; ///< Whether the font's width is defined.
95 bool slantDefined : 1; ///< Whether the font's slant is defined.
96 bool sizeDefined : 1; ///< Whether the font's size is defined.
101 } // namespace Toolkit
103 // Allow FontDescriptionRun to be treated as a POD type
105 struct TypeTraits<Dali::Toolkit::Text::FontDescriptionRun> : public Dali::BasicTypes<Dali::Toolkit::Text::FontDescriptionRun>
109 IS_TRIVIAL_TYPE = true
115 #endif // DALI_TOOLKIT_TEXT_FONT_DESCRIPTION_RUN_H