iced_pancurses/renderer/
slider.rs1use crate::primitive::Primitive;
2use crate::PancursesRenderer;
3
4use iced_native::widget::slider;
5use iced_native::{Point, Rectangle};
6
7use std::ops::RangeInclusive;
8
9impl slider::Renderer for PancursesRenderer {
10 fn height(&self) -> u32 {
11 1
12 }
13
14 fn draw(
15 &mut self,
16 bounds: Rectangle,
17 _cursor_position: Point,
18 range: RangeInclusive<f32>,
19 value: f32,
20 _is_dragging: bool,
21 ) -> Primitive {
22 let (range_start, range_end) = range.into_inner();
23 let marker_offset =
24 bounds.width * ((value - range_start) / (range_end - range_start).max(1.0));
25
26 Primitive::Group(vec![
27 Primitive::BoxDisplay(bounds),
28 Primitive::Char(bounds.x as i32 + marker_offset as i32, bounds.y as i32, 'x'),
29 ])
30 }
31}