Corretto disegno alberi
git-svn-id: svn://10.65.10.50/trunk@6158 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
35ed35349b
commit
c3401d2370
@ -800,10 +800,12 @@ struct TUpdate_info
|
||||
|
||||
const int TABX = 3;
|
||||
|
||||
bool TTree_window::callback_draw_node(TTree& node, void* jolly, word)
|
||||
bool TTree_window::callback_draw_node(TTree& node, void* jolly, word when)
|
||||
{
|
||||
TUpdate_info* ui = (TUpdate_info*)jolly;
|
||||
|
||||
if (when == SCAN_PRE_ORDER)
|
||||
{
|
||||
if (ui->_y >= ui->_firsty && ui->_y < ui->_lasty)
|
||||
{
|
||||
node.curr_id(ui->_str);
|
||||
@ -858,15 +860,12 @@ bool TTree_window::callback_draw_node(TTree& node, void* jolly, word)
|
||||
}
|
||||
ui->_y++;
|
||||
|
||||
if (node.expanded())
|
||||
{
|
||||
ui->_x += TABX;
|
||||
if (ui->_x > ui->_jolly)
|
||||
ui->_jolly = ui->_x;
|
||||
}
|
||||
else
|
||||
} else
|
||||
if (when == SCAN_IN_ORDER)
|
||||
{
|
||||
if (!node.has_rbrother())
|
||||
ui->_x -= TABX;
|
||||
}
|
||||
|
||||
@ -947,13 +946,16 @@ void TTree_window::update()
|
||||
}
|
||||
|
||||
_node_info.reset();
|
||||
_tree->scan_depth_first(callback_draw_node, &ui, SCAN_IGNORING_UNEXPANDED);
|
||||
|
||||
const word flags = SCAN_IGNORING_UNEXPANDED | SCAN_PRE_ORDER | SCAN_IN_ORDER;
|
||||
_tree->scan_depth_first(callback_draw_node, &ui, flags);
|
||||
while (ui._y < ui._lasty)
|
||||
{
|
||||
if (_tree->goto_father())
|
||||
{
|
||||
ui._x -= TABX;
|
||||
if (_tree->goto_rbrother())
|
||||
_tree->scan_depth_first(callback_draw_node, &ui, SCAN_IGNORING_UNEXPANDED);
|
||||
_tree->scan_depth_first(callback_draw_node, &ui, flags);
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user