1use crate::{
4 ArkUIAttributeBasic, ArkUICommonFontAttribute, ArkUINodeAttributeItem,
5 ArkUINodeAttributeNumber, ArkUIResult, TextAlignment, ARK_UI_NATIVE_NODE_API_1,
6};
7
8impl super::Text {
9 pub fn content<T: Into<String>>(&self, content: T) -> ArkUIResult<()> {
10 let content_property = ArkUINodeAttributeItem::String(content.into());
11 ARK_UI_NATIVE_NODE_API_1.with(|api| {
12 api.set_attribute(
13 self.raw(),
14 crate::ArkUINodeAttributeType::TextContent,
15 content_property,
16 )
17 })?;
18 Ok(())
19 }
20
21 pub fn alignment(&self, alignment: TextAlignment) -> ArkUIResult<()> {
22 let alignment_property =
23 ArkUINodeAttributeItem::NumberValue(vec![ArkUINodeAttributeNumber::Int(
24 alignment.into(),
25 )]);
26 ARK_UI_NATIVE_NODE_API_1.with(|api| {
27 api.set_attribute(
28 self.raw(),
29 crate::ArkUINodeAttributeType::TextAlign,
30 alignment_property,
31 )
32 })?;
33 Ok(())
34 }
35}
36
37impl ArkUICommonFontAttribute for super::Text {}
38
39impl super::Text {
41 pub fn set_text_content<T: Into<crate::ArkUINodeAttributeItem>>(
42 &self,
43 value: T,
44 ) -> crate::ArkUIResult<()> {
45 <Self as crate::ArkUICommonAttribute>::set_attribute(
46 self,
47 crate::ArkUINodeAttributeType::TextContent,
48 value.into(),
49 )
50 }
51
52 pub fn get_text_content(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
53 <Self as crate::ArkUICommonAttribute>::get_attribute(
54 self,
55 crate::ArkUINodeAttributeType::TextContent,
56 )
57 }
58
59 pub fn set_text_line_height<T: Into<crate::ArkUINodeAttributeItem>>(
60 &self,
61 value: T,
62 ) -> crate::ArkUIResult<()> {
63 <Self as crate::ArkUICommonAttribute>::set_attribute(
64 self,
65 crate::ArkUINodeAttributeType::TextLineHeight,
66 value.into(),
67 )
68 }
69
70 pub fn get_text_line_height(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
71 <Self as crate::ArkUICommonAttribute>::get_attribute(
72 self,
73 crate::ArkUINodeAttributeType::TextLineHeight,
74 )
75 }
76
77 pub fn set_text_decoration<T: Into<crate::ArkUINodeAttributeItem>>(
78 &self,
79 value: T,
80 ) -> crate::ArkUIResult<()> {
81 <Self as crate::ArkUICommonAttribute>::set_attribute(
82 self,
83 crate::ArkUINodeAttributeType::TextDecoration,
84 value.into(),
85 )
86 }
87
88 pub fn get_text_decoration(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
89 <Self as crate::ArkUICommonAttribute>::get_attribute(
90 self,
91 crate::ArkUINodeAttributeType::TextDecoration,
92 )
93 }
94
95 pub fn set_text_case<T: Into<crate::ArkUINodeAttributeItem>>(
96 &self,
97 value: T,
98 ) -> crate::ArkUIResult<()> {
99 <Self as crate::ArkUICommonAttribute>::set_attribute(
100 self,
101 crate::ArkUINodeAttributeType::TextCase,
102 value.into(),
103 )
104 }
105
106 pub fn get_text_case(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
107 <Self as crate::ArkUICommonAttribute>::get_attribute(
108 self,
109 crate::ArkUINodeAttributeType::TextCase,
110 )
111 }
112
113 pub fn set_text_letter_spacing<T: Into<crate::ArkUINodeAttributeItem>>(
114 &self,
115 value: T,
116 ) -> crate::ArkUIResult<()> {
117 <Self as crate::ArkUICommonAttribute>::set_attribute(
118 self,
119 crate::ArkUINodeAttributeType::TextLetterSpacing,
120 value.into(),
121 )
122 }
123
124 pub fn get_text_letter_spacing(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
125 <Self as crate::ArkUICommonAttribute>::get_attribute(
126 self,
127 crate::ArkUINodeAttributeType::TextLetterSpacing,
128 )
129 }
130
131 pub fn set_text_max_lines<T: Into<crate::ArkUINodeAttributeItem>>(
132 &self,
133 value: T,
134 ) -> crate::ArkUIResult<()> {
135 <Self as crate::ArkUICommonAttribute>::set_attribute(
136 self,
137 crate::ArkUINodeAttributeType::TextMaxLines,
138 value.into(),
139 )
140 }
141
142 pub fn get_text_max_lines(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
143 <Self as crate::ArkUICommonAttribute>::get_attribute(
144 self,
145 crate::ArkUINodeAttributeType::TextMaxLines,
146 )
147 }
148
149 pub fn set_text_align<T: Into<crate::ArkUINodeAttributeItem>>(
150 &self,
151 value: T,
152 ) -> crate::ArkUIResult<()> {
153 <Self as crate::ArkUICommonAttribute>::set_attribute(
154 self,
155 crate::ArkUINodeAttributeType::TextAlign,
156 value.into(),
157 )
158 }
159
160 pub fn get_text_align(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
161 <Self as crate::ArkUICommonAttribute>::get_attribute(
162 self,
163 crate::ArkUINodeAttributeType::TextAlign,
164 )
165 }
166
167 pub fn set_text_overflow<T: Into<crate::ArkUINodeAttributeItem>>(
168 &self,
169 value: T,
170 ) -> crate::ArkUIResult<()> {
171 <Self as crate::ArkUICommonAttribute>::set_attribute(
172 self,
173 crate::ArkUINodeAttributeType::TextOverflow,
174 value.into(),
175 )
176 }
177
178 pub fn get_text_overflow(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
179 <Self as crate::ArkUICommonAttribute>::get_attribute(
180 self,
181 crate::ArkUINodeAttributeType::TextOverflow,
182 )
183 }
184
185 pub fn set_text_copy_option<T: Into<crate::ArkUINodeAttributeItem>>(
186 &self,
187 value: T,
188 ) -> crate::ArkUIResult<()> {
189 <Self as crate::ArkUICommonAttribute>::set_attribute(
190 self,
191 crate::ArkUINodeAttributeType::TextCopyOption,
192 value.into(),
193 )
194 }
195
196 pub fn get_text_copy_option(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
197 <Self as crate::ArkUICommonAttribute>::get_attribute(
198 self,
199 crate::ArkUINodeAttributeType::TextCopyOption,
200 )
201 }
202
203 pub fn set_text_baseline_offset<T: Into<crate::ArkUINodeAttributeItem>>(
204 &self,
205 value: T,
206 ) -> crate::ArkUIResult<()> {
207 <Self as crate::ArkUICommonAttribute>::set_attribute(
208 self,
209 crate::ArkUINodeAttributeType::TextBaselineOffset,
210 value.into(),
211 )
212 }
213
214 pub fn get_text_baseline_offset(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
215 <Self as crate::ArkUICommonAttribute>::get_attribute(
216 self,
217 crate::ArkUINodeAttributeType::TextBaselineOffset,
218 )
219 }
220
221 pub fn set_text_text_shadow<T: Into<crate::ArkUINodeAttributeItem>>(
222 &self,
223 value: T,
224 ) -> crate::ArkUIResult<()> {
225 <Self as crate::ArkUICommonAttribute>::set_attribute(
226 self,
227 crate::ArkUINodeAttributeType::TextTextShadow,
228 value.into(),
229 )
230 }
231
232 pub fn get_text_text_shadow(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
233 <Self as crate::ArkUICommonAttribute>::get_attribute(
234 self,
235 crate::ArkUINodeAttributeType::TextTextShadow,
236 )
237 }
238
239 pub fn set_text_min_font_size<T: Into<crate::ArkUINodeAttributeItem>>(
240 &self,
241 value: T,
242 ) -> crate::ArkUIResult<()> {
243 <Self as crate::ArkUICommonAttribute>::set_attribute(
244 self,
245 crate::ArkUINodeAttributeType::TextMinFontSize,
246 value.into(),
247 )
248 }
249
250 pub fn get_text_min_font_size(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
251 <Self as crate::ArkUICommonAttribute>::get_attribute(
252 self,
253 crate::ArkUINodeAttributeType::TextMinFontSize,
254 )
255 }
256
257 pub fn set_text_max_font_size<T: Into<crate::ArkUINodeAttributeItem>>(
258 &self,
259 value: T,
260 ) -> crate::ArkUIResult<()> {
261 <Self as crate::ArkUICommonAttribute>::set_attribute(
262 self,
263 crate::ArkUINodeAttributeType::TextMaxFontSize,
264 value.into(),
265 )
266 }
267
268 pub fn get_text_max_font_size(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
269 <Self as crate::ArkUICommonAttribute>::get_attribute(
270 self,
271 crate::ArkUINodeAttributeType::TextMaxFontSize,
272 )
273 }
274
275 pub fn set_text_font<T: Into<crate::ArkUINodeAttributeItem>>(
276 &self,
277 value: T,
278 ) -> crate::ArkUIResult<()> {
279 <Self as crate::ArkUICommonAttribute>::set_attribute(
280 self,
281 crate::ArkUINodeAttributeType::TextFont,
282 value.into(),
283 )
284 }
285
286 pub fn get_text_font(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
287 <Self as crate::ArkUICommonAttribute>::get_attribute(
288 self,
289 crate::ArkUINodeAttributeType::TextFont,
290 )
291 }
292
293 pub fn set_text_height_adaptive_policy<T: Into<crate::ArkUINodeAttributeItem>>(
294 &self,
295 value: T,
296 ) -> crate::ArkUIResult<()> {
297 <Self as crate::ArkUICommonAttribute>::set_attribute(
298 self,
299 crate::ArkUINodeAttributeType::TextHeightAdaptivePolicy,
300 value.into(),
301 )
302 }
303
304 pub fn get_text_height_adaptive_policy(
305 &self,
306 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
307 <Self as crate::ArkUICommonAttribute>::get_attribute(
308 self,
309 crate::ArkUINodeAttributeType::TextHeightAdaptivePolicy,
310 )
311 }
312
313 pub fn set_text_indent<T: Into<crate::ArkUINodeAttributeItem>>(
314 &self,
315 value: T,
316 ) -> crate::ArkUIResult<()> {
317 <Self as crate::ArkUICommonAttribute>::set_attribute(
318 self,
319 crate::ArkUINodeAttributeType::TextIndent,
320 value.into(),
321 )
322 }
323
324 pub fn get_text_indent(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
325 <Self as crate::ArkUICommonAttribute>::get_attribute(
326 self,
327 crate::ArkUINodeAttributeType::TextIndent,
328 )
329 }
330
331 pub fn set_text_word_break<T: Into<crate::ArkUINodeAttributeItem>>(
332 &self,
333 value: T,
334 ) -> crate::ArkUIResult<()> {
335 <Self as crate::ArkUICommonAttribute>::set_attribute(
336 self,
337 crate::ArkUINodeAttributeType::TextWordBreak,
338 value.into(),
339 )
340 }
341
342 pub fn get_text_word_break(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
343 <Self as crate::ArkUICommonAttribute>::get_attribute(
344 self,
345 crate::ArkUINodeAttributeType::TextWordBreak,
346 )
347 }
348
349 pub fn set_text_ellipsis_mode<T: Into<crate::ArkUINodeAttributeItem>>(
350 &self,
351 value: T,
352 ) -> crate::ArkUIResult<()> {
353 <Self as crate::ArkUICommonAttribute>::set_attribute(
354 self,
355 crate::ArkUINodeAttributeType::TextEllipsisMode,
356 value.into(),
357 )
358 }
359
360 pub fn get_text_ellipsis_mode(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
361 <Self as crate::ArkUICommonAttribute>::get_attribute(
362 self,
363 crate::ArkUINodeAttributeType::TextEllipsisMode,
364 )
365 }
366
367 pub fn set_text_line_spacing<T: Into<crate::ArkUINodeAttributeItem>>(
368 &self,
369 value: T,
370 ) -> crate::ArkUIResult<()> {
371 <Self as crate::ArkUICommonAttribute>::set_attribute(
372 self,
373 crate::ArkUINodeAttributeType::TextLineSpacing,
374 value.into(),
375 )
376 }
377
378 pub fn get_text_line_spacing(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
379 <Self as crate::ArkUICommonAttribute>::get_attribute(
380 self,
381 crate::ArkUINodeAttributeType::TextLineSpacing,
382 )
383 }
384
385 pub fn set_text_enable_data_detector<T: Into<crate::ArkUINodeAttributeItem>>(
386 &self,
387 value: T,
388 ) -> crate::ArkUIResult<()> {
389 <Self as crate::ArkUICommonAttribute>::set_attribute(
390 self,
391 crate::ArkUINodeAttributeType::TextEnableDataDetector,
392 value.into(),
393 )
394 }
395
396 pub fn get_text_enable_data_detector(
397 &self,
398 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
399 <Self as crate::ArkUICommonAttribute>::get_attribute(
400 self,
401 crate::ArkUINodeAttributeType::TextEnableDataDetector,
402 )
403 }
404
405 pub fn set_text_enable_data_detector_config<T: Into<crate::ArkUINodeAttributeItem>>(
406 &self,
407 value: T,
408 ) -> crate::ArkUIResult<()> {
409 <Self as crate::ArkUICommonAttribute>::set_attribute(
410 self,
411 crate::ArkUINodeAttributeType::TextEnableDataDetectorConfig,
412 value.into(),
413 )
414 }
415
416 pub fn get_text_enable_data_detector_config(
417 &self,
418 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
419 <Self as crate::ArkUICommonAttribute>::get_attribute(
420 self,
421 crate::ArkUINodeAttributeType::TextEnableDataDetectorConfig,
422 )
423 }
424
425 pub fn set_text_selected_background_color<T: Into<crate::ArkUINodeAttributeItem>>(
426 &self,
427 value: T,
428 ) -> crate::ArkUIResult<()> {
429 <Self as crate::ArkUICommonAttribute>::set_attribute(
430 self,
431 crate::ArkUINodeAttributeType::TextSelectedBackgroundColor,
432 value.into(),
433 )
434 }
435
436 pub fn get_text_selected_background_color(
437 &self,
438 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
439 <Self as crate::ArkUICommonAttribute>::get_attribute(
440 self,
441 crate::ArkUINodeAttributeType::TextSelectedBackgroundColor,
442 )
443 }
444
445 pub fn set_text_content_with_styled_string<T: Into<crate::ArkUINodeAttributeItem>>(
446 &self,
447 value: T,
448 ) -> crate::ArkUIResult<()> {
449 <Self as crate::ArkUICommonAttribute>::set_attribute(
450 self,
451 crate::ArkUINodeAttributeType::TextContentWithStyledString,
452 value.into(),
453 )
454 }
455
456 pub fn get_text_content_with_styled_string(
457 &self,
458 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
459 <Self as crate::ArkUICommonAttribute>::get_attribute(
460 self,
461 crate::ArkUINodeAttributeType::TextContentWithStyledString,
462 )
463 }
464
465 pub fn set_text_half_leading<T: Into<crate::ArkUINodeAttributeItem>>(
466 &self,
467 value: T,
468 ) -> crate::ArkUIResult<()> {
469 <Self as crate::ArkUICommonAttribute>::set_attribute(
470 self,
471 crate::ArkUINodeAttributeType::TextHalfLeading,
472 value.into(),
473 )
474 }
475
476 pub fn get_text_half_leading(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
477 <Self as crate::ArkUICommonAttribute>::get_attribute(
478 self,
479 crate::ArkUINodeAttributeType::TextHalfLeading,
480 )
481 }
482
483 #[cfg(feature = "api-22")]
484 pub fn set_text_bind_selection_menu<T: Into<crate::ArkUINodeAttributeItem>>(
485 &self,
486 value: T,
487 ) -> crate::ArkUIResult<()> {
488 <Self as crate::ArkUICommonAttribute>::set_attribute(
489 self,
490 crate::ArkUINodeAttributeType::TextBindSelectionMenu,
491 value.into(),
492 )
493 }
494
495 #[cfg(feature = "api-22")]
496 pub fn get_text_bind_selection_menu(
497 &self,
498 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
499 <Self as crate::ArkUICommonAttribute>::get_attribute(
500 self,
501 crate::ArkUINodeAttributeType::TextBindSelectionMenu,
502 )
503 }
504
505 #[cfg(feature = "api-21")]
506 pub fn set_text_content_align<T: Into<crate::ArkUINodeAttributeItem>>(
507 &self,
508 value: T,
509 ) -> crate::ArkUIResult<()> {
510 <Self as crate::ArkUICommonAttribute>::set_attribute(
511 self,
512 crate::ArkUINodeAttributeType::TextContentAlign,
513 value.into(),
514 )
515 }
516
517 #[cfg(feature = "api-21")]
518 pub fn get_text_content_align(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
519 <Self as crate::ArkUICommonAttribute>::get_attribute(
520 self,
521 crate::ArkUINodeAttributeType::TextContentAlign,
522 )
523 }
524
525 #[cfg(feature = "api-22")]
526 pub fn set_text_edit_menu_options<T: Into<crate::ArkUINodeAttributeItem>>(
527 &self,
528 value: T,
529 ) -> crate::ArkUIResult<()> {
530 <Self as crate::ArkUICommonAttribute>::set_attribute(
531 self,
532 crate::ArkUINodeAttributeType::TextEditMenuOptions,
533 value.into(),
534 )
535 }
536
537 #[cfg(feature = "api-22")]
538 pub fn get_text_edit_menu_options(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
539 <Self as crate::ArkUICommonAttribute>::get_attribute(
540 self,
541 crate::ArkUINodeAttributeType::TextEditMenuOptions,
542 )
543 }
544
545 #[cfg(feature = "api-22")]
546 pub fn set_text_enable_selected_data_detector<T: Into<crate::ArkUINodeAttributeItem>>(
547 &self,
548 value: T,
549 ) -> crate::ArkUIResult<()> {
550 <Self as crate::ArkUICommonAttribute>::set_attribute(
551 self,
552 crate::ArkUINodeAttributeType::TextEnableSelectedDataDetector,
553 value.into(),
554 )
555 }
556
557 #[cfg(feature = "api-22")]
558 pub fn get_text_enable_selected_data_detector(
559 &self,
560 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
561 <Self as crate::ArkUICommonAttribute>::get_attribute(
562 self,
563 crate::ArkUINodeAttributeType::TextEnableSelectedDataDetector,
564 )
565 }
566
567 #[cfg(feature = "api-22")]
568 pub fn set_text_layout_manager<T: Into<crate::ArkUINodeAttributeItem>>(
569 &self,
570 value: T,
571 ) -> crate::ArkUIResult<()> {
572 <Self as crate::ArkUICommonAttribute>::set_attribute(
573 self,
574 crate::ArkUINodeAttributeType::TextLayoutManager,
575 value.into(),
576 )
577 }
578
579 #[cfg(feature = "api-22")]
580 pub fn get_text_layout_manager(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
581 <Self as crate::ArkUICommonAttribute>::get_attribute(
582 self,
583 crate::ArkUINodeAttributeType::TextLayoutManager,
584 )
585 }
586
587 #[cfg(feature = "api-20")]
588 pub fn set_text_linear_gradient<T: Into<crate::ArkUINodeAttributeItem>>(
589 &self,
590 value: T,
591 ) -> crate::ArkUIResult<()> {
592 <Self as crate::ArkUICommonAttribute>::set_attribute(
593 self,
594 crate::ArkUINodeAttributeType::TextLinearGradient,
595 value.into(),
596 )
597 }
598
599 #[cfg(feature = "api-20")]
600 pub fn get_text_linear_gradient(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
601 <Self as crate::ArkUICommonAttribute>::get_attribute(
602 self,
603 crate::ArkUINodeAttributeType::TextLinearGradient,
604 )
605 }
606
607 #[cfg(feature = "api-20")]
608 pub fn set_text_line_count<T: Into<crate::ArkUINodeAttributeItem>>(
609 &self,
610 value: T,
611 ) -> crate::ArkUIResult<()> {
612 <Self as crate::ArkUICommonAttribute>::set_attribute(
613 self,
614 crate::ArkUINodeAttributeType::TextLineCount,
615 value.into(),
616 )
617 }
618
619 #[cfg(feature = "api-20")]
620 pub fn get_text_line_count(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
621 <Self as crate::ArkUICommonAttribute>::get_attribute(
622 self,
623 crate::ArkUINodeAttributeType::TextLineCount,
624 )
625 }
626
627 #[cfg(feature = "api-22")]
628 pub fn set_text_line_height_multiple<T: Into<crate::ArkUINodeAttributeItem>>(
629 &self,
630 value: T,
631 ) -> crate::ArkUIResult<()> {
632 <Self as crate::ArkUICommonAttribute>::set_attribute(
633 self,
634 crate::ArkUINodeAttributeType::TextLineHeightMultiple,
635 value.into(),
636 )
637 }
638
639 #[cfg(feature = "api-22")]
640 pub fn get_text_line_height_multiple(
641 &self,
642 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
643 <Self as crate::ArkUICommonAttribute>::get_attribute(
644 self,
645 crate::ArkUINodeAttributeType::TextLineHeightMultiple,
646 )
647 }
648
649 #[cfg(feature = "api-22")]
650 pub fn set_text_max_line_height<T: Into<crate::ArkUINodeAttributeItem>>(
651 &self,
652 value: T,
653 ) -> crate::ArkUIResult<()> {
654 <Self as crate::ArkUICommonAttribute>::set_attribute(
655 self,
656 crate::ArkUINodeAttributeType::TextMaxLineHeight,
657 value.into(),
658 )
659 }
660
661 #[cfg(feature = "api-22")]
662 pub fn get_text_max_line_height(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
663 <Self as crate::ArkUICommonAttribute>::get_attribute(
664 self,
665 crate::ArkUINodeAttributeType::TextMaxLineHeight,
666 )
667 }
668
669 #[cfg(feature = "api-22")]
670 pub fn set_text_min_lines<T: Into<crate::ArkUINodeAttributeItem>>(
671 &self,
672 value: T,
673 ) -> crate::ArkUIResult<()> {
674 <Self as crate::ArkUICommonAttribute>::set_attribute(
675 self,
676 crate::ArkUINodeAttributeType::TextMinLines,
677 value.into(),
678 )
679 }
680
681 #[cfg(feature = "api-22")]
682 pub fn get_text_min_lines(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
683 <Self as crate::ArkUICommonAttribute>::get_attribute(
684 self,
685 crate::ArkUINodeAttributeType::TextMinLines,
686 )
687 }
688
689 #[cfg(feature = "api-22")]
690 pub fn set_text_min_line_height<T: Into<crate::ArkUINodeAttributeItem>>(
691 &self,
692 value: T,
693 ) -> crate::ArkUIResult<()> {
694 <Self as crate::ArkUICommonAttribute>::set_attribute(
695 self,
696 crate::ArkUINodeAttributeType::TextMinLineHeight,
697 value.into(),
698 )
699 }
700
701 #[cfg(feature = "api-22")]
702 pub fn get_text_min_line_height(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
703 <Self as crate::ArkUICommonAttribute>::get_attribute(
704 self,
705 crate::ArkUINodeAttributeType::TextMinLineHeight,
706 )
707 }
708
709 #[cfg(feature = "api-20")]
710 pub fn set_text_optimize_trailing_space<T: Into<crate::ArkUINodeAttributeItem>>(
711 &self,
712 value: T,
713 ) -> crate::ArkUIResult<()> {
714 <Self as crate::ArkUICommonAttribute>::set_attribute(
715 self,
716 crate::ArkUINodeAttributeType::TextOptimizeTrailingSpace,
717 value.into(),
718 )
719 }
720
721 #[cfg(feature = "api-20")]
722 pub fn get_text_optimize_trailing_space(
723 &self,
724 ) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
725 <Self as crate::ArkUICommonAttribute>::get_attribute(
726 self,
727 crate::ArkUINodeAttributeType::TextOptimizeTrailingSpace,
728 )
729 }
730
731 #[cfg(feature = "api-20")]
732 pub fn set_text_radial_gradient<T: Into<crate::ArkUINodeAttributeItem>>(
733 &self,
734 value: T,
735 ) -> crate::ArkUIResult<()> {
736 <Self as crate::ArkUICommonAttribute>::set_attribute(
737 self,
738 crate::ArkUINodeAttributeType::TextRadialGradient,
739 value.into(),
740 )
741 }
742
743 #[cfg(feature = "api-20")]
744 pub fn get_text_radial_gradient(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
745 <Self as crate::ArkUICommonAttribute>::get_attribute(
746 self,
747 crate::ArkUINodeAttributeType::TextRadialGradient,
748 )
749 }
750
751 #[cfg(feature = "api-20")]
752 pub fn set_text_vertical_align<T: Into<crate::ArkUINodeAttributeItem>>(
753 &self,
754 value: T,
755 ) -> crate::ArkUIResult<()> {
756 <Self as crate::ArkUICommonAttribute>::set_attribute(
757 self,
758 crate::ArkUINodeAttributeType::TextVerticalAlign,
759 value.into(),
760 )
761 }
762
763 #[cfg(feature = "api-20")]
764 pub fn get_text_vertical_align(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
765 <Self as crate::ArkUICommonAttribute>::get_attribute(
766 self,
767 crate::ArkUINodeAttributeType::TextVerticalAlign,
768 )
769 }
770}
771impl super::Text {
774 #[cfg(feature = "drawing")]
775 pub fn set_text_content_with_styled_string_object(
776 &self,
777 styled_string: &crate::StyledString,
778 ) -> crate::ArkUIResult<()> {
779 <Self as crate::ArkUICommonAttribute>::set_attribute(
780 self,
781 crate::ArkUINodeAttributeType::TextContentWithStyledString,
782 crate::ArkUINodeAttributeItem::Object(styled_string.raw().cast()),
783 )
784 }
785
786 #[cfg(feature = "drawing")]
787 pub fn get_text_content_with_styled_string_object(
788 &self,
789 ) -> crate::ArkUIResult<Option<crate::StyledString>> {
790 match <Self as crate::ArkUICommonAttribute>::get_attribute(
791 self,
792 crate::ArkUINodeAttributeType::TextContentWithStyledString,
793 )? {
794 crate::ArkUINodeAttributeItem::Object(ptr) => {
795 Ok(Some(crate::StyledString::from_raw(ptr.cast())))
796 }
797 _ => Ok(None),
798 }
799 }
800
801 pub fn on_text_detect_result_update<T: Fn(Option<String>) + 'static>(&mut self, cb: T) {
802 crate::ArkUIEvent::on_event(
803 self,
804 crate::NodeEventType::TextOnDetectResultUpdate,
805 move |event| {
806 cb(event.async_string());
807 },
808 );
809 }
810}
811
812#[cfg(feature = "api-22")]
813impl super::Text {
814 pub fn set_text_bind_selection_menu_object(
815 &self,
816 options: &crate::TextSelectionMenuOptions,
817 ) -> crate::ArkUIResult<()> {
818 <Self as crate::ArkUICommonAttribute>::set_attribute(
819 self,
820 crate::ArkUINodeAttributeType::TextBindSelectionMenu,
821 crate::ArkUINodeAttributeItem::Object(options.raw().cast()),
822 )
823 }
824
825 pub fn get_text_bind_selection_menu_object(
826 &self,
827 ) -> crate::ArkUIResult<Option<crate::TextSelectionMenuOptions>> {
828 match <Self as crate::ArkUICommonAttribute>::get_attribute(
829 self,
830 crate::ArkUINodeAttributeType::TextBindSelectionMenu,
831 )? {
832 crate::ArkUINodeAttributeItem::Object(ptr) => {
833 Ok(Some(crate::TextSelectionMenuOptions::from_raw(ptr.cast())))
834 }
835 _ => Ok(None),
836 }
837 }
838
839 pub fn set_text_edit_menu_options_object(
840 &self,
841 options: &crate::TextEditMenuOptions,
842 ) -> crate::ArkUIResult<()> {
843 <Self as crate::ArkUICommonAttribute>::set_attribute(
844 self,
845 crate::ArkUINodeAttributeType::TextEditMenuOptions,
846 crate::ArkUINodeAttributeItem::Object(options.raw().cast()),
847 )
848 }
849
850 pub fn get_text_edit_menu_options_object(
851 &self,
852 ) -> crate::ArkUIResult<Option<crate::TextEditMenuOptions>> {
853 match <Self as crate::ArkUICommonAttribute>::get_attribute(
854 self,
855 crate::ArkUINodeAttributeType::TextEditMenuOptions,
856 )? {
857 crate::ArkUINodeAttributeItem::Object(ptr) => {
858 Ok(Some(crate::TextEditMenuOptions::from_raw(ptr.cast())))
859 }
860 _ => Ok(None),
861 }
862 }
863
864 #[cfg(feature = "drawing")]
865 pub fn set_text_layout_manager_object(
866 &self,
867 manager: &crate::TextLayoutManager,
868 ) -> crate::ArkUIResult<()> {
869 <Self as crate::ArkUICommonAttribute>::set_attribute(
870 self,
871 crate::ArkUINodeAttributeType::TextLayoutManager,
872 crate::ArkUINodeAttributeItem::Object(manager.raw().cast()),
873 )
874 }
875
876 #[cfg(feature = "drawing")]
877 pub fn get_text_layout_manager_object(
878 &self,
879 ) -> crate::ArkUIResult<Option<crate::TextLayoutManager>> {
880 match <Self as crate::ArkUICommonAttribute>::get_attribute(
881 self,
882 crate::ArkUINodeAttributeType::TextLayoutManager,
883 )? {
884 crate::ArkUINodeAttributeItem::Object(ptr) => {
885 Ok(Some(crate::TextLayoutManager::from_raw(ptr.cast())))
886 }
887 _ => Ok(None),
888 }
889 }
890}