mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-09-24 02:00:05 +00:00
float panels into config layer
This commit is contained in:
+238
-438
File diff suppressed because it is too large
Load Diff
@@ -207,48 +207,6 @@ struct RD_Location
|
||||
String8 expr;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Structured Panel Trees, Parsed From Config Trees
|
||||
|
||||
typedef struct RD_PanelNode RD_PanelNode;
|
||||
struct RD_PanelNode
|
||||
{
|
||||
// rjf: links data
|
||||
RD_PanelNode *first;
|
||||
RD_PanelNode *last;
|
||||
RD_PanelNode *next;
|
||||
RD_PanelNode *prev;
|
||||
RD_PanelNode *parent;
|
||||
U64 child_count;
|
||||
CFG_Node *cfg;
|
||||
|
||||
// rjf: split data
|
||||
Axis2 split_axis;
|
||||
F32 pct_of_parent;
|
||||
|
||||
// rjf: tab params
|
||||
Side tab_side;
|
||||
|
||||
// rjf: which tabs are attached
|
||||
CFG_NodePtrList tabs;
|
||||
CFG_Node *selected_tab;
|
||||
};
|
||||
|
||||
typedef struct RD_PanelTree RD_PanelTree;
|
||||
struct RD_PanelTree
|
||||
{
|
||||
RD_PanelNode *root;
|
||||
RD_PanelNode *focused;
|
||||
};
|
||||
|
||||
typedef struct RD_PanelNodeRec RD_PanelNodeRec;
|
||||
struct RD_PanelNodeRec
|
||||
{
|
||||
RD_PanelNode *next;
|
||||
S32 push_count;
|
||||
S32 pop_count;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Command Types
|
||||
|
||||
@@ -554,18 +512,6 @@ struct RD_State
|
||||
|
||||
read_only global RD_VocabInfo rd_nil_vocab_info = {0};
|
||||
|
||||
read_only global RD_PanelNode rd_nil_panel_node =
|
||||
{
|
||||
&rd_nil_panel_node,
|
||||
&rd_nil_panel_node,
|
||||
&rd_nil_panel_node,
|
||||
&rd_nil_panel_node,
|
||||
&rd_nil_panel_node,
|
||||
0,
|
||||
&cfg_nil_node,
|
||||
.selected_tab = &cfg_nil_node,
|
||||
};
|
||||
|
||||
read_only global RD_CmdKindInfo rd_nil_cmd_kind_info = {0};
|
||||
|
||||
RD_VIEW_UI_FUNCTION_DEF(null);
|
||||
@@ -626,14 +572,6 @@ internal RD_Regs *rd_get_hover_regs(void);
|
||||
////////////////////////////////
|
||||
//~ rjf: Config Functions
|
||||
|
||||
internal RD_PanelTree rd_panel_tree_from_cfg(Arena *arena, CFG_Node *cfg_root);
|
||||
internal RD_PanelNodeRec rd_panel_node_rec__depth_first(RD_PanelNode *root, RD_PanelNode *panel, U64 sib_off, U64 child_off);
|
||||
#define rd_panel_node_rec__depth_first_pre(root, p) rd_panel_node_rec__depth_first((root), (p), OffsetOf(RD_PanelNode, next), OffsetOf(RD_PanelNode, first))
|
||||
#define rd_panel_node_rec__depth_first_pre_rev(root, p) rd_panel_node_rec__depth_first((root), (p), OffsetOf(RD_PanelNode, prev), OffsetOf(RD_PanelNode, last))
|
||||
internal RD_PanelNode *rd_panel_node_from_tree_cfg(RD_PanelNode *root, CFG_Node *cfg);
|
||||
internal Rng2F32 rd_target_rect_from_panel_node_child(Rng2F32 parent_rect, RD_PanelNode *parent, RD_PanelNode *panel);
|
||||
internal Rng2F32 rd_target_rect_from_panel_node(Rng2F32 root_rect, RD_PanelNode *root, RD_PanelNode *panel);
|
||||
|
||||
internal B32 rd_cfg_is_project_filtered(CFG_Node *cfg);
|
||||
|
||||
internal Vec4F32 rd_hsva_from_cfg(CFG_Node *cfg);
|
||||
|
||||
@@ -582,7 +582,7 @@ entry_point(CmdLine *cmd_line)
|
||||
if(dst_ws->cfg_id != rd_regs()->window)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
RD_PanelTree panel_tree = rd_panel_tree_from_cfg(scratch.arena, cfg_node_from_id(dst_ws->cfg_id));
|
||||
CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, cfg_node_from_id(dst_ws->cfg_id));
|
||||
rd_regs()->window = dst_ws->cfg_id;
|
||||
rd_regs()->panel = panel_tree.focused->cfg->id;
|
||||
rd_regs()->tab = panel_tree.focused->selected_tab->id;
|
||||
|
||||
Reference in New Issue
Block a user