Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
A rectangular region with rounded corners.
Application code should normalize rectangles using roundedRectNormalize
;
this function will ensure that the bounds of the rectanlge are normalized
and ensure that the corner values are positive and the corners do not overlap.
All functions taking a RoundedRect
as an argument will internally operate on
a normalized copy; all functions returning a RoundedRect
will always return
a normalized one.
Synopsis
- newtype RoundedRect = RoundedRect (ManagedPtr RoundedRect)
- newZeroRoundedRect :: MonadIO m => m RoundedRect
- noRoundedRect :: Maybe RoundedRect
- roundedRectContainsPoint :: (HasCallStack, MonadIO m) => RoundedRect -> Point -> m Bool
- roundedRectContainsRect :: (HasCallStack, MonadIO m) => RoundedRect -> Rect -> m Bool
- roundedRectInit :: (HasCallStack, MonadIO m) => RoundedRect -> Rect -> Size -> Size -> Size -> Size -> m RoundedRect
- roundedRectInitCopy :: (HasCallStack, MonadIO m) => RoundedRect -> RoundedRect -> m RoundedRect
- roundedRectInitFromRect :: (HasCallStack, MonadIO m) => RoundedRect -> Rect -> Float -> m RoundedRect
- roundedRectIntersectsRect :: (HasCallStack, MonadIO m) => RoundedRect -> Rect -> m Bool
- roundedRectIsRectilinear :: (HasCallStack, MonadIO m) => RoundedRect -> m Bool
- roundedRectNormalize :: (HasCallStack, MonadIO m) => RoundedRect -> m RoundedRect
- roundedRectOffset :: (HasCallStack, MonadIO m) => RoundedRect -> Float -> Float -> m RoundedRect
- roundedRectShrink :: (HasCallStack, MonadIO m) => RoundedRect -> Float -> Float -> Float -> Float -> m RoundedRect
- getRoundedRectBounds :: MonadIO m => RoundedRect -> m Rect
Exported types
newtype RoundedRect Source #
Memory-managed wrapper type.
Instances
Eq RoundedRect Source # | |
Defined in GI.Gsk.Structs.RoundedRect (==) :: RoundedRect -> RoundedRect -> Bool # (/=) :: RoundedRect -> RoundedRect -> Bool # | |
WrappedPtr RoundedRect Source # | |
Defined in GI.Gsk.Structs.RoundedRect | |
tag ~ 'AttrSet => Constructible RoundedRect tag Source # | |
Defined in GI.Gsk.Structs.RoundedRect new :: MonadIO m => (ManagedPtr RoundedRect -> RoundedRect) -> [AttrOp RoundedRect tag] -> m RoundedRect # |
newZeroRoundedRect :: MonadIO m => m RoundedRect Source #
Construct a RoundedRect
struct initialized to zero.
noRoundedRect :: Maybe RoundedRect Source #
A convenience alias for Nothing
:: Maybe
RoundedRect
.
Methods
Overloaded methods
containsPoint
roundedRectContainsPoint Source #
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Point |
|
-> m Bool | Returns: |
Checks if the given point
is inside the rounded rectangle. This function
returns False
if the point is in the rounded corner areas.
containsRect
roundedRectContainsRect Source #
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Rect |
|
-> m Bool | Returns: |
Checks if the given rect
is contained inside the rounded rectangle.
This function returns False
if rect
extends into one of the rounded
corner areas.
init
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Rect |
|
-> Size |
|
-> Size |
|
-> Size |
|
-> Size |
|
-> m RoundedRect | Returns: the initialized rectangle |
Initializes the given RoundedRect
with the given values.
This function will implicitly normalize the RoundedRect
before returning.
initCopy
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> RoundedRect |
|
-> m RoundedRect | Returns: the initialized rectangle |
Initializes self
using the given src
rectangle.
This function will not normalize the RoundedRect
, so
make sure the source is normalized.
initFromRect
roundedRectInitFromRect Source #
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Rect |
|
-> Float |
|
-> 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 #
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Rect |
|
-> m Bool | Returns: |
Checks if part of the given rect
is contained inside the rounded rectangle.
This function returns False
if rect
only extends into one of the rounded
corner areas but not into the rounded rectangle itself.
isRectilinear
roundedRectIsRectilinear Source #
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> m Bool | Returns: |
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
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> m RoundedRect | Returns: the normalized rectangle |
Normalizes the passed rectangle.
this function will ensure that the bounds of the rectanlge are normalized and ensure that the corner values are positive and the corners do not overlap.
offset
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Float |
|
-> Float |
|
-> 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
:: (HasCallStack, MonadIO m) | |
=> RoundedRect |
|
-> Float |
|
-> Float |
|
-> Float |
|
-> Float |
|
-> m RoundedRect | Returns: the resized |
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