AbstractWizardPage.h 810 B

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