RoundedRect
- class RoundedRect(*args, **kwargs)
A rectangular region with rounded corners.
Application code should normalize rectangles using
normalize
; this function will ensure that
the bounds of the rectangle are normalized and ensure that the corner
values are positive and the corners do not overlap.
All functions taking a GskRoundedRect
as an argument will internally
operate on a normalized copy; all functions returning a GskRoundedRect
will always return a normalized one.
The algorithm used for normalizing corner sizes is described in
the CSS specification <https://drafts.csswg.org/css-backgrounds-3/``border`
-radius>`_.
Methods
- class RoundedRect
- contains_point(point: Point) bool
Checks if the given
point
is inside the rounded rectangle.- Parameters:
point – the point to check
- contains_rect(rect: Rect) bool
Checks if the given
rect
is contained inside the rounded rectangle.- Parameters:
rect – the rectangle to check
- init(bounds: Rect, top_left: Size, top_right: Size, bottom_right: Size, bottom_left: Size) RoundedRect
Initializes the given
GskRoundedRect
with the given values.This function will implicitly normalize the
GskRoundedRect
before returning.- Parameters:
bounds – a
graphene_rect_t
describing the boundstop_left – the rounding radius of the top left corner
top_right – the rounding radius of the top right corner
bottom_right – the rounding radius of the bottom right corner
bottom_left – the rounding radius of the bottom left corner
- init_from_rect(bounds: Rect, radius: float) RoundedRect
Initializes
self
to the givenbounds
and sets the radius of all four corners toradius
.- Parameters:
bounds – a
graphene_rect_t
radius – the border radius
- intersects_rect(rect: Rect) bool
Checks if part of the given
rect
is contained inside the rounded rectangle.- Parameters:
rect – the rectangle to check
- is_rectilinear() bool
Checks if all corners of
self
are right angles and the rectangle covers all of its bounds.This information can be used to decide if
new
ornew
should be called.
- normalize() RoundedRect
Normalizes the passed rectangle.
This function will ensure that the bounds of the rectangle are normalized and ensure that the corner values are positive and the corners do not overlap.
- offset(dx: float, dy: float) RoundedRect
Offsets the bound’s origin by
dx
anddy
.The size and corners of the rectangle are unchanged.
- Parameters:
dx – the horizontal offset
dy – the vertical offset
- shrink(top: float, right: float, bottom: float, left: float) RoundedRect
Shrinks (or grows) the given rectangle by moving the 4 sides according to the offsets given.
The corner radii will be changed in a way that tries to keep the center of the corner circle intact. This emulates CSS behavior.
This function also works for growing rectangles if you pass negative values for the
top
,right
,bottom
orleft
.- Parameters:
top – How far to move the top side downwards
right – How far to move the right side to the left
bottom – How far to move the bottom side upwards
left – How far to move the left side to the right