lv_tree.h

API reference for lv_tree.h

Report on GitHub

Tree. The tree nodes are dynamically allocated by the 'lv_mem' module.

Functions

lv_tree_node_create

Create a tree node.

 
lv_tree_node_t * lv_tree_node_create(const lv_tree_class_t *class_p, lv_tree_node_t *parent)
Parameters
NameTypeDescription
class_pconst lv_tree_class_t *pointer to a class of the node
parentlv_tree_node_t *pointer to the parent node (or NULL if it's the root node)

Returns: lv_tree_node_t * — pointer to the new node

lv_tree_node_delete

Delete a tree node and all its children recursively.

 
void lv_tree_node_delete(lv_tree_node_t *node)
Parameters
NameTypeDescription
nodelv_tree_node_t *pointer to the node to delete

lv_tree_walk

Walk the tree recursively and call a callback function on each node.

 
bool lv_tree_walk(const lv_tree_node_t *node, lv_tree_walk_mode_t mode, lv_tree_traverse_cb_t cb, lv_tree_before_cb_t bcb, lv_tree_after_cb_t acb, void *user_data)
Parameters
NameTypeDescription
nodeconst lv_tree_node_t *pointer to the root node of the tree
modelv_tree_walk_mode_tLV_TREE_WALK_PRE_ORDER or LV_TREE_WALK_POST_ORDER
cblv_tree_traverse_cb_tcallback function to call on each node
bcblv_tree_before_cb_tcallback function to call before visiting a node
acblv_tree_after_cb_tcallback function to call after visiting a node
user_datavoid *user data to pass to the callback functions

Returns: bool — true: traversal is finished; false: traversal broken

Enums

_lv_tree_walk_mode_t

NameValue
LV_TREE_WALK_PRE_ORDER0
LV_TREE_WALK_POST_ORDER

Structs

struct

_lv_tree_class_t

Describe the common methods of every object. Similar to a C++ class.

MemberTypeDescription
base_classconst lv_tree_class_t *
instance_sizeuint32_t
constructor_cblv_tree_constructor_cb_t
destructor_cblv_tree_destructor_cb_t
struct

_lv_tree_node_t

Description of a tree node

MemberTypeDescription
parentlv_tree_node_t *
childrenlv_tree_node_t **
child_cntuint32_t
child_capuint32_t
class_pconst lv_tree_class_t *

Typedefs

lv_tree_class_t

 
typedef struct _lv_tree_class_t lv_tree_class_t
Used by 1 function
  • lv_tree_node_create — param class_p

lv_tree_node_t

 
typedef struct _lv_tree_node_t lv_tree_node_t
Used by 3 functions
  • lv_tree_node_create — param parent
  • lv_tree_node_delete — param node
  • lv_tree_walk — param node

lv_tree_constructor_cb_t

 
typedef void(* lv_tree_constructor_cb_t) (const lv_tree_class_t *class_p, lv_tree_node_t *node)

lv_tree_destructor_cb_t

 
typedef void(* lv_tree_destructor_cb_t) (const lv_tree_class_t *class_p, lv_tree_node_t *node)

lv_tree_walk_mode_t

 
typedef uint8_t lv_tree_walk_mode_t
Used by 1 function
  • lv_tree_walk — param mode

lv_tree_traverse_cb_t

 
typedef bool(* lv_tree_traverse_cb_t) (const lv_tree_node_t *node, void *user_data)
Used by 1 function
  • lv_tree_walk — param cb

lv_tree_before_cb_t

 
typedef bool(* lv_tree_before_cb_t) (const lv_tree_node_t *node, void *user_data)
Used by 1 function
  • lv_tree_walk — param bcb

lv_tree_after_cb_t

 
typedef void(* lv_tree_after_cb_t) (const lv_tree_node_t *node, void *user_data)
Used by 1 function
  • lv_tree_walk — param acb

Macros

LV_TREE_NODE

 
#define LV_TREE_NODE(n) \
    ((lv_tree_node_t*)(n))

Variables

lv_tree_node_class

 
const lv_tree_class_t lv_tree_node_class

Dependencies

How is this guide?

Last updated on

On this page