@@ -33,29 +33,29 @@ use crate::Size;
33
33
/// let widget = Widget::new().padding([10, 20]); // top/bottom, left/right
34
34
/// let widget = Widget::new().padding([5, 10, 15, 20]); // top, right, bottom, left
35
35
/// ```
36
- #[ derive( Debug , Hash , Copy , Clone ) ]
36
+ #[ derive( Debug , Copy , Clone ) ]
37
37
pub struct Padding {
38
38
/// Top padding
39
- pub top : u16 ,
39
+ pub top : f32 ,
40
40
/// Right padding
41
- pub right : u16 ,
41
+ pub right : f32 ,
42
42
/// Bottom padding
43
- pub bottom : u16 ,
43
+ pub bottom : f32 ,
44
44
/// Left padding
45
- pub left : u16 ,
45
+ pub left : f32 ,
46
46
}
47
47
48
48
impl Padding {
49
49
/// Padding of zero
50
50
pub const ZERO : Padding = Padding {
51
- top : 0 ,
52
- right : 0 ,
53
- bottom : 0 ,
54
- left : 0 ,
51
+ top : 0.0 ,
52
+ right : 0.0 ,
53
+ bottom : 0.0 ,
54
+ left : 0.0 ,
55
55
} ;
56
56
57
57
/// Create a Padding that is equal on all sides
58
- pub const fn new ( padding : u16 ) -> Padding {
58
+ pub const fn new ( padding : f32 ) -> Padding {
59
59
Padding {
60
60
top : padding,
61
61
right : padding,
@@ -65,12 +65,12 @@ impl Padding {
65
65
}
66
66
67
67
/// Returns the total amount of vertical [`Padding`].
68
- pub fn vertical ( self ) -> u16 {
68
+ pub fn vertical ( self ) -> f32 {
69
69
self . top + self . bottom
70
70
}
71
71
72
72
/// Returns the total amount of horizontal [`Padding`].
73
- pub fn horizontal ( self ) -> u16 {
73
+ pub fn horizontal ( self ) -> f32 {
74
74
self . left + self . right
75
75
}
76
76
@@ -79,16 +79,49 @@ impl Padding {
79
79
let available = ( outer - inner) . max ( Size :: ZERO ) ;
80
80
81
81
Padding {
82
- top : self . top . min ( ( available. height as u16 ) / 2 ) ,
83
- right : self . right . min ( ( available. width as u16 ) / 2 ) ,
84
- bottom : self . bottom . min ( ( available. height as u16 ) / 2 ) ,
85
- left : self . left . min ( ( available. width as u16 ) / 2 ) ,
82
+ top : self . top . min ( available. height / 2.0 ) ,
83
+ right : self . right . min ( available. width / 2.0 ) ,
84
+ bottom : self . bottom . min ( available. height / 2.0 ) ,
85
+ left : self . left . min ( available. width / 2.0 ) ,
86
86
}
87
87
}
88
88
}
89
89
90
90
impl From < u16 > for Padding {
91
91
fn from ( p : u16 ) -> Self {
92
+ Padding {
93
+ top : f32:: from ( p) ,
94
+ right : f32:: from ( p) ,
95
+ bottom : f32:: from ( p) ,
96
+ left : f32:: from ( p) ,
97
+ }
98
+ }
99
+ }
100
+
101
+ impl From < [ u16 ; 2 ] > for Padding {
102
+ fn from ( p : [ u16 ; 2 ] ) -> Self {
103
+ Padding {
104
+ top : f32:: from ( p[ 0 ] ) ,
105
+ right : f32:: from ( p[ 1 ] ) ,
106
+ bottom : f32:: from ( p[ 0 ] ) ,
107
+ left : f32:: from ( p[ 1 ] ) ,
108
+ }
109
+ }
110
+ }
111
+
112
+ impl From < [ u16 ; 4 ] > for Padding {
113
+ fn from ( p : [ u16 ; 4 ] ) -> Self {
114
+ Padding {
115
+ top : f32:: from ( p[ 0 ] ) ,
116
+ right : f32:: from ( p[ 1 ] ) ,
117
+ bottom : f32:: from ( p[ 2 ] ) ,
118
+ left : f32:: from ( p[ 3 ] ) ,
119
+ }
120
+ }
121
+ }
122
+
123
+ impl From < f32 > for Padding {
124
+ fn from ( p : f32 ) -> Self {
92
125
Padding {
93
126
top : p,
94
127
right : p,
@@ -98,8 +131,8 @@ impl From<u16> for Padding {
98
131
}
99
132
}
100
133
101
- impl From < [ u16 ; 2 ] > for Padding {
102
- fn from ( p : [ u16 ; 2 ] ) -> Self {
134
+ impl From < [ f32 ; 2 ] > for Padding {
135
+ fn from ( p : [ f32 ; 2 ] ) -> Self {
103
136
Padding {
104
137
top : p[ 0 ] ,
105
138
right : p[ 1 ] ,
@@ -109,8 +142,8 @@ impl From<[u16; 2]> for Padding {
109
142
}
110
143
}
111
144
112
- impl From < [ u16 ; 4 ] > for Padding {
113
- fn from ( p : [ u16 ; 4 ] ) -> Self {
145
+ impl From < [ f32 ; 4 ] > for Padding {
146
+ fn from ( p : [ f32 ; 4 ] ) -> Self {
114
147
Padding {
115
148
top : p[ 0 ] ,
116
149
right : p[ 1 ] ,
0 commit comments