Add support for asymmetrical padding
This commit is contained in:
parent
a9eb591628
commit
fe0a27c56d
27 changed files with 339 additions and 195 deletions
|
|
@ -2,8 +2,8 @@
|
|||
use crate::backend::{self, Backend};
|
||||
use crate::{Primitive, Renderer};
|
||||
use iced_native::{
|
||||
mouse, overlay, Color, Font, HorizontalAlignment, Point, Rectangle,
|
||||
VerticalAlignment,
|
||||
mouse, overlay, Color, Font, HorizontalAlignment, Padding, Point,
|
||||
Rectangle, VerticalAlignment,
|
||||
};
|
||||
|
||||
pub use iced_style::menu::Style;
|
||||
|
|
@ -45,7 +45,7 @@ where
|
|||
viewport: &Rectangle,
|
||||
options: &[T],
|
||||
hovered_option: Option<usize>,
|
||||
padding: u16,
|
||||
padding: Padding,
|
||||
text_size: u16,
|
||||
font: Font,
|
||||
style: &Style,
|
||||
|
|
@ -53,7 +53,7 @@ where
|
|||
use std::f32;
|
||||
|
||||
let is_mouse_over = bounds.contains(cursor_position);
|
||||
let option_height = text_size as usize + padding as usize * 2;
|
||||
let option_height = (text_size + padding.top + padding.bottom) as usize;
|
||||
|
||||
let mut primitives = Vec::new();
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ where
|
|||
x: bounds.x,
|
||||
y: bounds.y + (option_height * i) as f32,
|
||||
width: bounds.width,
|
||||
height: f32::from(text_size + padding * 2),
|
||||
height: f32::from(text_size + padding.top + padding.bottom),
|
||||
};
|
||||
|
||||
if is_selected {
|
||||
|
|
@ -88,7 +88,7 @@ where
|
|||
primitives.push(Primitive::Text {
|
||||
content: option.to_string(),
|
||||
bounds: Rectangle {
|
||||
x: bounds.x + f32::from(padding),
|
||||
x: bounds.x + padding.left as f32,
|
||||
y: bounds.center_y(),
|
||||
width: f32::INFINITY,
|
||||
..bounds
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use crate::defaults::{self, Defaults};
|
|||
use crate::{Backend, Primitive, Renderer};
|
||||
use iced_native::mouse;
|
||||
use iced_native::{
|
||||
Background, Color, Element, Layout, Point, Rectangle, Vector,
|
||||
Background, Color, Element, Layout, Padding, Point, Rectangle, Vector,
|
||||
};
|
||||
|
||||
pub use iced_native::button::State;
|
||||
|
|
@ -21,7 +21,7 @@ impl<B> iced_native::button::Renderer for Renderer<B>
|
|||
where
|
||||
B: Backend,
|
||||
{
|
||||
const DEFAULT_PADDING: u16 = 5;
|
||||
const DEFAULT_PADDING: Padding = Padding::new(5);
|
||||
|
||||
type Style = Box<dyn StyleSheet>;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
use crate::backend::{self, Backend};
|
||||
use crate::{Primitive, Renderer};
|
||||
use iced_native::{
|
||||
mouse, Font, HorizontalAlignment, Point, Rectangle, VerticalAlignment,
|
||||
mouse, Font, HorizontalAlignment, Padding, Point, Rectangle,
|
||||
VerticalAlignment,
|
||||
};
|
||||
use iced_style::menu;
|
||||
|
||||
|
|
@ -19,7 +20,7 @@ where
|
|||
{
|
||||
type Style = Box<dyn StyleSheet>;
|
||||
|
||||
const DEFAULT_PADDING: u16 = 5;
|
||||
const DEFAULT_PADDING: Padding = Padding::new(5);
|
||||
|
||||
fn menu_style(style: &Box<dyn StyleSheet>) -> menu::Style {
|
||||
style.menu()
|
||||
|
|
@ -30,7 +31,7 @@ where
|
|||
bounds: Rectangle,
|
||||
cursor_position: Point,
|
||||
selected: Option<String>,
|
||||
padding: u16,
|
||||
padding: Padding,
|
||||
text_size: u16,
|
||||
font: Font,
|
||||
style: &Box<dyn StyleSheet>,
|
||||
|
|
@ -56,7 +57,8 @@ where
|
|||
font: B::ICON_FONT,
|
||||
size: bounds.height * style.icon_size,
|
||||
bounds: Rectangle {
|
||||
x: bounds.x + bounds.width - f32::from(padding) * 2.0,
|
||||
x: bounds.x + bounds.width
|
||||
- f32::from(padding.left + padding.right),
|
||||
y: bounds.center_y(),
|
||||
..bounds
|
||||
},
|
||||
|
|
@ -74,7 +76,7 @@ where
|
|||
font,
|
||||
color: style.text_color,
|
||||
bounds: Rectangle {
|
||||
x: bounds.x + f32::from(padding),
|
||||
x: bounds.x + f32::from(padding.left),
|
||||
y: bounds.center_y(),
|
||||
..bounds
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue