fix single-line string value stringification; expand commands for tabs

This commit is contained in:
Ryan Fleury
2025-05-01 07:50:46 -07:00
parent f73ef86a54
commit 91be06dea9
4 changed files with 32 additions and 11 deletions
@@ -1775,18 +1775,27 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
Temp scratch = scratch_begin(&arena, 1);
// rjf: read string data
#define EV_STRING_ITER_STRING_BUFFER_CAPACITY 4096
U64 string_memory_addr = ptr_data->value_eval.value.u64;
U64 string_buffer_size = 4096;
U64 string_buffer_size = EV_STRING_ITER_STRING_BUFFER_CAPACITY;
U8 *string_buffer = push_array(scratch.arena, U8, string_buffer_size);
for(U64 try_size = string_buffer_size; try_size >= 16; try_size /= 2)
if(type_kind == E_TypeKind_Array && ptr_data->value_eval.irtree.mode == E_Mode_Value)
{
B32 read_good = e_space_read(eval.space, string_buffer, r1u64(string_memory_addr, string_memory_addr+try_size));
if(read_good)
{
break;
}
StaticAssert(sizeof(ptr_data->value_eval.value.u512.u8) <= EV_STRING_ITER_STRING_BUFFER_CAPACITY, ev_string_iter_value_string_buffer_size_check);
MemoryCopy(string_buffer, ptr_data->value_eval.value.u512.u8, sizeof(ptr_data->value_eval.value.u512.u8));
}
else
{
for(U64 try_size = string_buffer_size; try_size >= 16; try_size /= 2)
{
B32 read_good = e_space_read(eval.space, string_buffer, r1u64(string_memory_addr, string_memory_addr+try_size));
if(read_good)
{
break;
}
}
string_buffer[string_buffer_size-1] = 0;
}
string_buffer[string_buffer_size-1] = 0;
// rjf: check element size - if non-U8, assume UTF-16 or UTF-32 based on type, and convert
U64 element_size = ptr_data->direct_type->byte_size;
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -364,7 +364,9 @@ RD_VocabTable:
{
theme_color,
```
@collection_commands(add_theme_color, fork_loaded_theme_colors, save_theme_colors) x:
@collection_commands(add_theme_color, fork_loaded_theme_colors, save_theme_colors)
@row_commands(remove_cfg)
x:
{
@display_name('Tags') tags: string,
@display_name('Value') value: @color @hex u32,
@@ -403,6 +405,7 @@ RD_VocabTable:
{
tab,
```
@expand_commands(duplicate_tab, close_tab)
x:
{
@default(11) @display_name('Tab Font Size') @description("Controls the tab's font size.")
+9
View File
@@ -5044,6 +5044,15 @@ rd_view_ui(Rng2F32 rect)
}
RD_RegsScope(.cfg = cfg->id, .ctrl_entity = entity->handle)
{
if(cfg != &rd_nil_cfg)
{
RD_PanelTree panels = rd_panel_tree_from_cfg(scratch.arena, cfg);
RD_PanelNode *parent_panel_node = rd_panel_node_from_tree_cfg(panels.root, cfg->parent);
if(parent_panel_node != &rd_nil_panel_node)
{
rd_regs()->tab = rd_regs()->view = cfg->id;
}
}
if(!(cmd_kind_info->query.flags & RD_QueryFlag_Required) ||
(cmd_kind_info->query.slot == RD_RegSlot_Cfg && cfg != &rd_nil_cfg) ||
(cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &ctrl_entity_nil))