NAME

VERSION

SYNOPSIS

DESCRIPTION

NOTE: Versions 0.003 and below used a custom graph management implementation which had various problems with rendering glitches and performance. This version has been rewritten from scratch to use Tree::DAG_Node to handle the tree structure, and as such is not backward compatible.

STYLES

The following style keys are recognised, in addition to base styling which will be applied to the tree lines:

line_style - which line type to use, default 'single', other options include 'thick' or 'double'

expand_style - 'boxed' is the only option for now, to select a Unicode +/- boxed icon

highlight_(fg|bg|b|rv) - highlight styling

highlight_full_row - if true, will apply highlighting to the entire width of the widget, rather than just the text

Key bindings are currently:

previous_row - move up a line, stepping into open nodes, default Up

next_row - move down a line, stepping into open nodes, default Down

up_tree - move to the parent, default Left

down_tree - move to the first child, opening the current node if necessary, default Right

open_node - opens the current node, default +

close_node - closes the current node, default -

activate - activates the current node, default Enter

first_row - jump to the first node in the tree, default Home

last_row - jump to the last node in the tree, default End

calculate_size

Calculate the minimum size needed to contain the full tree with all nodes expanded.

Normally the adapter would come from somewhere else - database cursor, Tangence property, etc. - rather than being instantiated in-place like this. See examples/adapter.pl for a simple example of a manually-driven adapter.