1cb93a386Sopenharmony_ci// Copyright 2019 Google LLC.
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ci#include "modules/skparagraph/include/DartTypes.h"
4cb93a386Sopenharmony_ci#include "modules/skparagraph/include/ParagraphStyle.h"
5cb93a386Sopenharmony_ci#include "src/utils/SkUTF.h"
6cb93a386Sopenharmony_ci#include "src/core/SkStringUtils.h"
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_cinamespace skia {
9cb93a386Sopenharmony_cinamespace textlayout {
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ciStrutStyle::StrutStyle() {
12cb93a386Sopenharmony_ci#ifndef USE_SKIA_TXT
13cb93a386Sopenharmony_ci    fFontStyle = SkFontStyle::Normal();
14cb93a386Sopenharmony_ci#else
15cb93a386Sopenharmony_ci    fFontStyle = RSFontStyle(
16cb93a386Sopenharmony_ci        RSFontStyle::NORMAL_WEIGHT,
17cb93a386Sopenharmony_ci        RSFontStyle::NORMAL_WIDTH,
18cb93a386Sopenharmony_ci        RSFontStyle::UPRIGHT_SLANT);
19cb93a386Sopenharmony_ci#endif
20cb93a386Sopenharmony_ci    fFontSize = 14;
21cb93a386Sopenharmony_ci    fHeight = 1;
22cb93a386Sopenharmony_ci    fLeading = -1;
23cb93a386Sopenharmony_ci    fForceHeight = false;
24cb93a386Sopenharmony_ci    fHeightOverride = false;
25cb93a386Sopenharmony_ci    fHalfLeading = false;
26cb93a386Sopenharmony_ci    fEnabled = false;
27cb93a386Sopenharmony_ci}
28cb93a386Sopenharmony_ci
29cb93a386Sopenharmony_ciParagraphStyle::ParagraphStyle() {
30cb93a386Sopenharmony_ci    fTextAlign = TextAlign::kStart;
31cb93a386Sopenharmony_ci    fTextDirection = TextDirection::kLtr;
32cb93a386Sopenharmony_ci    fLinesLimit = std::numeric_limits<size_t>::max();
33cb93a386Sopenharmony_ci    fHeight = 1;
34cb93a386Sopenharmony_ci    fTextHeightBehavior = TextHeightBehavior::kAll;
35cb93a386Sopenharmony_ci    fHintingIsOn = true;
36cb93a386Sopenharmony_ci    fReplaceTabCharacters = false;
37cb93a386Sopenharmony_ci}
38cb93a386Sopenharmony_ci
39cb93a386Sopenharmony_ciTextAlign ParagraphStyle::effective_align() const {
40cb93a386Sopenharmony_ci    if (fTextAlign == TextAlign::kStart) {
41cb93a386Sopenharmony_ci        return (fTextDirection == TextDirection::kLtr) ? TextAlign::kLeft : TextAlign::kRight;
42cb93a386Sopenharmony_ci    } else if (fTextAlign == TextAlign::kEnd) {
43cb93a386Sopenharmony_ci        return (fTextDirection == TextDirection::kLtr) ? TextAlign::kRight : TextAlign::kLeft;
44cb93a386Sopenharmony_ci    } else {
45cb93a386Sopenharmony_ci        return fTextAlign;
46cb93a386Sopenharmony_ci    }
47cb93a386Sopenharmony_ci}
48cb93a386Sopenharmony_ci}  // namespace textlayout
49cb93a386Sopenharmony_ci}  // namespace skia
50