Browse Source

LibGUI: Disable increment/decrement buttons on SpinBox based on value

When the value for a SpinBox equals the max, disable the increment
button. Functionally, clicking the button doesn't do anything because
the set_value() clamps the value to min/max and updates the textbox.
However it is still nice to indicate to the user that they've reached
the max. Same goes for minimum value and the decrement button.
Timothy Slater 2 years ago
parent
commit
5064b58
1 changed files with 4 additions and 0 deletions
  1. 4 0
      Userland/Libraries/LibGUI/SpinBox.cpp

+ 4 - 0
Userland/Libraries/LibGUI/SpinBox.cpp

@@ -69,6 +69,10 @@ void SpinBox::set_value(int value, AllowCallback allow_callback)
     if (m_value == value)
     if (m_value == value)
         return;
         return;
     m_value = value;
     m_value = value;
+
+    m_increment_button->set_enabled(m_value < m_max);
+    m_decrement_button->set_enabled(m_value > m_min);
+
     m_editor->set_text(String::number(value));
     m_editor->set_text(String::number(value));
     update();
     update();
     if (on_change && allow_callback == AllowCallback::Yes)
     if (on_change && allow_callback == AllowCallback::Yes)