2022-06-15 21:15:29 +01:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2022, MacDue <macdue@dueutil.tech>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <LibWeb/Painting/BorderPainting.h>
|
|
|
|
|
|
|
|
|
|
namespace Web::Painting {
|
|
|
|
|
|
2022-06-20 12:10:24 +01:00
|
|
|
enum class CornerClip {
|
|
|
|
|
Outside,
|
|
|
|
|
Inside
|
|
|
|
|
};
|
|
|
|
|
|
2022-07-04 21:04:10 +01:00
|
|
|
struct ScopedCornerRadiusClip {
|
2023-10-21 19:17:49 +01:00
|
|
|
ScopedCornerRadiusClip(PaintContext& context, DevicePixelRect const& border_rect, BorderRadiiData const& border_radii, CornerClip corner_clip = CornerClip::Outside);
|
2022-07-04 21:04:10 +01:00
|
|
|
|
2023-10-15 04:27:48 +02:00
|
|
|
~ScopedCornerRadiusClip();
|
2022-07-04 21:04:10 +01:00
|
|
|
|
|
|
|
|
AK_MAKE_NONMOVABLE(ScopedCornerRadiusClip);
|
|
|
|
|
AK_MAKE_NONCOPYABLE(ScopedCornerRadiusClip);
|
|
|
|
|
|
|
|
|
|
private:
|
2023-10-15 04:27:48 +02:00
|
|
|
PaintContext& m_context;
|
2023-12-05 22:30:32 +01:00
|
|
|
bool m_has_radius { false };
|
2022-07-04 21:04:10 +01:00
|
|
|
};
|
|
|
|
|
|
2022-06-15 21:15:29 +01:00
|
|
|
}
|