mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 05:18:40 +00:00
fixes for variable size rows in new eval visualization structures / integration
This commit is contained in:
@@ -248,7 +248,7 @@ rd_entity_child_from_kind(RD_Entity *entity, RD_EntityKind kind)
|
||||
RD_Entity *result = &d_nil_entity;
|
||||
for(RD_Entity *child = entity->first; !rd_entity_is_nil(child); child = child->next)
|
||||
{
|
||||
if(child->kind == kind)
|
||||
if(!(child->flags & RD_EntityFlag_MarkedForDeletion) && child->kind == kind)
|
||||
{
|
||||
result = child;
|
||||
break;
|
||||
@@ -7921,14 +7921,18 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(watches)
|
||||
result.row_exprs_count = Min(needed_row_count, accel->entities.count+1);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
U64 entity_idx = idx_range.min + row_expr_idx;
|
||||
if(entity_idx < accel->entities.count)
|
||||
{
|
||||
result.row_exprs[row_expr_idx] = e_parse_expr_from_text(arena, accel->entities.v[entity_idx]->string);
|
||||
result.row_strings[row_expr_idx] = accel->entities.v[entity_idx]->string;
|
||||
RD_Entity *entity = accel->entities.v[entity_idx];
|
||||
RD_Entity *view_rule = rd_entity_child_from_kind(entity, RD_EntityKind_ViewRule);
|
||||
result.row_exprs[row_expr_idx] = e_parse_expr_from_text(arena, entity->string);
|
||||
result.row_strings[row_expr_idx] = entity->string;
|
||||
result.row_view_rules[row_expr_idx] = view_rule->string;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -7998,6 +8002,7 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(locals)
|
||||
result.row_exprs_count = Min(needed_row_count, accel->count);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
@@ -8036,6 +8041,7 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(registers)
|
||||
result.row_exprs_count = Min(needed_row_count, accel->count);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
@@ -8291,6 +8297,7 @@ rd_ev_view_rule_expr_expand_range_info__meta_entities(Arena *arena, EV_View *vie
|
||||
result.row_exprs_count = Min(needed_row_count, accel->entities.count);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
@@ -8375,6 +8382,7 @@ rd_ev_view_rule_expr_expand_range_info__meta_ctrl_entities(Arena *arena, EV_View
|
||||
result.row_exprs_count = Min(needed_row_count, accel->entities.count);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
@@ -8438,6 +8446,7 @@ rd_ev_view_rule_expr_expand_range_info__debug_info_tables(Arena *arena, EV_View
|
||||
result.row_exprs_count = Min(needed_row_count, accel->items.count);
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
|
||||
@@ -1192,9 +1192,10 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
//
|
||||
if(snap_to_cursor)
|
||||
{
|
||||
Rng1S64 item_range = r1s64(0, block_tree.total_row_count);
|
||||
Rng1S64 scroll_row_idx_range = r1s64(item_range.min, ClampBot(item_range.min, item_range.max-1));
|
||||
S64 cursor_item_idx = cursor_tbl.y-1;
|
||||
Rng1S64 item_range = r1s64(0, block_tree.total_item_count);
|
||||
Rng1S64 row_range = r1s64(0, block_tree.total_row_count);
|
||||
Rng1S64 scroll_row_idx_range = r1s64(row_range.min, ClampBot(row_range.min, row_range.max-1));
|
||||
S64 cursor_item_idx = cursor_tbl.y;
|
||||
if(item_range.min <= cursor_item_idx && cursor_item_idx <= item_range.max)
|
||||
{
|
||||
UI_ScrollPt *scroll_pt = &scroll_pos.y;
|
||||
@@ -1454,7 +1455,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
{
|
||||
default:{}break;
|
||||
case RD_WatchViewColumnKind_Expr:
|
||||
if(modifiable && filter.size == 0)
|
||||
if(modifiable)
|
||||
{
|
||||
RD_WatchViewCollectionInfo collection_info = rd_collection_info_from_num(&block_ranges, tbl.y);
|
||||
if(collection_info.kind != RD_EntityKind_Nil)
|
||||
@@ -1623,6 +1624,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
snap_to_cursor = 1;
|
||||
RD_EntityList entities_to_remove = {0};
|
||||
RD_WatchViewPoint next_cursor_pt = {0};
|
||||
B32 next_cursor_set = 0;
|
||||
for(S64 y = selection_tbl.min.y; y <= selection_tbl.max.y; y += 1)
|
||||
{
|
||||
for(S64 x = selection_tbl.min.x; x <= selection_tbl.max.x; x += 1)
|
||||
@@ -1661,6 +1663,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
}
|
||||
RD_WatchViewPoint new_pt = {0, parent_key, key};
|
||||
next_cursor_pt = new_pt;
|
||||
next_cursor_set = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1674,6 +1677,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
RD_Entity *view_rule = rd_entity_child_from_kind(entity, RD_EntityKind_ViewRule);
|
||||
rd_entity_mark_for_deletion(view_rule);
|
||||
}
|
||||
ev_key_set_view_rule(eval_view, collection_info.key, str8_zero());
|
||||
}break;
|
||||
}
|
||||
|
||||
@@ -1727,7 +1731,10 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
{
|
||||
rd_entity_mark_for_deletion(n->entity);
|
||||
}
|
||||
ewv->cursor = ewv->mark = ewv->next_cursor = ewv->next_mark = next_cursor_pt;
|
||||
if(next_cursor_set)
|
||||
{
|
||||
ewv->cursor = ewv->mark = ewv->next_cursor = ewv->next_mark = next_cursor_pt;
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////
|
||||
@@ -1736,7 +1743,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
|
||||
if(!ewv->text_editing && !(evt->flags & UI_EventFlag_Delete) && !(evt->flags & UI_EventFlag_Reorder))
|
||||
{
|
||||
B32 cursor_tbl_min_is_empty_selection[Axis2_COUNT] = {0, 1};
|
||||
Rng2S64 cursor_tbl_range = r2s64(v2s64(0, 0), v2s64(ewv->column_count-1, block_tree.total_row_count-1));
|
||||
Rng2S64 cursor_tbl_range = r2s64(v2s64(0, 0), v2s64(ewv->column_count-1, block_tree.total_item_count-1));
|
||||
Vec2S32 delta = evt->delta_2s32;
|
||||
if(evt->flags & UI_EventFlag_PickSelectSide && !MemoryMatchStruct(&selection_tbl.min, &selection_tbl.max))
|
||||
{
|
||||
|
||||
@@ -3212,7 +3212,7 @@ rd_line_edit(RD_LineEditFlags flags, S32 depth, FuzzyMatchRangeList *matches, Tx
|
||||
|
||||
//- rjf: focus cursor
|
||||
{
|
||||
F32 visible_dim_px = dim_2f32(box->rect).x;
|
||||
F32 visible_dim_px = dim_2f32(box->rect).x - expander_size_px - ui_top_font_size()*depth;
|
||||
if(visible_dim_px != 0)
|
||||
{
|
||||
Rng1F32 cursor_range_px = r1f32(cursor_off-ui_top_font_size()*2.f, cursor_off+ui_top_font_size()*2.f);
|
||||
|
||||
Reference in New Issue
Block a user