diff -r ddf690c0b36b -r 7985c3b64460 src/text.c --- a/src/text.c Wed Jul 09 22:30:52 2025 +0200 +++ b/src/text.c Thu Jul 10 22:13:39 2025 +0200 @@ -126,20 +126,44 @@ return node; } +void asc_text_alignment( + AscText *node, + enum asc_text_alignment alignment +) { + asc_ptr_cast(AscSceneNode, snode, node); + asc_set_flag_masked(snode->flags, ASC_TEXT_ALIGNMENT_MASK, alignment); + asc_node_update(snode); +} + +void asc_text_centered(AscText *node, bool centered) { + asc_ptr_cast(AscSceneNode, snode, node); + if (centered) { + asc_clear_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED); + } else { + asc_set_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED); + } + asc_node_update(snode); +} + +void asc_text_max_width(AscText *node, unsigned max_width) { + node->max_width = max_width; + asc_node_update((AscSceneNode*)node); +} + void asc_text_printf( - AscText *text_node, + AscText *node, const char *format, ... ) { va_list ap; va_start(ap, format); cx_vsprintf( - &text_node->text.ptr, - &text_node->text.length, + &node->text.ptr, + &node->text.length, format, ap ); va_end(ap); - asc_node_update((AscSceneNode*)text_node); + asc_node_update((AscSceneNode*)node); }