mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-03 20:38:40 +00:00
improvements in text layout, focus visualization, smooth text rasterization for icons; checkpoint in ui visuals pass
This commit is contained in:
@@ -31,7 +31,7 @@ ui_divider(UI_Size size)
|
||||
internal UI_Signal
|
||||
ui_label(String8 string)
|
||||
{
|
||||
UI_Box *box = ui_build_box_from_string(UI_BoxFlag_DrawText, str8_lit(""));
|
||||
UI_Box *box = ui_build_box_from_string(UI_BoxFlag_DrawText, str8_zero());
|
||||
ui_box_equip_display_string(box, string);
|
||||
UI_Signal interact = ui_signal_from_box(box);
|
||||
return interact;
|
||||
|
||||
+6
-5
@@ -1870,6 +1870,7 @@ ui_begin_ctx_menu(UI_Key key)
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_RoundChildrenByParent;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_DrawBackgroundBlur;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_DrawBackground;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_DisableFocusOverlay;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_DrawBorder;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_Clip;
|
||||
ui_state->ctx_menu_root->flags |= UI_BoxFlag_Clickable;
|
||||
@@ -2376,7 +2377,7 @@ ui_box_text_position(UI_Box *box)
|
||||
F_Tag font = box->font;
|
||||
F32 font_size = box->font_size;
|
||||
F_Metrics font_metrics = f_metrics_from_tag_size(font, font_size);
|
||||
result.y = ceil_f32((box->rect.p0.y + box->rect.p1.y)/2.f + (font_metrics.capital_height/2) - font_metrics.line_gap/2);
|
||||
result.y = floor_f32((box->rect.p0.y + box->rect.p1.y)/2.f + (font_metrics.capital_height/2) - font_metrics.line_gap/2);
|
||||
switch(box->text_align)
|
||||
{
|
||||
default:
|
||||
@@ -2386,14 +2387,14 @@ ui_box_text_position(UI_Box *box)
|
||||
}break;
|
||||
case UI_TextAlign_Center:
|
||||
{
|
||||
Vec2F32 advance = box->display_string_runs.dim;
|
||||
result.x = floor_f32((box->rect.p0.x + box->rect.p1.x)/2 - advance.x/2 - 1.f);
|
||||
Vec2F32 text_dim = box->display_string_runs.dim;
|
||||
result.x = round_f32((box->rect.p0.x + box->rect.p1.x)/2 - text_dim.x/2) - 1.f;
|
||||
result.x = ClampBot(result.x, box->rect.x0);
|
||||
}break;
|
||||
case UI_TextAlign_Right:
|
||||
{
|
||||
Vec2F32 advance = box->display_string_runs.dim;
|
||||
result.x = (box->rect.p1.x) - 1.f - advance.x;
|
||||
Vec2F32 text_dim = box->display_string_runs.dim;
|
||||
result.x = round_f32((box->rect.p1.x) - text_dim.x);
|
||||
result.x = ClampBot(result.x, box->rect.x0);
|
||||
}break;
|
||||
}
|
||||
|
||||
+11
-10
@@ -323,21 +323,22 @@ typedef U64 UI_BoxFlags;
|
||||
# define UI_BoxFlag_AnimatePosY (UI_BoxFlags)(1ull<<44)
|
||||
# define UI_BoxFlag_DisableTextTrunc (UI_BoxFlags)(1ull<<45)
|
||||
# define UI_BoxFlag_DisableIDString (UI_BoxFlags)(1ull<<46)
|
||||
# define UI_BoxFlag_DisableFocusViz (UI_BoxFlags)(1ull<<47)
|
||||
# define UI_BoxFlag_RequireFocusBackground (UI_BoxFlags)(1ull<<48)
|
||||
# define UI_BoxFlag_DisableFocusBorder (UI_BoxFlags)(1ull<<47)
|
||||
# define UI_BoxFlag_DisableFocusOverlay (UI_BoxFlags)(1ull<<48)
|
||||
# define UI_BoxFlag_HasDisplayString (UI_BoxFlags)(1ull<<49)
|
||||
# define UI_BoxFlag_HasFuzzyMatchRanges (UI_BoxFlags)(1ull<<50)
|
||||
# define UI_BoxFlag_RoundChildrenByParent (UI_BoxFlags)(1ull<<51)
|
||||
|
||||
//- rjf: bundles
|
||||
# define UI_BoxFlag_Clickable (UI_BoxFlag_MouseClickable|UI_BoxFlag_KeyboardClickable)
|
||||
# define UI_BoxFlag_DefaultFocusNav (UI_BoxFlag_DefaultFocusNavX|UI_BoxFlag_DefaultFocusNavY|UI_BoxFlag_DefaultFocusEdit)
|
||||
# define UI_BoxFlag_Floating (UI_BoxFlag_FloatingX|UI_BoxFlag_FloatingY)
|
||||
# define UI_BoxFlag_FixedSize (UI_BoxFlag_FixedWidth|UI_BoxFlag_FixedHeight)
|
||||
# define UI_BoxFlag_AllowOverflow (UI_BoxFlag_AllowOverflowX|UI_BoxFlag_AllowOverflowY)
|
||||
# define UI_BoxFlag_AnimatePos (UI_BoxFlag_AnimatePosX|UI_BoxFlag_AnimatePosY)
|
||||
# define UI_BoxFlag_ViewScroll (UI_BoxFlag_ViewScrollX|UI_BoxFlag_ViewScrollY)
|
||||
# define UI_BoxFlag_ViewClamp (UI_BoxFlag_ViewClampX|UI_BoxFlag_ViewClampY)
|
||||
# define UI_BoxFlag_Clickable (UI_BoxFlag_MouseClickable|UI_BoxFlag_KeyboardClickable)
|
||||
# define UI_BoxFlag_DefaultFocusNav (UI_BoxFlag_DefaultFocusNavX|UI_BoxFlag_DefaultFocusNavY|UI_BoxFlag_DefaultFocusEdit)
|
||||
# define UI_BoxFlag_Floating (UI_BoxFlag_FloatingX|UI_BoxFlag_FloatingY)
|
||||
# define UI_BoxFlag_FixedSize (UI_BoxFlag_FixedWidth|UI_BoxFlag_FixedHeight)
|
||||
# define UI_BoxFlag_AllowOverflow (UI_BoxFlag_AllowOverflowX|UI_BoxFlag_AllowOverflowY)
|
||||
# define UI_BoxFlag_AnimatePos (UI_BoxFlag_AnimatePosX|UI_BoxFlag_AnimatePosY)
|
||||
# define UI_BoxFlag_ViewScroll (UI_BoxFlag_ViewScrollX|UI_BoxFlag_ViewScrollY)
|
||||
# define UI_BoxFlag_ViewClamp (UI_BoxFlag_ViewClampX|UI_BoxFlag_ViewClampY)
|
||||
# define UI_BoxFlag_DisableFocusEffects (UI_BoxFlag_DisableFocusBorder|UI_BoxFlag_DisableFocusOverlay)
|
||||
//}
|
||||
|
||||
typedef struct UI_Box UI_Box;
|
||||
|
||||
Reference in New Issue
Block a user