src/text.c

changeset 194
7985c3b64460
parent 193
ddf690c0b36b
child 196
ac2ade047d5b
--- 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);
 }
 

mercurial