#pragma once #include "AboutLineView.h" #include #include #include #include #include #include #include #include #include class ViewController : public UI::ViewController { public: ViewController(UI::View& view) : UI::ViewController(view) { } virtual ~ViewController() = default; void view_did_load() override { view().set_background_color(LG::Color::LightSystemBackground); utsname_t uts; int rc = uname(&uts); auto& header = view().add_subview(LG::Rect(0, 0, 0, 0)); header.set_background_color(LG::Color(231, 240, 250)); auto& label = header.add_subview(LG::Rect(0, 0, 16, 22)); label.set_text("About"); label.set_text_color(LG::Color(35, 70, 106)); label.set_font(LG::Font::system_bold_font(LG::Font::SystemTitleSize)); label.set_width(label.preferred_width()); auto& name_label = view().add_subview(LG::Rect(0, 0, 16, 16), "Name:", uts.sysname); auto& cpu_label = view().add_subview(LG::Rect(0, 0, 16, 16), "CPU:", uts.machine); auto& version_label = view().add_subview(LG::Rect(0, 0, 16, 16), "Version:", uts.release); auto& button = view().add_subview(LG::Rect(0, 0, 10, 10)); button.set_background_color(LG::Color::LightSystemButton); button.set_title("System info"); button.set_title_color(LG::Color::DarkSystemText); auto& footer = view().add_subview(LG::Rect(0, 0, 16, 16)); footer.set_text_color(LG::Color::DarkSystemText); footer.set_text("(c) 2020-2023"); footer.set_width(footer.preferred_width()); view().add_constraint(UI::Constraint(header, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, 0)); view().add_constraint(UI::Constraint(header, UI::Constraint::Attribute::Top, UI::Constraint::Relation::Equal, 0)); view().add_constraint(UI::Constraint(header, UI::Constraint::Attribute::Right, UI::Constraint::Relation::Equal, 0)); view().add_constraint(UI::Constraint(header, UI::Constraint::Attribute::Height, UI::Constraint::Relation::Equal, 60)); view().add_constraint(UI::Constraint(label, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, UI::SafeArea::Left)); view().add_constraint(UI::Constraint(label, UI::Constraint::Attribute::CenterY, UI::Constraint::Relation::Equal, header, UI::Constraint::Attribute::CenterY, 1, 0)); view().add_constraint(UI::Constraint(name_label, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, UI::SafeArea::Left)); view().add_constraint(UI::Constraint(name_label, UI::Constraint::Attribute::Top, UI::Constraint::Relation::Equal, header, UI::Constraint::Attribute::Bottom, 1, UI::Padding::AfterTitle)); view().add_constraint(UI::Constraint(cpu_label, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, UI::SafeArea::Left)); view().add_constraint(UI::Constraint(cpu_label, UI::Constraint::Attribute::Top, UI::Constraint::Relation::Equal, name_label, UI::Constraint::Attribute::Bottom, 1, 4)); view().add_constraint(UI::Constraint(version_label, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, UI::SafeArea::Left)); view().add_constraint(UI::Constraint(version_label, UI::Constraint::Attribute::Top, UI::Constraint::Relation::Equal, cpu_label, UI::Constraint::Attribute::Bottom, 1, 4)); view().add_constraint(UI::Constraint(button, UI::Constraint::Attribute::Left, UI::Constraint::Relation::Equal, UI::SafeArea::Left)); view().add_constraint(UI::Constraint(button, UI::Constraint::Attribute::Top, UI::Constraint::Relation::Equal, version_label, UI::Constraint::Attribute::Bottom, 1, 8)); view().add_constraint(UI::Constraint(footer, UI::Constraint::Attribute::CenterX, UI::Constraint::Relation::Equal, view(), UI::Constraint::Attribute::CenterX, 1, 0)); view().add_constraint(UI::Constraint(footer, UI::Constraint::Attribute::Bottom, UI::Constraint::Relation::Equal, view(), UI::Constraint::Attribute::Bottom, 1, -UI::SafeArea::Bottom)); view().set_needs_layout(); } private: };