From e705e4e08358072c1b1e659561284b555d9511af Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 29 Feb 2020 14:31:24 +0100 Subject: [PATCH] About: Adopt Buggie :^) Simon Struthers drew a SerenityOS ladybug and since it's so cute, I figured we could adopt it! --- Applications/About/Makefile | 2 +- Applications/About/main.cpp | 54 +++++++++++++++++++++++------------- Base/res/icons/buggie.png | Bin 0 -> 10480 bytes 3 files changed, 35 insertions(+), 21 deletions(-) create mode 100644 Base/res/icons/buggie.png diff --git a/Applications/About/Makefile b/Applications/About/Makefile index 928c8c530c..4745b70e23 100755 --- a/Applications/About/Makefile +++ b/Applications/About/Makefile @@ -5,6 +5,6 @@ PROGRAM = About LIB_DEPS = GUI Gfx IPC Core -DEFINES += -DGIT_COMMIT=\"`git rev-parse --short HEAD`\" -DGIT_BRANCH=\"`git rev-parse --abbrev-ref HEAD`\" -DGIT_CHANGES=\"`git diff-index --quiet HEAD -- && echo "tracked"|| echo "untracked"`\" +DEFINES += -DGIT_COMMIT=\"`git rev-parse --short HEAD`\" -DGIT_BRANCH=\"`git rev-parse --abbrev-ref HEAD`\" include ../../Makefile.common diff --git a/Applications/About/main.cpp b/Applications/About/main.cpp index 6c646dfc69..4da40c942c 100644 --- a/Applications/About/main.cpp +++ b/Applications/About/main.cpp @@ -57,24 +57,33 @@ int main(int argc, char** argv) auto window = GUI::Window::construct(); window->set_title("About SerenityOS"); - Gfx::Rect window_rect { 0, 0, 240, 180 }; + 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 widget = GUI::Widget::construct(); - window->set_main_widget(widget); - widget->set_fill_with_background_color(true); - widget->set_layout(make()); - widget->layout()->set_margins({ 0, 8, 0, 8 }); - widget->layout()->set_spacing(8); + auto outer_widget = GUI::Widget::construct(); + window->set_main_widget(outer_widget); + outer_widget->set_fill_with_background_color(true); + outer_widget->set_layout(make()); + outer_widget->layout()->set_margins({ 8, 8, 8, 8 }); - auto icon_label = widget->add(); - icon_label->set_icon(Gfx::Bitmap::load_from_file("/res/icons/serenity.png")); - icon_label->set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed); - icon_label->set_preferred_size(icon_label->icon()->size()); + auto inner_widget = outer_widget->add(); + inner_widget->set_layout(make()); + inner_widget->layout()->set_spacing(8); - auto label = widget->add(); + auto left_outer_container = inner_widget->add(); + left_outer_container->set_layout(make()); + + auto left_inner_container = left_outer_container->add(); + left_inner_container->set_layout(make()); + 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); @@ -84,22 +93,27 @@ int main(int argc, char** argv) int rc = uname(&uts); ASSERT(rc == 0); - auto version_label = widget->add(); + 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 = widget->add(); - git_info_label->set_text(String::format("Built on %s@%s", GIT_BRANCH, GIT_COMMIT)); + 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 git_changes_label = widget->add(); - git_changes_label->set_text(String::format("Changes: %s", GIT_CHANGES)); - git_changes_label->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); - git_changes_label->set_preferred_size(0, 11); + auto right_container = inner_widget->add(); + right_container->set_layout(make()); - auto quit_button = widget->add(); + auto icon_label = right_container->add(); + icon_label->set_icon(Gfx::Bitmap::load_from_file("/res/icons/buggie.png")); + 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); diff --git a/Base/res/icons/buggie.png b/Base/res/icons/buggie.png new file mode 100644 index 0000000000000000000000000000000000000000..42d63fbda71bf0424f243f85e46b59fd3e9da4a4 GIT binary patch literal 10480 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