| 16 | } // namespace |
| 17 | |
| 18 | PyTheme get_current_theme() { |
| 19 | const auto& t = lfs::vis::theme(); |
| 20 | |
| 21 | PyTheme py_theme; |
| 22 | py_theme.name = t.name; |
| 23 | |
| 24 | py_theme.palette.background = imvec4_to_tuple(t.palette.background); |
| 25 | py_theme.palette.surface = imvec4_to_tuple(t.palette.surface); |
| 26 | py_theme.palette.surface_bright = imvec4_to_tuple(t.palette.surface_bright); |
| 27 | py_theme.palette.primary = imvec4_to_tuple(t.palette.primary); |
| 28 | py_theme.palette.primary_dim = imvec4_to_tuple(t.palette.primary_dim); |
| 29 | py_theme.palette.secondary = imvec4_to_tuple(t.palette.secondary); |
| 30 | py_theme.palette.text = imvec4_to_tuple(t.palette.text); |
| 31 | py_theme.palette.text_dim = imvec4_to_tuple(t.palette.text_dim); |
| 32 | py_theme.palette.border = imvec4_to_tuple(t.palette.border); |
| 33 | py_theme.palette.success = imvec4_to_tuple(t.palette.success); |
| 34 | py_theme.palette.warning = imvec4_to_tuple(t.palette.warning); |
| 35 | py_theme.palette.error = imvec4_to_tuple(t.palette.error); |
| 36 | py_theme.palette.info = imvec4_to_tuple(t.palette.info); |
| 37 | py_theme.palette.toolbar_background = imvec4_to_tuple(t.toolbar_background()); |
| 38 | py_theme.palette.row_even = imvec4_to_tuple(t.palette.row_even); |
| 39 | py_theme.palette.row_odd = imvec4_to_tuple(t.palette.row_odd); |
| 40 | py_theme.palette.overlay_border = imvec4_to_tuple(t.overlay.border); |
| 41 | py_theme.palette.overlay_icon = imvec4_to_tuple(t.overlay.icon); |
| 42 | py_theme.palette.overlay_text = imvec4_to_tuple(t.overlay.text); |
| 43 | py_theme.palette.overlay_text_dim = imvec4_to_tuple(t.overlay.text_dim); |
| 44 | |
| 45 | py_theme.sizes.window_rounding = t.sizes.window_rounding; |
| 46 | py_theme.sizes.frame_rounding = t.sizes.frame_rounding; |
| 47 | py_theme.sizes.popup_rounding = t.sizes.popup_rounding; |
| 48 | py_theme.sizes.scrollbar_rounding = t.sizes.scrollbar_rounding; |
| 49 | py_theme.sizes.tab_rounding = t.sizes.tab_rounding; |
| 50 | py_theme.sizes.border_size = t.sizes.border_size; |
| 51 | py_theme.sizes.window_padding = {t.sizes.window_padding.x, t.sizes.window_padding.y}; |
| 52 | py_theme.sizes.frame_padding = {t.sizes.frame_padding.x, t.sizes.frame_padding.y}; |
| 53 | py_theme.sizes.item_spacing = {t.sizes.item_spacing.x, t.sizes.item_spacing.y}; |
| 54 | py_theme.sizes.toolbar_button_size = t.sizes.toolbar_button_size; |
| 55 | py_theme.sizes.toolbar_padding = t.sizes.toolbar_padding; |
| 56 | py_theme.sizes.toolbar_spacing = t.sizes.toolbar_spacing; |
| 57 | |
| 58 | py_theme.vignette.enabled = t.vignette.enabled; |
| 59 | py_theme.vignette.intensity = t.vignette.intensity; |
| 60 | py_theme.vignette.radius = t.vignette.radius; |
| 61 | py_theme.vignette.softness = t.vignette.softness; |
| 62 | |
| 63 | return py_theme; |
| 64 | } |
| 65 | |
| 66 | void register_ui_theme(nb::module_& m) { |
| 67 | nb::class_<PyThemePalette>(m, "ThemePalette") |
no test coverage detected