Ardour  9.0-pre0-582-g084a23a80d
gtkrbtree.h File Reference
#include <glib.h>
Include dependency graph for gtkrbtree.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _GtkRBTree
 
struct  _GtkRBNode
 

Macros

#define GTK_RBNODE_GET_COLOR(node)   (node?(((node->flags&GTK_RBNODE_RED)==GTK_RBNODE_RED)?GTK_RBNODE_RED:GTK_RBNODE_BLACK):GTK_RBNODE_BLACK)
 
#define GTK_RBNODE_SET_COLOR(node, color)   if((node->flags&color)!=color)node->flags=node->flags^(GTK_RBNODE_RED|GTK_RBNODE_BLACK)
 
#define GTK_RBNODE_GET_HEIGHT(node)   (node->offset-(node->left->offset+node->right->offset+(node->children?node->children->root->offset:0)))
 
#define GTK_RBNODE_SET_FLAG(node, flag)   G_STMT_START{ (node->flags|=flag); }G_STMT_END
 
#define GTK_RBNODE_UNSET_FLAG(node, flag)   G_STMT_START{ (node->flags&=~(flag)); }G_STMT_END
 
#define GTK_RBNODE_FLAG_SET(node, flag)   (node?(((node->flags&flag)==flag)?TRUE:FALSE):FALSE)
 

Typedefs

typedef struct _GtkRBTree GtkRBTree
 
typedef struct _GtkRBNode GtkRBNode
 
typedef struct _GtkRBTreeView GtkRBTreeView
 
typedef void(* GtkRBTreeTraverseFunc) (GtkRBTree *tree, GtkRBNode *node, gpointer data)
 

Enumerations

enum  GtkRBNodeColor {
  GTK_RBNODE_BLACK = 1 << 0 , GTK_RBNODE_RED = 1 << 1 , GTK_RBNODE_IS_PARENT = 1 << 2 , GTK_RBNODE_IS_SELECTED = 1 << 3 ,
  GTK_RBNODE_IS_PRELIT = 1 << 4 , GTK_RBNODE_IS_SEMI_COLLAPSED = 1 << 5 , GTK_RBNODE_IS_SEMI_EXPANDED = 1 << 6 , GTK_RBNODE_INVALID = 1 << 7 ,
  GTK_RBNODE_COLUMN_INVALID = 1 << 8 , GTK_RBNODE_DESCENDANTS_INVALID = 1 << 9 , GTK_RBNODE_NON_COLORS
}
 

Functions

GtkRBTree_gtk_rbtree_new (void)
 
void _gtk_rbtree_free (GtkRBTree *tree)
 
void _gtk_rbtree_remove (GtkRBTree *tree)
 
void _gtk_rbtree_destroy (GtkRBTree *tree)
 
GtkRBNode_gtk_rbtree_insert_before (GtkRBTree *tree, GtkRBNode *node, gint height, gboolean valid)
 
GtkRBNode_gtk_rbtree_insert_after (GtkRBTree *tree, GtkRBNode *node, gint height, gboolean valid)
 
void _gtk_rbtree_remove_node (GtkRBTree *tree, GtkRBNode *node)
 
void _gtk_rbtree_reorder (GtkRBTree *tree, gint *new_order, gint length)
 
GtkRBNode_gtk_rbtree_find_count (GtkRBTree *tree, gint count)
 
void _gtk_rbtree_node_set_height (GtkRBTree *tree, GtkRBNode *node, gint height)
 
void _gtk_rbtree_node_mark_invalid (GtkRBTree *tree, GtkRBNode *node)
 
void _gtk_rbtree_node_mark_valid (GtkRBTree *tree, GtkRBNode *node)
 
void _gtk_rbtree_column_invalid (GtkRBTree *tree)
 
void _gtk_rbtree_mark_invalid (GtkRBTree *tree)
 
