new rendering engine
This commit is contained in:
41
crates/client-domain/src/alignment.rs
Normal file
41
crates/client-domain/src/alignment.rs
Normal file
@@ -0,0 +1,41 @@
|
||||
use domain::{HAlign, VAlign};
|
||||
|
||||
#[allow(private_bounds)]
|
||||
pub fn align_offset(container: u16, content: u16, align: impl Into<AlignMode>) -> u16 {
|
||||
let mode = align.into();
|
||||
if content >= container {
|
||||
return 0;
|
||||
}
|
||||
let space = container - content;
|
||||
match mode {
|
||||
AlignMode::Start => 0,
|
||||
AlignMode::Center => space / 2,
|
||||
AlignMode::End => space,
|
||||
}
|
||||
}
|
||||
|
||||
enum AlignMode {
|
||||
Start,
|
||||
Center,
|
||||
End,
|
||||
}
|
||||
|
||||
impl From<HAlign> for AlignMode {
|
||||
fn from(a: HAlign) -> Self {
|
||||
match a {
|
||||
HAlign::Left => AlignMode::Start,
|
||||
HAlign::Center => AlignMode::Center,
|
||||
HAlign::Right => AlignMode::End,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<VAlign> for AlignMode {
|
||||
fn from(a: VAlign) -> Self {
|
||||
match a {
|
||||
VAlign::Top => AlignMode::Start,
|
||||
VAlign::Middle => AlignMode::Center,
|
||||
VAlign::Bottom => AlignMode::End,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user