setting for preferring displaying pointer addresses before contents

This commit is contained in:
Ryan Fleury
2026-04-20 09:57:32 -07:00
parent 2bf57c065a
commit 6764e1281e
9 changed files with 68 additions and 26 deletions
File diff suppressed because one or more lines are too long
+4 -2
View File
@@ -228,8 +228,8 @@ RD_VocabTable:
{
//- rjf: users / projects
{
user
```
user,
```
@expand_commands(edit_user_theme) x:
{
//- rjf: animations
@@ -317,6 +317,8 @@ RD_VocabTable:
@default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64,
//- rjf: visualizers
@display_name('Display Pointer Addresses Before Contents') @description("When visualizing pointers, always shows the address first, before showing contents at the pointer's address.")
@default(0) display_pointer_addresses_before_contents: bool,
@display_name('Use Default C++ STL Type Visualizers') @description("Enables the built-in type views for C++ STL types.")
@default(1) use_default_stl_type_views: bool,
@display_name('Use Default Unreal Engine Type Visualizers') @description("Enables the built-in type views for Unreal Engine types.")
+8 -3
View File
@@ -1972,7 +1972,7 @@ rd_view_ui(Rng2F32 rect)
F32 row_height_px = ui_top_px_height();
S64 num_possible_visible_rows = (S64)(dim_2f32(rect).y/row_height_px);
F32 row_string_max_size_px = dim_2f32(rect).x;
EV_StringFlags string_flags = EV_StringFlag_ReadOnlyDisplayRules;
EV_StringFlags string_flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags;
String8 filter = rd_view_query_input();
Vec4F32 pop_background_rgba = {0};
UI_TagF("pop") pop_background_rgba = ui_color_from_name(str8_lit("background"));
@@ -5559,7 +5559,7 @@ rd_window_frame(void)
{
ui_spacer(ui_em(1.5f, 1.f));
}
EV_StringParams string_params = {EV_StringFlag_ReadOnlyDisplayRules, .radix = 16};
EV_StringParams string_params = {EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 16};
String8 thread_handle_string = ctrl_string_from_handle(scratch.arena, ctrl_entity->handle);
for(U64 idx = 0; idx < 16; idx += 1)
{
@@ -5589,7 +5589,7 @@ rd_window_frame(void)
E_Eval eval = e_eval_from_string(rd_state->drag_drop_regs->expr);
if(eval.irtree.mode != E_Mode_Null)
{
EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10};
EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 10};
String8 value_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, ui_top_font(), ui_top_font_size(), ui_top_font_size()*20.f, eval);
if(value_string.size != 0)
{
@@ -12013,6 +12013,11 @@ rd_frame(void)
rd_state->alt_menu_bar_enabled = rd_setting_b32_from_name(str8_lit("focus_menu_bar_with_alt"));
rd_state->use_default_stl_type_views = rd_setting_b32_from_name(str8_lit("use_default_stl_type_views"));
rd_state->use_default_ue_type_views = rd_setting_b32_from_name(str8_lit("use_default_ue_type_views"));
rd_state->eval_viz_base_string_flags = 0;
if(rd_setting_b32_from_name(str8_lit("display_pointer_addresses_before_contents")))
{
rd_state->eval_viz_base_string_flags |= EV_StringFlag_AddressesBeforeContent;
}
////////////////////////////
//- rjf: autosave if needed
+1
View File
@@ -403,6 +403,7 @@ struct RD_State
B32 alt_menu_bar_enabled;
B32 use_default_stl_type_views;
B32 use_default_ue_type_views;
EV_StringFlags eval_viz_base_string_flags;
// rjf: animation rates
F32 catchall_animation_rate;
+1 -1
View File
@@ -3778,7 +3778,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
{
EV_StringParams params =
{
.flags = EV_StringFlag_ReadOnlyDisplayRules,
.flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags,
.radix = rd_view_setting_u64_from_name(str8_lit("default_radix")),
};
String8 value_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &params, ui_top_font(), ui_top_font_size(), ui_top_font_size()*40.f, peek_eval);
+1 -1
View File
@@ -2119,7 +2119,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
String8 eval_string = {0};
if(!e_type_key_match(e_type_key_zero(), eval.irtree.type_key))
{
EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10};
EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 10};
eval_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, params->font, params->font_size, params->font_size*60.f, eval);
}
ui_spacer(ui_em(1.5f, 1.f));