mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
deduplicate editability/expandability determination path for viz row build
This commit is contained in:
+38
-1
@@ -5586,14 +5586,51 @@ df_parent_key_from_viz_block_list_row_num(DF_EvalVizBlockList *blocks, S64 row_n
|
||||
//- rjf: viz row list building
|
||||
|
||||
internal DF_EvalVizRow *
|
||||
df_eval_viz_row_list_push_new(Arena *arena, DF_EvalVizWindowedRowList *rows, DF_EvalVizBlock *block, DF_ExpandKey key)
|
||||
df_eval_viz_row_list_push_new(Arena *arena, EVAL_ParseCtx *parse_ctx, DF_EvalVizWindowedRowList *rows, DF_EvalVizBlock *block, DF_ExpandKey key, DF_Eval eval)
|
||||
{
|
||||
// rjf: push
|
||||
DF_EvalVizRow *row = push_array(arena, DF_EvalVizRow, 1);
|
||||
SLLQueuePush(rows->first, rows->last, row);
|
||||
rows->count += 1;
|
||||
|
||||
// rjf: fill basics
|
||||
row->depth = block->depth;
|
||||
row->parent_key = block->parent_key;
|
||||
row->key = key;
|
||||
row->eval = eval;
|
||||
|
||||
// rjf: determine exandability, editability
|
||||
if(tg_kind_from_key(eval.type_key) != TG_Kind_Null)
|
||||
{
|
||||
for(TG_Key t = eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode != EVAL_EvalMode_NULL && ((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef))
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
|
||||
@@ -802,9 +802,6 @@ struct DF_EvalVizRow
|
||||
// rjf: value area override view rule spec
|
||||
struct DF_GfxViewRuleSpec *value_ui_rule_spec;
|
||||
struct DF_CfgNode *value_ui_rule_node;
|
||||
|
||||
// rjf: errors
|
||||
EVAL_ErrorList errors;
|
||||
};
|
||||
|
||||
typedef struct DF_EvalVizWindowedRowList DF_EvalVizWindowedRowList;
|
||||
@@ -1593,7 +1590,7 @@ internal DF_ExpandKey df_key_from_viz_block_list_row_num(DF_EvalVizBlockList *bl
|
||||
internal DF_ExpandKey df_parent_key_from_viz_block_list_row_num(DF_EvalVizBlockList *blocks, S64 row_num);
|
||||
|
||||
//- rjf: viz row list building
|
||||
internal DF_EvalVizRow *df_eval_viz_row_list_push_new(Arena *arena, DF_EvalVizWindowedRowList *rows, DF_EvalVizBlock *block, DF_ExpandKey key);
|
||||
internal DF_EvalVizRow *df_eval_viz_row_list_push_new(Arena *arena, EVAL_ParseCtx *parse_ctx, DF_EvalVizWindowedRowList *rows, DF_EvalVizBlock *block, DF_ExpandKey key, DF_Eval eval);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Main State Accessors/Mutators
|
||||
|
||||
+37
-184
@@ -7172,7 +7172,8 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
case DF_EvalVizBlockKind_Null:
|
||||
if(visible_idx_range.max > visible_idx_range.min)
|
||||
{
|
||||
df_eval_viz_row_list_push_new(arena, &list, block, block->key);
|
||||
DF_Eval eval = zero_struct;
|
||||
df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, block->key, eval);
|
||||
}break;
|
||||
|
||||
//////////////////////////////
|
||||
@@ -7183,48 +7184,17 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
{
|
||||
String8List display_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, DF_EvalVizStringFlag_ReadOnlyDisplayRules, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, block->eval, block->member, &block->cfg_table);
|
||||
String8List edit_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, 0, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, block->eval, block->member, &block->cfg_table);
|
||||
String8 display_string = str8_list_join(arena, &display_strings, 0);
|
||||
String8 edit_string = str8_list_join(arena, &edit_strings, 0);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, block->key);
|
||||
row->eval = block->eval;
|
||||
row->expr = block->string;
|
||||
row->display_value = display_string;
|
||||
row->edit_value = edit_string;
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, block->key, block->eval);
|
||||
row->expr = block->string;
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
row->expand_ui_rule_node = expand_ui_rule_node;
|
||||
row->expand_ui_rule_spec = expand_ui_rule_spec;
|
||||
row->errors = block->eval.errors;
|
||||
if(block_type_kind != TG_Kind_Null)
|
||||
if(expandability_required)
|
||||
{
|
||||
for(TG_Key t = block->eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode != EVAL_EvalMode_NULL && ((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef))
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(expandability_required ||
|
||||
kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
}break;
|
||||
|
||||
@@ -7266,46 +7236,18 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
// rjf: build & push row
|
||||
String8List display_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, DF_EvalVizStringFlag_ReadOnlyDisplayRules, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, member_eval, member, &view_rule_table);
|
||||
String8List edit_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, 0, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, member_eval, member, &view_rule_table);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, key);
|
||||
row->eval = member_eval;
|
||||
row->expr = push_str8_copy(arena, member->name);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->inherited_type_key_chain = tg_key_list_copy(arena, &member->inheritance_key_chain);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, key, member_eval);
|
||||
row->expr = push_str8_copy(arena, member->name);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
row->expand_ui_rule_node = expand_ui_rule_node;
|
||||
row->expand_ui_rule_spec = expand_ui_rule_spec;
|
||||
if(tg_kind_from_key(member_eval.type_key) != TG_Kind_Null)
|
||||
row->inherited_type_key_chain = tg_key_list_copy(arena, &member->inheritance_key_chain);
|
||||
if(expandability_required)
|
||||
{
|
||||
for(TG_Key t = member_eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode != EVAL_EvalMode_NULL && ((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef))
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(expandability_required ||
|
||||
kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@@ -7346,45 +7288,17 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
// rjf: build row
|
||||
String8List display_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, DF_EvalVizStringFlag_ReadOnlyDisplayRules, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, elem_eval, 0, &view_rule_table);
|
||||
String8List edit_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, 0, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, elem_eval, 0, &view_rule_table);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, key);
|
||||
row->eval = elem_eval;
|
||||
row->expr = push_str8f(arena, "[%I64u]", idx);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, key, elem_eval);
|
||||
row->expr = push_str8f(arena, "[%I64u]", idx);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
row->expand_ui_rule_node = expand_ui_rule_node;
|
||||
row->expand_ui_rule_spec = expand_ui_rule_spec;
|
||||
if(direct_type_kind != TG_Kind_Null)
|
||||
if(expandability_required)
|
||||
{
|
||||
for(TG_Key t = elem_eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode != EVAL_EvalMode_NULL && ((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef))
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(expandability_required ||
|
||||
kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@@ -7425,45 +7339,17 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
// rjf: build row
|
||||
String8List display_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, DF_EvalVizStringFlag_ReadOnlyDisplayRules, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, link_eval, 0, &view_rule_table);
|
||||
String8List edit_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, 0, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, link_eval, 0, &view_rule_table);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, key);
|
||||
row->eval = link_eval;
|
||||
row->expr = push_str8f(arena, "[%I64u]", idx);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, key, link_eval);
|
||||
row->expr = push_str8f(arena, "[%I64u]", idx);
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
row->value_ui_rule_node = value_ui_rule_node;
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
row->expand_ui_rule_node = expand_ui_rule_node;
|
||||
row->expand_ui_rule_spec = expand_ui_rule_spec;
|
||||
if(link_type_kind != TG_Kind_Null)
|
||||
if(expandability_required)
|
||||
{
|
||||
for(TG_Key t = link_eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(expandability_required ||
|
||||
kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@@ -7475,9 +7361,8 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
if(num_skipped_visual < block_num_visual_rows)
|
||||
{
|
||||
DF_ExpandKey key = df_expand_key_make(df_hash_from_expand_key(block->parent_key), 1);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, key);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, key, block->eval);
|
||||
row->flags = DF_EvalVizRowFlag_Canvas;
|
||||
row->eval = block->eval;
|
||||
row->size_in_rows = dim_1u64(intersect_1u64(visible_idx_range, r1u64(0, dim_1u64(block->visual_idx_range))));
|
||||
row->skipped_size_in_rows= (visible_idx_range.min > block->visual_idx_range.min) ? visible_idx_range.min - block->visual_idx_range.min : 0;
|
||||
row->chopped_size_in_rows= (visible_idx_range.max < block->visual_idx_range.max) ? block->visual_idx_range.max - visible_idx_range.max : 0;
|
||||
@@ -7516,8 +7401,7 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
// rjf: build row
|
||||
String8List display_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, DF_EvalVizStringFlag_ReadOnlyDisplayRules, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, eval, 0, &view_rule_table);
|
||||
String8List edit_strings = df_single_line_eval_value_strings_from_eval(scratch.arena, 0, parse_ctx->type_graph, parse_ctx->rdbg, ctrl_ctx, default_radix, font, font_size, 500, 0, eval, 0, &view_rule_table);
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, &list, block, key);
|
||||
row->eval = eval;
|
||||
DF_EvalVizRow *row = df_eval_viz_row_list_push_new(arena, parse_ctx, &list, block, key, eval);
|
||||
row->expr = name;
|
||||
row->display_value = str8_list_join(arena, &display_strings, 0);
|
||||
row->edit_value = str8_list_join(arena, &edit_strings, 0);
|
||||
@@ -7525,37 +7409,6 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop
|
||||
row->value_ui_rule_spec = value_ui_rule_spec;
|
||||
row->expand_ui_rule_node = expand_ui_rule_node;
|
||||
row->expand_ui_rule_spec = expand_ui_rule_spec;
|
||||
if(tg_kind_from_key(eval.type_key) != TG_Kind_Null)
|
||||
{
|
||||
for(TG_Key t = eval.type_key;; t = tg_unwrapped_direct_from_graph_raddbg_key(parse_ctx->type_graph, parse_ctx->rdbg, t))
|
||||
{
|
||||
TG_Kind kind = tg_kind_from_key(t);
|
||||
if(kind == TG_Kind_Null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode != EVAL_EvalMode_NULL && ((TG_Kind_FirstBasic <= kind && kind <= TG_Kind_LastBasic) || kind == TG_Kind_Ptr || kind == TG_Kind_LRef || kind == TG_Kind_RRef))
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanEditValue;
|
||||
}
|
||||
if(expandability_required ||
|
||||
kind == TG_Kind_Struct ||
|
||||
kind == TG_Kind_Union ||
|
||||
kind == TG_Kind_Class ||
|
||||
kind == TG_Kind_Array)
|
||||
{
|
||||
row->flags |= DF_EvalVizRowFlag_CanExpand;
|
||||
}
|
||||
if(row->flags & DF_EvalVizRowFlag_CanExpand)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(block->eval.mode == EVAL_EvalMode_NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1340,7 +1340,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW
|
||||
ProfScope("value")
|
||||
{
|
||||
B32 cell_selected = (row_selected && cursor.x == DF_EvalWatchViewColumnKind_Value);
|
||||
B32 value_is_error = (row->errors.count != 0);
|
||||
B32 value_is_error = (row->eval.errors.count != 0);
|
||||
B32 value_is_hook = (!value_is_error && row->value_ui_rule_spec != &df_g_nil_gfx_view_rule_spec && row->value_ui_rule_spec != 0);
|
||||
B32 value_is_complex = (!value_is_error && !value_is_hook && !(row->flags & DF_EvalVizRowFlag_CanEditValue));
|
||||
B32 value_is_simple = (!value_is_error && !value_is_hook && (row->flags & DF_EvalVizRowFlag_CanEditValue));
|
||||
@@ -1365,7 +1365,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW
|
||||
if(value_is_error) UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_FailureBackground)) UI_Font(df_font_from_slot(DF_FontSlot_Main))
|
||||
{
|
||||
String8List strings = {0};
|
||||
for(EVAL_Error *error = row->errors.first; error != 0; error = error->next)
|
||||
for(EVAL_Error *error = row->eval.errors.first; error != 0; error = error->next)
|
||||
{
|
||||
str8_list_push(scratch.arena, &strings, error->text);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user