From 33ccbc9415fc2480fa6626125e661c92d7d292a3 Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Sun, 16 Apr 2023 16:04:13 -0400 Subject: [PATCH] LibGUI: Implement calculated_min_size() for SpinBox --- Userland/Libraries/LibGUI/SpinBox.cpp | 13 +++++++++++-- Userland/Libraries/LibGUI/SpinBox.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibGUI/SpinBox.cpp b/Userland/Libraries/LibGUI/SpinBox.cpp index 362d174ea3..3886d4a594 100644 --- a/Userland/Libraries/LibGUI/SpinBox.cpp +++ b/Userland/Libraries/LibGUI/SpinBox.cpp @@ -16,8 +16,8 @@ namespace GUI { SpinBox::SpinBox() { - set_min_size({ 40, 22 }); - set_preferred_size({ SpecialDimension::OpportunisticGrow, 22 }); + set_min_size({ SpecialDimension::Shrink }); + set_preferred_size({ SpecialDimension::OpportunisticGrow, SpecialDimension::Shrink }); m_editor = add(); m_editor->set_text("0"sv); m_editor->on_change = [this, weak_this = make_weak_ptr()] { @@ -127,4 +127,13 @@ void SpinBox::resize_event(ResizeEvent& event) m_editor->set_relative_rect(0, 0, width(), height()); } +Optional SpinBox::calculated_min_size() const +{ + auto constexpr button_width = 15; + auto width = m_editor->effective_min_size().width().as_int() + button_width; + auto height = m_editor->effective_min_size().height().as_int(); + + return UISize { width, height }; +} + } diff --git a/Userland/Libraries/LibGUI/SpinBox.h b/Userland/Libraries/LibGUI/SpinBox.h index 4679a05276..46098d79ec 100644 --- a/Userland/Libraries/LibGUI/SpinBox.h +++ b/Userland/Libraries/LibGUI/SpinBox.h @@ -34,6 +34,7 @@ protected: virtual void mousewheel_event(MouseEvent&) override; virtual void resize_event(ResizeEvent&) override; + virtual Optional calculated_min_size() const override; private: RefPtr m_editor;