]> uap-core.de Git - note.git/commitdiff
add remaining ContainerBuilder functions main
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 4 Apr 2026 09:45:22 +0000 (11:45 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 4 Apr 2026 09:45:22 +0000 (11:45 +0200)
application/src/main.rs
ui-rs/src/ui/container.rs

index af437b45fc490d4e075c1e8a850381fca9bb1872..775af6fa195c7f000753469e6d744cc46028b99f 100644 (file)
@@ -27,14 +27,6 @@ impl ui::Application for App {
             });
         });
 
-        obj.hbox(|_b| {
-
-            },
-            |obj| {
-                obj.button(|b|{ b.label("HButton X1"); });
-                obj.button(|b|{ b.label("HButton X2"); });
-            });
-
         obj.show();
     }
 }
index 4bccdac9efbe115706d60634d400b3f1094a9c66..a274afe73f042e4003d5b63084e383f28aa0d91c 100644 (file)
@@ -2,6 +2,7 @@
 #[allow(unused_imports)]
 
 use std::ffi::{c_char, c_int, c_void};
+use std::ffi::CString;
 use crate::ui::ffi::*;
 use crate::ui::{toolkit};
 
@@ -130,6 +131,134 @@ impl<'a> ContainerBuilder<'a> {
             ui_container_finish(self.obj.ptr);
         }
     }
+
+    pub fn fill(&mut self, fill: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_fill(self.args, if fill { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn hexpand(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_hexpand(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn vexpand(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_vexpand(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn hfill(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_hfill(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn vfill(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_vfill(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn override_defaults(&mut self, value: bool) -> &mut Self {
+        unsafe {
+            ui_container_args_set_override_defaults(self.args, if value { 1 } else { 0 });
+        }
+        self
+    }
+
+    pub fn margin(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_margin(self.args, value);
+        }
+        self
+    }
+
+    pub fn margin_left(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_margin_left(self.args, value);
+        }
+        self
+    }
+
+    pub fn margin_right(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_margin_right(self.args, value);
+        }
+        self
+    }
+
+    pub fn margin_top(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_margin_top(self.args, value);
+        }
+        self
+    }
+
+    pub fn margin_bottom(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_margin_bottom(self.args, value);
+        }
+        self
+    }
+
+    pub fn colspan(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_colspan(self.args, value);
+        }
+        self
+    }
+
+    pub fn rowspan(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_rowspan(self.args, value);
+        }
+        self
+    }
+
+    pub fn name(&mut self, value: &str) -> &mut Self {
+        let cstr = CString::new(value).unwrap();
+        unsafe {
+            ui_container_args_set_name(self.args, cstr.as_ptr());
+        }
+        self
+    }
+
+    pub fn style_class(&mut self, value: &str) -> &mut Self {
+        let cstr = CString::new(value).unwrap();
+        unsafe {
+            ui_container_args_set_style_class(self.args, cstr.as_ptr());
+        }
+        self
+    }
+
+    pub fn spacing(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_spacing(self.args, value);
+        }
+        self
+    }
+
+    pub fn columnspacing(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_columnspacing(self.args, value);
+        }
+        self
+    }
+
+    pub fn rowspacing(&mut self, value: i32) -> &mut Self {
+        unsafe {
+            ui_container_args_set_rowspacing(self.args, value);
+        }
+        self
+    }
 }
 
 impl<'a> Drop for ContainerBuilder<'a> {