AbstractWizardPage.h 846 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2021, Nick Vella <nick@nxk.io>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/NonnullRefPtrVector.h>
  8. #include <LibGUI/Widget.h>
  9. namespace GUI {
  10. class AbstractWizardPage : public Widget {
  11. C_OBJECT_ABSTRACT(AbstractWizardPage);
  12. public:
  13. virtual ~AbstractWizardPage() override = default;
  14. Function<RefPtr<AbstractWizardPage>()> on_next_page;
  15. virtual RefPtr<AbstractWizardPage> next_page();
  16. virtual bool can_go_next();
  17. Function<void()> on_page_enter;
  18. virtual void page_enter();
  19. Function<void()> on_page_leave;
  20. virtual void page_leave();
  21. bool is_final_page() const { return m_is_final_page; }
  22. void set_is_final_page(bool val) { m_is_final_page = val; }
  23. protected:
  24. AbstractWizardPage() = default;
  25. private:
  26. bool m_is_final_page { false };
  27. };
  28. }