mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-30 03:00:01 +00:00
config settings, for top-level toggles or simple numeric parameters; use to mask off animations, background blurs, and so on; use to control tab width
This commit is contained in:
+8
-7
@@ -720,7 +720,7 @@ ui_box_from_key(UI_Key key)
|
||||
//~ rjf: Top-Level Building API
|
||||
|
||||
internal void
|
||||
ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_WidgetPaletteInfo *widget_palette_info, F32 real_dt, F32 animation_dt)
|
||||
ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_WidgetPaletteInfo *widget_palette_info, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt)
|
||||
{
|
||||
//- rjf: reset per-build ui state
|
||||
{
|
||||
@@ -759,6 +759,7 @@ ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, U
|
||||
ui_state->icon_info.icon_kind_text_map[icon_kind] = push_str8_copy(ui_build_arena(), icon_info->icon_kind_text_map[icon_kind]);
|
||||
}
|
||||
MemoryCopyStruct(&ui_state->widget_palette_info, widget_palette_info);
|
||||
MemoryCopyStruct(&ui_state->animation_info, animation_info);
|
||||
}
|
||||
|
||||
//- rjf: do default navigation
|
||||
@@ -1200,13 +1201,13 @@ ui_end_build(void)
|
||||
F32 slow_rate = 1 - pow_f32(2, (-30.f * ui_state->animation_dt));
|
||||
F32 slug_rate = 1 - pow_f32(2, (-15.f * ui_state->animation_dt));
|
||||
F32 slaf_rate = 1 - pow_f32(2, (-8.f * ui_state->animation_dt));
|
||||
ui_state->ctx_menu_open_t += ((F32)!!ui_state->ctx_menu_open - ui_state->ctx_menu_open_t) * vast_rate;
|
||||
ui_state->ctx_menu_open_t += ((F32)!!ui_state->ctx_menu_open - ui_state->ctx_menu_open_t) * (ui_state->animation_info.flags & UI_AnimationInfoFlag_ContextMenuAnimations ? vast_rate : 1);
|
||||
ui_state->is_animating = (ui_state->is_animating || abs_f32((F32)!!ui_state->ctx_menu_open - ui_state->ctx_menu_open_t) > 0.01f);
|
||||
if(ui_state->ctx_menu_open_t >= 0.99f && ui_state->ctx_menu_open)
|
||||
{
|
||||
ui_state->ctx_menu_open_t = 1.f;
|
||||
}
|
||||
ui_state->tooltip_open_t += ((F32)!!ui_state->tooltip_open - ui_state->tooltip_open_t) * vast_rate;
|
||||
ui_state->tooltip_open_t += ((F32)!!ui_state->tooltip_open - ui_state->tooltip_open_t) * (ui_state->animation_info.flags & UI_AnimationInfoFlag_TooltipAnimations ? vast_rate : 1);
|
||||
ui_state->is_animating = (ui_state->is_animating || abs_f32((F32)!!ui_state->tooltip_open - ui_state->tooltip_open_t) > 0.01f);
|
||||
if(ui_state->tooltip_open_t >= 0.99f && ui_state->tooltip_open)
|
||||
{
|
||||
@@ -1228,10 +1229,10 @@ ui_end_build(void)
|
||||
B32 is_focus_active_disabled = !!(box->flags & UI_BoxFlag_FocusActiveDisabled);
|
||||
|
||||
// rjf: determine rates
|
||||
F32 hot_rate = fast_rate;
|
||||
F32 active_rate = fast_rate;
|
||||
F32 disabled_rate = slow_rate;
|
||||
F32 focus_rate = (is_focus_hot || is_focus_active) ? fast_rate : fast_rate;
|
||||
F32 hot_rate = (ui_state->animation_info.flags & UI_AnimationInfoFlag_HotAnimations ? fast_rate : 1);
|
||||
F32 active_rate = (ui_state->animation_info.flags & UI_AnimationInfoFlag_ActiveAnimations ? fast_rate : 1);
|
||||
F32 disabled_rate = (ui_state->animation_info.flags & UI_AnimationInfoFlag_HotAnimations ? slow_rate : 1);
|
||||
F32 focus_rate = (ui_state->animation_info.flags & UI_AnimationInfoFlag_FocusAnimations ? fast_rate : 1);
|
||||
|
||||
// rjf: determine animating status
|
||||
B32 box_is_animating = 0;
|
||||
|
||||
+23
-1
@@ -240,6 +240,27 @@ struct UI_WidgetPaletteInfo
|
||||
UI_Palette *scrollbar_palette;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Animation Info
|
||||
|
||||
typedef U32 UI_AnimationInfoFlags;
|
||||
enum
|
||||
{
|
||||
UI_AnimationInfoFlag_HotAnimations = (1<<0),
|
||||
UI_AnimationInfoFlag_ActiveAnimations = (1<<1),
|
||||
UI_AnimationInfoFlag_FocusAnimations = (1<<2),
|
||||
UI_AnimationInfoFlag_TooltipAnimations = (1<<3),
|
||||
UI_AnimationInfoFlag_ContextMenuAnimations = (1<<4),
|
||||
UI_AnimationInfoFlag_ScrollingAnimations = (1<<5),
|
||||
UI_AnimationInfoFlag_All = 0xffffffff,
|
||||
};
|
||||
|
||||
typedef struct UI_AnimationInfo UI_AnimationInfo;
|
||||
struct UI_AnimationInfo
|
||||
{
|
||||
UI_AnimationInfoFlags flags;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Scroll Positions
|
||||
|
||||
@@ -575,6 +596,7 @@ struct UI_State
|
||||
//- rjf: build parameters
|
||||
UI_IconInfo icon_info;
|
||||
UI_WidgetPaletteInfo widget_palette_info;
|
||||
UI_AnimationInfo animation_info;
|
||||
OS_Handle window;
|
||||
UI_EventList *events;
|
||||
Vec2F32 mouse;
|
||||
@@ -739,7 +761,7 @@ internal UI_Box * ui_box_from_key(UI_Key key);
|
||||
////////////////////////////////
|
||||
//~ rjf: Top-Level Building API
|
||||
|
||||
internal void ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_WidgetPaletteInfo *widget_palette_info, F32 real_dt, F32 animation_dt);
|
||||
internal void ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_WidgetPaletteInfo *widget_palette_info, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt);
|
||||
internal void ui_end_build(void);
|
||||
internal void ui_calc_sizes_standalone__in_place_rec(UI_Box *root, Axis2 axis);
|
||||
internal void ui_calc_sizes_upwards_dependent__in_place_rec(UI_Box *root, Axis2 axis);
|
||||
|
||||
Reference in New Issue
Block a user