mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-31 19:30:03 +00:00
checkpoint
This commit is contained in:
@@ -78,10 +78,11 @@ DF_MsgKindTable:
|
||||
//- rjf: meta
|
||||
{Exit "" exit 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{RunCommand "" run_command 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{SetCurrentPath "" run_command 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{ToggleDevMenu "" toggle_dev_menu 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{RegisterAsJITDebugger "Register As JIT Debugger" register_as_jit_debugger 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{LogMarker "Log Marker" log_marker 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
{LogMarker "Log Marker" log_marker 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
//- rjf: config reading/writing
|
||||
{LoadUser "" load_user 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{LoadProject "" load_project 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
@@ -124,7 +125,10 @@ DF_MsgKindTable:
|
||||
{ToggleBreakpointAtCursor "Toggle Breakpoint At Cursor" toggle_breakpoint_at_cursor 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{ToggleWatchPinAtCursor "Toggle Watch Pin At Cursor" toggle_watch_pin_at_cursor 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{ToggleWatchExpressionAtCursor "Toggle Watch Expression At Cursor" toggle_watch_expression_at_cursor 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
|
||||
//- rjf: at-mouse operations
|
||||
{ToggleWatchExpressionAtMouse "Toggle Watch Expression At Mouse" toggle_watch_expression_at_mouse 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
//- rjf: windows
|
||||
{OpenWindow "" open_window 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{CloseWindow "" close_window 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
@@ -193,7 +197,8 @@ DF_MsgKindTable:
|
||||
{TabBarBottom "" tab_bar_bottom 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
//- rjf: tab filters
|
||||
{Filter "" filter 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{Filter "" filter 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{SetFilter "" set_filter 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{ClearFilter "" clear_filter 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
{ApplyFilter "" apply_filter 0 0 Null Nil 0 0 0 0 0 0 Null ""}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@
|
||||
|
||||
typedef enum DF_CfgSlot
|
||||
{
|
||||
DF_CfgSlot_Null,
|
||||
DF_CfgSlot_User,
|
||||
DF_CfgSlot_Project,
|
||||
DF_CfgSlot_CommandLine,
|
||||
@@ -16,13 +17,23 @@ typedef enum DF_CfgSlot
|
||||
}
|
||||
DF_CfgSlot;
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: String Allocation Types
|
||||
|
||||
typedef struct DF_StringChunkNode DF_StringChunkNode;
|
||||
struct DF_StringChunkNode
|
||||
{
|
||||
DF_StringChunkNode *next;
|
||||
U64 size;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Handle Types
|
||||
|
||||
typedef struct DF_Handle DF_Handle;
|
||||
struct DF_Handle
|
||||
{
|
||||
U64 u64[4];
|
||||
U64 u64[2];
|
||||
};
|
||||
|
||||
typedef struct DF_HandleNode DF_HandleNode;
|
||||
@@ -340,14 +351,6 @@ typedef enum DF_DragDropState
|
||||
}
|
||||
DF_DragDropState;
|
||||
|
||||
typedef struct DF_DragDropPayload DF_DragDropPayload;
|
||||
struct DF_DragDropPayload
|
||||
{
|
||||
DF_Handle cfg_tree;
|
||||
D_Handle entity;
|
||||
TxtPt text_point;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Rich Hover Types
|
||||
|
||||
@@ -451,6 +454,7 @@ struct DF_MsgKindInfo
|
||||
String8 search_tags;
|
||||
DF_MsgKindFlags flags;
|
||||
DF_MsgQuery query;
|
||||
U32 icon_kind;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
@@ -612,6 +616,10 @@ struct DF_Window
|
||||
B32 menu_bar_key_held;
|
||||
B32 menu_bar_focus_press_started;
|
||||
|
||||
// rjf: context menu state
|
||||
Arena *ctx_menu_arena;
|
||||
DF_Regs *ctx_menu_regs;
|
||||
|
||||
// rjf: code context menu state
|
||||
Arena *code_ctx_menu_arena;
|
||||
String8 code_ctx_menu_file_path;
|
||||
@@ -685,11 +693,6 @@ struct DF_Window
|
||||
F32 hover_eval_open_t;
|
||||
F32 hover_eval_num_visible_rows_t;
|
||||
|
||||
// rjf: error state
|
||||
U8 error_buffer[512];
|
||||
U64 error_string_size;
|
||||
F32 error_t;
|
||||
|
||||
// rjf: panel state
|
||||
DF_Panel *root_panel;
|
||||
DF_Panel *free_panel;
|
||||
@@ -733,6 +736,9 @@ struct DF_State
|
||||
Arena *arena;
|
||||
B32 quit;
|
||||
U64 frame_index;
|
||||
F32 dt;
|
||||
Log *log;
|
||||
String8 log_path;
|
||||
|
||||
// rjf: frame arenas
|
||||
Arena *frame_arenas[2];
|
||||
@@ -746,12 +752,11 @@ struct DF_State
|
||||
// rjf: frame request state
|
||||
U64 num_frames_requested;
|
||||
|
||||
// rjf: config trees
|
||||
Arena *cfg_root_arena;
|
||||
MD_Node *cfg_root;
|
||||
Arena *cfg_slot_arenas[DF_CfgSlot_COUNT];
|
||||
U64 cfg_slot_gens[DF_CfgSlot_COUNT];
|
||||
// rjf: config tree state
|
||||
Arena *cfg_arena;
|
||||
MD_Node *cfg_slot_roots[DF_CfgSlot_COUNT];
|
||||
MD_Node *cfg_free;
|
||||
DF_StringChunkNode *cfg_free_string_chunks[8];
|
||||
|
||||
// rjf: interaction registers
|
||||
DF_RegsNode base_regs;
|
||||
@@ -777,11 +782,13 @@ struct DF_State
|
||||
U64 key_map_total_count;
|
||||
|
||||
// rjf: bind change
|
||||
Arena *bind_change_arena;
|
||||
B32 bind_change_active;
|
||||
D_CmdSpec *bind_change_cmd_spec;
|
||||
DF_Binding bind_change_binding;
|
||||
String8 bind_change_msg_name;
|
||||
DF_Handle bind_change_bind_handle;
|
||||
|
||||
// rjf: top-level context menu keys
|
||||
UI_Key ctx_menu_key;
|
||||
UI_Key code_ctx_menu_key;
|
||||
UI_Key entity_ctx_menu_key;
|
||||
UI_Key tab_ctx_menu_key;
|
||||
@@ -795,6 +802,12 @@ struct DF_State
|
||||
String8 confirm_title;
|
||||
String8 confirm_desc;
|
||||
|
||||
// rjf: error popup state
|
||||
Arena *error_arena;
|
||||
String8 error_string;
|
||||
F32 error_num_seconds_shown;
|
||||
F32 error_num_seconds_to_show;
|
||||
|
||||
// rjf: string search state
|
||||
Arena *string_search_arena;
|
||||
String8 string_search_string;
|
||||
@@ -816,7 +829,7 @@ struct DF_State
|
||||
DF_Window *free_window;
|
||||
U64 window_count;
|
||||
B32 last_window_queued_save;
|
||||
D_Handle last_focused_window;
|
||||
DF_Handle last_focused_window;
|
||||
|
||||
// rjf: view state
|
||||
DF_View *first_view;
|
||||
@@ -895,7 +908,6 @@ read_only global DF_Panel df_nil_panel =
|
||||
};
|
||||
|
||||
global DF_State *df_state = 0;
|
||||
global DF_DragDropPayload df_drag_drop_payload = {0};
|
||||
global D_Handle df_last_drag_drop_panel = {0};
|
||||
global D_Handle df_last_drag_drop_prev_tab = {0};
|
||||
|
||||
@@ -994,6 +1006,12 @@ internal void df_queue_drag_drop(void);
|
||||
internal void df_set_rich_hover_info(DF_RichHoverInfo *info);
|
||||
internal DF_RichHoverInfo df_get_rich_hover_info(void);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Context Menu Opening
|
||||
|
||||
internal void df_ctx_menu_open_(UI_Box *box, DF_Regs *regs);
|
||||
#define df_ctx_menu_open(box, ...) df_ctx_menu_open_((box), &(DF_Regs){df_regs_lit_init_top __VA_ARGS__})
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Spec State Functions
|
||||
|
||||
@@ -1099,26 +1117,48 @@ internal Arena *df_frame_arena(void);
|
||||
internal DF_Handle df_handle_from_cfg_tree(MD_Node *cfg);
|
||||
internal MD_Node *df_cfg_tree_from_handle(DF_Handle handle);
|
||||
|
||||
//- rjf: string <-> cfg tree
|
||||
//- rjf: cfg tree -> slot
|
||||
internal DF_CfgSlot df_cfg_slot_from_tree(MD_Node *node);
|
||||
|
||||
//- rjf: cfg slot allocations
|
||||
internal MD_Node *df_cfg_node_alloc(void);
|
||||
internal void df_cfg_node_release(MD_Node *node);
|
||||
internal U64 df_cfg_string_bucket_idx_from_string_size(U64 size);
|
||||
internal String8 df_cfg_string_alloc(String8 string);
|
||||
internal void df_cfg_string_release(String8 string);
|
||||
|
||||
//- rjf: tree -> cfg slot copying
|
||||
internal MD_Node *df_cfg_tree_copy(MD_Node *src);
|
||||
|
||||
//- rjf: string -> cfg tree helpers
|
||||
internal MD_Node *df_file_cfg_tree_from_string(String8 string);
|
||||
internal MD_Node *df_single_cfg_tree_from_string(String8 string);
|
||||
internal MD_Node *df_single_cfg_tree_from_stringf(char *fmt, ...);
|
||||
|
||||
//- rjf: cfg node string replacing helper
|
||||
internal void df_cfg_tree_set_string(MD_Node *node, String8 new_string);
|
||||
internal void df_cfg_tree_set_stringf(MD_Node *node, char *fmt, ...);
|
||||
|
||||
//- rjf: cfg subtree replacing helper
|
||||
internal MD_Node *df_cfg_tree_set_key(MD_Node *root, String8 key, String8 value);
|
||||
internal MD_Node *df_cfg_tree_set_keyf(MD_Node *root, String8 key, char *fmt, ...);
|
||||
|
||||
//- rjf: key string <-> cfg tree
|
||||
internal MD_Node *df_cfg_tree_from_key(String8 string);
|
||||
internal String8 df_key_from_cfg_tree(Arena *arena, MD_Node *node);
|
||||
|
||||
//- rjf: config tree mutations
|
||||
internal DF_CfgSlot df_cfg_slot_from_tree(MD_Node *node);
|
||||
internal MD_Node *df_cfg_tree_store(MD_Node *parent, MD_Node *prev_child, String8 string);
|
||||
internal MD_Node *df_cfg_tree_storef(MD_Node *parent, MD_Node *prev_child, char *fmt, ...);
|
||||
internal void df_cfg_tree_set_string(MD_Node *node, String8 string);
|
||||
internal void df_cfg_tree_set_stringf(MD_Node *node, char *fmt, ...);
|
||||
internal void df_cfg_tree_insert_child(MD_Node *parent, MD_Node *prev_child, MD_Node *node);
|
||||
internal void df_cfg_tree_release(MD_Node *node);
|
||||
#define df_cfg_tree_set_key(parent, key, val) df_cfg_tree_store((parent), md_child_from_string((parent), (key), 0), (val))
|
||||
#define df_cfg_tree_set_keyf(parent, key, fmt, ...) df_cfg_tree_storef((parent), md_child_from_string((parent), (key), 0), (fmt), __VA_ARGS__)
|
||||
//- rjf: cfg tree general introspection helpers
|
||||
internal MD_Node *df_cfg_tree_last_from_key(MD_Node *root, String8 key);
|
||||
internal Vec4F32 df_rgba_from_cfg_tree(MD_Node *cfg);
|
||||
|
||||
//- rjf: config tree lookups
|
||||
//- rjf: window/panel/tab tree introspection helpers
|
||||
internal Axis2 df_split_axis_from_panel_cfg(MD_Node *panel);
|
||||
internal Rng2F32 df_target_rect_from_panel_child_cfg(Rng2F32 parent_rect, Axis2 parent_split_axis, MD_Node *panel);
|
||||
internal Rng2F32 df_target_rect_from_panel_cfg(Rng2F32 root_rect, MD_Node *panel);
|
||||
internal B32 df_tab_cfg_is_project_filtered(MD_Node *cfg);
|
||||
#define df_window_from_panel_cfg(node) md_ancestor_from_string((node), str8_lit("window"), 0)
|
||||
#define df_panel_tree_from_panel_cfg(node) (str8_match((node)->string, str8_lit("panels"), 0) ? (node) : md_ancestor_from_string((node), str8_lit("panels"), 0))
|
||||
#define df_panel_tree_from_window_cfg(node) md_child_from_string((node), str8_lit("panels"), 0)
|
||||
|
||||
//- rjf: keybindings
|
||||
internal void df_clear_bindings(void);
|
||||
@@ -1165,9 +1205,10 @@ internal void df_request_frame(void);
|
||||
|
||||
internal DF_Regs *df_regs(void);
|
||||
internal DF_Regs *df_base_regs(void);
|
||||
internal DF_Regs *df_push_regs(void);
|
||||
internal DF_Regs *df_push_regs_(DF_Regs *regs);
|
||||
#define df_push_regs(...) df_push_regs_(&(DF_Regs){df_regs_lit_init_top __VA_ARGS__ })
|
||||
internal DF_Regs *df_pop_regs(void);
|
||||
#define DF_RegsScope DeferLoop(df_push_regs(), df_pop_regs())
|
||||
#define DF_RegsScope(...) DeferLoop(df_push_regs(__VA_ARGS__), df_pop_regs())
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Message Functions
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -151,6 +151,30 @@ struct DF_WatchViewState
|
||||
B32 text_editing;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Building API
|
||||
|
||||
//- rjf: getting view parameters
|
||||
internal U128 get_view_id(void); // TODO(rjf): @msgs {(U64)view, d_hash_from_string(str8_struct(&view))}
|
||||
internal String8 get_view_expression(void);
|
||||
internal String8 get_view_filter(void);
|
||||
internal UI_ScrollPt2 get_view_scroll_position(void);
|
||||
|
||||
//- rjf: overwriting view parameters
|
||||
internal void set_view_expression(String8 string);
|
||||
internal void set_view_filter(String8 string);
|
||||
internal void set_view_scroll_position(UI_ScrollPt2 pos);
|
||||
|
||||
//- rjf: getting view resources (top-level view lifetime arena, extra arenas, user state slot)
|
||||
internal Arena *get_view_arena(void);
|
||||
internal void *get_or_push_view_state(U64 needed_size);
|
||||
#define get_view_state(T) (T *)get_or_push_view_state(sizeof(T))
|
||||
internal Arena *push_view_extension_arena(void);
|
||||
|
||||
//- rjf: view completion
|
||||
internal void complete_view_(String8 string);
|
||||
#define complete_view(...)
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Code View Functions
|
||||
|
||||
|
||||
@@ -91,9 +91,52 @@ df_loading_overlay(Rng2F32 rect, F32 loading_t, U64 progress_v, U64 progress_v_t
|
||||
////////////////////////////////
|
||||
//~ rjf: UI Widgets: Fancy Buttons
|
||||
|
||||
internal void
|
||||
df_keybinding_buttons(String8 msg_name)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
|
||||
// rjf: gather all keybinding maps
|
||||
typedef struct MapTask MapTask;
|
||||
struct MapTask
|
||||
{
|
||||
MapTask *next;
|
||||
MD_Node *root;
|
||||
};
|
||||
MapTask *first_task = 0;
|
||||
MapTask *last_task = 0;
|
||||
for(EachEnumVal(DF_CfgSlot, slot))
|
||||
{
|
||||
for(MD_EachNode(tln, df_state->cfg_slot_roots[slot]->first))
|
||||
{
|
||||
if(!str8_match(tln->string, str8_lit("keybindings"), 0)) { continue; }
|
||||
MapTask *t = push_array(scratch.arena, MapTask, 1);
|
||||
SLLQueuePush(first_task, last_task, t);
|
||||
t->root = tln;
|
||||
}
|
||||
}
|
||||
|
||||
// rjf: build button for each binding
|
||||
for(MapTask *t = first_task; t != 0; t = t->next)
|
||||
{
|
||||
for(MD_Node *map = md_node_from_chain_string(t->root->first, &md_nil_node, msg_name, 0);
|
||||
!md_node_is_nil(map);
|
||||
map = md_node_from_chain_string(map->next, &md_nil_node, msg_name, 0))
|
||||
{
|
||||
// rjf: determine if this binding is being rebound
|
||||
B32 rebinding_active_for_this_binding = (df_state->bind_change_active &&
|
||||
df_handle_match(df_state->bind_change_bind_handle, df_handle_from_cfg_tree(map)) &&
|
||||
str8_match(df_state->bind_change_msg_name, msg_name, 0));
|
||||
// TODO(rjf): @msgs
|
||||
}
|
||||
}
|
||||
scratch_end(scratch);
|
||||
}
|
||||
|
||||
internal void
|
||||
df_cmd_binding_buttons(D_CmdSpec *spec)
|
||||
{
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
DF_BindingList bindings = df_bindings_from_spec(scratch.arena, spec);
|
||||
|
||||
@@ -177,7 +220,7 @@ df_cmd_binding_buttons(D_CmdSpec *spec)
|
||||
{
|
||||
if((binding.key == OS_Key_Esc || binding.key == OS_Key_Delete) && binding.flags == 0)
|
||||
{
|
||||
d_error(str8_lit("Cannot rebind; this command uses a reserved keybinding."));
|
||||
log_user_error(str8_lit("Cannot rebind; this command uses a reserved keybinding."));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -270,6 +313,7 @@ df_cmd_binding_buttons(D_CmdSpec *spec)
|
||||
}
|
||||
|
||||
scratch_end(scratch);
|
||||
#endif
|
||||
}
|
||||
|
||||
internal UI_Signal
|
||||
@@ -281,6 +325,62 @@ df_menu_bar_button(String8 string)
|
||||
return sig;
|
||||
}
|
||||
|
||||
internal UI_Signal
|
||||
df_msg_button(String8 msg_name)
|
||||
{
|
||||
ui_set_next_hover_cursor(OS_Cursor_HandPoint);
|
||||
ui_set_next_child_layout_axis(Axis2_X);
|
||||
UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_DrawBorder|
|
||||
UI_BoxFlag_DrawBackground|
|
||||
UI_BoxFlag_DrawHotEffects|
|
||||
UI_BoxFlag_DrawActiveEffects|
|
||||
UI_BoxFlag_Clickable,
|
||||
"###msg_%S", msg_name);
|
||||
UI_Parent(box) UI_HeightFill UI_Padding(ui_em(1.f, 1.f))
|
||||
{
|
||||
DF_MsgKind kind = df_msg_kind_from_string(msg_name);
|
||||
DF_MsgKindInfo *info = &df_msg_kind_info_table[kind];
|
||||
DF_IconKind icon_kind = info->icon_kind;
|
||||
if(icon_kind != DF_IconKind_Null)
|
||||
{
|
||||
DF_Font(DF_FontSlot_Icons)
|
||||
UI_PrefWidth(ui_em(2.f, 1.f))
|
||||
UI_TextAlignment(UI_TextAlign_Center)
|
||||
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
|
||||
{
|
||||
ui_label(df_g_icon_kind_text_table[icon_kind]);
|
||||
}
|
||||
}
|
||||
UI_PrefWidth(ui_text_dim(10, 1.f))
|
||||
{
|
||||
UI_Flags(UI_BoxFlag_DrawTextFastpathCodepoint)
|
||||
UI_FastpathCodepoint(box->fastpath_codepoint)
|
||||
{
|
||||
if(info->display_name.size != 0)
|
||||
{
|
||||
ui_label(info->display_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
DF_Font(DF_FontSlot_Code) ui_label(msg_name);
|
||||
}
|
||||
}
|
||||
ui_spacer(ui_pct(1, 0));
|
||||
ui_set_next_flags(UI_BoxFlag_Clickable);
|
||||
ui_set_next_group_key(ui_key_zero());
|
||||
UI_PrefWidth(ui_children_sum(1))
|
||||
UI_NamedRow(str8_lit("###bindings"))
|
||||
UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
|
||||
UI_FastpathCodepoint(0)
|
||||
{
|
||||
df_keybinding_buttons(msg_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
UI_Signal sig = ui_signal_from_box(box);
|
||||
return sig;
|
||||
}
|
||||
|
||||
internal UI_Signal
|
||||
df_cmd_spec_button(D_CmdSpec *spec)
|
||||
{
|
||||
@@ -330,7 +430,7 @@ df_cmd_spec_button(D_CmdSpec *spec)
|
||||
internal void
|
||||
df_cmd_list_menu_buttons(U64 count, D_CmdKind *cmds, U32 *fastpath_codepoints)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
for(U64 idx = 0; idx < count; idx += 1)
|
||||
{
|
||||
D_CmdSpec *spec = d_cmd_spec_from_kind(cmds[idx]);
|
||||
@@ -344,7 +444,25 @@ df_cmd_list_menu_buttons(U64 count, D_CmdKind *cmds, U32 *fastpath_codepoints)
|
||||
window->menu_bar_focused = 0;
|
||||
}
|
||||
}
|
||||
scratch_end(scratch);
|
||||
#endif
|
||||
}
|
||||
|
||||
internal void
|
||||
df_msg_list_menu_buttons(U64 count, String8 *msg_names, U32 *fastpath_codepoints)
|
||||
{
|
||||
for(U64 idx = 0; idx < count; idx += 1)
|
||||
{
|
||||
ui_set_next_fastpath_codepoint(fastpath_codepoints[idx]);
|
||||
UI_Signal sig = df_msg_button(msg_names[idx]);
|
||||
if(ui_clicked(sig))
|
||||
{
|
||||
df_msg(DF_MsgKind_RunCommand, .string = msg_names[idx]);
|
||||
ui_ctx_menu_close();
|
||||
MD_Node *window_cfg = df_cfg_tree_from_handle(df_regs()->window);
|
||||
DF_Window *window = df_window_from_cfg_tree(window_cfg);
|
||||
window->menu_bar_focused = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal UI_Signal
|
||||
@@ -580,6 +698,12 @@ df_entity_tooltips(D_Entity *entity)
|
||||
#endif
|
||||
}
|
||||
|
||||
internal void
|
||||
df_cfg_tree_tooltips(MD_Node *cfg_tree)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
internal void
|
||||
df_ctrl_entity_tooltips(CTRL_Entity *entity)
|
||||
{
|
||||
@@ -896,6 +1020,7 @@ df_entity_desc_button(D_Entity *entity, FuzzyMatchRangeList *name_matches, Strin
|
||||
internal void
|
||||
df_src_loc_button(String8 file_path, TxtPt point)
|
||||
{
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 filename = str8_skip_last_slash(file_path);
|
||||
|
||||
@@ -933,6 +1058,7 @@ df_src_loc_button(String8 file_path, TxtPt point)
|
||||
ui_labelf("%S:%I64d:%I64d", file_path, point.line, point.column);
|
||||
}
|
||||
scratch_end(scratch);
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
@@ -1327,8 +1453,8 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
line_num += 1, line_idx += 1)
|
||||
{
|
||||
CTRL_EntityList line_ips = params->line_ips[line_idx];
|
||||
D_EntityList line_bps = params->line_bps[line_idx];
|
||||
D_EntityList line_pins = params->line_pins[line_idx];
|
||||
MD_NodePtrList line_bps = params->line_bps[line_idx];
|
||||
MD_NodePtrList line_pins = params->line_pins[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 & DF_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawActiveEffects, "line_margin_%I64x", line_num);
|
||||
UI_Parent(line_margin_box)
|
||||
@@ -1468,15 +1594,16 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
}
|
||||
|
||||
//- rjf: build margin breakpoint ui
|
||||
for(D_EntityNode *n = line_bps.first; n != 0; n = n->next)
|
||||
for(MD_NodePtrNode *n = line_bps.first; n != 0; n = n->next)
|
||||
{
|
||||
D_Entity *bp = n->entity;
|
||||
Vec4F32 bp_color = df_rgba_from_theme_color(DF_ThemeColor_Breakpoint);
|
||||
if(bp->flags & D_EntityFlag_HasColor)
|
||||
MD_Node *bp = n->v;
|
||||
B32 bp_is_disabled = !md_node_is_nil(md_tag_from_string(bp, str8_lit("disabled"), 0));
|
||||
Vec4F32 bp_color = df_rgba_from_cfg_tree(bp);
|
||||
if(bp_color.w == 0)
|
||||
{
|
||||
bp_color = d_rgba_from_entity(bp);
|
||||
bp_color = df_rgba_from_theme_color(DF_ThemeColor_Breakpoint);
|
||||
}
|
||||
if(bp->disabled)
|
||||
if(bp_is_disabled)
|
||||
{
|
||||
bp_color = v4f32(bp_color.x * 0.6f, bp_color.y * 0.6f, bp_color.z * 0.6f, bp_color.w * 0.6f);
|
||||
}
|
||||
@@ -1485,7 +1612,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
DF_BreakpointBoxDrawExtData *bp_draw = push_array(ui_build_arena(), DF_BreakpointBoxDrawExtData, 1);
|
||||
{
|
||||
bp_draw->color = bp_color;
|
||||
bp_draw->alive_t = bp->alive_t;
|
||||
bp_draw->alive_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%p_alive_t", bp), 1.f);
|
||||
bp_draw->do_lines = df_setting_val_from_code(DF_SettingCode_BreakpointLines).s32;
|
||||
bp_draw->do_glow = df_setting_val_from_code(DF_SettingCode_BreakpointGlow).s32;
|
||||
if(d_regs()->file_path.size != 0)
|
||||
@@ -1525,41 +1652,36 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
// rjf: bp hovering
|
||||
if(ui_hovering(bp_sig) && !df_drag_is_active())
|
||||
{
|
||||
df_entity_tooltips(bp);
|
||||
df_cfg_tree_tooltips(bp);
|
||||
}
|
||||
|
||||
// rjf: click => remove breakpoint
|
||||
if(ui_clicked(bp_sig))
|
||||
{
|
||||
d_cmd(D_CmdKind_RemoveBreakpoint, .entity = d_handle_from_entity(bp));
|
||||
df_msg(DF_MsgKind_RemoveBreakpoint, .cfg_tree = df_handle_from_cfg_tree(bp));
|
||||
}
|
||||
|
||||
// rjf: drag start
|
||||
if(ui_dragging(bp_sig) && !contains_2f32(bp_box->rect, ui_mouse()))
|
||||
{
|
||||
DF_DragDropPayload payload = {0};
|
||||
payload.entity = d_handle_from_entity(bp);
|
||||
df_drag_begin(&payload);
|
||||
df_drag_begin(.cfg_tree = df_handle_from_cfg_tree(bp));
|
||||
}
|
||||
|
||||
// rjf: bp right-click menu
|
||||
if(ui_right_clicked(bp_sig))
|
||||
{
|
||||
D_Handle handle = d_handle_from_entity(bp);
|
||||
ui_ctx_menu_open(df_state->entity_ctx_menu_key, bp_box->key, v2f32(0, bp_box->rect.y1-bp_box->rect.y0));
|
||||
DF_Window *window = df_window_from_handle(d_regs()->window);
|
||||
window->entity_ctx_menu_entity = handle;
|
||||
df_ctx_menu_open(bp_box, .cfg_tree = df_handle_from_cfg_tree(bp));
|
||||
}
|
||||
}
|
||||
|
||||
//- rjf: build margin watch pin ui
|
||||
for(D_EntityNode *n = line_pins.first; n != 0; n = n->next)
|
||||
for(MD_NodePtrNode *n = line_pins.first; n != 0; n = n->next)
|
||||
{
|
||||
D_Entity *pin = n->entity;
|
||||
Vec4F32 color = df_rgba_from_theme_color(DF_ThemeColor_Text);
|
||||
if(pin->flags & D_EntityFlag_HasColor)
|
||||
MD_Node *pin = n->v;
|
||||
Vec4F32 color = df_rgba_from_cfg_tree(pin);
|
||||
if(color.w == 0)
|
||||
{
|
||||
color = d_rgba_from_entity(pin);
|
||||
color = df_rgba_from_theme_color(DF_ThemeColor_Text);
|
||||
}
|
||||
|
||||
// rjf: build box for watch
|
||||
@@ -1583,30 +1705,25 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
// rjf: watch hovering
|
||||
if(ui_hovering(pin_sig) && !df_drag_is_active())
|
||||
{
|
||||
df_entity_tooltips(pin);
|
||||
df_cfg_tree_tooltips(pin);
|
||||
}
|
||||
|
||||
// rjf: click => remove pin
|
||||
if(ui_clicked(pin_sig))
|
||||
{
|
||||
d_cmd(D_CmdKind_RemoveEntity, .entity = d_handle_from_entity(pin));
|
||||
df_msg(DF_MsgKind_RemoveEntity, .cfg_tree = df_handle_from_cfg_tree(pin));
|
||||
}
|
||||
|
||||
// rjf: drag start
|
||||
if(ui_dragging(pin_sig) && !contains_2f32(pin_box->rect, ui_mouse()))
|
||||
{
|
||||
DF_DragDropPayload payload = {0};
|
||||
payload.entity = d_handle_from_entity(pin);
|
||||
df_drag_begin(&payload);
|
||||
df_drag_begin(.cfg_tree = df_handle_from_cfg_tree(pin));
|
||||
}
|
||||
|
||||
// rjf: watch right-click menu
|
||||
if(ui_right_clicked(pin_sig))
|
||||
{
|
||||
D_Handle handle = d_handle_from_entity(pin);
|
||||
ui_ctx_menu_open(df_state->entity_ctx_menu_key, pin_box->key, v2f32(0, pin_box->rect.y1-pin_box->rect.y0));
|
||||
DF_Window *window = df_window_from_handle(d_regs()->window);
|
||||
window->entity_ctx_menu_entity = handle;
|
||||
df_ctx_menu_open(pin_box, .cfg_tree = df_handle_from_cfg_tree(pin));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1615,10 +1732,10 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
UI_Signal line_margin_sig = ui_signal_from_box(line_margin_box);
|
||||
if(ui_clicked(line_margin_sig))
|
||||
{
|
||||
d_cmd(D_CmdKind_AddBreakpoint,
|
||||
.file_path = d_regs()->file_path,
|
||||
.text_point = txt_pt(line_num, 1),
|
||||
.vaddr = params->line_vaddrs[line_idx]);
|
||||
df_msg(DF_MsgKind_AddBreakpoint,
|
||||
.file_path = df_regs()->file_path,
|
||||
.cursor = txt_pt(line_num, 1),
|
||||
.vaddr_range = r1u64(params->line_vaddrs[line_idx], params->line_vaddrs[line_idx]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1785,16 +1902,16 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
line_num < params->line_num_range.max;
|
||||
line_num += 1, line_idx += 1)
|
||||
{
|
||||
D_EntityList pins = params->line_pins[line_idx];
|
||||
MD_NodePtrList pins = params->line_pins[line_idx];
|
||||
if(pins.count != 0) UI_Parent(line_extras_boxes[line_idx])
|
||||
DF_Font(DF_FontSlot_Code)
|
||||
UI_FontSize(params->font_size)
|
||||
UI_PrefHeight(ui_px(params->line_height_px, 1.f))
|
||||
{
|
||||
for(D_EntityNode *n = pins.first; n != 0; n = n->next)
|
||||
for(MD_NodePtrNode *n = pins.first; n != 0; n = n->next)
|
||||
{
|
||||
D_Entity *pin = n->entity;
|
||||
String8 pin_expr = pin->string;
|
||||
MD_Node *pin = n->v;
|
||||
String8 pin_expr = pin->first->string;
|
||||
E_Eval eval = e_eval_from_string(scratch.arena, pin_expr);
|
||||
String8 eval_string = {0};
|
||||
if(!e_type_key_match(e_type_key_zero(), eval.type_key))
|
||||
@@ -1811,10 +1928,10 @@ df_code_slice(DF_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 = df_rgba_from_theme_color(DF_ThemeColor_CodeDefault);
|
||||
if(pin->flags & D_EntityFlag_HasColor)
|
||||
Vec4F32 pin_color = df_rgba_from_cfg_tree(pin);
|
||||
if(pin_color.w == 0)
|
||||
{
|
||||
pin_color = d_rgba_from_entity(pin);
|
||||
pin_color = df_rgba_from_theme_color(DF_ThemeColor_CodeDefault);
|
||||
}
|
||||
UI_PrefWidth(ui_em(1.5f, 1.f))
|
||||
DF_Font(DF_FontSlot_Icons)
|
||||
@@ -1825,15 +1942,11 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
UI_Signal sig = ui_buttonf("%S###pin_nub", df_g_icon_kind_text_table[DF_IconKind_Pin]);
|
||||
if(ui_dragging(sig) && !contains_2f32(sig.box->rect, ui_mouse()))
|
||||
{
|
||||
DF_DragDropPayload payload = {0};
|
||||
payload.entity = d_handle_from_entity(pin);
|
||||
df_drag_begin(&payload);
|
||||
df_drag_begin(.cfg_tree = df_handle_from_cfg_tree(pin));
|
||||
}
|
||||
if(ui_right_clicked(sig))
|
||||
{
|
||||
ui_ctx_menu_open(df_state->entity_ctx_menu_key, sig.box->key, v2f32(0, sig.box->rect.y1-sig.box->rect.y0));
|
||||
DF_Window *window = df_window_from_handle(d_regs()->window);
|
||||
window->entity_ctx_menu_entity = d_handle_from_entity(pin);
|
||||
df_ctx_menu_open(pin_box, .cfg_tree = df_handle_from_cfg_tree(pin));
|
||||
}
|
||||
}
|
||||
df_code_label(0.8f, 1, df_rgba_from_theme_color(DF_ThemeColor_CodeDefault), pin_expr);
|
||||
@@ -1921,7 +2034,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
UI_Signal priority_margin_container_sig = ui_signal_from_box(priority_margin_container_box);
|
||||
UI_Signal catchall_margin_container_sig = ui_signal_from_box(catchall_margin_container_box);
|
||||
UI_Signal text_container_sig = ui_signal_from_box(text_container_box);
|
||||
D_Entity *line_drag_entity = &d_nil_entity;
|
||||
CTRL_Entity *line_drag_entity = &ctrl_entity_nil;
|
||||
{
|
||||
//- rjf: determine mouse drag range
|
||||
TxtRng mouse_drag_rng = txt_rng(mouse_pt, mouse_pt);
|
||||
@@ -1991,6 +2104,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
|
||||
//- rjf: dragging threads, breakpoints, or watch pins over this slice ->
|
||||
// drop target
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
if(df_drag_is_active() && contains_2f32(clipped_top_container_rect, ui_mouse()))
|
||||
{
|
||||
DF_DragDropPayload *payload = &df_drag_drop_payload;
|
||||
@@ -2002,8 +2116,10 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
line_drag_entity = entity;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//- rjf: drop target is dropped -> process
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
{
|
||||
DF_DragDropPayload payload = {0};
|
||||
if(!d_entity_is_nil(line_drag_entity) && df_drag_drop(&payload) && contains_1s64(params->line_num_range, mouse_pt.line))
|
||||
@@ -2046,6 +2162,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//- rjf: commit text container signal to main output
|
||||
result.base = text_container_sig;
|
||||
@@ -2136,6 +2253,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
//////////////////////////////
|
||||
//- rjf: dragging entity which applies to lines over this slice -> visualize
|
||||
//
|
||||
#if 0 // TODO(rjf): @msgs
|
||||
if(!d_entity_is_nil(line_drag_entity) && contains_2f32(clipped_top_container_rect, ui_mouse()))
|
||||
{
|
||||
Vec4F32 color = df_rgba_from_theme_color(DF_ThemeColor_DropSiteOverlay);
|
||||
@@ -2156,6 +2274,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
|
||||
}
|
||||
ui_box_equip_draw_bucket(text_container_box, bucket);
|
||||
}
|
||||
#endif
|
||||
|
||||
//////////////////////////////
|
||||
//- rjf: (cursor*mark*list(flash_range)) -> list(text_range*color)
|
||||
|
||||
@@ -42,9 +42,9 @@ struct DF_CodeSliceParams
|
||||
String8 *line_text;
|
||||
Rng1U64 *line_ranges;
|
||||
TXT_TokenArray *line_tokens;
|
||||
D_EntityList *line_bps;
|
||||
MD_NodePtrList *line_bps;
|
||||
CTRL_EntityList *line_ips;
|
||||
D_EntityList *line_pins;
|
||||
MD_NodePtrList *line_pins;
|
||||
U64 *line_vaddrs;
|
||||
D_LineList *line_infos;
|
||||
DI_KeyList relevant_dbgi_keys;
|
||||
@@ -84,13 +84,17 @@ internal void df_loading_overlay(Rng2F32 rect, F32 loading_t, U64 progress_v, U6
|
||||
////////////////////////////////
|
||||
//~ rjf: UI Widgets: Fancy Buttons
|
||||
|
||||
internal void df_keybinding_buttons(String8 msg_name);
|
||||
internal void df_cmd_binding_buttons(D_CmdSpec *spec);
|
||||
internal UI_Signal df_menu_bar_button(String8 string);
|
||||
internal UI_Signal df_msg_button(String8 msg_name);
|
||||
internal UI_Signal df_cmd_spec_button(D_CmdSpec *spec);
|
||||
internal void df_cmd_list_menu_buttons(U64 count, D_CmdKind *cmds, U32 *fastpath_codepoints);
|
||||
internal void df_msg_list_menu_buttons(U64 count, String8 *msg_names, U32 *fastpath_codepoints);
|
||||
internal UI_Signal df_icon_button(DF_IconKind kind, FuzzyMatchRangeList *matches, String8 string);
|
||||
internal UI_Signal df_icon_buttonf(DF_IconKind kind, FuzzyMatchRangeList *matches, char *fmt, ...);
|
||||
internal void df_entity_tooltips(D_Entity *entity);
|
||||
internal void df_cfg_tree_tooltips(MD_Node *cfg_tree);
|
||||
internal void df_ctrl_entity_tooltips(CTRL_Entity *entity);
|
||||
internal UI_Signal df_entity_desc_button(D_Entity *entity, FuzzyMatchRangeList *name_matches, String8 fuzzy_query, B32 is_implicit);
|
||||
internal void df_src_loc_button(String8 file_path, TxtPt point);
|
||||
|
||||
@@ -37,11 +37,12 @@ Rng1U64 df_reg_slot_range_table[29] =
|
||||
{OffsetOf(DF_Regs, os_event), OffsetOf(DF_Regs, os_event) + sizeof(OS_Event *)},
|
||||
};
|
||||
|
||||
DF_MsgKindInfo df_msg_kind_info_table[135] =
|
||||
DF_MsgKindInfo df_msg_kind_info_table[138] =
|
||||
{
|
||||
{0},
|
||||
{str8_lit_comp("exit"), str8_lit_comp("Exit"), str8_lit_comp(""), str8_lit_comp("Exit"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("run_command"), str8_lit_comp("RunCommand"), str8_lit_comp(""), str8_lit_comp("RunCommand"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("run_command"), str8_lit_comp("SetCurrentPath"), str8_lit_comp(""), str8_lit_comp("SetCurrentPath"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("toggle_dev_menu"), str8_lit_comp("ToggleDevMenu"), str8_lit_comp(""), str8_lit_comp("ToggleDevMenu"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("RegisterAsJITDebugger"), str8_lit_comp(""), str8_lit_comp("RegisterAsJITDebugger"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("log_marker"), str8_lit_comp("LogMarker"), str8_lit_comp(""), str8_lit_comp("LogMarker"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
@@ -74,6 +75,7 @@ DF_MsgKindInfo df_msg_kind_info_table[135] =
|
||||
{str8_lit_comp("toggle_breakpoint_at_cursor"), str8_lit_comp("ToggleBreakpointAtCursor"), str8_lit_comp(""), str8_lit_comp("ToggleBreakpointAtCursor"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("toggle_watch_pin_at_cursor"), str8_lit_comp("ToggleWatchPinAtCursor"), str8_lit_comp(""), str8_lit_comp("ToggleWatchPinAtCursor"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("toggle_watch_expression_at_cursor"), str8_lit_comp("ToggleWatchExpressionAtCursor"), str8_lit_comp(""), str8_lit_comp("ToggleWatchExpressionAtCursor"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("toggle_watch_expression_at_mouse"), str8_lit_comp("ToggleWatchExpressionAtMouse"), str8_lit_comp(""), str8_lit_comp("ToggleWatchExpressionAtMouse"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("open_window"), str8_lit_comp("OpenWindow"), str8_lit_comp(""), str8_lit_comp("OpenWindow"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("close_window"), str8_lit_comp("CloseWindow"), str8_lit_comp(""), str8_lit_comp("CloseWindow"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("toggle_fullscreen"), str8_lit_comp("ToggleFullscreen"), str8_lit_comp(""), str8_lit_comp("ToggleFullscreen"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
@@ -116,6 +118,7 @@ DF_MsgKindInfo df_msg_kind_info_table[135] =
|
||||
{str8_lit_comp("tab_bar_top"), str8_lit_comp("TabBarTop"), str8_lit_comp(""), str8_lit_comp("TabBarTop"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("tab_bar_bottom"), str8_lit_comp("TabBarBottom"), str8_lit_comp(""), str8_lit_comp("TabBarBottom"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("filter"), str8_lit_comp("Filter"), str8_lit_comp(""), str8_lit_comp("Filter"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("set_filter"), str8_lit_comp("SetFilter"), str8_lit_comp(""), str8_lit_comp("SetFilter"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("clear_filter"), str8_lit_comp("ClearFilter"), str8_lit_comp(""), str8_lit_comp("ClearFilter"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("apply_filter"), str8_lit_comp("ApplyFilter"), str8_lit_comp(""), str8_lit_comp("ApplyFilter"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
{str8_lit_comp("reset_to_default_panels"), str8_lit_comp("ResetToDefaultPanels"), str8_lit_comp(""), str8_lit_comp("ResetToDefaultPanels"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
|
||||
|
||||
@@ -80,6 +80,7 @@ DF_MsgKind_RunToCursor,
|
||||
DF_MsgKind_SetNextStatement,
|
||||
DF_MsgKind_Exit,
|
||||
DF_MsgKind_RunCommand,
|
||||
DF_MsgKind_SetCurrentPath,
|
||||
DF_MsgKind_ToggleDevMenu,
|
||||
DF_MsgKind_RegisterAsJITDebugger,
|
||||
DF_MsgKind_LogMarker,
|
||||
@@ -112,6 +113,7 @@ DF_MsgKind_GoToNameAtCursor,
|
||||
DF_MsgKind_ToggleBreakpointAtCursor,
|
||||
DF_MsgKind_ToggleWatchPinAtCursor,
|
||||
DF_MsgKind_ToggleWatchExpressionAtCursor,
|
||||
DF_MsgKind_ToggleWatchExpressionAtMouse,
|
||||
DF_MsgKind_OpenWindow,
|
||||
DF_MsgKind_CloseWindow,
|
||||
DF_MsgKind_ToggleFullscreen,
|
||||
@@ -154,6 +156,7 @@ DF_MsgKind_CloseTab,
|
||||
DF_MsgKind_TabBarTop,
|
||||
DF_MsgKind_TabBarBottom,
|
||||
DF_MsgKind_Filter,
|
||||
DF_MsgKind_SetFilter,
|
||||
DF_MsgKind_ClearFilter,
|
||||
DF_MsgKind_ApplyFilter,
|
||||
DF_MsgKind_ResetToDefaultPanels,
|
||||
@@ -622,7 +625,7 @@ DF_VIEW_RULE_ROW_UI_FUNCTION_DEF(checkbox);
|
||||
DF_VIEW_RULE_ROW_UI_FUNCTION_DEF(color_rgba);
|
||||
C_LINKAGE_BEGIN
|
||||
extern Rng1U64 df_reg_slot_range_table[29];
|
||||
extern DF_MsgKindInfo df_msg_kind_info_table[135];
|
||||
extern DF_MsgKindInfo df_msg_kind_info_table[138];
|
||||
extern DF_StringBindingPair df_g_default_binding_table[110];
|
||||
extern String8 df_g_binding_version_remap_old_name_table[7];
|
||||
extern String8 df_g_binding_version_remap_new_name_table[7];
|
||||
|
||||
Reference in New Issue
Block a user