mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:27:44 +00:00
MouseSettings: Convert setting widgets to a failable factory
This commit is contained in:
parent
ab8be9aed5
commit
90819e2d71
6 changed files with 43 additions and 13 deletions
|
@ -19,10 +19,16 @@ constexpr double speed_slider_scale = 100.0;
|
|||
constexpr int default_scroll_length = 4;
|
||||
constexpr int double_click_speed_default = 250;
|
||||
|
||||
MouseWidget::MouseWidget()
|
||||
ErrorOr<NonnullRefPtr<MouseWidget>> MouseWidget::try_create()
|
||||
{
|
||||
load_from_gml(mouse_widget_gml).release_value_but_fixme_should_propagate_errors();
|
||||
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) MouseWidget()));
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> MouseWidget::setup()
|
||||
{
|
||||
TRY(load_from_gml(mouse_widget_gml));
|
||||
m_speed_label = *find_descendant_of_type_named<GUI::Label>("speed_label");
|
||||
m_speed_slider = *find_descendant_of_type_named<GUI::HorizontalSlider>("speed_slider");
|
||||
m_speed_slider->set_range(WindowServer::mouse_accel_min * speed_slider_scale, WindowServer::mouse_accel_max * speed_slider_scale);
|
||||
|
@ -70,6 +76,7 @@ MouseWidget::MouseWidget()
|
|||
update_double_click_speed_label();
|
||||
update_switch_buttons_image_label();
|
||||
m_double_click_arrow_widget->set_double_click_speed(m_double_click_speed_slider->value());
|
||||
return {};
|
||||
}
|
||||
|
||||
void MouseWidget::apply_settings()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue