diff --git a/Applications/About/main.cpp b/Applications/About/main.cpp index 336ccb6f002..c3fa95a3b5f 100644 --- a/Applications/About/main.cpp +++ b/Applications/About/main.cpp @@ -24,13 +24,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include #include -#include -#include -#include -#include -#include -#include +#include #include #include @@ -55,73 +51,6 @@ int main(int argc, char** argv) unveil(nullptr, nullptr); - auto window = GUI::Window::construct(); - window->set_title("About SerenityOS"); - window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/ladybug.png")); - Gfx::Rect window_rect { 0, 0, 224, 178 }; - window_rect.center_within(GUI::Desktop::the().rect()); - window->set_resizable(false); - window->set_rect(window_rect); - - auto& outer_widget = window->set_main_widget(); - outer_widget.set_fill_with_background_color(true); - outer_widget.set_layout(); - outer_widget.layout()->set_margins({ 8, 8, 8, 8 }); - - auto& inner_widget = outer_widget.add(); - inner_widget.set_layout(); - inner_widget.layout()->set_spacing(8); - - auto& left_outer_container = inner_widget.add(); - left_outer_container.set_layout(); - - auto& left_inner_container = left_outer_container.add(); - left_inner_container.set_layout(); - left_inner_container.layout()->set_spacing(8); - left_inner_container.set_preferred_size(0, 50); - left_inner_container.set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); - - auto& label = left_inner_container.add(); - label.set_text_alignment(Gfx::TextAlignment::CenterRight); - label.set_font(Gfx::Font::default_bold_font()); - label.set_text("SerenityOS"); - label.set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); - label.set_preferred_size(0, 11); - - utsname uts; - int rc = uname(&uts); - ASSERT(rc == 0); - - auto& version_label = left_inner_container.add(); - version_label.set_text_alignment(Gfx::TextAlignment::CenterRight); - version_label.set_text(String::format("Version %s", uts.release)); - version_label.set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); - version_label.set_preferred_size(0, 11); - - auto& git_info_label = left_inner_container.add(); - git_info_label.set_text_alignment(Gfx::TextAlignment::CenterRight); - git_info_label.set_text(String::format("%s@%s", GIT_BRANCH, GIT_COMMIT)); - git_info_label.set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); - git_info_label.set_preferred_size(0, 11); - - auto& right_container = inner_widget.add(); - right_container.set_layout(); - - auto& icon_label = right_container.add(); - icon_label.set_icon(Gfx::Bitmap::load_from_file("/res/icons/buggie.png")); - icon_label.set_tooltip("Buggie"); - icon_label.set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed); - icon_label.set_preferred_size(icon_label.icon()->size()); - - auto& quit_button = outer_widget.add(); - quit_button.set_text("Okay"); - quit_button.set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed); - quit_button.set_preferred_size(100, 20); - quit_button.on_click = [](auto) { - GUI::Application::the().quit(0); - }; - - quit_button.set_focus(true); - window->show(); + GUI::AboutDialog::show("SerenityOS", nullptr, nullptr, Gfx::Bitmap::load_from_file("/res/icons/16x16/ladybug.png")); return app.exec(); } diff --git a/Base/res/brand-banner.png b/Base/res/brand-banner.png new file mode 100644 index 00000000000..872cf0eee59 Binary files /dev/null and b/Base/res/brand-banner.png differ diff --git a/Base/res/icons/buggie-about.png b/Base/res/icons/buggie-about.png new file mode 100644 index 00000000000..9438ed31f43 Binary files /dev/null and b/Base/res/icons/buggie-about.png differ diff --git a/Libraries/LibGUI/AboutDialog.cpp b/Libraries/LibGUI/AboutDialog.cpp index e0fc528e181..aad6b05cc05 100644 --- a/Libraries/LibGUI/AboutDialog.cpp +++ b/Libraries/LibGUI/AboutDialog.cpp @@ -24,6 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include #include #include #include @@ -38,7 +40,7 @@ AboutDialog::AboutDialog(const StringView& name, const Gfx::Bitmap* icon, Window , m_name(name) , m_icon(icon) { - resize(230, 120); + resize(413, 315); set_title(String::format("About %s", m_name.characters())); set_resizable(false); @@ -47,21 +49,45 @@ AboutDialog::AboutDialog(const StringView& name, const Gfx::Bitmap* icon, Window auto& widget = set_main_widget(); widget.set_fill_with_background_color(true); - widget.set_layout(); + widget.set_layout(); + widget.layout()->set_spacing(0); - auto& left_container = widget.add(); + auto& banner_label = widget.add(); + banner_label.set_icon(Gfx::Bitmap::load_from_file("/res/brand-banner.png")); + banner_label.set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed); + banner_label.set_preferred_size(banner_label.icon()->size()); + + auto& content_container = widget.add(); + content_container.set_size_policy(SizePolicy::Fill, SizePolicy::Fill); + content_container.set_layout(); + + auto& left_container = content_container.add(); left_container.set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); - left_container.set_preferred_size(48, 0); + left_container.set_preferred_size(100, 0); left_container.set_layout(); - auto& icon_label = left_container.add