This commit is contained in:
2026-01-19 18:27:07 +01:00
parent ac9e64dcb7
commit 4391995eae
11 changed files with 35390 additions and 39 deletions

View File

@@ -127,17 +127,41 @@ fn render_grid(
(false, false, false) => (Color::Rgb(45, 48, 55), Color::Rgb(120, 125, 135)),
};
let label = names.get(idx).and_then(|n| *n).unwrap_or_else(|| "");
let label = if label.is_empty() {
format!("{:02}", idx + 1)
} else {
label.to_string()
};
let tile = Paragraph::new(label)
.alignment(Alignment::Center)
.style(Style::new().bg(bg).fg(fg).add_modifier(Modifier::BOLD));
let name = names.get(idx).and_then(|n| *n).unwrap_or("");
let number = format!("{:02}", idx + 1);
let cell = cols[col];
frame.render_widget(tile, cols[col]);
// Fill background
frame.render_widget(Block::default().style(Style::new().bg(bg)), cell);
let top_area = Rect::new(cell.x, cell.y, cell.width, 1);
let center_y = cell.y + cell.height / 2;
let center_area = Rect::new(cell.x, center_y, cell.width, 1);
if name.is_empty() {
// Number centered
frame.render_widget(
Paragraph::new(number)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::BOLD)),
center_area,
);
} else {
// Number centered at top
frame.render_widget(
Paragraph::new(number)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::DIM)),
top_area,
);
// Name centered in middle
frame.render_widget(
Paragraph::new(name)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::BOLD)),
center_area,
);
}
}
}
}
@@ -179,16 +203,40 @@ fn render_pattern_grid(
};
let name = names.get(idx).and_then(|n| *n).unwrap_or("");
let label = if name.is_empty() {
format!("{}{:02}", prefix, idx + 1)
} else {
format!("{}{}", prefix, name)
};
let tile = Paragraph::new(label)
.alignment(Alignment::Center)
.style(Style::new().bg(bg).fg(fg).add_modifier(Modifier::BOLD));
let number = format!("{}{:02}", prefix, idx + 1);
let cell = cols[col];
frame.render_widget(tile, cols[col]);
// Fill background
frame.render_widget(Block::default().style(Style::new().bg(bg)), cell);
let top_area = Rect::new(cell.x, cell.y, cell.width, 1);
let center_y = cell.y + cell.height / 2;
let center_area = Rect::new(cell.x, center_y, cell.width, 1);
if name.is_empty() {
// Number centered
frame.render_widget(
Paragraph::new(number)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::BOLD)),
center_area,
);
} else {
// Number centered at top
frame.render_widget(
Paragraph::new(number)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::DIM)),
top_area,
);
// Name centered in middle
frame.render_widget(
Paragraph::new(name)
.alignment(Alignment::Center)
.style(Style::new().fg(fg).add_modifier(Modifier::BOLD)),
center_area,
);
}
}
}
}