@@ -35,24 +35,24 @@ class TaitankLayoutConsts {
3535 const std::map<std::string, OverflowType> kOverflowMap = {{" visible" , OverflowType::OVERFLOW_VISIBLE},
3636 {" hidden" , OverflowType::OVERFLOW_HIDDEN},
3737 {" scroll" , OverflowType::OVERFLOW_SCROLL}};
38-
38+
3939 const std::map<std::string, FlexDirection> kFlexDirectionMap = {
4040 {" row" , FlexDirection::FLEX_DIRECTION_ROW},
4141 {" row-reverse" , FlexDirection::FLEX_DIRECTION_ROW_REVERSE},
4242 {" column" , FlexDirection::FLEX_DIRECTION_COLUMN},
4343 {" column-reverse" , FlexDirection::FLEX_DIRECTION_COLUNM_REVERSE}};
44-
44+
4545 const std::map<std::string, FlexWrapMode> kWrapModeMap = {{" nowrap" , FlexWrapMode::FLEX_NO_WRAP},
4646 {" wrap" , FlexWrapMode::FLEX_WRAP},
4747 {" wrap-reverse" , FlexWrapMode::FLEX_WRAP_REVERSE}};
48-
48+
4949 const std::map<std::string, FlexAlign> kJustifyMap = {{" flex-start" , FlexAlign::FLEX_ALIGN_START},
5050 {" center" , FlexAlign::FLEX_ALIGN_CENTER},
5151 {" flex-end" , FlexAlign::FLEX_ALIGN_END},
5252 {" space-between" , FlexAlign::FLEX_ALIGN_SPACE_BETWEEN},
5353 {" space-around" , FlexAlign::FLEX_ALIGN_SPACE_AROUND},
5454 {" space-evenly" , FlexAlign::FLEX_ALIGN_SPACE_EVENLY}};
55-
55+
5656 const std::map<std::string, FlexAlign> kAlignMap = {{" auto" , FlexAlign::FLEX_ALIGN_AUTO},
5757 {" flex-start" , FlexAlign::FLEX_ALIGN_START},
5858 {" center" , FlexAlign::FLEX_ALIGN_CENTER},
@@ -61,39 +61,39 @@ class TaitankLayoutConsts {
6161 {" baseline" , FlexAlign::FLEX_ALIGN_BASE_LINE},
6262 {" space-between" , FlexAlign::FLEX_ALIGN_SPACE_BETWEEN},
6363 {" space-around" , FlexAlign::FLEX_ALIGN_SPACE_AROUND}};
64-
64+
6565 const std::map<std::string, CSSDirection> kMarginMap = {{kMargin , CSSDirection::CSS_ALL},
6666 {kMarginVertical , CSSDirection::CSS_VERTICAL},
6767 {kMarginHorizontal , CSSDirection::CSS_HORIZONTAL},
6868 {kMarginLeft , CSSDirection::CSS_LEFT},
6969 {kMarginRight , CSSDirection::CSS_RIGHT},
7070 {kMarginTop , CSSDirection::CSS_TOP},
7171 {kMarginBottom , CSSDirection::CSS_BOTTOM}};
72-
72+
7373 const std::map<std::string, CSSDirection> kPaddingMap = {{kPadding , CSSDirection::CSS_ALL},
7474 {kPaddingVertical , CSSDirection::CSS_VERTICAL},
7575 {kPaddingHorizontal , CSSDirection::CSS_HORIZONTAL},
7676 {kPaddingLeft , CSSDirection::CSS_LEFT},
7777 {kPaddingRight , CSSDirection::CSS_RIGHT},
7878 {kPaddingTop , CSSDirection::CSS_TOP},
7979 {kPaddingBottom , CSSDirection::CSS_BOTTOM}};
80-
80+
8181 const std::map<std::string, CSSDirection> kPositionMap = {{kLeft , CSSDirection::CSS_LEFT},
8282 {kRight , CSSDirection::CSS_RIGHT},
8383 {kTop , CSSDirection::CSS_TOP},
8484 {kBottom , CSSDirection::CSS_BOTTOM}};
85-
85+
8686 const std::map<std::string, CSSDirection> kBorderMap = {{kBorderWidth , CSSDirection::CSS_ALL},
8787 {kBorderLeftWidth , CSSDirection::CSS_LEFT},
8888 {kBorderTopWidth , CSSDirection::CSS_TOP},
8989 {kBorderRightWidth , CSSDirection::CSS_RIGHT},
9090 {kBorderBottomWidth , CSSDirection::CSS_BOTTOM}};
91-
91+
9292 const std::map<std::string, PositionType> kPositionTypeMap = {{" relative" , PositionType::POSITION_TYPE_RELATIVE},
9393 {" absolute" , PositionType::POSITION_TYPE_ABSOLUTE}};
94-
94+
9595 const std::map<std::string, DisplayType> kDisplayTypeMap = {{" none" , DisplayType::DISPLAY_TYPE_NONE}};
96-
96+
9797 const std::map<std::string, TaitankDirection> kDirectionMap = {
9898 {" inherit" , DIRECTION_INHERIT}, {" ltr" , DIRECTION_LTR}, {" rtl" , DIRECTION_RTL}};
9999};
@@ -210,7 +210,14 @@ static CSSDirection GetCSSDirectionFromEdge(Edge edge) {
210210 }
211211}
212212
213- TaitankLayoutNode::TaitankLayoutNode () { Allocate (); }
213+ void SetGlobalScaleFactor (float scale_factor) {
214+ auto global_config = ConfigGetDefault ();
215+ if (global_config) {
216+ global_config->SetScaleFactor (scale_factor);
217+ }
218+ }
219+
220+ TaitankLayoutNode::TaitankLayoutNode (TaitankConfig* layout_config) { Allocate (layout_config); }
214221
215222TaitankLayoutNode::TaitankLayoutNode (TaitankNodeRef engine_node_) : engine_node_(engine_node_) {}
216223
@@ -651,6 +658,7 @@ void TaitankLayoutNode::SetScaleFactor(float sacle_factor) {
651658 if (config) {
652659 config->SetScaleFactor (sacle_factor);
653660 }
661+ SetGlobalScaleFactor (sacle_factor);
654662}
655663
656664void TaitankLayoutNode::SetMaxWidth (float max_width) {
@@ -818,7 +826,9 @@ void TaitankLayoutNode::SetOverflow(OverflowType overflow_type) {
818826 engine_node_->MarkAsDirty ();
819827}
820828
821- void TaitankLayoutNode::Allocate () { engine_node_ = new TaitankNode (); }
829+ void TaitankLayoutNode::Allocate (TaitankConfig* layout_config) {
830+ engine_node_ = layout_config ? new TaitankNode (layout_config) : new TaitankNode ();
831+ }
822832
823833void TaitankLayoutNode::Deallocate () {
824834 if (engine_node_ == nullptr ) return ;
@@ -832,7 +842,7 @@ void InitLayoutConstsTaitank() {
832842 }
833843}
834844
835- std::shared_ptr<LayoutNode> CreateLayoutNodeTaitank () { return std::make_shared<TaitankLayoutNode>(); }
845+ std::shared_ptr<LayoutNode> CreateLayoutNodeTaitank (TaitankConfig* layout_config ) { return std::make_shared<TaitankLayoutNode>(layout_config ); }
836846
837847} // namespace dom
838848} // namespace hippy
0 commit comments