1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef ROSEN_MODULES_TEXGINE_SRC_TEXGINE_DRAWING_TEXGINE_FONT_STYLE_H 17 #define ROSEN_MODULES_TEXGINE_SRC_TEXGINE_DRAWING_TEXGINE_FONT_STYLE_H 18 19 #include <memory> 20 21 #include "drawing.h" 22 23 namespace OHOS { 24 namespace Rosen { 25 namespace TextEngine { 26 class TexgineFontStyle { 27 public: 28 enum class Slant { 29 K_UPRIGHT_SLANT, 30 K_ITALIC_SLANT, 31 K_OBLIQUE_SLANT, 32 }; 33 34 TexgineFontStyle(); 35 36 TexgineFontStyle(int weight, int width, Slant slant); 37 38 explicit TexgineFontStyle(const std::shared_ptr<RSFontStyle> style); 39 40 /* 41 * @brief Sets SkFontStyle to TexgineFontStyle 42 */ 43 void SetStyle(const RSFontStyle &style); 44 45 /* 46 * @brief Sets SkFontStyle to TexgineFontStyle 47 */ 48 void SetFontStyle(const std::shared_ptr<RSFontStyle> fontStyle); 49 50 /* 51 * @brief Returns SkFontStyle 52 */ 53 std::shared_ptr<RSFontStyle> GetFontStyle() const; 54 55 /* 56 * @brief Returns weight 57 */ 58 int GetWeight() const; 59 60 /* 61 * @brief Returns width 62 */ 63 int GetWidth() const; 64 65 private: 66 std::shared_ptr<RSFontStyle> fontStyle_ = nullptr; 67 }; 68 } // namespace TextEngine 69 } // namespace Rosen 70 } // namespace OHOS 71 72 #endif // ROSEN_MODULES_TEXGINE_SRC_TEXGINE_DRAWING_TEXGINE_FONT_STYLE_H 73