From: hgn Date: Wed, 25 Sep 2024 23:54:03 +0000 (+0100) Subject: better back-tree walking X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=cce18a1c398bdea256da085aeec9a6ea1d1c1919;p=vg.git better back-tree walking --- diff --git a/vg_mem_view.c b/vg_mem_view.c index d326b5d..9f882f6 100644 --- a/vg_mem_view.c +++ b/vg_mem_view.c @@ -246,12 +246,41 @@ static void cb_vg_mem_view( ui_context *ctx, ui_rect rect, ui_split( rect, k_ui_axis_v, 256+16, 2, left, rect ); ui_fill( ctx, left, ui_opacity( ui_colour( ctx,k_ui_bg+1 ), 0.8f ) ); - for( u32 i=0; idepth+1; i ++ ) - ui_info( ctx, left, mv->walk[ i ] ); + /* Tree back-tracker */ + { + ui_rect bib = { left[0],left[1],left[2],24 }; + u32 new_depth = mv->depth; + for( u32 i=0; idepth+1; i ++ ) + { + if( i != mv->depth ) + { + if( ui_button_text( ctx, bib, mv->walk[ i ], 1 ) == 1 ) + { + new_depth = i; + } + } + else + { + ui_fill( ctx, bib, ui_colour( ctx, k_ui_bg ) ); + ui_text( ctx, bib, mv->walk[i], 1, k_ui_align_middle_center, 0 ); + } + + bib[0] += 8; + bib[2] -= 8; + bib[1] += 24; + } + mv->depth = new_depth; + ui_px v = (mv->depth+1)*24; + left[1] += v; + left[3] -= v; + } - if( mv->depth ) - if( ui_button( ctx, left, "up" ) == 1 ) - mv->depth --; + if( vg_mem.use_libc_malloc == 0 ) + { + ui_text( ctx, rect, "Run with --use-libc-malloc to view memory", + 1, k_ui_align_middle_center, 0 ); + return; + } vg_mem_view_ui( ctx, rect, mv->main_buffer[ mv->depth ], "", 0, &result );