void _gtk_rbtree_set_fixed_height (GtkRBTree *tree, gint height, gboolean mark_valid)
 
gint _gtk_rbtree_node_find_offset (GtkRBTree *tree, GtkRBNode *node)
 
gint _gtk_rbtree_node_find_parity (GtkRBTree *tree, GtkRBNode *node)
 
gint _gtk_rbtree_find_offset (GtkRBTree *tree, gint offset, GtkRBTree **new_tree, GtkRBNode **new_node)
 
void _gtk_rbtree_traverse (GtkRBTree *tree, GtkRBNode *node, GTraverseType order, GtkRBTreeTraverseFunc func, gpointer data)
 
GtkRBNode_gtk_rbtree_next (GtkRBTree *tree, GtkRBNode *node)
 
GtkRBNode_gtk_rbtree_prev (GtkRBTree *tree, GtkRBNode *node)
 
void _gtk_rbtree_next_full (GtkRBTree *tree, GtkRBNode *node, GtkRBTree **new_tree, GtkRBNode **new_node)
 
void _gtk_rbtree_prev_full (GtkRBTree *tree, GtkRBNode *node, GtkRBTree **new_tree, GtkRBNode **new_node)
 
gint _gtk_rbtree_get_depth (GtkRBTree *tree)
 

Macro Definition Documentation

◆ GTK_RBNODE_FLAG_SET

#define GTK_RBNODE_FLAG_SET (   node,
  flag 
)    (node?(((node->flags&flag)==flag)?TRUE:FALSE):FALSE)

Definition at line 111 of file gtkrbtree.h.

◆ GTK_RBNODE_GET_COLOR

#define GTK_RBNODE_GET_COLOR (   node)    (node?(((node->flags&GTK_RBNODE_RED)==GTK_RBNODE_RED)?GTK_RBNODE_RED:GTK_RBNODE_BLACK):GTK_RBNODE_BLACK)

Definition at line 106 of file gtkrbtree.h.

◆ GTK_RBNODE_GET_HEIGHT

#define GTK_RBNODE_GET_HEIGHT (   node)    (node->offset-(node->left->offset+node->right->offset+(node->children?node->children->root->offset:0)))

Definition at line 108 of file gtkrbtree.h.

◆ GTK_RBNODE_SET_COLOR

#define GTK_RBNODE_SET_COLOR (   node,
  color 
)    if((node->flags&color)!=color)node->flags=node->flags^(GTK_RBNODE_RED|GTK_RBNODE_BLACK)

Definition at line 107 of file gtkrbtree.h.

◆ GTK_RBNODE_SET_FLAG

#define GTK_RBNODE_SET_FLAG (   node,
  flag 
)    G_STMT_START{ (node->flags|=flag); }G_STMT_END

Definition at line 109 of file gtkrbtree.h.

◆ GTK_RBNODE_UNSET_FLAG

#define GTK_RBNODE_UNSET_FLAG (   node,
  flag 
)    G_STMT_START{ (node->flags&=~(flag)); }G_STMT_END

Definition at line 110 of file gtkrbtree.h.

Typedef Documentation

◆ GtkRBNode

typedef struct _GtkRBNode GtkRBNode

Definition at line 28 of file gtkrbtree.h.

◆ GtkRBTree

typedef struct _GtkRBTree GtkRBTree

Definition at line 28 of file gtkrbtree.h.

◆ GtkRBTreeTraverseFunc

typedef void(* GtkRBTreeTraverseFunc) (GtkRBTree *tree, GtkRBNode *node, gpointer data)

Definition at line 57 of file gtkrbtree.h.

◆ GtkRBTreeView

typedef struct _GtkRBTreeView GtkRBTreeView

Definition at line 28 of file gtkrbtree.h.

Enumeration Type Documentation

◆ GtkRBNodeColor

