13 enum class Type : uint8_t {
23 BottomLeftResizeCorner,
24 BottomRightResizeCorner,
35 widget(widget), elevation(elevation), type(type) {}
38 friend bool operator==(
HitBox const &lhs,
HitBox const &rhs)
noexcept {
39 return lhs.widget == rhs.widget && lhs.elevation == rhs.elevation && lhs.type == rhs.type;
42 friend bool operator!=(
HitBox const &lhs,
HitBox const &rhs)
noexcept {
46 friend bool operator<(
HitBox const &lhs,
HitBox const &rhs)
noexcept {
47 if ((lhs.widget ==
nullptr) == (rhs.widget ==
nullptr)) {
48 if (lhs.elevation == rhs.elevation) {
49 return static_cast<int>(lhs.type) <
static_cast<int>(rhs.type);
53 return lhs.elevation < rhs.elevation;
56 return lhs.widget ==
nullptr;
60 friend bool operator>(
HitBox const &lhs,
HitBox const &rhs)
noexcept {
64 friend bool operator<=(
HitBox const &lhs,
HitBox const &rhs)
noexcept {
68 friend bool operator>=(
HitBox const &lhs,
HitBox const &rhs)
noexcept {