mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-24 22:08:33 -05:00
Reduce firmware size by refactoring global data defined in public headers. Each global variable which require runtime initialization adds initialization code to every translation unit which includes the header where the variable is defined and declared.
52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <module-gui/gui/Common.hpp>
|
|
|
|
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 */
|