Simplify draw logic of sliders
This commit is contained in:
parent
de51bc3f41
commit
45cfce3f6d
2 changed files with 15 additions and 18 deletions
|
|
@ -370,8 +370,6 @@ pub fn draw<T, R>(
|
||||||
style_sheet.active(style)
|
style_sheet.active(style)
|
||||||
};
|
};
|
||||||
|
|
||||||
let value = value.into() as f32;
|
|
||||||
|
|
||||||
let (handle_width, handle_height, handle_border_radius) = match style
|
let (handle_width, handle_height, handle_border_radius) = match style
|
||||||
.handle
|
.handle
|
||||||
.shape
|
.shape
|
||||||
|
|
@ -383,6 +381,7 @@ pub fn draw<T, R>(
|
||||||
} => (f32::from(width), bounds.height, border_radius),
|
} => (f32::from(width), bounds.height, border_radius),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let value = value.into() as f32;
|
||||||
let (range_start, range_end) = {
|
let (range_start, range_end) = {
|
||||||
let (start, end) = range.clone().into_inner();
|
let (start, end) = range.clone().into_inner();
|
||||||
|
|
||||||
|
|
@ -396,15 +395,14 @@ pub fn draw<T, R>(
|
||||||
/ (range_end - range_start)
|
/ (range_end - range_start)
|
||||||
};
|
};
|
||||||
|
|
||||||
let line_y = bounds.y + bounds.height / 2.0 - style.rail.size / 2.0;
|
let rail_y = bounds.y + bounds.height / 2.0;
|
||||||
let line_offset = offset + handle_width / 2.0;
|
|
||||||
|
|
||||||
renderer.fill_quad(
|
renderer.fill_quad(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: bounds.x,
|
x: bounds.x,
|
||||||
y: line_y,
|
y: rail_y - style.rail.size / 2.0,
|
||||||
width: line_offset,
|
width: offset,
|
||||||
height: style.rail.size,
|
height: style.rail.size,
|
||||||
},
|
},
|
||||||
border_radius: [
|
border_radius: [
|
||||||
|
|
@ -423,9 +421,9 @@ pub fn draw<T, R>(
|
||||||
renderer.fill_quad(
|
renderer.fill_quad(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: bounds.x + line_offset.round(),
|
x: bounds.x + offset,
|
||||||
y: line_y,
|
y: rail_y - style.rail.size / 2.0,
|
||||||
width: bounds.width - line_offset,
|
width: bounds.width - offset,
|
||||||
height: style.rail.size,
|
height: style.rail.size,
|
||||||
},
|
},
|
||||||
border_radius: [
|
border_radius: [
|
||||||
|
|
@ -445,7 +443,7 @@ pub fn draw<T, R>(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: bounds.x + offset.round(),
|
x: bounds.x + offset.round(),
|
||||||
y: bounds.y + bounds.height / 2.0 - handle_height / 2.0,
|
y: rail_y - handle_height / 2.0,
|
||||||
width: handle_width,
|
width: handle_width,
|
||||||
height: handle_height,
|
height: handle_height,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -388,16 +388,15 @@ pub fn draw<T, R>(
|
||||||
/ (range_start - range_end)
|
/ (range_start - range_end)
|
||||||
};
|
};
|
||||||
|
|
||||||
let line_x = bounds.x + bounds.width / 2.0 - style.rail.size / 2.0;
|
let rail_x = bounds.x + bounds.width / 2.0;
|
||||||
let line_offset = offset + handle_width / 2.0;
|
|
||||||
|
|
||||||
renderer.fill_quad(
|
renderer.fill_quad(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: line_x,
|
x: rail_x - style.rail.size / 2.0,
|
||||||
y: bounds.y,
|
y: bounds.y,
|
||||||
width: style.rail.size,
|
width: style.rail.size,
|
||||||
height: line_offset,
|
height: offset,
|
||||||
},
|
},
|
||||||
border_radius: [
|
border_radius: [
|
||||||
style.rail.border_radius,
|
style.rail.border_radius,
|
||||||
|
|
@ -415,10 +414,10 @@ pub fn draw<T, R>(
|
||||||
renderer.fill_quad(
|
renderer.fill_quad(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: line_x,
|
x: rail_x - style.rail.size / 2.0,
|
||||||
y: bounds.y + line_offset.round(),
|
y: bounds.y + offset,
|
||||||
width: style.rail.size,
|
width: style.rail.size,
|
||||||
height: bounds.height - line_offset,
|
height: bounds.height - offset,
|
||||||
},
|
},
|
||||||
border_radius: [
|
border_radius: [
|
||||||
0.0,
|
0.0,
|
||||||
|
|
@ -436,7 +435,7 @@ pub fn draw<T, R>(
|
||||||
renderer.fill_quad(
|
renderer.fill_quad(
|
||||||
renderer::Quad {
|
renderer::Quad {
|
||||||
bounds: Rectangle {
|
bounds: Rectangle {
|
||||||
x: bounds.x + bounds.width / 2.0 - handle_height / 2.0,
|
x: rail_x - handle_height / 2.0,
|
||||||
y: bounds.y + offset.round(),
|
y: bounds.y + offset.round(),
|
||||||
width: handle_height,
|
width: handle_height,
|
||||||
height: handle_width,
|
height: handle_width,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue