Archived
generated from mitchell/rust_template
add docs and refactor GFStyle
This commit is contained in:
@@ -3,6 +3,7 @@ use crate::{form::FormToolData, form_builder::FormBuilder, styles::FormStyle};
|
||||
use leptos::{Signal, View};
|
||||
use std::{ops::RangeInclusive, rc::Rc};
|
||||
|
||||
/// Data used for the slider control.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
pub struct SliderData {
|
||||
pub name: String,
|
||||
@@ -37,6 +38,7 @@ impl ControlData for SliderData {
|
||||
}
|
||||
|
||||
impl<FD: FormToolData> FormBuilder<FD> {
|
||||
/// Builds a slider (or range) control and adds it to the form.
|
||||
pub fn slider<FDT: Clone + PartialEq + 'static>(
|
||||
self,
|
||||
builder: impl BuilderFn<ControlBuilder<FD, SliderData, FDT>>,
|
||||
@@ -44,6 +46,8 @@ impl<FD: FormToolData> FormBuilder<FD> {
|
||||
self.new_control(builder)
|
||||
}
|
||||
|
||||
/// Bulids a slider (or range) control using the form's context and adds
|
||||
/// it to the form.
|
||||
pub fn slider_cx<FDT: Clone + PartialEq + 'static>(
|
||||
self,
|
||||
builder: impl BuilderCxFn<ControlBuilder<FD, SliderData, FDT>, FD::Context>,
|
||||
@@ -53,26 +57,36 @@ impl<FD: FormToolData> FormBuilder<FD> {
|
||||
}
|
||||
|
||||
impl<FD: FormToolData, FDT> ControlBuilder<FD, SliderData, FDT> {
|
||||
/// Sets the name of the slider.
|
||||
///
|
||||
/// This is used for the html element's "name" attribute.
|
||||
/// In forms, the name attribute is the key that the data is sent
|
||||
/// with.
|
||||
pub fn named(mut self, control_name: impl ToString) -> Self {
|
||||
self.data.name = control_name.to_string();
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the label for the slider.
|
||||
pub fn labeled(mut self, label: impl ToString) -> Self {
|
||||
self.data.label = Some(label.to_string());
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the minimum value for the slider.
|
||||
pub fn min(mut self, min: i32) -> Self {
|
||||
self.data.min = min;
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the maximum value for the slider.
|
||||
pub fn max(mut self, max: i32) -> Self {
|
||||
self.data.max = max;
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the minimum and maximum values for the slider by providing a
|
||||
/// range.
|
||||
pub fn range(mut self, range: RangeInclusive<i32>) -> Self {
|
||||
self.data.min = *range.start();
|
||||
self.data.max = *range.end();
|
||||
|
||||
Reference in New Issue
Block a user