AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
AAdvancedGridLayout Class Reference

Grid layout. Unlike AGridLayout, cells may have different sizes.

#include <AUI/Layout/AAdvancedGridLayout.h>

Classes#

struct  CompositionCache
 
struct  GridCell
 

Public Member Functions#

 AAdvancedGridLayout (int cellsX, int cellsY)
 
_< AViewgetViewAt (size_t index)
 
void setViewAt (size_t index, _< AView > view)
 
void onResize (int x, int y, int width, int height) override
 
void addView (const _< AView > &view, int x, int y)
 
void addView (const _< AView > &view, AOptional< size_t > index) override
 Attaches view to the layout.
 
void removeView (aui::no_escape< AView > view, size_t index) override
 Detaches view from the layout.
 
int getMinimumWidth () override
 
int getMinimumHeight () override
 
int indexOf (_< AView > view)
 
AVector< _< AView > > getAllViews () override
 Visits all views in the layout.
 
void setSpacing (int spacing) override
 Layout spacing.
 
- Public Member Functions inherited from ALayout
virtual ALayoutDirection getLayoutDirection ()
 
- Public Member Functions inherited from AObject
_< AObjectsharedPtr ()
 
_weak< AObjectweakPtr ()
 
template<typename Connectable, ACompatibleSlotFor< Connectable > Function>
decltype(auto) connect (const Connectable &connectable, Function &&function)
 Connects signal or property to slot of "this" object.
 
void setSignalsEnabled (bool enabled)
 
bool isSignalsEnabled () const noexcept
 
template<ASignalInvokable T>
void operator^ (T &&t) noexcept
 
_< AAbstractThreadgetThread () const
 
bool isSlotsCallsOnlyOnMyThread () const noexcept
 
void setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread)
 
- Public Member Functions inherited from AObjectBase
 AObjectBase (AObjectBase &&rhs) noexcept
 
 AObjectBase (const AObjectBase &rhs) noexcept
 
AObjectBaseoperator= (const AObjectBase &rhs) noexcept
 
AObjectBaseoperator= (AObjectBase &&rhs) noexcept
 
- Public Member Functions inherited from aui::noncopyable
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Protected Member Functions#

int & indexAt (int x, int y)
 
AVector< _< AView > > getRow (int row)
 
AVector< _< AView > > getColumn (int column)
 
virtual void prepareCache (AVector< CompositionCache > &columns, AVector< CompositionCache > &rows)
 
- Protected Member Functions inherited from AObject
void setThread (_< AAbstractThread > thread)
 Set thread of the object.
 
- Protected Member Functions inherited from AObjectBase
void clearAllIngoingConnections () noexcept
 
virtual void handleSlotException (std::exception_ptr exception)
 Called then an exception has thrown during slot processing of the signal emitted by this object.
 

Protected Attributes#

int mCurrentIndex = 0
 
int cellsX
 
int cellsY
 
unsigned mSpacing = 0
 
AVector< GridCellmCells
 
AVector< int > mIndices
 

Additional Inherited Members#

- Static Public Member Functions inherited from AObject
static void disconnect ()
 
template<AAnySignal Signal, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Signal > Function>
static decltype(auto) connect (const Signal &signal, Object *object, Function &&function)
 Connects signal to the slot of the specified object.
 
template<AAnyProperty Property, aui::derived_from< AObjectBase > Object, typename Function>
static decltype(auto) connect (const Property &property, Object *object, Function &&function)
 Connects property to the slot of the specified object.
 
template<APropertyReadable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; }
static void connect (PropertySource &&propertySource, PropertyDestination &&propertyDestination)
 Connects source property to the destination property.
 
template<APropertyWritable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; { *propertyDestination } -> aui::convertible_to<std::decay_t<decltype(*propertySource)>>; }
static void biConnect (PropertySource &&propertySource, PropertyDestination &&propertyDestination)
 Connects source property to the destination property and opposite (bidirectionally).
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function>
static decltype(auto) connect (const Connectable &connectable, Object &object, Function &&function)
 Connects signal or property to the slot of the specified object.
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function>
static decltype(auto) connect (const Connectable &connectable, _< Object > object, Function &&function)
 Connects signal or property to the slot of the specified object.
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, typename Function>
static decltype(auto) connect (const Connectable &connectable, ASlotDef< Object *, Function > slotDef)
 Connects signal to the slot of the specified object. Slot is packed to single argument.
 
template<AAnyProperty Property, typename Object, ACompatibleSlotFor< Property > Function>
requires (!aui::derived_from<Object, AObject>)
static void connect (const Property &property, _< Object > object, Function &&function)
 Connects signal or property to the slot of the specified non-AObject type.
 
static void moveToThread (aui::no_escape< AObject > object, _< AAbstractThread > thread)
 
- Static Public Attributes inherited from AObject
static constexpr AObjectBaseGENERIC_OBSERVER = nullptr
 Indicates that a connection should not be explicitly linked to receiver's lifetime.
 
- Static Public Attributes inherited from AObjectBase
static ASpinlockMutex SIGNAL_SLOT_GLOBAL_SYNC
 

Member Function Documentation#

◆ addView()#

void AAdvancedGridLayout::addView ( const _< AView > & view,
AOptional< size_t > index )
overridevirtual
Parameters
viewview to attach.
indexindex to insert at. If not specified, when the view is inserted at the end.

See ABasicLayout for basic implementation of this method.

Implements ALayout.

◆ getAllViews()#

AVector< _< AView > > AAdvancedGridLayout::getAllViews ( )
overridevirtual

Implements ALayout.

◆ getMinimumHeight()#

int AAdvancedGridLayout::getMinimumHeight ( )
overridevirtual

Implements ALayout.

◆ getMinimumWidth()#

int AAdvancedGridLayout::getMinimumWidth ( )
overridevirtual

Implements ALayout.

◆ onResize()#

void AAdvancedGridLayout::onResize ( int x,
int y,
int width,
int height )
overridevirtual

Implements ALayout.

◆ removeView()#

void AAdvancedGridLayout::removeView ( aui::no_escape< AView > view,
size_t index )
overridevirtual
Parameters
viewview to detach.
indexindex of the view in the container. This value is indented for optimization purposes in most cases; the value may be ignored safely.

See ABasicLayout for basic implementation of this method.

Implements ALayout.

◆ setSpacing()#

void AAdvancedGridLayout::setSpacing ( int spacing)
overridevirtual
Parameters
spacingspacing in px.

Reimplemented from ALayout.