NumericInput.h 747 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (c) 2021, Matthew Olsson <mattco@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/NumericLimits.h>
  8. #include <LibGUI/TextBox.h>
  9. class NumericInput final : public GUI::TextBox {
  10. C_OBJECT(NumericInput)
  11. public:
  12. NumericInput();
  13. virtual ~NumericInput() override = default;
  14. Function<void(i32)> on_number_changed;
  15. void set_min_number(i32 number);
  16. void set_max_number(i32 number);
  17. void set_current_number(i32 number, bool call_change_handler = true);
  18. private:
  19. void on_focus_lost();
  20. bool m_needs_text_reset { false };
  21. i32 m_current_number { 0 };
  22. i32 m_min_number { NumericLimits<i32>::min() };
  23. i32 m_max_number { NumericLimits<i32>::max() };
  24. };