mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-06 16:09:30 +00:00
MouseSettingsWidget: Port to GML compilation
This commit is contained in:
parent
03f4ec8032
commit
342fb906cf
|
@ -4,24 +4,21 @@ serenity_component(
|
|||
TARGETS MouseSettings
|
||||
)
|
||||
|
||||
stringify_gml(Mouse.gml MouseWidgetGML.h mouse_widget_gml)
|
||||
stringify_gml(Theme.gml ThemeWidgetGML.h theme_widget_gml)
|
||||
stringify_gml(Highlight.gml HighlightWidgetGML.h highlight_widget_gml)
|
||||
compile_gml(MouseWidget.gml MouseWidgetGML.cpp)
|
||||
compile_gml(ThemeWidget.gml ThemeWidgetGML.cpp)
|
||||
compile_gml(HighlightWidget.gml HighlightWidgetGML.cpp)
|
||||
|
||||
set(SOURCES
|
||||
DoubleClickArrowWidget.cpp
|
||||
HighlightPreviewWidget.cpp
|
||||
HighlightWidget.cpp
|
||||
HighlightWidgetGML.cpp
|
||||
MouseWidget.cpp
|
||||
MouseWidgetGML.cpp
|
||||
ThemeWidget.cpp
|
||||
ThemeWidgetGML.cpp
|
||||
main.cpp
|
||||
)
|
||||
|
||||
set(GENERATED_SOURCES
|
||||
HighlightWidgetGML.h
|
||||
MouseWidgetGML.h
|
||||
ThemeWidgetGML.h
|
||||
)
|
||||
|
||||
serenity_app(MouseSettings ICON app-mouse)
|
||||
target_link_libraries(MouseSettings PRIVATE LibCore LibGfx LibGUI LibIPC LibMain)
|
||||
|
|
|
@ -6,20 +6,11 @@
|
|||
|
||||
#include "HighlightWidget.h"
|
||||
|
||||
#include <Applications/MouseSettings/HighlightWidgetGML.h>
|
||||
#include <LibGUI/ConnectionToWindowServer.h>
|
||||
|
||||
ErrorOr<NonnullRefPtr<HighlightWidget>> HighlightWidget::try_create()
|
||||
namespace MouseSettings {
|
||||
ErrorOr<void> HighlightWidget::initialize()
|
||||
{
|
||||
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) HighlightWidget()));
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> HighlightWidget::setup()
|
||||
{
|
||||
TRY(load_from_gml(highlight_widget_gml));
|
||||
|
||||
m_highlight_preview = find_descendant_of_type_named<GUI::Frame>("preview_frame")->add<MouseSettings::HighlightPreviewWidget>(palette());
|
||||
|
||||
auto current_highlight_color = GUI::ConnectionToWindowServer::the().get_cursor_highlight_color();
|
||||
|
@ -85,3 +76,4 @@ void HighlightWidget::reset_default_values()
|
|||
m_highlight_preview->update();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@GUI::Frame {
|
||||
@MouseSettings::HighlightWidget {
|
||||
fill_with_background_color: true
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [8]
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
@GUI::ColorInput {
|
||||
name: "highlight_color_input"
|
||||
has_alpha_channel: false
|
||||
color_has_alpha_channel: false
|
||||
}
|
||||
|
||||
@GUI::Layout::Spacer {}
|
|
@ -12,10 +12,13 @@
|
|||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/Window.h>
|
||||
|
||||
namespace MouseSettings {
|
||||
class HighlightWidget final : public GUI::SettingsWindow::Tab {
|
||||
C_OBJECT_ABSTRACT(HighlightWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<HighlightWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual ~HighlightWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
|
@ -23,7 +26,6 @@ public:
|
|||
|
||||
private:
|
||||
HighlightWidget() = default;
|
||||
ErrorOr<void> setup();
|
||||
|
||||
Gfx::Color highlight_color();
|
||||
|
||||
|
@ -34,3 +36,4 @@ private:
|
|||
RefPtr<GUI::Slider> m_highlight_opacity_slider;
|
||||
RefPtr<GUI::Slider> m_highlight_radius_slider;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include "MouseWidget.h"
|
||||
|
||||
#include <Applications/MouseSettings/MouseWidgetGML.h>
|
||||
#include <LibGUI/ConnectionToWindowServer.h>
|
||||
#include <LibGUI/HorizontalSlider.h>
|
||||
#include <LibGUI/ImageWidget.h>
|
||||
|
@ -20,16 +19,9 @@ constexpr double speed_slider_scale = 100.0;
|
|||
constexpr int default_scroll_length = 4;
|
||||
constexpr int double_click_speed_default = 250;
|
||||
|
||||
ErrorOr<NonnullRefPtr<MouseWidget>> MouseWidget::try_create()
|
||||
namespace MouseSettings {
|
||||
ErrorOr<void> MouseWidget::initialize()
|
||||
{
|
||||
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);
|
||||
|
@ -117,3 +109,4 @@ void MouseWidget::update_switch_buttons_image_label()
|
|||
m_switch_buttons_image->load_from_file("/res/graphics/mouse-button-left.png"sv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@GUI::Frame {
|
||||
@MouseSettings::MouseWidget {
|
||||
fill_with_background_color: true
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [8]
|
|
@ -11,10 +11,13 @@
|
|||
#include <LibGUI/SettingsWindow.h>
|
||||
#include <LibGUI/Window.h>
|
||||
|
||||
namespace MouseSettings {
|
||||
class MouseWidget final : public GUI::SettingsWindow::Tab {
|
||||
C_OBJECT_ABSTRACT(MouseWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<MouseWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual ~MouseWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
|
@ -22,7 +25,6 @@ public:
|
|||
|
||||
private:
|
||||
MouseWidget() = default;
|
||||
ErrorOr<void> setup();
|
||||
|
||||
void update_speed_label();
|
||||
void update_double_click_speed_label();
|
||||
|
@ -38,3 +40,4 @@ private:
|
|||
RefPtr<GUI::CheckBox> m_natural_scroll_checkbox;
|
||||
RefPtr<MouseSettings::DoubleClickArrowWidget> m_double_click_arrow_widget;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "ThemeWidget.h"
|
||||
|
||||
#include <AK/LexicalPath.h>
|
||||
#include <Applications/MouseSettings/ThemeWidgetGML.h>
|
||||
#include <LibCore/Directory.h>
|
||||
#include <LibGUI/Button.h>
|
||||
#include <LibGUI/ComboBox.h>
|
||||
|
@ -15,6 +14,7 @@
|
|||
#include <LibGUI/SortingProxyModel.h>
|
||||
#include <LibGUI/TableView.h>
|
||||
|
||||
namespace MouseSettings {
|
||||
ErrorOr<String> MouseCursorModel::column_name(int column_index) const
|
||||
{
|
||||
switch (column_index) {
|
||||
|
@ -113,16 +113,8 @@ Vector<GUI::ModelIndex> ThemeModel::matches(StringView needle, unsigned flags, c
|
|||
return found;
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<ThemeWidget>> ThemeWidget::try_create()
|
||||
ErrorOr<void> ThemeWidget::initialize()
|
||||
{
|
||||
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ThemeWidget()));
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> ThemeWidget::setup()
|
||||
{
|
||||
TRY(load_from_gml(theme_widget_gml));
|
||||
m_cursors_tableview = find_descendant_of_type_named<GUI::TableView>("cursors_tableview");
|
||||
m_cursors_tableview->set_highlight_selected_rows(true);
|
||||
m_cursors_tableview->set_alternating_row_colors(false);
|
||||
|
@ -162,3 +154,4 @@ void ThemeWidget::reset_default_values()
|
|||
{
|
||||
m_theme_name_box->set_text("Default");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@GUI::Frame {
|
||||
@MouseSettings::ThemeWidget {
|
||||
fill_with_background_color: true
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [8]
|
||||
|
@ -19,7 +19,6 @@
|
|||
|
||||
@GUI::ComboBox {
|
||||
name: "theme_name_box"
|
||||
model_only: true
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
#include <LibGUI/SettingsWindow.h>
|
||||
#include <LibGfx/CursorParams.h>
|
||||
|
||||
namespace MouseSettings {
|
||||
class MouseCursorModel final : public GUI::Model {
|
||||
public:
|
||||
static NonnullRefPtr<MouseCursorModel> create() { return adopt_ref(*new MouseCursorModel); }
|
||||
|
@ -67,6 +68,8 @@ class ThemeWidget final : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(ThemeWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<ThemeWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual ~ThemeWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
|
@ -74,9 +77,9 @@ public:
|
|||
|
||||
private:
|
||||
ThemeWidget() = default;
|
||||
ErrorOr<void> setup();
|
||||
|
||||
RefPtr<GUI::TableView> m_cursors_tableview;
|
||||
RefPtr<GUI::ComboBox> m_theme_name_box;
|
||||
RefPtr<MouseCursorModel> m_mouse_cursor_model;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -34,9 +34,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto app_icon = GUI::Icon::default_icon("app-mouse"sv);
|
||||
|
||||
auto window = TRY(GUI::SettingsWindow::create("Mouse Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
|
||||
(void)TRY(window->add_tab<MouseWidget>("Mouse"_string, "mouse"sv));
|
||||
(void)TRY(window->add_tab<ThemeWidget>("Cursor Theme"_string, "cursor-theme"sv));
|
||||
(void)TRY(window->add_tab<HighlightWidget>("Cursor Highlight"_string, "cursor-highlight"sv));
|
||||
(void)TRY(window->add_tab<MouseSettings::MouseWidget>("Mouse"_string, "mouse"sv));
|
||||
(void)TRY(window->add_tab<MouseSettings::ThemeWidget>("Cursor Theme"_string, "cursor-theme"sv));
|
||||
(void)TRY(window->add_tab<MouseSettings::HighlightWidget>("Cursor Highlight"_string, "cursor-highlight"sv));
|
||||
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
window->set_active_tab(selected_tab);
|
||||
|
|
Loading…
Reference in a new issue