formalized addr bar in memory view, complete first pass of memory view peek types, various fixes

This commit is contained in:
Ryan Fleury
2026-04-13 14:39:31 -07:00
parent 294ede01a2
commit 21eb134f24
9 changed files with 377 additions and 75 deletions
+31
View File
@@ -4676,6 +4676,28 @@ rd_view_setting_f32_from_name(String8 name)
return result;
}
internal U64
rd_view_setting_addr_from_name(String8 name)
{
U64 result = 0;
String8 string = rd_view_setting_from_name(name);
E_Eval eval = e_eval_from_string(string);
E_TypeKey type_key = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative);
E_TypeKind type_kind = e_type_kind_from_key(type_key);
if(eval.irtree.mode == E_Mode_Offset &&
(type_kind == E_TypeKind_Struct ||
type_kind == E_TypeKind_Union ||
type_kind == E_TypeKind_Class))
{
result = eval.value.u64;
}
else
{
result = e_value_eval_from_eval(eval).value.u64;
}
return result;
}
//- rjf: evaluation & tag (a view's 'call') parameter extraction
internal Rng1U64
@@ -15623,6 +15645,15 @@ rd_frame(void)
evt.slot = UI_EventActionSlot_Cancel;
ui_event_list_push(scratch.arena, &ws->ui_events, &evt);
}break;
case RD_CmdKind_FocusMenu:
{
CFG_Node *window = cfg_node_from_id(rd_regs()->window);
RD_WindowState *ws = rd_window_state_from_cfg(window);
UI_Event evt = zero_struct;
evt.kind = UI_EventKind_Press;
evt.slot = UI_EventActionSlot_FocusMenu;
ui_event_list_push(scratch.arena, &ws->ui_events, &evt);
}break;
//- rjf: directional movement & text controls
//