ScrollableContainerWidget.h 905 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibGUI/AbstractScrollableWidget.h>
  8. namespace GUI {
  9. class ScrollableContainerWidget : public GUI::AbstractScrollableWidget {
  10. C_OBJECT(ScrollableContainerWidget);
  11. public:
  12. virtual ~ScrollableContainerWidget();
  13. void set_widget(GUI::Widget*);
  14. GUI::Widget* widget() { return m_widget; }
  15. GUI::Widget const* widget() const { return m_widget; }
  16. protected:
  17. virtual void did_scroll() override;
  18. virtual void resize_event(GUI::ResizeEvent&) override;
  19. private:
  20. void update_widget_size();
  21. void update_widget_position();
  22. virtual bool load_from_gml_ast(NonnullRefPtr<GUI::GML::Node> ast, RefPtr<Core::Object> (*unregistered_child_handler)(const String&)) override;
  23. ScrollableContainerWidget();
  24. RefPtr<GUI::Widget> m_widget;
  25. };
  26. }