[][src]Struct neutrino::widgets::range::Range

pub struct Range { /* fields omitted */ }

A progress bar with a handle

Fields

name: String
state: RangeState
listener: Option<Box<dyn RangeListener>>

Default values

name: name.to_string()
state:
    min: 0
    max: 100
    value: 0
    disabled: false
    stretched: false
    style: "".to_string()
listener: None

Style

div.range[.disabled]
    div.inner-range
        ::-webkit-slider-runnable-track
        ::-webkit-slider-thumb
        ::-ms-track
        ::-ms-thumb

Example

use std::cell::RefCell;
use std::rc::Rc;

use neutrino::widgets::range::{Range, RangeListener, RangeState};
use neutrino::utils::theme::Theme;
use neutrino::{App, Window};


struct Counter {
    value: i32,
}

impl Counter {
    fn new() -> Self {
        Self { value: 0 }
    }

    fn value(&self) -> i32 {
        self.value
    }

    fn set_value(&mut self, value: i32) {
        self.value = value;
    }
}


struct MyRangeListener {
    counter: Rc<RefCell<Counter>>,
}

impl MyRangeListener {
   pub fn new(counter: Rc<RefCell<Counter>>) -> Self {
       Self { counter }
   }
}

impl RangeListener for MyRangeListener {
    fn on_change(&self, state: &RangeState) {
        self.counter.borrow_mut().set_value(state.value());
    }

    fn on_update(&self, state: &mut RangeState) {
        state.set_value(self.counter.borrow().value());
    }
}


fn main() {
    let counter = Rc::new(RefCell::new(Counter::new()));

    let my_listener = MyRangeListener::new(Rc::clone(&counter));

    let mut my_range = Range::new("my_range");
    my_range.set_listener(Box::new(my_listener));
}

Methods

impl Range[src]

pub fn new(name: &str) -> Self[src]

Create a Range

pub fn set_min(&mut self, min: i32)[src]

Set the min

pub fn set_max(&mut self, max: i32)[src]

Set the max

pub fn set_value(&mut self, value: i32)[src]

Set the value

pub fn set_disabled(&mut self)[src]

Set the disabled flag to true

pub fn set_stretched(&mut self)[src]

Set the stretched flag to true

pub fn set_listener(&mut self, listener: Box<dyn RangeListener>)[src]

Set the listener

pub fn set_style(&mut self, style: &str)[src]

Set the style

Trait Implementations

impl Widget for Range[src]

Auto Trait Implementations

impl !Send for Range

impl Unpin for Range

impl !Sync for Range

impl !UnwindSafe for Range

impl !RefUnwindSafe for Range

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,