mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:42:44 +00:00 
			
		
		
		
	 caa8f43dbe
			
		
	
	
		caa8f43dbe
		
	
	
	
	
		
			
			And port page text to String. Also removes WizardDialog::show() helper as all current implementations prefer to derive their own Dialog.
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021, Nick Vella <nick@nxk.io>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <LibGUI/BoxLayout.h>
 | |
| #include <LibGUI/Label.h>
 | |
| #include <LibGUI/SeparatorWidget.h>
 | |
| #include <LibGUI/Widget.h>
 | |
| #include <LibGUI/Wizards/WizardPage.h>
 | |
| #include <LibGfx/Font/FontDatabase.h>
 | |
| #include <LibGfx/SystemTheme.h>
 | |
| 
 | |
| namespace GUI {
 | |
| 
 | |
| ErrorOr<NonnullRefPtr<WizardPage>> WizardPage::create(StringView title, StringView subtitle)
 | |
| {
 | |
|     auto page = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) WizardPage()));
 | |
|     TRY(page->build(TRY(String::from_utf8(title)), TRY(String::from_utf8(subtitle))));
 | |
|     return page;
 | |
| }
 | |
| 
 | |
| ErrorOr<void> WizardPage::build(String title, String subtitle)
 | |
| {
 | |
|     TRY(try_set_layout<VerticalBoxLayout>(Margins {}, 0));
 | |
| 
 | |
|     auto header_widget = TRY(try_add<Widget>());
 | |
|     header_widget->set_fill_with_background_color(true);
 | |
|     header_widget->set_background_role(Gfx::ColorRole::Base);
 | |
|     header_widget->set_fixed_height(58);
 | |
| 
 | |
|     TRY(header_widget->try_set_layout<VerticalBoxLayout>(Margins { 15, 30, 0 }));
 | |
|     m_title_label = TRY(header_widget->try_add<Label>(move(title)));
 | |
|     m_title_label->set_font(Gfx::FontDatabase::default_font().bold_variant());
 | |
|     m_title_label->set_fixed_height(m_title_label->font().pixel_size_rounded_up() + 2);
 | |
|     m_title_label->set_text_alignment(Gfx::TextAlignment::TopLeft);
 | |
| 
 | |
|     m_subtitle_label = TRY(header_widget->try_add<Label>(move(subtitle)));
 | |
|     m_subtitle_label->set_text_alignment(Gfx::TextAlignment::TopLeft);
 | |
|     m_subtitle_label->set_fixed_height(m_subtitle_label->font().pixel_size_rounded_up());
 | |
|     TRY(header_widget->add_spacer());
 | |
| 
 | |
|     auto separator = TRY(try_add<SeparatorWidget>(Gfx::Orientation::Horizontal));
 | |
|     separator->set_fixed_height(2);
 | |
| 
 | |
|     m_body_widget = TRY(try_add<Widget>());
 | |
|     TRY(m_body_widget->try_set_layout<VerticalBoxLayout>(20));
 | |
| 
 | |
|     return {};
 | |
| }
 | |
| 
 | |
| void WizardPage::set_page_title(String text)
 | |
| {
 | |
|     m_title_label->set_text(move(text));
 | |
| }
 | |
| 
 | |
| void WizardPage::set_page_subtitle(String text)
 | |
| {
 | |
|     m_subtitle_label->set_text(move(text));
 | |
| }
 | |
| 
 | |
| }
 |