]> git.proxmox.com Git - ui/proxmox-yew-widget-toolkit.git/commitdiff
css: allow custom css lengths
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 3 Oct 2024 13:24:49 +0000 (15:24 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 4 Oct 2024 07:11:05 +0000 (09:11 +0200)
when they're &'static str. This allows us to write things like:

```
Foo::new()
    .width("auto")
```

instead of

```
Foo::new()
    .style("width", "auto")
```

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/props/widget_style_builder.rs

index 691ba56bd591f8273b856b88040f5e22180223c6..35fefde3903dd1505d23e844239794c1cdfa6a50 100644 (file)
@@ -10,6 +10,7 @@ pub enum CssLength {
     Px(f64),
     Em(f64),
     Fraction(f32),
+    Custom(&'static str),
     None,
 }
 
@@ -25,6 +26,7 @@ impl Display for CssLength {
             CssLength::Px(v) => write!(f, "{v}px"),
             CssLength::Em(v) => write!(f, "{v}em"),
             CssLength::Fraction(v) => write!(f, "{}%", v * 100.0),
+            CssLength::Custom(v) => write!(f, "{v}"),
             CssLength::None => Ok(()),
         }
     }
@@ -54,6 +56,12 @@ impl From<i32> for CssLength {
     }
 }
 
+impl From<&'static str> for CssLength {
+    fn from(v: &'static str) -> Self {
+        CssLength::Custom(v)
+    }
+}
+
 impl From<CssLength> for AttrValue {
     fn from(v: CssLength) -> Self {
         v.to_string().into()