CoverWizardPage.cpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) 2021, Nick Vella <nick@nxk.io>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibGUI/BoxLayout.h>
  7. #include <LibGUI/ImageWidget.h>
  8. #include <LibGUI/Label.h>
  9. #include <LibGUI/Wizards/CoverWizardPage.h>
  10. #include <LibGfx/Font/FontDatabase.h>
  11. #include <LibGfx/SystemTheme.h>
  12. namespace GUI {
  13. ErrorOr<NonnullRefPtr<CoverWizardPage>> CoverWizardPage::create(StringView title, StringView subtitle)
  14. {
  15. auto page = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) CoverWizardPage()));
  16. TRY(page->build(TRY(String::from_utf8(title)), TRY(String::from_utf8(subtitle))));
  17. return page;
  18. }
  19. ErrorOr<void> CoverWizardPage::build(String title, String subtitle)
  20. {
  21. set_fill_with_background_color(true);
  22. set_background_role(Gfx::ColorRole::Base);
  23. set_layout<HorizontalBoxLayout>();
  24. m_banner_image_widget = TRY(try_add<ImageWidget>());
  25. m_banner_image_widget->set_fixed_size(160, 315);
  26. m_banner_image_widget->load_from_file("/res/graphics/wizard-banner-simple.png"sv);
  27. m_content_widget = TRY(try_add<Widget>());
  28. m_content_widget->set_layout<VerticalBoxLayout>(20);
  29. m_header_label = TRY(m_content_widget->try_add<Label>(move(title)));
  30. m_header_label->set_font(Gfx::FontDatabase::the().get("Pebbleton"_fly_string, 14, 700, Gfx::FontWidth::Normal, 0));
  31. m_header_label->set_text_alignment(Gfx::TextAlignment::TopLeft);
  32. m_header_label->set_fixed_height(48);
  33. m_body_label = TRY(m_content_widget->try_add<Label>(move(subtitle)));
  34. m_body_label->set_text_alignment(Gfx::TextAlignment::TopLeft);
  35. return {};
  36. }
  37. void CoverWizardPage::set_header_text(String text)
  38. {
  39. m_header_label->set_text(move(text));
  40. }
  41. void CoverWizardPage::set_body_text(String text)
  42. {
  43. m_body_label->set_text(move(text));
  44. }
  45. }