input: Use cosmic-config/cosmic-comp-config for mouse settings
Double click speed is not handled currently. That requires toolkit support.
This commit is contained in:
parent
750cd299b2
commit
69b5c3148f
4 changed files with 107 additions and 34 deletions
|
|
@ -2,6 +2,7 @@ use apply::Apply;
|
|||
use cosmic::iced::widget;
|
||||
use cosmic::widget::settings;
|
||||
use cosmic::Element;
|
||||
use cosmic_comp_config::input::AccelProfile;
|
||||
use cosmic_settings_page::Section;
|
||||
use cosmic_settings_page::{self as page, section};
|
||||
use slotmap::SlotMap;
|
||||
|
|
@ -63,24 +64,33 @@ fn mouse() -> Section<crate::pages::Message> {
|
|||
))
|
||||
.add(
|
||||
settings::item::builder(&descriptions[1]).control(widget::slider(
|
||||
0..=100,
|
||||
input.mouse_speed,
|
||||
Message::SetMouseSpeed,
|
||||
0.0..=100.0,
|
||||
(input
|
||||
.input_default
|
||||
.acceleration
|
||||
.as_ref()
|
||||
.map_or(0.0, |x| x.speed)
|
||||
+ 1.0)
|
||||
* 50.0,
|
||||
|value| Message::SetMouseSpeed((value / 50.0) - 1.0),
|
||||
)),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&descriptions[2])
|
||||
.description(&descriptions[3])
|
||||
.toggler(input.acceleration, Message::SetAcceleration),
|
||||
.toggler(
|
||||
input
|
||||
.input_default
|
||||
.acceleration
|
||||
.as_ref()
|
||||
.map_or(true, |x| x.profile == Some(AccelProfile::Adaptive)),
|
||||
Message::SetAcceleration,
|
||||
),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&descriptions[4])
|
||||
.description(&descriptions[5])
|
||||
.control(widget::slider(
|
||||
0..=100,
|
||||
input.double_click_speed,
|
||||
Message::SetDoubleClickSpeed,
|
||||
)),
|
||||
.control(widget::slider(0..=100, 0, Message::SetDoubleClickSpeed)),
|
||||
)
|
||||
.apply(Element::from)
|
||||
.map(crate::pages::Message::Input)
|
||||
|
|
@ -104,12 +114,33 @@ fn scrolling() -> Section<crate::pages::Message> {
|
|||
.add(settings::item(
|
||||
&descriptions[0],
|
||||
// TODO show numeric value
|
||||
widget::slider(0..=100, input.scroll_speed, Message::SetScrollSpeed),
|
||||
// TODO desired range?
|
||||
widget::slider(
|
||||
1.0..=100.0,
|
||||
input
|
||||
.input_default
|
||||
.scroll_config
|
||||
.as_ref()
|
||||
.and_then(|x| x.scroll_factor)
|
||||
.unwrap_or(1.)
|
||||
.log(2.)
|
||||
* 10.0
|
||||
+ 50.0,
|
||||
|value| Message::SetScrollFactor(2f64.powf((value - 50.0) / 10.0)),
|
||||
),
|
||||
))
|
||||
.add(
|
||||
settings::item::builder(&descriptions[1])
|
||||
.description(&descriptions[2])
|
||||
.toggler(input.natural_scroll, Message::SetNaturalScroll),
|
||||
.toggler(
|
||||
input
|
||||
.input_default
|
||||
.scroll_config
|
||||
.as_ref()
|
||||
.and_then(|x| x.natural_scroll)
|
||||
.unwrap_or(false),
|
||||
Message::SetNaturalScroll,
|
||||
),
|
||||
)
|
||||
.apply(Element::from)
|
||||
.map(crate::pages::Message::Input)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue