Support for rounded rectangles & borders (not the best implementation...)

This commit is contained in:
2024-06-30 13:37:24 -04:00
parent 8ecfd7407e
commit 0655ade456
8 changed files with 195 additions and 49 deletions

View File

@ -182,7 +182,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
using title
layout.anchor.ratio.x = 1.0
layout.margins = { 0, 0, 15, 0}
layout.font_size = 16
layout.font_size = 14
}
scope(theme_window_bar_btn)
@ -200,6 +200,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
text = str_intern("close")
if close_btn.hot do style.bg_color = app_color.window_btn_close_bg_hot
if close_btn.pressed do settings_menu.is_open = false
style.corner_radii = { 0, 0, 0, 0 }
}
}
if frame_bar.active {
@ -208,13 +209,15 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
}
}
if ui_drop_down( & cfg_drop_down, "settings_menu.config", str_intern("App Config"), vb_compute_layout = true).is_open
app_config := ui_drop_down( & cfg_drop_down, "settings_menu.config", str_intern("App Config"), vb_compute_layout = true)
app_config.title.layout.font_size = 12
if app_config.is_open
{
Engien_Refresh_Hz:
{
scope(theme_table_row(is_even = false))
hb := ui_hbox(.Left_To_Right, "settings_menu.engine_refresh_hz.hb"); { using hb
layout.size.min = {0, 30}
layout.size.min = {0, 25}
layout.flags = {.Fixed_Height}
layout.padding = to_ui_layout_side(4)
}
@ -225,7 +228,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
using title
layout.anchor.ratio.x = 1.0
layout.margins.left = 10
layout.text_alignment = {0, 0.0}
title.layout.font_size = 12
}
input_box := ui_widget("settings_menu.engine_refresh.input_box", {.Mouse_Clickable, .Focusable, .Click_To_Focus}); {
@ -234,7 +237,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
layout.margins.left = 5
layout.padding.right = 5
layout.size.min.x = 80
style.corner_radii[0] = 0.35
style.corner_radii = { 3, 3, 3, 3 }
if input_box.active do style.bg_color = app_color.input_box_bg_active
else if input_box.hot do style.bg_color = app_color.input_box_bg_hot
@ -287,7 +290,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
scope( theme_table_row(is_even = true))
hb := ui_hbox(.Left_To_Right, "settings_menu.cam_min_zoom.hb"); {
using hb
layout.size.min = {0, 30}
layout.size.min = {0, 25}
layout.flags = {.Fixed_Height}
layout.padding = to_ui_layout_side(4)
}
@ -296,6 +299,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
using title
layout.anchor.ratio.x = 1.0
layout.margins.left = 10
layout.font_size = 12
}
}
@ -304,7 +308,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
scope( theme_table_row(is_even = false))
hb := ui_hbox(.Left_To_Right, "settings_menu.cam_max_zoom.hb"); {
using hb
layout.size.min = {0, 30}
layout.size.min = {0, 25}
layout.flags = {.Fixed_Height}
layout.padding = to_ui_layout_side(4)
}
@ -313,6 +317,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
using title
layout.anchor.ratio.x = 1.0
layout.margins.left = 10
layout.font_size = 12
}
}
}

View File

@ -71,12 +71,12 @@ theme_drop_down_btn :: proc() -> UI_Theme
anchor = range2({0, 0},{}),
alignment = {0, 0},
text_alignment = {0.5, 0.5},
font_size = 14,
font_size = 12,
margins = {0, 0, 0, 0},
padding = {0, 0, 0, 0},
border_width = 1,
pos = {0, 0},
size = range2({0,20},{})
size = range2({0,25},{})
}
style := UI_Style {
bg_color = app_color.btn_bg_default,
@ -112,8 +112,8 @@ theme_drop_down_btn :: proc() -> UI_Theme
theme_table_row :: proc( is_even : bool ) -> UI_Theme
{
@static theme : UI_Theme
@static loaded : b32 = false
if ! loaded || true
// @static loaded : b32 = false
// if ! loaded || true
{
app_color := app_color_theme()
table_bg : RGBA8
@ -128,7 +128,7 @@ theme_table_row :: proc( is_even : bool ) -> UI_Theme
anchor = range2({},{}),
alignment = {0, 0},
text_alignment = {0.5, 0.0},
font_size = 16,
font_size = 10,
margins = {0, 0, 0, 0},
padding = {0, 0, 0, 0},
border_width = 0,
@ -159,7 +159,7 @@ theme_table_row :: proc( is_even : bool ) -> UI_Theme
using style_combo.active
}
theme = UI_Theme { layout_combo, style_combo }
loaded = true
// loaded = true
}
return theme
}
@ -186,7 +186,7 @@ theme_window_bar :: proc() -> UI_Theme
style := UI_Style {
bg_color = app_color.window_bar_bg,
border_color = Color_Transparent,
corner_radii = {},
corner_radii = {0, 0, 0, 0 },
blur_size = 0,
font = get_state().default_font,
text_color = app_color.text_default,
@ -238,7 +238,7 @@ theme_window_bar_title :: proc() -> UI_Theme
style := UI_Style {
bg_color = Color_Transparent,
border_color = Color_Transparent,
corner_radii = {},
corner_radii = {0, 0, 0, 0},
blur_size = 0,
font = get_state().default_font,
text_color = app_color.text_default,
@ -335,7 +335,7 @@ theme_window_panel :: proc() -> UI_Theme
style := UI_Style {
bg_color = app_color.window_panel_bg,
border_color = app_color.window_panel_border,
corner_radii = {},
corner_radii = { 0, 0, 0, 0 },
blur_size = 0,
font = get_state().default_font,
text_color = app_color.text_default,
@ -421,7 +421,7 @@ theme_text :: proc() -> UI_Theme
anchor = range2({},{}),
alignment = {0, 0},
text_alignment = {0.0, 0.5},
font_size = 14,
font_size = 12,
margins = {0, 0, 0, 0},
padding = {0, 0, 0, 0},
border_width = 0,