feat(segmented-button): configurable font size
This commit is contained in:
parent
b79fa9d2a9
commit
843919e44f
3 changed files with 9 additions and 16 deletions
|
|
@ -75,9 +75,7 @@ where
|
||||||
#[allow(clippy::cast_sign_loss)]
|
#[allow(clippy::cast_sign_loss)]
|
||||||
fn variant_layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node {
|
fn variant_layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node {
|
||||||
let limits = limits.width(self.width);
|
let limits = limits.width(self.width);
|
||||||
let text_size = renderer.default_size();
|
let (mut width, height) = self.max_button_dimensions(renderer, limits.max());
|
||||||
|
|
||||||
let (mut width, height) = self.max_button_dimensions(renderer, text_size, limits.max());
|
|
||||||
|
|
||||||
let num = self.model.items.len();
|
let num = self.model.items.len();
|
||||||
let spacing = f32::from(self.spacing);
|
let spacing = f32::from(self.spacing);
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,7 @@ where
|
||||||
#[allow(clippy::cast_sign_loss)]
|
#[allow(clippy::cast_sign_loss)]
|
||||||
fn variant_layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node {
|
fn variant_layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node {
|
||||||
let limits = limits.width(self.width);
|
let limits = limits.width(self.width);
|
||||||
let text_size = renderer.default_size();
|
let (width, mut height) = self.max_button_dimensions(renderer, limits.max());
|
||||||
|
|
||||||
let (width, mut height) = self.max_button_dimensions(renderer, text_size, limits.max());
|
|
||||||
|
|
||||||
let num = self.model.items.len();
|
let num = self.model.items.len();
|
||||||
let spacing = f32::from(self.spacing);
|
let spacing = f32::from(self.spacing);
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,8 @@ where
|
||||||
pub(super) font_hovered: Renderer::Font,
|
pub(super) font_hovered: Renderer::Font,
|
||||||
/// Desired font for inactive tabs.
|
/// Desired font for inactive tabs.
|
||||||
pub(super) font_inactive: Renderer::Font,
|
pub(super) font_inactive: Renderer::Font,
|
||||||
|
/// Size of the font.
|
||||||
|
pub(super) font_size: u16,
|
||||||
/// Size of icon
|
/// Size of icon
|
||||||
pub(super) icon_size: u16,
|
pub(super) icon_size: u16,
|
||||||
/// Desired width of the widget.
|
/// Desired width of the widget.
|
||||||
|
|
@ -134,7 +136,8 @@ where
|
||||||
font_active: Renderer::Font::default(),
|
font_active: Renderer::Font::default(),
|
||||||
font_hovered: Renderer::Font::default(),
|
font_hovered: Renderer::Font::default(),
|
||||||
font_inactive: Renderer::Font::default(),
|
font_inactive: Renderer::Font::default(),
|
||||||
icon_size: 24,
|
font_size: 17,
|
||||||
|
icon_size: 16,
|
||||||
height: Length::Shrink,
|
height: Length::Shrink,
|
||||||
width: Length::Fill,
|
width: Length::Fill,
|
||||||
spacing: 0,
|
spacing: 0,
|
||||||
|
|
@ -204,12 +207,7 @@ where
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn max_button_dimensions(
|
pub(super) fn max_button_dimensions(&self, renderer: &Renderer, bounds: Size) -> (f32, f32) {
|
||||||
&self,
|
|
||||||
renderer: &Renderer,
|
|
||||||
text_size: u16,
|
|
||||||
bounds: Size,
|
|
||||||
) -> (f32, f32) {
|
|
||||||
let mut width = 0.0f32;
|
let mut width = 0.0f32;
|
||||||
let mut height = 0.0f32;
|
let mut height = 0.0f32;
|
||||||
|
|
||||||
|
|
@ -219,7 +217,7 @@ where
|
||||||
|
|
||||||
// Add text to measurement if text was given.
|
// Add text to measurement if text was given.
|
||||||
if let Some(text) = self.model.text(key) {
|
if let Some(text) = self.model.text(key) {
|
||||||
let (w, h) = renderer.measure(text, text_size, Default::default(), bounds);
|
let (w, h) = renderer.measure(text, self.font_size, Default::default(), bounds);
|
||||||
|
|
||||||
button_width = w;
|
button_width = w;
|
||||||
button_height = h;
|
button_height = h;
|
||||||
|
|
@ -469,7 +467,6 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
let y = bounds.center_y();
|
let y = bounds.center_y();
|
||||||
let text_size = renderer.default_size();
|
|
||||||
|
|
||||||
// Draw the image beside the text.
|
// Draw the image beside the text.
|
||||||
let horizontal_alignment = if let Some(icon) = self.model.icon(key) {
|
let horizontal_alignment = if let Some(icon) = self.model.icon(key) {
|
||||||
|
|
@ -518,7 +515,7 @@ where
|
||||||
// Draw the text in this button.
|
// Draw the text in this button.
|
||||||
renderer.fill_text(iced_native::text::Text {
|
renderer.fill_text(iced_native::text::Text {
|
||||||
content: text,
|
content: text,
|
||||||
size: f32::from(text_size),
|
size: f32::from(self.font_size),
|
||||||
bounds,
|
bounds,
|
||||||
color: status_appearance.text_color,
|
color: status_appearance.text_color,
|
||||||
font: font.clone(),
|
font: font.clone(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue