From 09f78fdae493965a02c225c37c630d6cd19237ee Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 3 Jun 2026 14:28:06 -0700 Subject: [PATCH] small parameterization to query watches --- src/raddbg/generated/raddbg.meta.c | 6 ++++-- src/raddbg/generated/raddbg.meta.h | 7 +++++-- src/raddbg/raddbg.mdesk | 1 + src/raddbg/raddbg_core.c | 23 ++++++++++++++++++++++- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index f532d8cf..15a90e62 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -476,7 +476,7 @@ RD_NameSchemaInfo rd_name_schema_info_table[39] = {str8_lit_comp("thread"), 0, str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':set}")}, }; -String8 rd_reg_slot_code_name_table[50] = +String8 rd_reg_slot_code_name_table[51] = { {0}, str8_lit_comp("machine"), @@ -524,13 +524,14 @@ str8_lit_comp("non_graphical"), str8_lit_comp("prefer_new_tab"), str8_lit_comp("activate_with_single_click"), str8_lit_comp("disable_addresses"), +str8_lit_comp("small_size"), str8_lit_comp("dir2"), str8_lit_comp("string"), str8_lit_comp("cmd_name"), str8_lit_comp("wm_event"), }; -Rng1U64 rd_reg_slot_range_table[50] = +Rng1U64 rd_reg_slot_range_table[51] = { {0}, {OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(D_Handle)}, @@ -578,6 +579,7 @@ Rng1U64 rd_reg_slot_range_table[50] = {OffsetOf(RD_Regs, prefer_new_tab), OffsetOf(RD_Regs, prefer_new_tab) + sizeof(B32)}, {OffsetOf(RD_Regs, activate_with_single_click), OffsetOf(RD_Regs, activate_with_single_click) + sizeof(B32)}, {OffsetOf(RD_Regs, disable_addresses), OffsetOf(RD_Regs, disable_addresses) + sizeof(B32)}, +{OffsetOf(RD_Regs, small_size), OffsetOf(RD_Regs, small_size) + sizeof(B32)}, {OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)}, {OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)}, {OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 2a0a5007..5eb85370 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -54,6 +54,7 @@ RD_RegSlot_NonGraphical, RD_RegSlot_PreferNewTab, RD_RegSlot_ActivateWithSingleClick, RD_RegSlot_DisableAddresses, +RD_RegSlot_SmallSize, RD_RegSlot_Dir2, RD_RegSlot_String, RD_RegSlot_CmdName, @@ -503,6 +504,7 @@ B32 non_graphical; B32 prefer_new_tab; B32 activate_with_single_click; B32 disable_addresses; +B32 small_size; Dir2 dir2; String8 string; String8 cmd_name; @@ -604,6 +606,7 @@ Z(getting_started)\ .prefer_new_tab = rd_regs()->prefer_new_tab,\ .activate_with_single_click = rd_regs()->activate_with_single_click,\ .disable_addresses = rd_regs()->disable_addresses,\ +.small_size = rd_regs()->small_size,\ .dir2 = rd_regs()->dir2,\ .string = rd_regs()->string,\ .cmd_name = rd_regs()->cmd_name,\ @@ -614,8 +617,8 @@ extern String8 rd_tab_fast_path_view_name_table[25]; extern String8 rd_tab_fast_path_query_name_table[25]; extern RD_VocabInfo rd_vocab_info_table[367]; extern RD_NameSchemaInfo rd_name_schema_info_table[39]; -extern String8 rd_reg_slot_code_name_table[50]; -extern Rng1U64 rd_reg_slot_range_table[50]; +extern String8 rd_reg_slot_code_name_table[51]; +extern Rng1U64 rd_reg_slot_range_table[51]; extern String8 rd_binding_version_remap_old_name_table[9]; extern String8 rd_binding_version_remap_new_name_table[9]; extern String8 rd_icon_kind_text_table[75]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 3f971732..70e376b3 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -896,6 +896,7 @@ RD_RegTable: {B32 prefer_new_tab PreferNewTab } {B32 activate_with_single_click ActivateWithSingleClick } {B32 disable_addresses DisableAddresses } + {B32 small_size SmallSize } {Dir2 dir2 Dir2 } {String8 string String } {String8 cmd_name CmdName } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 55fadecf..cb8cf93a 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -6424,6 +6424,7 @@ rd_window_frame(void) CFG_Node *view = cfg_node_child_from_string_or_alloc(rd_state->cfg, root, str8_lit("watch")); CFG_Node *query = cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("query")); B32 is_lister = (cfg_node_child_from_string(view, str8_lit("lister")) != &cfg_nil_node); + B32 is_small = (cfg_node_child_from_string(view, str8_lit("small")) != &cfg_nil_node); B32 root_is_explicit = (cfg_node_child_from_string(view, str8_lit("explicit_root")) != &cfg_nil_node); RD_ViewState *vs = rd_view_state_from_cfg(view); @@ -6494,6 +6495,16 @@ rd_window_frame(void) EV_BlockTree predicted_block_tree = ev_block_tree_from_eval(scratch.arena, rd_view_eval_view(), rd_view_query_input(), query_eval); F32 query_width_px = floor_f32(content_rect_dim.x * 0.35f); F32 max_query_height_px = content_rect_dim.y*0.8f; + if(is_small) + { + query_width_px = floor_f32(content_rect_dim.x * 0.15f); + max_query_height_px = content_rect_dim.y*0.3f; + } + if(!ui_key_match(ui_key_zero(), ws->query_regs->ui_key)) + { + query_width_px = is_small ? (ui_top_font_size()*25.f) : (ui_top_font_size()*60.f); + max_query_height_px = is_small ? (ui_top_font_size()*40.f) : (ui_top_font_size()*80.f); + } F32 query_height_px = max_query_height_px; if(size_query_by_expr_eval) { @@ -6516,7 +6527,7 @@ rd_window_frame(void) { rect.x0 = anchor_box->rect.x0 + ws->query_regs->off_px.x; rect.y0 = anchor_box->rect.y1 + ws->query_regs->off_px.y; - rect.x1 = rect.x0 + ui_top_font_size()*60.f; + rect.x1 = rect.x0 + query_width_px; rect.y1 = rect.y0 + query_height_px; } } @@ -8640,7 +8651,9 @@ rd_window_frame(void) .expr = str8_lit("query:tab_commands"), .panel = panel->cfg->id, .do_implicit_root = 1, + .small_size = 1, .do_lister = 1, + .activate_with_single_click = 1, .ui_key = add_new_box->key); } } @@ -15717,6 +15730,14 @@ rd_frame(void) { cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("lister")); } + if(!rd_regs()->small_size) + { + cfg_node_release(rd_state->cfg, cfg_node_child_from_string(view, str8_lit("small"))); + } + else + { + cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("small")); + } if(!rd_regs()->activate_with_single_click) { cfg_node_release(rd_state->cfg, cfg_node_child_from_string(view, str8_lit("activate_with_single_click")));