# Module `StaticGrid`

Component to handle component's position by row and columns.

## Overview ##

The Static Grid component allows for positioning components in rows and columns. It provides a static grid layout with constant node sizes, allowing for pre-calculated node positions and the option to include gaps between nodes.

## Notes ##

• In a static grid, the node size remains constant, enabling the calculation of node positions before placement. Nodes can be placed with gaps between them.

• The static grid can automatically shift elements when nodes are added or removed.

• When a node is added, the grid will set the node's parent to the specified parent_node.

• You can obtain an array of positions for each element, which can be used to set points of interest in a scroll component.

• The size of all elements can be retrieved for setting up the size in a scroll component.

• The grid can be bound to a scroll component for automatic resizing of the scroll content size.

• The pivot of the parent_node affects the node placement within the grid.

• A prefab node is used to determine the node size and anchor.

• You can specify a position_function for animations using the _static_grid:set_position_function(node, pos) callback. The default position function is gui.set_position().

Example Link

## Functions

add(self, item[, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]]) | Add new item to the grid
clear(self) | Clear grid nodes array.
get_all_pos(self) | Return array of all node positions
get_borders(self) | Return grid content borders
get_index(self, pos) | Return index for grid pos
get_index_by_node(self, node) | Return grid index by node
get_offset(self) | Return StaticGrid offset, where StaticGrid content starts.
get_pos(self, index) | Return pos for grid node index
get_size(self) | Return grid content size
init(self, parent, element[, in_row=1]) | StaticGrid constructor
remove(self, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]) | Remove the item from the grid.
set_anchor(self, anchor) | Set grid anchor.
set_in_row(self, in_row) | Set new in_row elements for grid
set_position_function(self, callback) | Change set position function for grid nodes.

## Tables

style | Component style params.

## Fields

anchor | Item anchor [0..1]
border | The size of item content
first_index | The first index of node in grid
last_index | The last index of node in grid
node_size | Item size
nodes | List of all grid nodes
on_add_item | On item add callback(self, node, index)
on_change_items | On item add, remove or change in_row callback(self, index|nil)
on_clear | On grid clear callback(self)
on_remove_item | On item remove callback(self, index)
on_update_positions | On update item positions callback(self)
parent | Parent gui node
pivot | Item pivot [-0.5..0.5]

## Functions

add(self, item[, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]])
  Add new item to the grid

  ### Parameters:

  - self StaticGrid StaticGrid
  - item node Gui node
  - index number The item position. By default add as last item (optional)
  - shift_policy number How shift nodes, if required. See const.SHIFT (default SHIFT.RIGHT)
  - is_instant boolean If true, update node positions instantly (default false)
clear(self)
  Clear grid nodes array. GUI nodes will be not deleted! If you want to delete GUI nodes, use static_grid.nodes array before grid:clear

  ### Parameters:

  - self StaticGrid StaticGrid

  ### Returns:

  druid.static_grid Current grid instance
get_all_pos(self)
  Return array of all node positions

  ### Parameters:

  - self StaticGrid StaticGrid

  ### Returns:

  vector3[] All grid node positions
get_borders(self)
  Return grid content borders

  ### Parameters:

  - self StaticGrid StaticGrid

  ### Returns:

  vector3 The grid content borders
get_index(self, pos)
  Return index for grid pos

  ### Parameters:

  - self StaticGrid StaticGrid
  - pos vector3 The node position in the grid

  ### Returns:

  number The node index
get_index_by_node(self, node)
  Return grid index by node

  ### Parameters:

  - self StaticGrid StaticGrid
  - node node The gui node in the grid

  ### Returns:

  number The node index
get_offset(self)
  Return StaticGrid offset, where StaticGrid content starts.

  ### Parameters:

  - self StaticGrid StaticGrid The StaticGrid instance

  ### Returns:

  vector3 The StaticGrid offset
get_pos(self, index)
  Return pos for grid node index

  ### Parameters:

  - self StaticGrid StaticGrid
  - index number The grid element index

  ### Returns:

  vector3 Node position
get_size(self)
  Return grid content size

  ### Parameters:

  - self StaticGrid StaticGrid

  ### Returns:

  vector3 The grid content size
init(self, parent, element[, in_row=1])
  StaticGrid constructor

  ### Parameters:

  - self StaticGrid StaticGrid
  - parent string or Node The GUI Node container, where grid's items will be placed
  - element node Element prefab. Need to get it size
  - in_row number How many nodes in row can be placed (default 1)
remove(self, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]])
  Remove the item from the grid. Note that gui node will be not deleted

  ### Parameters:

  - self StaticGrid StaticGrid
  - index number The grid node index to remove
  - shift_policy number How shift nodes, if required. See const.SHIFT (default SHIFT.RIGHT)
  - is_instant boolean If true, update node positions instantly (default false)

  ### Returns:

  Node The deleted gui node from grid
set_anchor(self, anchor)
  Set grid anchor. Default anchor is equal to anchor of grid parent node

  ### Parameters:

  - self StaticGrid StaticGrid
  - anchor vector3 Anchor
set_in_row(self, in_row)
  Set new in_row elements for grid

  ### Parameters:

  - self StaticGrid StaticGrid
  - in_row number The new in_row value

  ### Returns:

  druid.static_grid Current grid instance
set_position_function(self, callback)
  Change set position function for grid nodes. It will call on update poses on grid elements. Default: gui.set_position

  ### Parameters:

  - self StaticGrid StaticGrid
  - callback function Function on node set position

  ### Returns:

  druid.static_grid Current grid instance

## Tables

style
  Component style params. You can override this component styles params in druid styles table or create your own style

  ### Fields:

  - IS_DYNAMIC_NODE_POSES bool If true, always center grid content as grid pivot sets (default false)
  - IS_ALIGN_LAST_ROW bool If true, always align last row of the grid as grid pivot sets (default false)

## Fields

anchor
  Item anchor [0..1]
  - anchor vector3
border
  The size of item content
  - border vector4
first_index
  The first index of node in grid
  - first_index number
last_index
  The last index of node in grid
  - last_index number
node_size
  Item size
  - node_size vector3
nodes
  List of all grid nodes
  - nodes node[]
on_add_item
  On item add callback(self, node, index)
  - on_add_item DruidEvent DruidEvent
on_change_items
  On item add, remove or change in_row callback(self, index|nil)
  - on_change_items DruidEvent DruidEvent
on_clear
  On grid clear callback(self)
  - on_clear DruidEvent DruidEvent
on_remove_item
  On item remove callback(self, index)
  - on_remove_item DruidEvent DruidEvent
on_update_positions
  On update item positions callback(self)
  - on_update_positions DruidEvent DruidEvent
parent
  Parent gui node
  - parent node
pivot
  Item pivot [-0.5..0.5]
  - pivot vector3

generated by LDoc TESTING Last updated 2015-01-01 12:00:00