Loading...
Searching...
No Matches
ResizableBorderComponent::Zone Class Reference

Represents the different sections of a resizable border, which allow it to resized in different ways. More...

Public Types

enum  Zones {
  centre = 0 , left = 1 , top = 2 , right = 4 ,
  bottom = 8
}
 

Public Member Functions

 Zone (int zoneFlags) noexcept
 Creates a Zone from a combination of the flags in zoneFlags.
 
 Zone () noexcept
 
 Zone (const Zone &) noexcept
 
Zoneoperator= (const Zone &) noexcept
 
bool operator== (const Zone &) const noexcept
 
bool operator!= (const Zone &) const noexcept
 
MouseCursor getMouseCursor () const noexcept
 Returns an appropriate mouse-cursor for this resize zone.
 
bool isDraggingWholeObject () const noexcept
 Returns true if dragging this zone will move the entire object without resizing it.
 
bool isDraggingLeftEdge () const noexcept
 Returns true if dragging this zone will move the object's left edge.
 
bool isDraggingRightEdge () const noexcept
 Returns true if dragging this zone will move the object's right edge.
 
bool isDraggingTopEdge () const noexcept
 Returns true if dragging this zone will move the object's top edge.
 
bool isDraggingBottomEdge () const noexcept
 Returns true if dragging this zone will move the object's bottom edge.
 
template<typename ValueType>
Rectangle< ValueType > resizeRectangleBy (Rectangle< ValueType > original, const Point< ValueType > &distance) const noexcept
 Resizes this rectangle by the given amount, moving just the edges that this zone applies to.
 
int getZoneFlags () const noexcept
 Returns the raw flags for this zone.
 

Static Public Member Functions

static Zone fromPositionOnBorder (Rectangle< int > totalSize, BorderSize< int > border, Point< int > position)
 Given a point within a rectangle with a resizable border, this returns the zone that the point lies within.
 

Detailed Description

Represents the different sections of a resizable border, which allow it to resized in different ways.

Member Enumeration Documentation

◆ Zones

Enumerator
centre 
left 
top 
right 
bottom 

Constructor & Destructor Documentation

◆ Zone() [1/3]

ResizableBorderComponent::Zone::Zone ( int zoneFlags)
explicitnoexcept

Creates a Zone from a combination of the flags in zoneFlags.

Referenced by fromPositionOnBorder(), operator!=(), operator=(), operator==(), and Zone().

◆ Zone() [2/3]

ResizableBorderComponent::Zone::Zone ( )
noexcept

◆ Zone() [3/3]

ResizableBorderComponent::Zone::Zone ( const Zone & )
noexcept

References Zone().

Member Function Documentation

◆ operator=()

Zone & ResizableBorderComponent::Zone::operator= ( const Zone & )
noexcept

References Zone().

◆ operator==()

bool ResizableBorderComponent::Zone::operator== ( const Zone & ) const
noexcept

References Zone().

◆ operator!=()

bool ResizableBorderComponent::Zone::operator!= ( const Zone & ) const
noexcept

References Zone().

◆ fromPositionOnBorder()

static Zone ResizableBorderComponent::Zone::fromPositionOnBorder ( Rectangle< int > totalSize,
BorderSize< int > border,
Point< int > position )
static

Given a point within a rectangle with a resizable border, this returns the zone that the point lies within.

References fromPositionOnBorder(), Point, and Zone().

Referenced by fromPositionOnBorder().

◆ getMouseCursor()

MouseCursor ResizableBorderComponent::Zone::getMouseCursor ( ) const
noexcept

Returns an appropriate mouse-cursor for this resize zone.

References getMouseCursor().

Referenced by getMouseCursor().

◆ isDraggingWholeObject()

bool ResizableBorderComponent::Zone::isDraggingWholeObject ( ) const
noexcept

Returns true if dragging this zone will move the entire object without resizing it.

References centre, and isDraggingWholeObject().

Referenced by isDraggingWholeObject(), and resizeRectangleBy().

◆ isDraggingLeftEdge()

bool ResizableBorderComponent::Zone::isDraggingLeftEdge ( ) const
noexcept

Returns true if dragging this zone will move the object's left edge.

References left.

Referenced by resizeRectangleBy().

◆ isDraggingRightEdge()

bool ResizableBorderComponent::Zone::isDraggingRightEdge ( ) const
noexcept

Returns true if dragging this zone will move the object's right edge.

References right.

Referenced by resizeRectangleBy().

◆ isDraggingTopEdge()

bool ResizableBorderComponent::Zone::isDraggingTopEdge ( ) const
noexcept

Returns true if dragging this zone will move the object's top edge.

References top.

Referenced by resizeRectangleBy().

◆ isDraggingBottomEdge()

bool ResizableBorderComponent::Zone::isDraggingBottomEdge ( ) const
noexcept

Returns true if dragging this zone will move the object's bottom edge.

References bottom.

Referenced by resizeRectangleBy().

◆ resizeRectangleBy()

template<typename ValueType>
Rectangle< ValueType > ResizableBorderComponent::Zone::resizeRectangleBy ( Rectangle< ValueType > original,
const Point< ValueType > & distance ) const
noexcept

Resizes this rectangle by the given amount, moving just the edges that this zone applies to.

References isDraggingBottomEdge(), isDraggingLeftEdge(), isDraggingRightEdge(), isDraggingTopEdge(), isDraggingWholeObject(), jmax(), jmin(), and Point.

◆ getZoneFlags()

int ResizableBorderComponent::Zone::getZoneFlags ( ) const
noexcept

Returns the raw flags for this zone.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram