From 986f01237f227ad2eaabda982324fc26840cb12b Mon Sep 17 00:00:00 2001 From: Songtronix Date: Thu, 2 Jan 2020 18:07:00 +0100 Subject: change(widget): make height adjustable at widget level addtionally rename Progressbar to ProgressBar --- wgpu/src/renderer/widget.rs | 2 +- wgpu/src/renderer/widget/progress_bar.rs | 45 +++++++++++++++++++++++++++++ wgpu/src/renderer/widget/progressbar.rs | 49 -------------------------------- 3 files changed, 46 insertions(+), 50 deletions(-) create mode 100644 wgpu/src/renderer/widget/progress_bar.rs delete mode 100644 wgpu/src/renderer/widget/progressbar.rs (limited to 'wgpu/src') diff --git a/wgpu/src/renderer/widget.rs b/wgpu/src/renderer/widget.rs index 94ebd10e..32187c10 100644 --- a/wgpu/src/renderer/widget.rs +++ b/wgpu/src/renderer/widget.rs @@ -2,7 +2,7 @@ mod button; mod checkbox; mod column; mod image; -mod progressbar; +mod progress_bar; mod radio; mod row; mod scrollable; diff --git a/wgpu/src/renderer/widget/progress_bar.rs b/wgpu/src/renderer/widget/progress_bar.rs new file mode 100644 index 00000000..3550df23 --- /dev/null +++ b/wgpu/src/renderer/widget/progress_bar.rs @@ -0,0 +1,45 @@ +use crate::{Primitive, Renderer}; +use iced_native::{progress_bar, Background, Color, MouseCursor, Rectangle}; + +impl progress_bar::Renderer for Renderer { + fn draw( + &self, + bounds: Rectangle, + range: std::ops::RangeInclusive, + value: f32, + background: Option, + active_color: Option, + ) -> Self::Output { + let (range_start, range_end) = range.into_inner(); + let active_progress_width = bounds.width + * ((value - range_start) / (range_end - range_start).max(1.0)); + + let background = Primitive::Group { + primitives: vec![Primitive::Quad { + bounds: Rectangle { ..bounds }, + background: background + .unwrap_or(Background::Color([0.6, 0.6, 0.6].into())) + .into(), + border_radius: 5, + }], + }; + + let active_progress = Primitive::Quad { + bounds: Rectangle { + width: active_progress_width, + ..bounds + }, + background: Background::Color( + active_color.unwrap_or([0.0, 0.95, 0.0].into()), + ), + border_radius: 5, + }; + + ( + Primitive::Group { + primitives: vec![background, active_progress], + }, + MouseCursor::OutOfBounds, + ) + } +} diff --git a/wgpu/src/renderer/widget/progressbar.rs b/wgpu/src/renderer/widget/progressbar.rs deleted file mode 100644 index f621343d..00000000 --- a/wgpu/src/renderer/widget/progressbar.rs +++ /dev/null @@ -1,49 +0,0 @@ -use crate::{Primitive, Renderer}; -use iced_native::{progressbar, Background, Color, MouseCursor, Rectangle}; - -impl progressbar::Renderer for Renderer { - fn height(&self) -> u32 { - 30 - } - - fn draw( - &self, - bounds: Rectangle, - range: std::ops::RangeInclusive, - value: f32, - background: Option, - active_color: Option, - ) -> Self::Output { - let (range_start, range_end) = range.into_inner(); - let active_progress_width = bounds.width - * ((value - range_start) / (range_end - range_start).max(1.0)); - - let background = Primitive::Group { - primitives: vec![Primitive::Quad { - bounds: Rectangle { ..bounds }, - background: background - .unwrap_or(Background::Color([0.6, 0.6, 0.6].into())) - .into(), - border_radius: 5, - }], - }; - - let active_progress = Primitive::Quad { - bounds: Rectangle { - width: active_progress_width, - ..bounds - }, - background: Background::Color( - active_color.unwrap_or([0.0, 0.95, 0.0].into()), - ), - border_radius: 5, - }; - - ( - Primitive::Group { - primitives: vec![background, active_progress], - }, - MouseCursor::OutOfBounds, - ) - } -} -- cgit