Enumerator
GTK_RBNODE_BLACK 
GTK_RBNODE_RED 
GTK_RBNODE_IS_PARENT 
GTK_RBNODE_IS_SELECTED 
GTK_RBNODE_IS_PRELIT 
GTK_RBNODE_IS_SEMI_COLLAPSED 
GTK_RBNODE_IS_SEMI_EXPANDED 
GTK_RBNODE_INVALID 
GTK_RBNODE_COLUMN_INVALID 
GTK_RBNODE_DESCENDANTS_INVALID 
GTK_RBNODE_NON_COLORS 

Definition at line 31 of file gtkrbtree.h.

Function Documentation

◆ _gtk_rbtree_column_invalid()

void _gtk_rbtree_column_invalid ( GtkRBTree tree)

◆ _gtk_rbtree_destroy()

void _gtk_rbtree_destroy ( GtkRBTree tree)

◆ _gtk_rbtree_find_count()

GtkRBNode* _gtk_rbtree_find_count ( GtkRBTree tree,
gint  count 
)

◆ _gtk_rbtree_find_offset()

gint _gtk_rbtree_find_offset ( GtkRBTree tree,
gint  offset,
GtkRBTree **  new_tree,
GtkRBNode **  new_node 
)

◆ _gtk_rbtree_free()

void _gtk_rbtree_free ( GtkRBTree tree)

◆ _gtk_rbtree_get_depth()

gint _gtk_rbtree_get_depth ( GtkRBTree tree)

◆ _gtk_rbtree_insert_after()

GtkRBNode* _gtk_rbtree_insert_after ( GtkRBTree tree,
GtkRBNode node,
gint  height,
gboolean  valid 
)

◆ _gtk_rbtree_insert_before()

GtkRBNode* _gtk_rbtree_insert_before ( GtkRBTree tree,
GtkRBNode node,
gint  height,
gboolean  valid 
)

◆ _gtk_rbtree_mark_invalid()

void _gtk_rbtree_mark_invalid ( GtkRBTree tree)

◆ _gtk_rbtree_new()

GtkRBTree* _gtk_rbtree_new ( void  )

◆ _gtk_rbtree_next()

GtkRBNode* _gtk_rbtree_next ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_next_full()

void _gtk_rbtree_next_full ( GtkRBTree tree,
GtkRBNode node,
GtkRBTree **  new_tree,
GtkRBNode **  new_node 
)

◆ _gtk_rbtree_node_find_offset()

gint _gtk_rbtree_node_find_offset ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_node_find_parity()

gint _gtk_rbtree_node_find_parity ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_node_mark_invalid()

void _gtk_rbtree_node_mark_invalid ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_node_mark_valid()

void _gtk_rbtree_node_mark_valid ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_node_set_height()

void _gtk_rbtree_node_set_height ( GtkRBTree tree,
GtkRBNode node,
gint  height 
)

◆ _gtk_rbtree_prev()

GtkRBNode* _gtk_rbtree_prev ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_prev_full()

void _gtk_rbtree_prev_full ( GtkRBTree tree,
GtkRBNode node,
GtkRBTree **  new_tree,
GtkRBNode **  new_node 
)

◆ _gtk_rbtree_remove()

void _gtk_rbtree_remove ( GtkRBTree tree)

◆ _gtk_rbtree_remove_node()

void _gtk_rbtree_remove_node ( GtkRBTree tree,
GtkRBNode node 
)

◆ _gtk_rbtree_reorder()

void _gtk_rbtree_reorder ( GtkRBTree tree,
gint *  new_order,
gint  length 
)

◆ _gtk_rbtree_set_fixed_height()

void _gtk_rbtree_set_fixed_height ( GtkRBTree tree,
gint  height,
gboolean  mark_valid 
)

◆ _gtk_rbtree_traverse()

void _gtk_rbtree_traverse ( GtkRBTree tree,
GtkRBNode node,
GTraverseType  order,
GtkRBTreeTraverseFunc  func,
gpointer  data 
)