]> uap-core.de Git - note.git/commitdiff
add missing frame builder args
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 5 Apr 2026 08:37:38 +0000 (10:37 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 5 Apr 2026 08:37:38 +0000 (10:37 +0200)
ui-rs/src/ui/container.rs

index 3423d4c4b1ac4095c82a1a6c92ae400c76bfb026..8ee1b5cec6545d851d0067a82236c1540f3920dd 100644 (file)
@@ -62,7 +62,7 @@ impl toolkit::UiObject {
     container_fn!(hbox, hbox_builder, ContainerBuilder);
     container_fn!(grid, grid_builder, ContainerBuilder);
 
-    pub fn vbox_builder(&mut self) -> ContainerBuilder
+    pub fn vbox_builder(&mut self) -> ContainerBuilder<'_>
     {
         unsafe {
             let args = ui_container_args_new();
@@ -74,7 +74,7 @@ impl toolkit::UiObject {
         }
     }
 
-    pub fn hbox_builder(&mut self) -> ContainerBuilder
+    pub fn hbox_builder(&mut self) -> ContainerBuilder<'_>
     {
         unsafe {
             let args = ui_container_args_new();
@@ -86,7 +86,7 @@ impl toolkit::UiObject {
         }
     }
 
-    pub fn grid_builder(&mut self) -> ContainerBuilder
+    pub fn grid_builder(&mut self) -> ContainerBuilder<'_>
     {
         unsafe {
             let args = ui_container_args_new();
@@ -280,7 +280,7 @@ impl toolkit::UiObject {
     container_fn!(expander, expander_builder, FrameBuilder);
     container_fn!(scrolledwindow, scrolledwindow_builder, FrameBuilder);
 
-    pub fn frame_builder(&mut self) -> FrameBuilder
+    pub fn frame_builder(&mut self) -> FrameBuilder<'_>
     {
         unsafe {
             let args = ui_frame_args_new();
@@ -292,7 +292,7 @@ impl toolkit::UiObject {
         }
     }
 
-    pub fn expander_builder(&mut self) -> FrameBuilder
+    pub fn expander_builder(&mut self) -> FrameBuilder<'_>
     {
         unsafe {
             let args = ui_frame_args_new();
@@ -304,7 +304,7 @@ impl toolkit::UiObject {
         }
     }
 
-    pub fn scrolledwindow_builder(&mut self) -> FrameBuilder
+    pub fn scrolledwindow_builder(&mut self) -> FrameBuilder<'_>
     {
         unsafe {
             let args = ui_frame_args_new();
@@ -455,6 +455,28 @@ impl<'a> FrameBuilder<'a> {
         }
         self
     }
+
+    pub fn label(&mut self, label: &str) -> &mut Self {
+        let cstr = CString::new(label).unwrap();
+        unsafe {
+            ui_frame_args_set_label(self.args, cstr.as_ptr());
+        }
+        self
+    }
+
+    pub fn expanded(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_frame_args_set_expanded(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn subcontainer_type(&mut self, subtype: SubContainer) -> &mut Self {
+        unsafe {
+            ui_frame_args_set_subcontainer(self.args, subtype as c_int);
+        }
+        self
+    }
 }
 
 impl<'a> Drop for FrameBuilder<'a> {