# Module `DynamicGrid`

Component to handle placing components in row

## Functions

init(self, parent) | Component init function
get_pos(self, index, node[, origin_index]) | Return pos for grid node index
add(self, node[, index[, is_shift_left=false]]) | Add new node to the grid
remove(self, index[, is_shift_left=false]) | Remove the item from the grid.
get_size(self, border) | Return grid content size
get_index_by_node(self, node) | Return grid index by node
get_all_pos(self) | Return array of all node positions
set_position_function(self, callback) | Change set position function for grid nodes.
clear(self) | Clear grid nodes array.
_get_side_vector(self, side, is_forward) | Return side vector to correct node shifting

## Fields

on_add_item | On item add callback(self, node, index)
on_remove_item | On item remove callback(self, index)
on_change_items | On item add or remove callback(self, index)
on_clear | On grid clear callback(self)
on_update_positions | On update item positions callback(self)
parent | Parent gui node
nodes | List of all grid nodes
first_index | The first index of node in grid
last_index | The last index of node in grid
node_size | Item size

## Functions

init(self, parent)
  Component init function

  ### Parameters:

  - self DynamicGrid
  - parent node The gui node parent, where items will be placed
get_pos(self, index, node[, origin_index])
  Return pos for grid node index

  ### Parameters:

  - self DynamicGrid
  - index number The grid element index
  - node node The node to be placed
  - origin_index number Index of nearby node (optional)

  ### Returns:

  vector3 Node position
add(self, node[, index[, is_shift_left=false]])
  Add new node to the grid

  ### Parameters:

  - self DynamicGrid
  - node node Gui node
  - index number The node position. By default add as last node (optional)
  - is_shift_left bool If true, shift all nodes to the left, otherwise shift nodes to the right (default false)
remove(self, index[, is_shift_left=false])
  Remove the item from the grid. Note that gui node will be not deleted

  ### Parameters:

  - self DynamicGrid
  - index number The grid node index to remove
  - is_shift_left bool If true, shift all nodes to the left, otherwise shift nodes to the right (default false)
get_size(self, border)
  Return grid content size

  ### Parameters:

  - self DynamicGrid
  - border vector3

  ### Returns:

  vector3 The grid content size
get_index_by_node(self, node)
  Return grid index by node

  ### Parameters:

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

  ### Returns:

  number The node index
get_all_pos(self)
  Return array of all node positions

  ### Parameters:

  - self DynamicGrid

  ### Returns:

  vector3[] All grid node positions
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 DynamicGrid
  - callback function Function on node set position

  ### Returns:

  druid.dynamic_grid Current grid instance
clear(self)
  Clear grid nodes array. GUI nodes will be not deleted! If you want to delete GUI nodes, use dynamic_grid.nodes array before grid:clear

  ### Parameters:

  - self DynamicGrid

  ### Returns:

  druid.dynamic_grid Current grid instance
_get_side_vector(self, side, is_forward)
  Return side vector to correct node shifting

  ### Parameters:

  - self
  - side
  - is_forward

## Fields

on_add_item
  On item add callback(self, node, index)
  - on_add_item druid_event
on_remove_item
  On item remove callback(self, index)
  - on_remove_item druid_event
on_change_items
  On item add or remove callback(self, index)
  - on_change_items druid_event
on_clear
  On grid clear callback(self)
  - on_clear druid_event
on_update_positions
  On update item positions callback(self)
  - on_update_positions druid_event
parent
  Parent gui node
  - parent node
nodes
  List of all grid nodes
  - nodes node[]
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

generated by LDoc 1.4.6 Last updated 2020-10-12 00:44:30