gi-gsk-4.0.5: Gsk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gsk.Structs.RoundedRect

Description

A rectangular region with rounded corners.

Application code should normalize rectangles using roundedRectNormalize; 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.

Synopsis

Exported types

newtype RoundedRect Source #

Memory-managed wrapper type.

Constructors

RoundedRect (ManagedPtr RoundedRect) 

Instances

Instances details
Eq RoundedRect Source # 
Instance details

Defined in GI.Gsk.Structs.RoundedRect

BoxedPtr RoundedRect Source # 
Instance details

Defined in GI.Gsk.Structs.RoundedRect

CallocPtr RoundedRect Source # 
Instance details

Defined in GI.Gsk.Structs.RoundedRect

ManagedPtrNewtype RoundedRect Source # 
Instance details

Defined in GI.Gsk.Structs.RoundedRect

Methods

toManagedPtr :: RoundedRect -> ManagedPtr RoundedRect

tag ~ 'AttrSet => Constructible RoundedRect tag Source # 
Instance details

Defined in GI.Gsk.Structs.RoundedRect

Methods

new :: MonadIO m => (ManagedPtr RoundedRect -> RoundedRect) -> [AttrOp RoundedRect tag] -> m RoundedRect

newZeroRoundedRect :: MonadIO m => m RoundedRect Source #

Construct a RoundedRect struct initialized to zero.

Methods

Click to display all available methods, including inherited ones

Expand

Methods

containsPoint, containsRect, init, initCopy, initFromRect, intersectsRect, isRectilinear, normalize, offset, shrink.

Getters

None.

Setters

None.

containsPoint

roundedRectContainsPoint Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> Point

point: the point to check

-> m Bool

Returns: True if the point is inside the rounded rectangle

Checks if the given point is inside the rounded rectangle.

containsRect

roundedRectContainsRect Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> Rect

rect: the rectangle to check

-> m Bool

Returns: True if the rect is fully contained inside the rounded rectangle

Checks if the given rect is contained inside the rounded rectangle.

init

roundedRectInit Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: The GskRoundedRect to initialize

-> Rect

bounds: a graphene_rect_t describing the bounds

-> Size

topLeft: the rounding radius of the top left corner

-> Size

topRight: the rounding radius of the top right corner

-> Size

bottomRight: the rounding radius of the bottom right corner

-> Size

bottomLeft: the rounding radius of the bottom left corner

-> m RoundedRect

Returns: the initialized rectangle

Initializes the given GskRoundedRect with the given values.

This function will implicitly normalize the GskRoundedRect before returning.

initCopy

roundedRectInitCopy Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> RoundedRect

src: a GskRoundedRect

-> m RoundedRect

Returns: the initialized rectangle

Initializes self using the given src rectangle.

This function will not normalize the GskRoundedRect, so make sure the source is normalized.

initFromRect

roundedRectInitFromRect Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> Rect

bounds: a graphene_rect_t

-> Float

radius: the border radius

-> m RoundedRect

Returns: the initialized rectangle

Initializes self to the given bounds and sets the radius of all four corners to radius.

intersectsRect

roundedRectIntersectsRect Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> Rect

rect: the rectangle to check

-> m Bool

Returns: True if the rect intersects with the rounded rectangle

Checks if part of the given rect is contained inside the rounded rectangle.

isRectilinear

roundedRectIsRectilinear Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: the GskRoundedRect to check

-> m Bool

Returns: True if the rectangle is rectilinear

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 clipNodeNew or roundedClipNodeNew should be called.

normalize

roundedRectNormalize Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> m RoundedRect

Returns: the normalized rectangle

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

roundedRectOffset Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: a GskRoundedRect

-> Float

dx: the horizontal offset

-> Float

dy: the vertical offset

-> m RoundedRect

Returns: the offset rectangle

Offsets the bound's origin by dx and dy.

The size and corners of the rectangle are unchanged.

shrink

roundedRectShrink Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> RoundedRect

self: The GskRoundedRect to shrink or grow

-> Float

top: How far to move the top side downwards

-> Float

right: How far to move the right side to the left

-> Float

bottom: How far to move the bottom side upwards

-> Float

left: How far to move the left side to the right

-> m RoundedRect

Returns: the resized GskRoundedRect

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 or left.

Properties

bounds

the bounds of the rectangle

getRoundedRectBounds :: MonadIO m => RoundedRect -> m Rect Source #

Get the value of the “bounds” field. When overloading is enabled, this is equivalent to

get roundedRect #bounds