work on tag-based styling

This commit is contained in:
Ryan Fleury
2025-02-18 18:08:18 -08:00
parent 6c9f7018f1
commit 1b8e39c635
13 changed files with 501 additions and 439 deletions
+1 -1
View File
@@ -809,7 +809,7 @@ str8_lit_comp("far_manager"),
String8 rd_theme_preset_cfg_string_table[9] =
{
str8_lit_comp("theme:\n{\n background: 0x1b1b1bff,\n alt: background: 0x222222ff,\n good: background: 0x222222ff,\n bad: background: 0x222222ff,\n pop: background: 0x222222ff,\n border: 0x404040ff,\n text: 0xe5e5e5ff,\n weak: text: 0xe5e5e5ff,\n hover: 0xffffffff,\n focus: 0xfda200ff,\n cursor: 0x8aff00ff,\n selection: 0x99ccffff,\n\n menu_bar:\n {\n background: 0x2b3740ff,\n border: 0x3e4c57ff,\n }\n\n good:\n {\n background: 0x2c5b36ff,\n border: 0x3f3f3fff,\n }\n\n bad:\n {\n background: 0x803425ff,\n border: 0xe88774ff,\n }\n\n pop:\n {\n background: 0x355b6eff,\n border: 0x355b6eff,\n }\n\n scroll_bar:\n {\n background: 0x2b2b2bff,\n border: 0x3f3f3fff,\n }\n\n tab:\n {\n background: 0x6f5135ff,\n border: 0x8a6e54ff,\n inactive:\n {\n background: 0x2b3740ff,\n border: 0x3e4c57ff,\n }\n }\n\n drop_site:\n {\n background: 0xffffffff,\n border: 0xffffffff,\n }\n\n code:\n {\n default: text: 0xcbcbcbff,\n symbol: text: 0x42a2cfff,\n type: text: 0xfec746ff,\n local: text: 0x98bc80ff,\n register: text: 0xb7afd5ff,\n keyword: text: 0xb38d4cff,\n delimiter_or_operator: text: 0x767676ff,\n numeric: text: 0x98abb1ff,\n numeric_alt_digit_group: text: 0x738287ff,\n string: text: 0x98abb1ff,\n meta: text: 0xd96759ff,\n comment: text: 0x717171ff,\n line_info_0: background: 0x99503dff,\n line_info_1: background: 0xfe8249ff,\n line_info_2: background: 0xffba17ff,\n line_info_3: background: 0xcefd69ff,\n line_info_4: background: 0x99503dff,\n line_info_5: background: 0xfe8249ff,\n line_info_6: background: 0xcefd69ff,\n line_info_7: background: 0x99503dff,\n }\n\n debug_state:\n {\n thread_0: 0xffcb7fff,\n thread_1: 0xb2ff65ff,\n thread_2: 0xff99e5ff,\n thread_3: 0x6598ffff,\n thread_4: 0x65ffcbff,\n thread_5: 0xff9819ff,\n thread_6: 0x9932ffff,\n thread_7: 0x65ff4cff,\n thread_unwound: 0xb2ccd8ff,\n thread_error: 0xb23219ff,\n breakpoint: 0xa72911ff,\n }\n}\n"),
str8_lit_comp("theme:\n{\n background: 0x1b1b1bff,\n alt: background: 0x222222ff,\n good_pop: background: 0x2c5b36ff,\n bad_pop: background: 0x803425ff,\n good: text: 0x32a852ff,\n bad: text: 0xcf5242ff,\n pop: background: 0x355b6eff,\n border: 0x404040ff,\n text: 0xe5e5e5ff,\n weak: text: 0xe5e5e5ff,\n hover: 0xffffffff,\n focus: 0xfda200ff,\n cursor: 0x8aff00ff,\n selection: 0x99ccffff,\n inactive: background: 0x0000002f,\n drop_shadow: 0x0000007f,\n\n code_default: 0xcbcbcbff,\n code_symbol: 0x42a2cfff,\n code_type: 0xfec746ff,\n code_local: 0x98bc80ff,\n code_register: 0xb7afd5ff,\n code_keyword: 0xb38d4cff,\n code_delimiter_or_operator: 0x767676ff,\n code_numeric: 0x98abb1ff,\n code_numeric_alt_digit_group: 0x738287ff,\n code_string: 0x98abb1ff,\n code_meta: 0xd96759ff,\n code_comment: 0x717171ff,\n line_info_0: 0x99503dff,\n line_info_1: 0xfe8249ff,\n line_info_2: 0xffba17ff,\n line_info_3: 0xcefd69ff,\n line_info_4: 0x99503dff,\n line_info_5: 0xfe8249ff,\n line_info_6: 0xcefd69ff,\n line_info_7: 0x99503dff,\n thread_0: 0xffcb7fff,\n thread_1: 0xb2ff65ff,\n thread_2: 0xff99e5ff,\n thread_3: 0x6598ffff,\n thread_4: 0x65ffcbff,\n thread_5: 0xff9819ff,\n thread_6: 0x9932ffff,\n thread_7: 0x65ff4cff,\n thread_unwound: 0xb2ccd8ff,\n thread_error: 0xb23219ff,\n breakpoint: 0xa72911ff,\n\n floating:\n {\n background: 0x2222225f,\n background: alt: 0x2222225f,\n border: 0xbfbfbf1f,\n }\n\n menu_bar:\n {\n background: 0x2b3740ff,\n border: 0x3e4c57ff,\n }\n\n good:\n {\n background: 0x2c5b36ff,\n border: 0x3f3f3fff,\n }\n\n bad:\n {\n background: 0x803425ff,\n border: 0xe88774ff,\n }\n\n pop:\n {\n background: 0x355b6eff,\n border: 0x355b6eff,\n }\n\n scroll_bar:\n {\n background: 0x2b2b2bff,\n border: 0x3f3f3fff,\n }\n\n implicit:\n {\n background: 0x00000000,\n border: 0x00000000,\n }\n\n hollow:\n {\n background: 0x00000000,\n border: 0xffffff1f,\n }\n\n tab:\n {\n background: 0x6f5135ff,\n border: 0x8a6e54ff,\n inactive:\n {\n background: 0x2b3740ff,\n border: 0x3e4c57ff,\n }\n }\n\n drop_site:\n {\n background: 0xffffff05,\n border: 0xffffff0f,\n }\n}\n"),
str8_lit_comp(""),
str8_lit_comp(""),
str8_lit_comp(""),
+60 -44
View File
@@ -989,9 +989,11 @@ RD_ThemePresetTable:
{
background: 0x1b1b1bff,
alt: background: 0x222222ff,
good: background: 0x222222ff,
bad: background: 0x222222ff,
pop: background: 0x222222ff,
good_pop: background: 0x2c5b36ff,
bad_pop: background: 0x803425ff,
good: text: 0x32a852ff,
bad: text: 0xcf5242ff,
pop: background: 0x355b6eff,
border: 0x404040ff,
text: 0xe5e5e5ff,
weak: text: 0xe5e5e5ff,
@@ -999,6 +1001,47 @@ RD_ThemePresetTable:
focus: 0xfda200ff,
cursor: 0x8aff00ff,
selection: 0x99ccffff,
inactive: background: 0x0000002f,
drop_shadow: 0x0000007f,
code_default: 0xcbcbcbff,
code_symbol: 0x42a2cfff,
code_type: 0xfec746ff,
code_local: 0x98bc80ff,
code_register: 0xb7afd5ff,
code_keyword: 0xb38d4cff,
code_delimiter_or_operator: 0x767676ff,
code_numeric: 0x98abb1ff,
code_numeric_alt_digit_group: 0x738287ff,
code_string: 0x98abb1ff,
code_meta: 0xd96759ff,
code_comment: 0x717171ff,
line_info_0: 0x99503dff,
line_info_1: 0xfe8249ff,
line_info_2: 0xffba17ff,
line_info_3: 0xcefd69ff,
line_info_4: 0x99503dff,
line_info_5: 0xfe8249ff,
line_info_6: 0xcefd69ff,
line_info_7: 0x99503dff,
thread_0: 0xffcb7fff,
thread_1: 0xb2ff65ff,
thread_2: 0xff99e5ff,
thread_3: 0x6598ffff,
thread_4: 0x65ffcbff,
thread_5: 0xff9819ff,
thread_6: 0x9932ffff,
thread_7: 0x65ff4cff,
thread_unwound: 0xb2ccd8ff,
thread_error: 0xb23219ff,
breakpoint: 0xa72911ff,
floating:
{
background: 0x2222225f,
background: alt: 0x2222225f,
border: 0xbfbfbf1f,
}
menu_bar:
{
@@ -1030,6 +1073,18 @@ RD_ThemePresetTable:
border: 0x3f3f3fff,
}
implicit:
{
background: 0x00000000,
border: 0x00000000,
}
hollow:
{
background: 0x00000000,
border: 0xffffff1f,
}
tab:
{
background: 0x6f5135ff,
@@ -1043,47 +1098,8 @@ RD_ThemePresetTable:
drop_site:
{
background: 0xffffffff,
border: 0xffffffff,
}
code:
{
default: text: 0xcbcbcbff,
symbol: text: 0x42a2cfff,
type: text: 0xfec746ff,
local: text: 0x98bc80ff,
register: text: 0xb7afd5ff,
keyword: text: 0xb38d4cff,
delimiter_or_operator: text: 0x767676ff,
numeric: text: 0x98abb1ff,
numeric_alt_digit_group: text: 0x738287ff,
string: text: 0x98abb1ff,
meta: text: 0xd96759ff,
comment: text: 0x717171ff,
line_info_0: background: 0x99503dff,
line_info_1: background: 0xfe8249ff,
line_info_2: background: 0xffba17ff,
line_info_3: background: 0xcefd69ff,
line_info_4: background: 0x99503dff,
line_info_5: background: 0xfe8249ff,
line_info_6: background: 0xcefd69ff,
line_info_7: background: 0x99503dff,
}
debug_state:
{
thread_0: 0xffcb7fff,
thread_1: 0xb2ff65ff,
thread_2: 0xff99e5ff,
thread_3: 0x6598ffff,
thread_4: 0x65ffcbff,
thread_5: 0xff9819ff,
thread_6: 0x9932ffff,
thread_7: 0x65ff4cff,
thread_unwound: 0xb2ccd8ff,
thread_error: 0xb23219ff,
breakpoint: 0xa72911ff,
background: 0xffffff05,
border: 0xffffff0f,
}
}
```
+249 -265
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -999,7 +999,7 @@ internal RD_KeyMapNodePtrList rd_key_map_node_ptr_list_from_name(Arena *arena, S
internal RD_KeyMapNodePtrList rd_key_map_node_ptr_list_from_binding(Arena *arena, RD_Binding binding);
internal Vec4F32 rd_hsva_from_cfg(RD_Cfg *cfg);
internal Vec4F32 rd_rgba_from_cfg(RD_Cfg *cfg);
internal Vec4F32 rd_color_from_cfg(RD_Cfg *cfg);
internal B32 rd_disabled_from_cfg(RD_Cfg *cfg);
internal RD_Location rd_location_from_cfg(RD_Cfg *cfg);
@@ -1026,7 +1026,7 @@ internal E_Expr *rd_tag_from_cfg(Arena *arena, RD_Cfg *cfg);
////////////////////////////////
//~ rjf: Control Entity Info Extraction
internal Vec4F32 rd_rgba_from_ctrl_entity(CTRL_Entity *entity);
internal Vec4F32 rd_color_from_ctrl_entity(CTRL_Entity *entity);
internal String8 rd_name_from_ctrl_entity(Arena *arena, CTRL_Entity *entity);
internal DR_FStrList rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_extras);
@@ -1164,7 +1164,7 @@ internal String8 rd_push_search_string(Arena *arena);
//~ rjf: Colors, Fonts, Config
//- rjf: colors
internal Vec4F32 rd_color_from_tags(String8Array tags);
internal Vec4F32 rd_color_from_tags(String8Array tags, String8 name);
internal Vec4F32 rd_rgba_from_theme_color(RD_ThemeColor color);
internal RD_ThemeColor rd_theme_color_from_txt_token_kind(TXT_TokenKind kind);
internal RD_ThemeColor rd_theme_color_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 string);
+22 -24
View File
@@ -2750,11 +2750,13 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
{
if(row_is_fresh)
{
row_flags |= UI_BoxFlag_DrawPop;
ui_set_next_tag(str8_lit("pop"));
row_flags |= UI_BoxFlag_DrawBackground;
}
if(global_row_idx & 1)
else if(global_row_idx & 1)
{
row_flags |= UI_BoxFlag_DrawAlt;
ui_set_next_tag(str8_lit("alt"));
row_flags |= UI_BoxFlag_DrawBackground;
}
if(!row_matches_last_row_topology)
{
@@ -2852,7 +2854,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
rd_state->hover_regs_slot == RD_RegSlot_Cfg)
{
RD_Cfg *cfg = cell_info.cfg;
Vec4F32 rgba = linear_from_srgba(rd_rgba_from_cfg(cfg));
Vec4F32 rgba = linear_from_srgba(rd_color_from_cfg(cfg));
if(rgba.w == 0)
{
rgba = ui_top_palette()->background_pop;
@@ -2866,7 +2868,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity)
{
CTRL_Entity *entity = cell_info.entity;
Vec4F32 rgba = linear_from_srgba(rd_rgba_from_ctrl_entity(entity));
Vec4F32 rgba = rd_color_from_ctrl_entity(entity);
if(rgba.w == 0)
{
rgba = ui_top_palette()->background_pop;;
@@ -2894,7 +2896,6 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
UI_FocusHot(cell_selected ? UI_FocusKind_On : UI_FocusKind_Off)
UI_FocusActive((cell_selected && ewv->text_editing) ? UI_FocusKind_On : UI_FocusKind_Off)
RD_Font(RD_FontSlot_Code)
UI_FlagsAdd(row_depth > 0 ? UI_BoxFlag_DrawTextWeak : 0)
{
// rjf: cell has errors? -> build error box
if(cell_info.flags & RD_WatchCellFlag_IsErrored) RD_Font(RD_FontSlot_Main)
@@ -2960,7 +2961,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
{
RD_Font(RD_FontSlot_Icons)
UI_Flags(UI_BoxFlag_DisableTextTrunc)
UI_Palette(ui_build_palette(ui_top_palette(), .text = rd_rgba_from_ctrl_entity(row_info->callstack_thread)))
UI_Palette(ui_build_palette(ui_top_palette(), .text = rd_color_from_ctrl_entity(row_info->callstack_thread)))
ui_label(rd_icon_kind_text_table[RD_IconKind_RightArrow]);
}
}
@@ -3181,16 +3182,16 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
E_IRTreeAndType irtree = e_irtree_and_type_from_expr(scratch.arena, parse.exprs.last);
E_OpList oplist = e_oplist_from_irtree(scratch.arena, irtree.root);
String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist);
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("Text:");
ui_labelf("Text:");
ui_label(string);
ui_spacer(ui_em(2.f, 1.f));
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("Tokens:");
ui_labelf("Tokens:");
for(U64 idx = 0; idx < tokens.count; idx += 1)
{
ui_labelf("%S: '%S'", e_token_kind_strings[tokens.v[idx].kind], str8_substr(string, tokens.v[idx].range));
}
ui_spacer(ui_em(2.f, 1.f));
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("Expression:");
ui_labelf("Expression:");
{
typedef struct Task Task;
struct Task
@@ -3243,7 +3244,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
}
}
ui_spacer(ui_em(2.f, 1.f));
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("IR Tree:");
ui_labelf("IR Tree:");
{
typedef struct Task Task;
struct Task
@@ -3280,7 +3281,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
}
}
ui_spacer(ui_em(2.f, 1.f));
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("Op List:");
ui_labelf("Op List:");
{
for(E_Op *op = oplist.first; op != 0; op = op->next)
{
@@ -3307,7 +3308,7 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
}
}
ui_spacer(ui_em(2.f, 1.f));
UI_Flags(UI_BoxFlag_DrawTextWeak) ui_labelf("Bytecode:");
ui_labelf("Bytecode:");
{
for(U64 idx = 0; idx < bytecode.size; idx += 1)
{
@@ -3526,7 +3527,7 @@ RD_VIEW_UI_FUNCTION_DEF(text)
UI_Row
UI_TextAlignment(UI_TextAlign_Center)
UI_PrefWidth(ui_text_dim(10, 1))
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
{
if(file_is_out_of_date)
{
@@ -3773,7 +3774,7 @@ RD_VIEW_UI_FUNCTION_DEF(disasm)
UI_Row
UI_TextAlignment(UI_TextAlign_Center)
UI_PrefWidth(ui_text_dim(10, 1))
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
RD_Font(RD_FontSlot_Code)
{
U64 cursor_vaddr = (1 <= rd_regs()->cursor.line && rd_regs()->cursor.line <= dasm_info.lines.count) ? (range.min+dasm_info.lines.v[rd_regs()->cursor.line-1].code_off) : 0;
@@ -4141,7 +4142,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
Annotation *annotation = push_array(scratch.arena, Annotation, 1);
annotation->name_string = thread->string.size ? thread->string : push_str8f(scratch.arena, "TID: %I64u", thread->id);
annotation->kind_string = str8_lit("Stack");
annotation->color = rd_rgba_from_ctrl_entity(thread);
annotation->color = rd_color_from_ctrl_entity(thread);
annotation->vaddr_range = stack_vaddr_range;
for(U64 vaddr = stack_vaddr_range_in_viz.min; vaddr < stack_vaddr_range_in_viz.max; vaddr += 1)
{
@@ -4220,7 +4221,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
UI_Parent(header_box)
RD_Font(RD_FontSlot_Code)
UI_FontSize(font_size)
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
{
UI_PrefWidth(ui_px(big_glyph_advance*20.f, 1.f)) ui_labelf("Address");
UI_PrefWidth(ui_px(cell_width_px, 1.f))
@@ -4229,10 +4230,6 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
Rng1U64 col_selection_rng = r1u64(cursor%num_columns, mark%num_columns);
for(U64 row_off = 0; row_off < num_columns*bytes_per_cell; row_off += bytes_per_cell)
{
if(!(col_selection_rng.min <= row_off && row_off <= col_selection_rng.max))
{
ui_set_next_flags(UI_BoxFlag_DrawTextWeak);
}
ui_labelf("%I64X", row_off);
}
}
@@ -4401,7 +4398,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
{
if(!(selection.max >= row_range_bytes.min && selection.min < row_range_bytes.max))
{
ui_set_next_flags(UI_BoxFlag_DrawTextWeak);
ui_set_next_tag(str8_lit("weak"));
}
ui_labelf("0x%016I64X", row_range_bytes.min);
}
@@ -4573,7 +4570,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
footer_box = ui_build_box_from_stringf(UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawDropShadow, "footer");
UI_Parent(footer_box) RD_Font(RD_FontSlot_Code) UI_FontSize(font_size)
{
UI_PrefWidth(ui_em(7.5f, 1.f)) UI_HeightFill UI_Column UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_PrefWidth(ui_em(7.5f, 1.f)) UI_HeightFill UI_Column UI_TagF("weak")
UI_PrefHeight(ui_px(row_height_px, 0.f))
{
ui_labelf("Address:");
@@ -5049,7 +5046,8 @@ RD_VIEW_UI_FUNCTION_DEF(color_rgba)
{
UI_Signal h_sig = ui_hue_pickerf(&hsva.x, hsva.y, hsva.z, "hue_picker");
}
UI_PrefWidth(ui_children_sum(1)) UI_Column UI_PrefWidth(ui_text_dim(10, 1)) UI_PrefHeight(ui_em(2.f, 0.f)) RD_Font(RD_FontSlot_Code) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_PrefWidth(ui_children_sum(1)) UI_Column UI_PrefWidth(ui_text_dim(10, 1)) UI_PrefHeight(ui_em(2.f, 0.f)) RD_Font(RD_FontSlot_Code)
UI_TagF("weak")
{
ui_labelf("Hex");
ui_labelf("R");
+27 -24
View File
@@ -292,7 +292,7 @@ rd_cmd_spec_button(String8 name)
RD_Font(RD_FontSlot_Icons)
UI_PrefWidth(ui_em(2.f, 1.f))
UI_TextAlignment(UI_TextAlign_Center)
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
{
ui_label(rd_icon_kind_text_table[canonical_icon]);
}
@@ -308,7 +308,7 @@ rd_cmd_spec_button(String8 name)
UI_PrefWidth(ui_children_sum(1))
UI_FontSize(ui_top_font_size()*0.95f) UI_HeightFill
UI_NamedRow(str8_lit("###bindings"))
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
UI_FastpathCodepoint(0)
{
rd_cmd_binding_buttons(name);
@@ -365,7 +365,8 @@ rd_icon_button(RD_IconKind kind, FuzzyMatchRangeList *matches, String8 string)
RD_Font(RD_FontSlot_Icons)
UI_PrefWidth(ui_em(2.f, 1.f))
UI_PrefHeight(ui_pct(1, 0))
UI_FlagsAdd(UI_BoxFlag_DisableTextTrunc|UI_BoxFlag_DrawTextWeak)
UI_FlagsAdd(UI_BoxFlag_DisableTextTrunc)
UI_TagF("weak")
ui_label(rd_icon_kind_text_table[kind]);
if(display_string.size != 0)
{
@@ -481,12 +482,14 @@ internal UI_BOX_CUSTOM_DRAW(rd_thread_box_draw_extensions)
if(u->is_frozen)
{
F32 lock_icon_off = ui_top_font_size()*0.2f;
Vec4F32 lock_icon_color = ui_top_palette()->background_bad;
String8 tags[] = {str8_lit("bad")};
String8Array tags_array = {tags, ArrayCount(tags)};
Vec4F32 color = rd_color_from_tags(tags_array, str8_lit("text"));
dr_text(rd_font_from_slot(RD_FontSlot_Icons),
box->font_size, 0, 0, FNT_RasterFlag_Smooth,
v2f32((box->rect.x0 + box->rect.x1)/2 + lock_icon_off/2,
box->rect.y0 + lock_icon_off/2),
lock_icon_color,
color,
rd_icon_kind_text_table[RD_IconKind_Locked]);
}
}
@@ -590,10 +593,10 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
B32 ctrlified = (os_get_modifiers() & OS_Modifier_Ctrl);
Vec4F32 code_line_bgs[] =
{
rd_rgba_from_theme_color(RD_ThemeColor_LineInfoBackground0),
rd_rgba_from_theme_color(RD_ThemeColor_LineInfoBackground1),
rd_rgba_from_theme_color(RD_ThemeColor_LineInfoBackground2),
rd_rgba_from_theme_color(RD_ThemeColor_LineInfoBackground3),
rd_color_from_tags(str8_array_zero(), str8_lit("line_info_0")),
rd_color_from_tags(str8_array_zero(), str8_lit("line_info_1")),
rd_color_from_tags(str8_array_zero(), str8_lit("line_info_2")),
rd_color_from_tags(str8_array_zero(), str8_lit("line_info_3")),
};
F32 line_num_padding_px = ui_top_font_size()*1.f;
F32 entity_alive_t_rate = (1 - pow_f32(2, (-30.f * rd_state->frame_dt)));
@@ -671,7 +674,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{
CTRL_EntityList line_ips = params->line_ips[line_idx];
ui_set_next_hover_cursor(OS_Cursor_HandPoint);
UI_Box *line_margin_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawActiveEffects, "line_margin_%I64x", line_num);
UI_Box *line_margin_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawActiveEffects, "line_margin_%I64x", line_num);
UI_Parent(line_margin_box)
{
//- rjf: build margin thread ip ui
@@ -691,7 +694,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr);
// rjf: thread info => color
Vec4F32 color = linear_from_srgba(rd_rgba_from_ctrl_entity(thread));
Vec4F32 color = rd_color_from_ctrl_entity(thread);
{
if(color.w == 0)
{
@@ -801,6 +804,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
//
UI_Box *catchall_margin_container_box = &ui_nil_box;
if(params->flags & RD_CodeSliceFlag_CatchallMargin) UI_Focus(UI_FocusKind_Off) UI_Parent(top_container_box) ProfScope("build catchall margins")
UI_TagF("implicit")
{
if(params->margin_float_off_px != 0)
{
@@ -844,7 +848,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr);
// rjf: thread info => color
Vec4F32 color = linear_from_srgba(rd_rgba_from_ctrl_entity(thread));
Vec4F32 color = rd_color_from_ctrl_entity(thread);
{
if(color.w == 0)
{
@@ -952,7 +956,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
for(RD_CfgNode *n = line_bps.first; n != 0; n = n->next)
{
RD_Cfg *bp = n->v;
Vec4F32 bp_rgba = rd_rgba_from_cfg(bp);
Vec4F32 bp_rgba = rd_color_from_cfg(bp);
if(bp_rgba.w == 0)
{
bp_rgba = rd_rgba_from_theme_color(RD_ThemeColor_Breakpoint);
@@ -1045,7 +1049,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
for(RD_CfgNode *n = line_pins.first; n != 0; n = n->next)
{
RD_Cfg *pin = n->v;
Vec4F32 color = rd_rgba_from_cfg(pin);
Vec4F32 color = rd_color_from_cfg(pin);
if(color.w == 0)
{
color = rd_rgba_from_theme_color(RD_ThemeColor_CodeDefault);
@@ -1115,6 +1119,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
//- rjf: build line numbers
//
if(params->flags & RD_CodeSliceFlag_LineNums) UI_Parent(top_container_box) ProfScope("build line numbers") UI_Focus(UI_FocusKind_Off)
UI_TagF("implicit")
{
TxtRng select_rng = txt_rng(*cursor, *mark);
Vec4F32 active_color = rd_rgba_from_theme_color(RD_ThemeColor_CodeLineNumbersSelected);
@@ -1173,7 +1178,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
//- rjf: build background for line numbers & margins
//
{
UI_Parent(top_container_box)
UI_Parent(top_container_box) UI_TagF("floating")
{
ui_set_next_pref_width(ui_px(params->priority_margin_width_px + params->catchall_margin_width_px + params->line_num_width_px, 1));
ui_set_next_pref_height(ui_px(params->line_height_px*(dim_1s64(params->line_num_range)+1), 1.f));
@@ -1293,7 +1298,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
UI_BoxFlag_DrawBorder, pin_box_key);
UI_Parent(pin_box) UI_PrefWidth(ui_text_dim(10, 1))
{
Vec4F32 pin_color = rd_rgba_from_cfg(pin);
Vec4F32 pin_color = rd_color_from_cfg(pin);
if(pin_color.w == 0)
{
pin_color = rd_rgba_from_theme_color(RD_ThemeColor_CodeDefault);
@@ -1485,7 +1490,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{
line_drag_drop = 1;
line_drag_cfg = cfg;
line_drag_drop_color = linear_from_srgba(rd_rgba_from_cfg(cfg));
line_drag_drop_color = linear_from_srgba(rd_color_from_cfg(cfg));
if(line_drag_drop_color.w == 0)
{
line_drag_drop_color = ui_top_palette()->background_pop;
@@ -1495,7 +1500,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{
line_drag_drop = 1;
line_drag_ctrl_entity = thread;
line_drag_drop_color = linear_from_srgba(rd_rgba_from_ctrl_entity(thread));
line_drag_drop_color = rd_color_from_ctrl_entity(thread);
if(line_drag_drop_color.w == 0)
{
line_drag_drop_color = ui_top_palette()->background_pop;
@@ -2215,8 +2220,7 @@ rd_error_label(String8 string)
ui_set_next_font(rd_font_from_slot(RD_FontSlot_Icons));
ui_set_next_text_raster_flags(FNT_RasterFlag_Smooth);
ui_set_next_text_alignment(UI_TextAlign_Center);
ui_set_next_flags(UI_BoxFlag_DrawTextWeak);
UI_PrefWidth(ui_em(2.25f, 1.f)) ui_label(rd_icon_kind_text_table[RD_IconKind_WarningBig]);
UI_TagF("weak") UI_PrefWidth(ui_em(2.25f, 1.f)) ui_label(rd_icon_kind_text_table[RD_IconKind_WarningBig]);
UI_PrefWidth(ui_text_dim(10, 0)) rd_label(string);
}
return sig;
@@ -2500,7 +2504,7 @@ rd_line_edit(RD_LineEditParams *params, String8 string)
//- rjf: build expander placeholder
else if(params->flags & RD_LineEditFlag_ExpanderPlaceholder) UI_Parent(box) UI_PrefWidth(ui_px(expander_size_px, 1.f)) UI_Focus(UI_FocusKind_Off)
{
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
UI_TagF("weak")
UI_Flags(UI_BoxFlag_DrawSideLeft)
RD_Font(RD_FontSlot_Icons)
UI_TextAlignment(UI_TextAlign_Center)
@@ -2696,9 +2700,8 @@ rd_line_edit(RD_LineEditParams *params, String8 string)
ui_box_equip_fuzzy_match_ranges(box, params->fuzzy_matches);
}
}
else
else UI_TagF("weak")
{
ui_set_next_flags(UI_BoxFlag_DrawTextWeak);
UI_Box *box = ui_label(display_string).box;
if(params->fuzzy_matches != 0)
{
@@ -2715,7 +2718,7 @@ rd_line_edit(RD_LineEditParams *params, String8 string)
}
else
{
ui_set_next_flags(UI_BoxFlag_DrawTextWeak);
ui_set_next_tag(str8_lit("weak"));
}
UI_Box *box = ui_label(display_string).box;
if(params->fuzzy_matches != 0)