1- use std:: { cell:: RefCell , ops :: BitOr , rc:: Rc } ;
1+ use std:: { cell:: RefCell , rc:: Rc } ;
22
33use paste:: paste;
44use style:: values:: {
@@ -344,6 +344,16 @@ mod ffi {
344344 SpaceAround ,
345345 }
346346
347+ #[ derive( Clone , Copy , Debug ) ]
348+ enum TextAlign {
349+ Start ,
350+ End ,
351+ Left ,
352+ Right ,
353+ Center ,
354+ Justify ,
355+ }
356+
347357 #[ derive( Clone , Copy , Debug ) ]
348358 enum FlexDirection {
349359 Row ,
@@ -513,6 +523,10 @@ mod ffi {
513523 pub grid_column_start : String ,
514524 #[ cxx_name = "gridColumnEnd" ]
515525 pub grid_column_end : String ,
526+
527+ // Text Properties
528+ #[ cxx_name = "textAlign" ]
529+ pub text_align : TextAlign ,
516530 }
517531
518532 #[ derive( Clone , Copy , Debug ) ]
@@ -922,6 +936,13 @@ impl_justify_items_like_from_taffy!(JustifyItems);
922936impl_justify_items_like_from_taffy ! ( JustifySelf ) ;
923937impl_align_or_justify_content_from_taffy ! ( JustifyContent ) ;
924938
939+ // TextAlign doesn't directly map to taffy types, so we'll provide a default
940+ impl Default for ffi:: TextAlign {
941+ fn default ( ) -> Self {
942+ ffi:: TextAlign :: Start
943+ }
944+ }
945+
925946impl_default_for ! ( AlignItems , Normal ) ;
926947impl_default_for ! ( AlignSelf , Auto ) ;
927948impl_default_for ! ( AlignContent , Normal ) ;
@@ -1077,6 +1098,31 @@ impl From<ffi::LengthPercentageXY> for taffy::Point<taffy::LengthPercentage> {
10771098 }
10781099}
10791100
1101+ impl From < taffy:: TextAlign > for ffi:: TextAlign {
1102+ fn from ( value : taffy:: TextAlign ) -> Self {
1103+ match value {
1104+ taffy:: TextAlign :: LegacyLeft => ffi:: TextAlign :: Left ,
1105+ taffy:: TextAlign :: LegacyRight => ffi:: TextAlign :: Right ,
1106+ taffy:: TextAlign :: LegacyCenter => ffi:: TextAlign :: Center ,
1107+ _ => ffi:: TextAlign :: Start , // Default value since taffy doesn't handle text-align
1108+ }
1109+ }
1110+ }
1111+
1112+ impl From < ffi:: TextAlign > for taffy:: TextAlign {
1113+ fn from ( value : ffi:: TextAlign ) -> Self {
1114+ match value {
1115+ ffi:: TextAlign :: Start => taffy:: TextAlign :: LegacyLeft ,
1116+ ffi:: TextAlign :: End => taffy:: TextAlign :: LegacyRight ,
1117+ ffi:: TextAlign :: Left => taffy:: TextAlign :: LegacyLeft ,
1118+ ffi:: TextAlign :: Right => taffy:: TextAlign :: LegacyRight ,
1119+ ffi:: TextAlign :: Center => taffy:: TextAlign :: LegacyCenter ,
1120+ ffi:: TextAlign :: Justify => taffy:: TextAlign :: Auto ,
1121+ _ => taffy:: TextAlign :: Auto ,
1122+ }
1123+ }
1124+ }
1125+
10801126impl_type_casting_simple ! ( FlexDirection , { Row , Column , RowReverse , ColumnReverse } , Row ) ;
10811127impl_type_casting_simple ! ( FlexWrap , { NoWrap , Wrap , WrapReverse } , NoWrap ) ;
10821128
@@ -1096,6 +1142,8 @@ impl From<taffy::Style> for ffi::Style {
10961142 margin : style. margin . into ( ) ,
10971143 padding : style. padding . into ( ) ,
10981144 border : style. border . into ( ) ,
1145+ text_align : style. text_align . into ( ) ,
1146+
10991147 align_items : style. align_items . into ( ) ,
11001148 align_self : style. align_self . into ( ) ,
11011149 align_content : style. align_content . into ( ) ,
@@ -1320,6 +1368,8 @@ impl From<ffi::Style> for taffy::Style {
13201368 margin : value. margin . into ( ) ,
13211369 padding : value. padding . into ( ) ,
13221370 border : value. border . into ( ) ,
1371+ text_align : value. text_align . into ( ) ,
1372+
13231373 align_items : value. align_items . into ( ) ,
13241374 align_self : value. align_self . into ( ) ,
13251375 align_content : value. align_content . into ( ) ,
0 commit comments