StackWidget.h 706 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibGUI/Widget.h>
  8. namespace GUI {
  9. class StackWidget : public Widget {
  10. C_OBJECT(StackWidget)
  11. public:
  12. virtual ~StackWidget() override;
  13. Widget* active_widget() { return m_active_widget.ptr(); }
  14. const Widget* active_widget() const { return m_active_widget.ptr(); }
  15. void set_active_widget(Widget*);
  16. Function<void(Widget*)> on_active_widget_change;
  17. protected:
  18. StackWidget();
  19. virtual void child_event(Core::ChildEvent&) override;
  20. virtual void resize_event(ResizeEvent&) override;
  21. private:
  22. RefPtr<Widget> m_active_widget;
  23. };
  24. }