// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include namespace gui { class Alignment { public: enum class Vertical { Top, Center, Bottom, None, }; enum class Horizontal { Right, Center, Left, None, }; Horizontal horizontal = Alignment::Horizontal::Left; Vertical vertical = Alignment::Vertical::Top; constexpr Alignment() = default; constexpr Alignment(Horizontal valH, Vertical valV) : horizontal(valH), vertical(valV) {} constexpr Alignment(Horizontal valH) : horizontal(valH) {} constexpr Alignment(Vertical valV) : vertical(valV) {} [[nodiscard]] Position calculateHAlignment(Length parentSize, Length childSize) const; [[nodiscard]] Position calculateVAlignment(Length parentSize, Length childSize) const; bool operator==(const Alignment &alignment) const; bool operator!=(const Alignment &alignment) const; }; } /* namespace gui */