Represents a type of justification to be used when positioning graphical items. More...

Public Types

enum  Flags {
  left = 1, right = 2, horizontallyCentred = 4, top = 8,
  bottom = 16, verticallyCentred = 32, horizontallyJustified = 64, centred = 36,
  centredLeft = 33, centredRight = 34, centredTop = 12, centredBottom = 20,
  topLeft = 9, topRight = 10, bottomLeft = 17, bottomRight = 18
}
 Flag values that can be combined and used in the constructor. More...
 

Public Member Functions

 Justification (int justificationFlags) noexcept
 Creates a Justification object using a combination of flags from the Flags enum. More...
 
 Justification (const Justification &other) noexcept
 Creates a copy of another Justification object. More...
 
Justificationoperator= (const Justification &other) noexcept
 Copies another Justification object. More...
 
bool operator== (const Justification &other) const noexcept
 
bool operator!= (const Justification &other) const noexcept
 
int getFlags () const noexcept
 Returns the raw flags that are set for this Justification object. More...
 
bool testFlags (int flagsToTest) const noexcept
 Tests a set of flags for this object. More...
 
int getOnlyVerticalFlags () const noexcept
 Returns just the flags from this object that deal with vertical layout. More...
 
int getOnlyHorizontalFlags () const noexcept
 Returns just the flags from this object that deal with horizontal layout. More...
 
template<typename ValueType >
void applyToRectangle (ValueType &x, ValueType &y, ValueType w, ValueType h, ValueType spaceX, ValueType spaceY, ValueType spaceW, ValueType spaceH) const noexcept
 Adjusts the position of a rectangle to fit it into a space. More...
 
template<typename ValueType >
const Rectangle< ValueType > appliedToRectangle (const Rectangle< ValueType > &areaToAdjust, const Rectangle< ValueType > &targetSpace) const noexcept
 Returns the new position of a rectangle that has been justified to fit within a given space. More...
 

Detailed Description

Represents a type of justification to be used when positioning graphical items.

e.g. it indicates whether something should be placed top-left, top-right, centred, etc.

It is used in various places wherever this kind of information is needed.

Member Enumeration Documentation

◆ Flags

Flag values that can be combined and used in the constructor.

Enumerator
left 

Indicates that the item should be aligned against the left edge of the available space.

right 

Indicates that the item should be aligned against the right edge of the available space.

horizontallyCentred 

Indicates that the item should be placed in the centre between the left and right sides of the available space.

top 

Indicates that the item should be aligned against the top edge of the available space.

bottom 

Indicates that the item should be aligned against the bottom edge of the available space.

verticallyCentred 

Indicates that the item should be placed in the centre between the top and bottom sides of the available space.

horizontallyJustified 

Indicates that lines of text should be spread out to fill the maximum width available, so that both margins are aligned vertically.

centred 

Indicates that the item should be centred vertically and horizontally.

This is equivalent to (horizontallyCentred | verticallyCentred)

centredLeft 

Indicates that the item should be centred vertically but placed on the left hand side.

This is equivalent to (left | verticallyCentred)

centredRight 

Indicates that the item should be centred vertically but placed on the right hand side.

This is equivalent to (right | verticallyCentred)

centredTop 

Indicates that the item should be centred horizontally and placed at the top.

This is equivalent to (horizontallyCentred | top)

centredBottom 

Indicates that the item should be centred horizontally and placed at the bottom.

This is equivalent to (horizontallyCentred | bottom)

topLeft 

Indicates that the item should be placed in the top-left corner.

This is equivalent to (left | top)

topRight 

Indicates that the item should be placed in the top-right corner.

This is equivalent to (right | top)

bottomLeft 

Indicates that the item should be placed in the bottom-left corner.

This is equivalent to (left | bottom)

bottomRight 

Indicates that the item should be placed in the bottom-left corner.

This is equivalent to (right | bottom)

Constructor & Destructor Documentation

◆ Justification() [1/2]

Justification::Justification ( int  justificationFlags)
noexcept

Creates a Justification object using a combination of flags from the Flags enum.

◆ Justification() [2/2]

Justification::Justification ( const Justification other)
noexcept

Creates a copy of another Justification object.

Member Function Documentation

◆ operator=()

Justification& Justification::operator= ( const Justification other)
noexcept

Copies another Justification object.

◆ operator==()

bool Justification::operator== ( const Justification other) const
noexcept

◆ operator!=()

bool Justification::operator!= ( const Justification other) const
noexcept

◆ getFlags()

int Justification::getFlags ( ) const
noexcept

Returns the raw flags that are set for this Justification object.

◆ testFlags()

bool Justification::testFlags ( int  flagsToTest) const
noexcept

Tests a set of flags for this object.

Returns
true if any of the flags passed in are set on this object.

◆ getOnlyVerticalFlags()

int Justification::getOnlyVerticalFlags ( ) const
noexcept

Returns just the flags from this object that deal with vertical layout.

References bottom, top, and verticallyCentred.

◆ getOnlyHorizontalFlags()

int Justification::getOnlyHorizontalFlags ( ) const
noexcept

Returns just the flags from this object that deal with horizontal layout.

References horizontallyCentred, horizontallyJustified, left, and right.

◆ applyToRectangle()

template<typename ValueType >
void Justification::applyToRectangle ( ValueType &  x,
ValueType &  y,
ValueType  w,
ValueType  h,
ValueType  spaceX,
ValueType  spaceY,
ValueType  spaceW,
ValueType  spaceH 
) const
noexcept

Adjusts the position of a rectangle to fit it into a space.

The (x, y) position of the rectangle will be updated to position it inside the given space according to the justification flags.

References bottom, horizontallyCentred, right, and verticallyCentred.

Referenced by appliedToRectangle().

◆ appliedToRectangle()

template<typename ValueType >
const Rectangle<ValueType> Justification::appliedToRectangle ( const Rectangle< ValueType > &  areaToAdjust,
const Rectangle< ValueType > &  targetSpace 
) const
noexcept

Returns the new position of a rectangle that has been justified to fit within a given space.

References applyToRectangle().


The documentation for this class was generated from the following file: