diff --git a/src/df/core/df_core.h b/src/df/core/df_core.h index 14792f93..84dbdbd6 100644 --- a/src/df/core/df_core.h +++ b/src/df/core/df_core.h @@ -719,6 +719,7 @@ struct DF_EvalVizBlock DF_ExpandKey key; Rng1U64 visual_idx_range; Rng1U64 semantic_idx_range; + DBGI_FuzzySearchItemArray backing_search_items; S32 depth; }; diff --git a/src/df/gfx/df_gfx.c b/src/df/gfx/df_gfx.c index d58d8ce1..65911889 100644 --- a/src/df/gfx/df_gfx.c +++ b/src/df/gfx/df_gfx.c @@ -3167,7 +3167,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D // rjf: name editor if(op_flags & DF_EntityOpFlag_Rename) { - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, entity->name, "%S###entity_name_edit_%p", df_g_entity_kind_name_label_table[entity->kind], entity); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, entity->name, "%S###entity_name_edit_%p", df_g_entity_kind_name_label_table[entity->kind], entity); if(sig.commit) { DF_CmdParams params = df_cmd_params_from_window(ws); @@ -3183,7 +3183,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D if(op_flags & DF_EntityOpFlag_Condition) UI_Font(df_font_from_slot(DF_FontSlot_Code)) { DF_Entity *condition = df_entity_child_from_kind(entity, DF_EntityKind_Condition); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border|DF_LineEditFlag_CodeContents, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, condition->name, "Condition###entity_cond_edit_%p", entity); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border|DF_LineEditFlag_CodeContents, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, condition->name, "Condition###entity_cond_edit_%p", entity); if(sig.commit) { String8 new_string = str8(ws->entity_ctx_menu_input_buffer, ws->entity_ctx_menu_input_size); @@ -3212,7 +3212,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D if(entity->kind == DF_EntityKind_Target) { DF_Entity *exe = df_entity_child_from_kind(entity, DF_EntityKind_Executable); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, exe->name, "Executable###entity_exe_edit_%p", entity); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, exe->name, "Executable###entity_exe_edit_%p", entity); if(sig.commit) { String8 new_string = str8(ws->entity_ctx_menu_input_buffer, ws->entity_ctx_menu_input_size); @@ -3241,7 +3241,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D if(entity->kind == DF_EntityKind_Target) { DF_Entity *args = df_entity_child_from_kind(entity, DF_EntityKind_Arguments); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, args->name, "Arguments###entity_args_edit_%p", entity); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, args->name, "Arguments###entity_args_edit_%p", entity); if(sig.commit) { String8 new_string = str8(ws->entity_ctx_menu_input_buffer, ws->entity_ctx_menu_input_size); @@ -4140,7 +4140,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D DF_LineEditFlag_DisplayStringIsCode| DF_LineEditFlag_PreferDisplayString| DF_LineEditFlag_Border, - 0, &ws->hover_eval_txt_cursor, &ws->hover_eval_txt_mark, ws->hover_eval_txt_buffer, sizeof(ws->hover_eval_txt_buffer), &ws->hover_eval_txt_size, 0, row->edit_value, "%S###val_%I64x", row->display_value, row_hash); + 0, 0, &ws->hover_eval_txt_cursor, &ws->hover_eval_txt_mark, ws->hover_eval_txt_buffer, sizeof(ws->hover_eval_txt_buffer), &ws->hover_eval_txt_size, 0, row->edit_value, "%S###val_%I64x", row->display_value, row_hash); if(sig.commit) { String8 commit_string = str8(ws->hover_eval_txt_buffer, ws->hover_eval_txt_size); @@ -5208,6 +5208,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D UI_Signal sig = df_line_edit(DF_LineEditFlag_Border| (DF_LineEditFlag_CodeContents * !!(query->flags & DF_CmdQueryFlag_CodeInput)), 0, + 0, &view->query_cursor, &view->query_mark, view->query_buffer, @@ -5455,6 +5456,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D df_push_cmd__root(&p, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_ClearFilter)); } UI_Signal sig = df_line_edit(DF_LineEditFlag_Border|DF_LineEditFlag_CodeContents, + 0, 0, &view->query_cursor, &view->query_mark, @@ -7431,7 +7433,7 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop for(U64 idx = visible_idx_range.min; idx < visible_idx_range.max; idx += 1) { // rjf: unpack global info - RADDBG_GlobalVariable *global_var = raddbg_element_from_idx(parse_ctx->rdbg, global_variables, idx); + RADDBG_GlobalVariable *global_var = raddbg_element_from_idx(parse_ctx->rdbg, global_variables, block->backing_search_items.v[idx].idx); RADDBG_TypeNode *type_node = raddbg_element_from_idx(parse_ctx->rdbg, type_nodes, global_var->type_idx); U64 voff = global_var->voff; U64 vaddr = df_vaddr_from_voff(module, voff); @@ -7526,7 +7528,7 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop for(U64 idx = visible_idx_range.min; idx < visible_idx_range.max; idx += 1) { // rjf: unpack global info - RADDBG_ThreadVariable *thread_var = raddbg_element_from_idx(parse_ctx->rdbg, thread_variables, idx); + RADDBG_ThreadVariable *thread_var = raddbg_element_from_idx(parse_ctx->rdbg, thread_variables, block->backing_search_items.v[idx].idx); RADDBG_TypeNode *type_node = raddbg_element_from_idx(parse_ctx->rdbg, type_nodes, thread_var->type_idx); U64 name_size = 0; U8 *name_base = raddbg_string_from_idx(parse_ctx->rdbg, thread_var->name_string_idx, &name_size); @@ -7614,7 +7616,7 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop for(U64 idx = visible_idx_range.min; idx < visible_idx_range.max; idx += 1) { // rjf: unpack type info - RADDBG_UDT *udt = raddbg_element_from_idx(parse_ctx->rdbg, udts, idx); + RADDBG_UDT *udt = raddbg_element_from_idx(parse_ctx->rdbg, udts, block->backing_search_items.v[idx].idx); RADDBG_TypeNode *type_node = raddbg_element_from_idx(parse_ctx->rdbg, type_nodes, udt->self_type_idx); U64 name_size = 0; U8 *name_base = raddbg_string_from_idx(parse_ctx->rdbg, type_node->user_defined.name_string_idx, &name_size); @@ -10947,7 +10949,7 @@ df_code_label(F32 alpha, B32 indirection_size_change, Vec4F32 base_color, String //~ rjf: UI Widgets: Line Edit internal UI_Signal -df_line_edit(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, String8 string) +df_line_edit(DF_LineEditFlags flags, S32 depth, FuzzyMatchRangeList *matches, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, String8 string) { //- rjf: unpack visual metrics F32 expander_size_px = ui_top_font_size()*1.3f; @@ -11145,16 +11147,28 @@ df_line_edit(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 * if(!(flags & DF_LineEditFlag_PreferDisplayString) && pre_edit_value.size != 0) { display_string = pre_edit_value; - df_code_label(1.f, 1, ui_top_text_color(), display_string); + UI_Box *box = df_code_label(1.f, 1, ui_top_text_color(), display_string); + if(matches != 0) + { + df_box_equip_fuzzy_match_range_list_vis(box, *matches); + } } else if(flags & DF_LineEditFlag_DisplayStringIsCode) { - df_code_label(1.f, 1, ui_top_text_color(), display_string); + UI_Box *box = df_code_label(1.f, 1, ui_top_text_color(), display_string); + if(matches != 0) + { + df_box_equip_fuzzy_match_range_list_vis(box, *matches); + } } else { ui_set_next_text_color(df_rgba_from_theme_color(DF_ThemeColor_WeakText)); - ui_label(display_string); + UI_Box *box = ui_label(display_string).box; + if(matches != 0) + { + df_box_equip_fuzzy_match_range_list_vis(box, *matches); + } } } else if(!is_focus_active && !(flags & DF_LineEditFlag_CodeContents)) @@ -11168,7 +11182,11 @@ df_line_edit(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 * { ui_set_next_text_color(df_rgba_from_theme_color(DF_ThemeColor_WeakText)); } - ui_label(display_string); + UI_Box *box = ui_label(display_string).box; + if(matches != 0) + { + df_box_equip_fuzzy_match_range_list_vis(box, *matches); + } } else if(is_focus_active && flags & DF_LineEditFlag_CodeContents) { @@ -11251,14 +11269,14 @@ df_line_edit(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 * } internal UI_Signal -df_line_editf(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, char *fmt, ...) +df_line_editf(DF_LineEditFlags flags, S32 depth, FuzzyMatchRangeList *matches, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, char *fmt, ...) { Temp scratch = scratch_begin(0, 0); va_list args; va_start(args, fmt); String8 string = push_str8fv(scratch.arena, fmt, args); va_end(args); - UI_Signal sig = df_line_edit(flags, depth, cursor, mark, edit_buffer, edit_buffer_size, edit_string_size_out, expanded_out, pre_edit_value, string); + UI_Signal sig = df_line_edit(flags, depth, matches, cursor, mark, edit_buffer, edit_buffer_size, edit_string_size_out, expanded_out, pre_edit_value, string); scratch_end(scratch); return sig; } diff --git a/src/df/gfx/df_gfx.h b/src/df/gfx/df_gfx.h index e30aa494..39d6a6f6 100644 --- a/src/df/gfx/df_gfx.h +++ b/src/df/gfx/df_gfx.h @@ -1058,8 +1058,8 @@ internal UI_Box *df_code_label(F32 alpha, B32 indirection_size_change, Vec4F32 b //////////////////////////////// //~ rjf: UI Widgets: Line Edit -internal UI_Signal df_line_edit(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, String8 string); -internal UI_Signal df_line_editf(DF_LineEditFlags flags, S32 depth, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, char *fmt, ...); +internal UI_Signal df_line_edit(DF_LineEditFlags flags, S32 depth, FuzzyMatchRangeList *matches, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, String8 string); +internal UI_Signal df_line_editf(DF_LineEditFlags flags, S32 depth, FuzzyMatchRangeList *matches, TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, U64 *edit_string_size_out, B32 *expanded_out, String8 pre_edit_value, char *fmt, ...); //////////////////////////////// //~ rjf: Continuous Frame Requests diff --git a/src/df/gfx/df_views.c b/src/df/gfx/df_views.c index 5601e99d..973d9127 100644 --- a/src/df/gfx/df_views.c +++ b/src/df/gfx/df_views.c @@ -756,6 +756,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF globals_block->visual_idx_range = globals_block->semantic_idx_range = r1u64(1, items.count); globals_block->parent_key = parent_key; globals_block->key = root_key; + globals_block->backing_search_items = items; blocks.count += 1; blocks.total_visual_row_count += dim_1u64(globals_block->visual_idx_range); blocks.total_semantic_row_count += dim_1u64(globals_block->semantic_idx_range); @@ -820,6 +821,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF next_globals_block->depth = 0; next_globals_block->parent_key = parent_key; next_globals_block->key = root_key; + next_globals_block->backing_search_items = items; SLLQueuePush(blocks.first, blocks.last, next_globals_block); blocks.count += 1; globals_block = next_globals_block; @@ -860,6 +862,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF tlocals_block->visual_idx_range = tlocals_block->semantic_idx_range = r1u64(1, items.count); tlocals_block->parent_key = parent_key; tlocals_block->key = root_key; + tlocals_block->backing_search_items = items; blocks.count += 1; blocks.total_visual_row_count += dim_1u64(tlocals_block->visual_idx_range); blocks.total_semantic_row_count += dim_1u64(tlocals_block->semantic_idx_range); @@ -917,6 +920,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF next_tlocals_block->depth = 0; next_tlocals_block->parent_key = parent_key; next_tlocals_block->key = root_key; + next_tlocals_block->backing_search_items = items; SLLQueuePush(blocks.first, blocks.last, next_tlocals_block); blocks.count += 1; tlocals_block = next_tlocals_block; @@ -957,6 +961,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF types_block->visual_idx_range = types_block->semantic_idx_range = r1u64(1, items.count); types_block->parent_key = parent_key; types_block->key = root_key; + types_block->backing_search_items = items; blocks.count += 1; blocks.total_visual_row_count += dim_1u64(types_block->visual_idx_range); blocks.total_semantic_row_count += dim_1u64(types_block->semantic_idx_range); @@ -1014,6 +1019,7 @@ df_eval_viz_block_list_from_watch_view_state(Arena *arena, DBGI_Scope *scope, DF next_types_block->depth = 0; next_types_block->parent_key = parent_key; next_types_block->key = root_key; + next_types_block->backing_search_items = items; SLLQueuePush(blocks.first, blocks.last, next_types_block); blocks.count += 1; types_block = next_types_block; @@ -1092,6 +1098,11 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW U64 thread_ip_vaddr = df_query_cached_rip_from_thread_unwind(thread, ctrl_ctx.unwind_count); DF_EvalViewKey eval_view_key = df_eval_view_key_from_eval_watch_view(ewv); DF_EvalView *eval_view = df_eval_view_from_key(eval_view_key); + String8 filter = {0}; + if(view->is_filtering) + { + filter = str8(view->query_buffer, view->query_string_size); + } ////////////////////////////// //- rjf: process * thread info -> parse_ctx @@ -1413,6 +1424,11 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW inherited_bg_color.w *= 0.2f; ui_set_next_background_color(inherited_bg_color); } + FuzzyMatchRangeList matches = {0}; + if(filter.size != 0) + { + matches = fuzzy_match_find(scratch.arena, filter, row->expr); + } sig = df_line_editf((DF_LineEditFlag_CodeContents| DF_LineEditFlag_NoBackground*(!is_inherited)| DF_LineEditFlag_DisableEdit*(!can_edit_expr)| @@ -1420,6 +1436,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW DF_LineEditFlag_ExpanderPlaceholder*(row->depth==0)| DF_LineEditFlag_ExpanderSpace*(row->depth!=0)), row->depth, + filter.size ? &matches : 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, &next_expanded, row->expr, "###row_%I64x", row_hash); @@ -1592,7 +1609,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW // rjf: simple values (editable) if(value_is_simple) { - sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, row->display_value, "%S###val_%I64x", row->display_value, row_hash); + sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, row->display_value, "%S###val_%I64x", row->display_value, row_hash); edit_commit = (edit_commit || sig.commit); } } @@ -1665,7 +1682,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW UI_FocusActive((cell_selected && ewv->input_editing) ? UI_FocusKind_On : UI_FocusKind_Off) { rule_editing_active = ui_is_focus_active(); - sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, view_rule, "###view_rule_%I64x", row_hash); + sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, view_rule, "###view_rule_%I64x", row_hash); edit_commit = edit_commit || sig.commit; } @@ -1727,7 +1744,7 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW UI_FocusActive((cell_selected && ewv->input_editing) ? UI_FocusKind_On : UI_FocusKind_Off) { expr_editing_active = ui_is_focus_active(); - sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, str8_lit(""), "###empty_row_expr"); + sig = df_line_editf(DF_LineEditFlag_CodeContents|DF_LineEditFlag_NoBackground, 0, 0, &ewv->input_cursor, &ewv->input_mark, ewv->input_buffer, sizeof(ewv->input_buffer), &ewv->input_size, 0, str8_lit(""), "###empty_row_expr"); edit_commit = edit_commit || sig.commit; } @@ -3466,7 +3483,7 @@ DF_VIEW_UI_FUNCTION_DEF(Target) UI_FocusHot(value_selected ? UI_FocusKind_On : UI_FocusKind_Off) UI_FocusActive((value_selected && tv->input_editing) ? UI_FocusKind_On : UI_FocusKind_Off) { - sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, &tv->input_cursor, &tv->input_mark, tv->input_buffer, sizeof(tv->input_buffer), &tv->input_size, 0, kv_info[idx].current_text, "###kv_editor_%i", (S32)idx); + sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, 0, &tv->input_cursor, &tv->input_mark, tv->input_buffer, sizeof(tv->input_buffer), &tv->input_size, 0, kv_info[idx].current_text, "###kv_editor_%i", (S32)idx); edit_commit = edit_commit || sig.commit; } @@ -3919,7 +3936,7 @@ DF_VIEW_UI_FUNCTION_DEF(FilePathMap) UI_FocusHot(value_selected ? UI_FocusKind_On : UI_FocusKind_Off) UI_FocusActive((value_selected && fpms->input_editing) ? UI_FocusKind_On : UI_FocusKind_Off) { - sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, &fpms->input_cursor, &fpms->input_mark, fpms->input_buffer, sizeof(fpms->input_buffer), &fpms->input_size, 0, map_src_path, "###src_editor_%p", map); + sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, 0, &fpms->input_cursor, &fpms->input_mark, fpms->input_buffer, sizeof(fpms->input_buffer), &fpms->input_size, 0, map_src_path, "###src_editor_%p", map); edit_commit = edit_commit || sig.commit; } @@ -3993,7 +4010,7 @@ DF_VIEW_UI_FUNCTION_DEF(FilePathMap) UI_FocusHot(value_selected ? UI_FocusKind_On : UI_FocusKind_Off) UI_FocusActive((value_selected && fpms->input_editing) ? UI_FocusKind_On : UI_FocusKind_Off) { - sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, &fpms->input_cursor, &fpms->input_mark, fpms->input_buffer, sizeof(fpms->input_buffer), &fpms->input_size, 0, map_dst_path, "###dst_editor_%p", map); + sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, 0, &fpms->input_cursor, &fpms->input_mark, fpms->input_buffer, sizeof(fpms->input_buffer), &fpms->input_size, 0, map_dst_path, "###dst_editor_%p", map); edit_commit = edit_commit || sig.commit; } @@ -4758,7 +4775,7 @@ DF_VIEW_UI_FUNCTION_DEF(Modules) UI_WidthFill { UI_TextColor(!dbgi_is_valid ? df_rgba_from_theme_color(DF_ThemeColor_FailureBackground) : ui_top_text_color()) - sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, &mv->txt_cursor, &mv->txt_mark, mv->txt_buffer, sizeof(mv->txt_buffer), &mv->txt_size, 0, dbgi->dbg_path, "###dbg_path_%p", entity); + sig = df_line_editf(DF_LineEditFlag_NoBackground, 0, 0, &mv->txt_cursor, &mv->txt_mark, mv->txt_buffer, sizeof(mv->txt_buffer), &mv->txt_size, 0, dbgi->dbg_path, "###dbg_path_%p", entity); edit_commit = (edit_commit || sig.commit); } @@ -9128,7 +9145,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row UI_Font(df_font_from_slot(DF_FontSlot_Code)) { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("Hex"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, hex_string, "###hex_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, hex_string, "###hex_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9141,7 +9158,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("R"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, r_string, "###r_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, r_string, "###r_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9153,7 +9170,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("G"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, g_string, "###g_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, g_string, "###g_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9165,7 +9182,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("B"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, b_string, "###b_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, b_string, "###b_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9178,7 +9195,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("H"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, h_string, "###h_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, h_string, "###h_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9189,7 +9206,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("S"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, s_string, "###s_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, s_string, "###s_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9200,7 +9217,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("V"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, v_string, "###v_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, v_string, "###v_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size); @@ -9212,7 +9229,7 @@ DF_VIEW_UI_FUNCTION_DEF(Theme) UI_Row { UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_WeakText)) UI_PrefWidth(ui_em(4.5f, 1.f)) ui_labelf("A"); - UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, a_string, "###a_edit"); + UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &sv->txt_cursor, &sv->txt_mark, sv->txt_buffer, sizeof(sv->txt_buffer), &sv->txt_size, 0, a_string, "###a_edit"); if(sig.commit) { String8 string = str8(sv->txt_buffer, sv->txt_size);