38 lines
713 B
C++
38 lines
713 B
C++
#ifndef BWIDGETS_SIZE_HPP
|
|
#define BWIDGETS_SIZE_HPP
|
|
|
|
#include <basic_widgets/core/type/concepts.hpp>
|
|
|
|
namespace bwidgets
|
|
{
|
|
struct Size
|
|
{
|
|
int w;
|
|
int h;
|
|
};
|
|
|
|
[[nodiscard]] inline auto operator+(Size a, Size b) noexcept -> Size
|
|
{
|
|
return {a.w + b.w, a.h + b.h};
|
|
}
|
|
|
|
[[nodiscard]] inline auto operator-(Size a, Size b) noexcept -> Size
|
|
{
|
|
return {a.w - b.w, a.h - b.h};
|
|
}
|
|
|
|
template<Numeric N>
|
|
[[nodiscard]] inline auto operator*(Size a, N b) noexcept -> Size
|
|
{
|
|
return {a.w * b, a.h * b};
|
|
}
|
|
|
|
template<Numeric N>
|
|
[[nodiscard]] inline auto operator*(N a, Size b) noexcept -> Size
|
|
{
|
|
return b * a;
|
|
}
|
|
}
|
|
|
|
#endif
|