mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
ctrl entity rich hovering
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
//- GENERATED CODE
|
//- GENERATED CODE
|
||||||
|
|
||||||
C_LINKAGE_BEGIN
|
C_LINKAGE_BEGIN
|
||||||
RD_VocabInfo rd_vocab_info_table[277] =
|
RD_VocabInfo rd_vocab_info_table[282] =
|
||||||
{
|
{
|
||||||
{str8_lit_comp("auto_view_rule"), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rule"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars},
|
{str8_lit_comp("auto_view_rule"), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rule"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars},
|
||||||
{str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline},
|
{str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline},
|
||||||
@@ -17,6 +17,11 @@ RD_VocabInfo rd_vocab_info_table[277] =
|
|||||||
{str8_lit_comp("target"), str8_lit_comp("targets"), str8_lit_comp("Target"), str8_lit_comp("Targets"), RD_IconKind_Target},
|
{str8_lit_comp("target"), str8_lit_comp("targets"), str8_lit_comp("Target"), str8_lit_comp("Targets"), RD_IconKind_Target},
|
||||||
{str8_lit_comp("executable"), str8_lit_comp("executables"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module},
|
{str8_lit_comp("executable"), str8_lit_comp("executables"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module},
|
||||||
{str8_lit_comp("arguments"), str8_lit_comp("arguments"), str8_lit_comp("Arguments"), str8_lit_comp("Arguments"), RD_IconKind_Null},
|
{str8_lit_comp("arguments"), str8_lit_comp("arguments"), str8_lit_comp("Arguments"), str8_lit_comp("Arguments"), RD_IconKind_Null},
|
||||||
|
{str8_lit_comp("exe"), str8_lit_comp("exes"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module},
|
||||||
|
{str8_lit_comp("dbg"), str8_lit_comp("dbgs"), str8_lit_comp("Debug Info Path"), str8_lit_comp("Debug Info Paths"), RD_IconKind_Module},
|
||||||
|
{str8_lit_comp("vaddr_range"), str8_lit_comp("vaddr_ranges"), str8_lit_comp("Virtual Address Range"), str8_lit_comp("Virtual Address Ranges"), RD_IconKind_Null},
|
||||||
|
{str8_lit_comp("min"), str8_lit_comp("mins"), str8_lit_comp("Minimum"), str8_lit_comp("Minimums"), RD_IconKind_Null},
|
||||||
|
{str8_lit_comp("max"), str8_lit_comp("maxs"), str8_lit_comp("Maximum"), str8_lit_comp("Maximums"), RD_IconKind_Null},
|
||||||
{str8_lit_comp("working_directory"), str8_lit_comp("working_directories"), str8_lit_comp("Working Directory"), str8_lit_comp("Working Directories"), RD_IconKind_FolderClosedFilled},
|
{str8_lit_comp("working_directory"), str8_lit_comp("working_directories"), str8_lit_comp("Working Directory"), str8_lit_comp("Working Directories"), RD_IconKind_FolderClosedFilled},
|
||||||
{str8_lit_comp("entry_point"), str8_lit_comp("entry_points"), str8_lit_comp("Entry Point"), str8_lit_comp("Entry Points"), RD_IconKind_Null},
|
{str8_lit_comp("entry_point"), str8_lit_comp("entry_points"), str8_lit_comp("Entry Point"), str8_lit_comp("Entry Points"), RD_IconKind_Null},
|
||||||
{str8_lit_comp("stdout_path"), str8_lit_comp("stdout_paths"), str8_lit_comp("Standard Output Path"), str8_lit_comp("Standard Output Paths"), RD_IconKind_Null},
|
{str8_lit_comp("stdout_path"), str8_lit_comp("stdout_paths"), str8_lit_comp("Standard Output Path"), str8_lit_comp("Standard Output Paths"), RD_IconKind_Null},
|
||||||
|
|||||||
@@ -554,7 +554,7 @@ RD_Query query;
|
|||||||
.os_event = rd_regs()->os_event,\
|
.os_event = rd_regs()->os_event,\
|
||||||
|
|
||||||
C_LINKAGE_BEGIN
|
C_LINKAGE_BEGIN
|
||||||
extern RD_VocabInfo rd_vocab_info_table[277];
|
extern RD_VocabInfo rd_vocab_info_table[282];
|
||||||
extern RD_NameSchemaInfo rd_name_schema_info_table[10];
|
extern RD_NameSchemaInfo rd_name_schema_info_table[10];
|
||||||
extern Rng1U64 rd_reg_slot_range_table[38];
|
extern Rng1U64 rd_reg_slot_range_table[38];
|
||||||
extern String8 rd_binding_version_remap_old_name_table[8];
|
extern String8 rd_binding_version_remap_old_name_table[8];
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ RD_VocabTable:
|
|||||||
{target _ "Target" _ Target }
|
{target _ "Target" _ Target }
|
||||||
{executable _ "Executable" _ Module }
|
{executable _ "Executable" _ Module }
|
||||||
{arguments arguments "Arguments" "Arguments" Null }
|
{arguments arguments "Arguments" "Arguments" Null }
|
||||||
|
{exe exes "Executable" _ Module }
|
||||||
|
{dbg dbgs "Debug Info Path" _ Module }
|
||||||
|
{vaddr_range _ "Virtual Address Range" _ Null }
|
||||||
|
{min _ "Minimum" _ Null }
|
||||||
|
{max _ "Maximum" _ Null }
|
||||||
{working_directory working_directories "Working Directory" "Working Directories" FolderClosedFilled }
|
{working_directory working_directories "Working Directory" "Working Directories" FolderClosedFilled }
|
||||||
{entry_point _ "Entry Point" _ Null }
|
{entry_point _ "Entry Point" _ Null }
|
||||||
{stdout_path _ "Standard Output Path" _ Null }
|
{stdout_path _ "Standard Output Path" _ Null }
|
||||||
|
|||||||
@@ -2767,10 +2767,31 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
|
|||||||
{
|
{
|
||||||
rgba = rd_rgba_from_theme_color(RD_ThemeColor_HighlightOverlay);
|
rgba = rd_rgba_from_theme_color(RD_ThemeColor_HighlightOverlay);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rgba.w *= 0.2f;
|
||||||
|
}
|
||||||
rgba.w *= ui_anim(ui_key_from_stringf(ui_key_zero(), "###cfg_hover_t_%p", cfg), 1.f, .rate = entity_hover_t_rate);
|
rgba.w *= ui_anim(ui_key_from_stringf(ui_key_zero(), "###cfg_hover_t_%p", cfg), 1.f, .rate = entity_hover_t_rate);
|
||||||
palette = ui_build_palette(ui_top_palette(), .overlay = rgba);
|
palette = ui_build_palette(ui_top_palette(), .overlay = rgba);
|
||||||
cell_flags |= UI_BoxFlag_DrawOverlay;
|
cell_flags |= UI_BoxFlag_DrawOverlay;
|
||||||
}
|
}
|
||||||
|
else if(ctrl_handle_match(cell_info.entity->handle, rd_get_hover_regs()->ctrl_entity) &&
|
||||||
|
rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity)
|
||||||
|
{
|
||||||
|
CTRL_Entity *entity = cell_info.entity;
|
||||||
|
Vec4F32 rgba = rd_rgba_from_ctrl_entity(entity);
|
||||||
|
if(rgba.w == 0)
|
||||||
|
{
|
||||||
|
rgba = rd_rgba_from_theme_color(RD_ThemeColor_HighlightOverlay);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rgba.w *= 0.2f;
|
||||||
|
}
|
||||||
|
rgba.w *= ui_anim(ui_key_from_stringf(ui_key_zero(), "###entity_hover_t_%p", entity), 1.f, .rate = entity_hover_t_rate);
|
||||||
|
palette = ui_build_palette(ui_top_palette(), .overlay = rgba);
|
||||||
|
cell_flags |= UI_BoxFlag_DrawOverlay;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
@@ -2910,6 +2931,12 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
|
|||||||
RD_RegsScope(.cfg = cell_info.cfg->id) rd_set_hover_regs(RD_RegSlot_Cfg);
|
RD_RegsScope(.cfg = cell_info.cfg->id) rd_set_hover_regs(RD_RegSlot_Cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rjf: hover -> rich hover entities
|
||||||
|
if(ui_hovering(sig) && cell_info.entity != &ctrl_entity_nil)
|
||||||
|
{
|
||||||
|
RD_RegsScope(.ctrl_entity = cell_info.entity->handle) rd_set_hover_regs(RD_RegSlot_CtrlEntity);
|
||||||
|
}
|
||||||
|
|
||||||
// rjf: dragging -> drag/drop
|
// rjf: dragging -> drag/drop
|
||||||
if(ui_dragging(sig) && !contains_2f32(sig.box->rect, ui_mouse()))
|
if(ui_dragging(sig) && !contains_2f32(sig.box->rect, ui_mouse()))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -751,8 +751,8 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
|||||||
// rjf: custom draw
|
// rjf: custom draw
|
||||||
{
|
{
|
||||||
RD_Regs *hover_regs = rd_get_hover_regs();
|
RD_Regs *hover_regs = rd_get_hover_regs();
|
||||||
B32 is_hovering = (ctrl_handle_match(hover_regs->thread, thread->handle) &&
|
B32 is_hovering = (ctrl_handle_match(hover_regs->ctrl_entity, thread->handle) &&
|
||||||
rd_state->hover_regs_slot == RD_RegSlot_Thread);
|
rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity);
|
||||||
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
|
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
|
||||||
u->thread_color = color;
|
u->thread_color = color;
|
||||||
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###entity_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
|
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###entity_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
|
||||||
@@ -899,8 +899,8 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
|||||||
// rjf: custom draw
|
// rjf: custom draw
|
||||||
{
|
{
|
||||||
RD_Regs *hover_regs = rd_get_hover_regs();
|
RD_Regs *hover_regs = rd_get_hover_regs();
|
||||||
B32 is_hovering = (ctrl_handle_match(hover_regs->thread, thread->handle) &&
|
B32 is_hovering = (ctrl_handle_match(hover_regs->ctrl_entity, thread->handle) &&
|
||||||
rd_state->hover_regs_slot == RD_RegSlot_Thread);
|
rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity);
|
||||||
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
|
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
|
||||||
u->thread_color = color;
|
u->thread_color = color;
|
||||||
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###entity_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
|
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###entity_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
|
||||||
@@ -938,7 +938,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
|||||||
// rjf: interactions
|
// rjf: interactions
|
||||||
if(ui_hovering(thread_sig) && !rd_drag_is_active())
|
if(ui_hovering(thread_sig) && !rd_drag_is_active())
|
||||||
{
|
{
|
||||||
RD_RegsScope(.thread = thread->handle) rd_set_hover_regs(RD_RegSlot_Thread);
|
RD_RegsScope(.ctrl_entity = thread->handle) rd_set_hover_regs(RD_RegSlot_CtrlEntity);
|
||||||
}
|
}
|
||||||
if(ui_right_clicked(thread_sig))
|
if(ui_right_clicked(thread_sig))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user