Struct iced_audio::native::knob::Knob
source · pub struct Knob<'a, Message, Renderer>where
Renderer: Renderer,
Renderer::Theme: StyleSheet,{ /* private fields */ }
Expand description
A rotating knob GUI widget that controls a NormalParam
Implementations§
source§impl<'a, Message, Renderer> Knob<'a, Message, Renderer>where
Renderer: Renderer,
Renderer::Theme: StyleSheet,
impl<'a, Message, Renderer> Knob<'a, Message, Renderer>where Renderer: Renderer, Renderer::Theme: StyleSheet,
sourcepub fn new<F>(normal_param: NormalParam, on_change: F) -> Selfwhere
F: 'a + Fn(Normal) -> Message,
pub fn new<F>(normal_param: NormalParam, on_change: F) -> Selfwhere F: 'a + Fn(Normal) -> Message,
Creates a new Knob
.
It expects:
- the
NormalParam
of theKnob
- a function that will be called when the
Knob
is turned.
sourcepub fn on_grab(self, on_grab: impl 'a + FnMut() -> Option<Message>) -> Self
pub fn on_grab(self, on_grab: impl 'a + FnMut() -> Option<Message>) -> Self
Sets the grab message of the Knob
.
This is called when the mouse grabs from the knob.
Typically, the user’s interaction with the knob starts when this message is produced. This is useful for some environments so that external changes, such as automation, don’t interfer with user’s changes.
sourcepub fn on_release(
self,
on_release: impl 'a + FnMut() -> Option<Message>
) -> Self
pub fn on_release( self, on_release: impl 'a + FnMut() -> Option<Message> ) -> Self
Sets the release message of the Knob
.
This is called when the mouse is released from the knob.
Typically, the user’s interaction with the knob is finished when this message is produced. This is useful if you need to spawn a long-running task from the knob’s result, where the default on_change message could create too many events.
sourcepub fn size(self, size: Length) -> Self
pub fn size(self, size: Length) -> Self
Sets the diameter of the Knob
. The default size is
Length::from(Length::Fixed(31))
.
sourcepub fn style(
self,
style: impl Into<<Renderer::Theme as StyleSheet>::Style>
) -> Self
pub fn style( self, style: impl Into<<Renderer::Theme as StyleSheet>::Style> ) -> Self
Sets the style of the Knob
.
sourcepub fn wheel_scalar(self, wheel_scalar: f32) -> Self
pub fn wheel_scalar(self, wheel_scalar: f32) -> Self
sourcepub fn modifier_keys(self, modifier_keys: Modifiers) -> Self
pub fn modifier_keys(self, modifier_keys: Modifiers) -> Self
Sets the modifier keys of the Knob
.
The default modifier key is Ctrl
.
sourcepub fn modifier_scalar(self, scalar: f32) -> Self
pub fn modifier_scalar(self, scalar: f32) -> Self
Sets the scalar to use when the user drags the knobs while holding down
the modifier key. This is multiplied to the value set by
Knob::scalar()
(which the default is 0.00385
).
For example, a modifier_scalar
of 0.5
will cause the knob to turn
half as fast when the modifier key is down.
The default modifier_scalar
is 0.02
, and the default modifier key
is Ctrl
.
sourcepub fn tick_marks(self, tick_marks: &'a Group) -> Self
pub fn tick_marks(self, tick_marks: &'a Group) -> Self
Sets the tick marks to display. Note your StyleSheet
must
also implement tick_marks_style(&self) -> Option<tick_marks::Style>
for
them to display (which the default style does).
sourcepub fn text_marks(self, text_marks: &'a Group) -> Self
pub fn text_marks(self, text_marks: &'a Group) -> Self
Sets the text marks to display. Note your StyleSheet
must
also implement text_marks_style(&self) -> Option<text_marks::Style>
for
them to display (which the default style does).
sourcepub fn mod_range(self, mod_range: &'a ModulationRange) -> Self
pub fn mod_range(self, mod_range: &'a ModulationRange) -> Self
Sets a ModulationRange
to display. Note your StyleSheet
must
also implement mod_range_style(&self) -> Option<ModRangeStyle>
for
them to display.
sourcepub fn mod_range_2(self, mod_range: &'a ModulationRange) -> Self
pub fn mod_range_2(self, mod_range: &'a ModulationRange) -> Self
Sets a second ModulationRange
to display. Note your StyleSheet
must
also implement mod_range_style_2(&self) -> Option<ModRangeStyle>
for
them to display.
sourcepub fn bipolar_center(self, bipolar_center: Normal) -> Self
pub fn bipolar_center(self, bipolar_center: Normal) -> Self
Sets the value to be considered the center of the Knob
. Only has
an effect when using ArcBipolarStyle
.
Trait Implementations§
source§impl<'a, Message, Renderer> From<Knob<'a, Message, Renderer>> for Element<'a, Message, Renderer>where
Message: 'a,
Renderer: 'a + Renderer,
Renderer::Theme: 'a + StyleSheet,
impl<'a, Message, Renderer> From<Knob<'a, Message, Renderer>> for Element<'a, Message, Renderer>where Message: 'a, Renderer: 'a + Renderer, Renderer::Theme: 'a + StyleSheet,
source§impl<'a, Message, Renderer> Widget<Message, Renderer> for Knob<'a, Message, Renderer>where
Renderer: Renderer,
Renderer::Theme: StyleSheet,
impl<'a, Message, Renderer> Widget<Message, Renderer> for Knob<'a, Message, Renderer>where Renderer: Renderer, Renderer::Theme: StyleSheet,
source§fn on_event(
&mut self,
state: &mut Tree,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
_renderer: &Renderer,
_clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>
) -> Status
fn on_event( &mut self, state: &mut Tree, event: Event, layout: Layout<'_>, cursor_position: Point, _renderer: &Renderer, _clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message> ) -> Status
source§fn draw(
&self,
state: &Tree,
renderer: &mut Renderer,
theme: &Renderer::Theme,
_style: &Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle
)
fn draw( &self, state: &Tree, renderer: &mut Renderer, theme: &Renderer::Theme, _style: &Style, layout: Layout<'_>, cursor_position: Point, _viewport: &Rectangle )
Widget
using the associated Renderer
.source§fn operate(
&self,
_state: &mut Tree,
_layout: Layout<'_>,
_renderer: &Renderer,
_operation: &mut dyn Operation<Message>
)
fn operate( &self, _state: &mut Tree, _layout: Layout<'_>, _renderer: &Renderer, _operation: &mut dyn Operation<Message> )
source§fn mouse_interaction(
&self,
_state: &Tree,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle<f32>,
_renderer: &Renderer
) -> Interaction
fn mouse_interaction( &self, _state: &Tree, _layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle<f32>, _renderer: &Renderer ) -> Interaction
Auto Trait Implementations§
impl<'a, Message, Renderer> !RefUnwindSafe for Knob<'a, Message, Renderer>
impl<'a, Message, Renderer> !Send for Knob<'a, Message, Renderer>
impl<'a, Message, Renderer> !Sync for Knob<'a, Message, Renderer>
impl<'a, Message, Renderer> Unpin for Knob<'a, Message, Renderer>where <<Renderer as Renderer>::Theme as StyleSheet>::Style: Unpin,
impl<'a, Message, Renderer> !UnwindSafe for Knob<'a, Message, Renderer>
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: FloatComponent,
Swp: WhitePoint,
Dwp: WhitePoint,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere T: FloatComponent, Swp: WhitePoint, Dwp: WhitePoint, D: AdaptFrom<S, Swp, Dwp, T>,
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere M: TransformMatrix<Swp, Dwp, T>,
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere U: FromColor<T>,
source§fn into_color(self) -> U
fn into_color(self) -> U
source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere U: FromColorUnclamped<T>,
source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere U: TryFromColor<T>,
source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more