All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
kanzi::GridLayoutConcept Class Reference

GridConcept is a base class for the nodes that implement layout that arranges items in a grid. More...

#include <kanzi/node/concept/grid_layout_concept.hpp>

Inheritance diagram for kanzi::GridLayoutConcept:
kanzi::GridLayoutConceptImpl< Node2D, GridLayout2D > kanzi::GridLayoutConceptImpl< Node3D, GridLayout3D > kanzi::GridLayoutConceptImpl< TBaseClass, TDerivedClass > kanzi::GridLayout2D kanzi::GridLayout3D

Classes

struct  RowColumnDefinition
 Definition for the size and position of a single row or column. More...
 

Public Types

enum  RowColumnSizeMode { RowColumnSizeModeUser, RowColumnSizeModeAuto, RowColumnSizeModeWeighted }
 Size mode for a grid row or a column. More...
 
enum  GridDirection { GridDirectionRight, GridDirectionDown }
 Direction of layout of grid layout. Items which don't have fixed ColumnProperty and RowProperty are laid out in this direction. More...
 
typedef vector
< RowColumnDefinition
RowColumnDefinitionContainer
 Container type for row and column definitions. More...
 

Static Public Member Functions

static
PropertyTypeEditorInfoSharedPtr 
makeEditorInfo ()
 
static void calculateWeightedSizes (RowColumnDefinitionContainer &definitions, float weightMultiplier)
 Calculates grid row or column definition maximum sizes for weighted rows or columns. More...
 
static void calculateOffsets (RowColumnDefinitionContainer &definitions)
 Calculates grid row or column definition offsets according to current maximum sizes. More...
 
static float accumulateMaximumSize (const RowColumnDefinitionContainer &definitions)
 Calculates the sum of row or column definition's maximum sizes. More...
 
static void parseRowColumnDefinitions (const string &definitionCollection, RowColumnDefinitionContainer &definitions)
 Parse grid row or column definitions from property string. More...
 

Static Public Attributes

Properties
static PropertyType
< GridLayoutConcept::GridDirection
DirectionProperty
 Direction property. More...
 
static PropertyType< string > ColumnDefinitionsProperty
 ColumnDefinitions property. More...
 
static PropertyType< string > RowDefinitionsProperty
 RowDefinitions property. More...
 
static PropertyType< int > ColumnProperty
 Column property. More...
 
static PropertyType< int > ColumnSpanProperty
 ColumnSpan property. More...
 
static PropertyType< int > RowProperty
 Row property. More...
 
static PropertyType< int > RowSpanProperty
 RowSpan property. More...
 

Detailed Description

GridConcept is a base class for the nodes that implement layout that arranges items in a grid.

Grid nodes arrange their items in a grid of cells. The grid node contains the definition for grid: the number of rows and columns, and the sizes of those. The grid items contain the coordinates of their cell, and the number of cells the item spans.

Member Typedef Documentation

Container type for row and column definitions.

Member Enumeration Documentation

Size mode for a grid row or a column.

Enumerator
RowColumnSizeModeUser 

Row or column size is fixed.

RowColumnSizeModeAuto 

Row or column size is the size of the largest item on this row or column.

RowColumnSizeModeWeighted 

Row or column size is a proportion of the whole grid size. The proportion size depends on the relative weight of the row or column compared to weights of other rows or columns.

Direction of layout of grid layout. Items which don't have fixed ColumnProperty and RowProperty are laid out in this direction.

Enumerator
GridDirectionRight 

Layout first right, then down.

GridDirectionDown 

Layout first down, then right.

Member Function Documentation

static PropertyTypeEditorInfoSharedPtr kanzi::GridLayoutConcept::makeEditorInfo ( )
static
static void kanzi::GridLayoutConcept::calculateWeightedSizes ( RowColumnDefinitionContainer definitions,
float  weightMultiplier 
)
static

Calculates grid row or column definition maximum sizes for weighted rows or columns.

Parameters
definitionsRow or column definitions.
weightMultiplierThe size of a single weight unit.
static void kanzi::GridLayoutConcept::calculateOffsets ( RowColumnDefinitionContainer definitions)
static

Calculates grid row or column definition offsets according to current maximum sizes.

Parameters
definitionsRow or column definitions.
static float kanzi::GridLayoutConcept::accumulateMaximumSize ( const RowColumnDefinitionContainer definitions)
static

Calculates the sum of row or column definition's maximum sizes.

Parameters
definitionsRow or column definitions.
Returns
Sum of row or column maximum sizes.
static void kanzi::GridLayoutConcept::parseRowColumnDefinitions ( const string &  definitionCollection,
RowColumnDefinitionContainer definitions 
)
static

Parse grid row or column definitions from property string.

Parameters
definitionCollectionProperty string describing grid rows or columns. See RowDefinitionsProperty for format definition.
definitionsOutput parameter that will hold the row or column definitions.

Member Data Documentation

PropertyType<GridLayoutConcept::GridDirection> kanzi::GridLayoutConcept::DirectionProperty
static

Direction property.

Defines the grid primary layouting direction. This property specifies how to choose the row and column for items without explicit grid row and column properties. The default value is GridLayoutConcept::GridDirectionRight.

See also
setDirection(), getDirection()
PropertyType<string> kanzi::GridLayoutConcept::ColumnDefinitionsProperty
static

ColumnDefinitions property.

Defines the columns of the grid. See #GridLayoutRowDefinitions. The default value is "".

See also
setColumnDefinitions(), getColumnDefinitions()
PropertyType<string> kanzi::GridLayoutConcept::RowDefinitionsProperty
static

RowDefinitions property.

Defines the rows of the grid. The string has a special format of "[*f|f];[*f|f];...", where each row definition is separated by a ';' character, 'f' signifies a float number and '*' signifies a weighted (proportional) height. For example, "1.0;2.0;3.0;" defines three rows with heights of 1.0, 2.0 and 3.0 respectively. ";;" specifies two rows that all have heights calculated from their content. "*1.0;*2.0;*3.0;" specifies three rows where the first row has 1/6 of the total height (#LayoutHeight), the second 2/6 and the third 3/6. The default value is "".

See also
setRowDefinitions(), getRowDefinitions()
PropertyType<int> kanzi::GridLayoutConcept::ColumnProperty
static

Column property.

Defines the column of an item in a grid, starting from 0. The default value is 0.

See also
setColumn(), getColumn()
PropertyType<int> kanzi::GridLayoutConcept::ColumnSpanProperty
static

ColumnSpan property.

Defines how many columns this grid item spans. The default value is 1.

See also
setColumnSpan(), getColumnSpan()
PropertyType<int> kanzi::GridLayoutConcept::RowProperty
static

Row property.

Defines the row of an item in a grid, starting from 0. The default value is 0.

See also
setRow(), getRow()
PropertyType<int> kanzi::GridLayoutConcept::RowSpanProperty
static

RowSpan property.

Defines how many rows this grid item spans. The default value is 1.

See also
setRowSpan(), getRowSpan()

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