diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c index b6e2a3d3c45..316775f7ede 100644 --- a/release/datafiles/userdef/userdef_default_theme.c +++ b/release/datafiles/userdef/userdef_default_theme.c @@ -277,6 +277,21 @@ const bTheme U_theme_default = { .panel_text = RGBA(0xe6e6e6ff), .panel_active = RGBA(0x4772b3ff), }, + .regions = { + .asset_shelf = { + .back = RGBA(0x303030ff), + .header_back = RGBA(0x1d1d1dff), + }, + .channels = { + .back = RGBA(0x1d1d1dff), + .text = RGBA(0xb8b8b8ff), + .text_selected = RGBA(0xffaf23ff), + }, + .sidebars = { + .back = RGBA(0x30303000), + .tab_back = RGBA(0x18181800), + } + }, .common = { .anim = { .playhead = RGBA(0x4772b3ff), @@ -326,8 +341,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x1d1d1d00), - .button = RGBA(0x303030ff), .vertex_size = 3, .outline_width = 1, .facedot_size = 4, @@ -342,8 +355,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), .grid = RGBA(0x54545480), .wire = RGBA(0x000000ff), .wire_edit = RGBA(0x000000ff), @@ -416,8 +427,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), .hilite = RGBA(0x4772b3ff), .vertex_size = 3, .outline_width = 1, @@ -432,12 +441,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x1d1d1dff), - .list_title = RGBA(0xffffffff), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .shade1 = RGBA(0x96969600), .shade2 = RGBA(0x12121264), .grid = RGBA(0x1a1a1aff), @@ -480,12 +483,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x22222200), - .list = RGBA(0x1d1d1dff), - .list_title = RGBA(0xffffffff), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .shade1 = RGBA(0xc0c0c000), .shade2 = RGBA(0x1d1d1d99), .hilite = RGBA(0x60c04044), @@ -509,12 +506,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x1d1d1dff), - .list_title = RGBA(0xffffffff), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .shade1 = RGBA(0x96969600), .grid = RGBA(0x2a2a2aff), .strip = RGBA(0x0d0d0d80), @@ -545,12 +536,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x18181800), - .list_title = RGBA(0xffffffff), - .list_text = RGBA(0xffffffff), - .list_text_hi = RGBA(0xffffffff), .shade1 = RGBA(0xa0a0a000), .grid = RGBA(0x303030ff), .vertex_select = RGBA(0xff8500ff), @@ -591,8 +576,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), .grid = RGBA(0x303030ff), .wire_edit = RGBA(0xc0c0c0ff), .vertex_select = RGBA(0xff8500ff), @@ -627,8 +610,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), .shade2 = RGBA(0x4d4d4de6), .hilite = RGBA(0x71a8ffff), .grid = RGBA(0x1d1d1dff), @@ -672,12 +653,6 @@ const bTheme U_theme_default = { .header = RGBA(0x1d1d1db3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x303030ff), - .list_title = RGBA(0xffffffff), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .shade2 = RGBA(0x7f7f7f64), .grid = RGBA(0x28282800), .wire = RGBA(0x1a1a1aff), @@ -724,8 +699,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x30303000), - .button = RGBA(0x303030ff), .vertex_size = 3, .outline_width = 1, .facedot_size = 4, @@ -756,12 +729,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x303030ff), - .list_title = RGBA(0xffffff00), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .grid = RGBA(0x181818ff), .time_scrub_background = RGBA(0x181818ff), .vertex_size = 3, @@ -814,12 +781,6 @@ const bTheme U_theme_default = { .header = RGBA(0x303030b3), .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), - .tab_back = RGBA(0x18181800), - .button = RGBA(0x30303000), - .list = RGBA(0x303030ff), - .list_title = RGBA(0xc3c3c3ff), - .list_text = RGBA(0xb8b8b8ff), - .list_text_hi = RGBA(0xffaf23ff), .hilite = RGBA(0x80808080), .active = RGBA(0x3b5689ff), .vertex_size = 3, @@ -832,10 +793,6 @@ const bTheme U_theme_default = { .edited_object = RGBA(0x00806266), .row_alternate = RGBA(0xffffff04), }, - .asset_shelf = { - .header_back = RGBA(0x1d1d1dff), - .back = RGBA(0x303030ff), - }, .tarm = { { .solid = RGBA(0x9a0000ff), diff --git a/scripts/presets/interface_theme/Blender_Light.xml b/scripts/presets/interface_theme/Blender_Light.xml index 357edb93ff1..dd3433d0447 100644 --- a/scripts/presets/interface_theme/Blender_Light.xml +++ b/scripts/presets/interface_theme/Blender_Light.xml @@ -383,6 +383,32 @@ + + + + + + + + + + + + + + + + @@ -500,13 +526,6 @@ outline_width="1" object_origin_size="6" > - - - - - - - - - - - - @@ -585,13 +588,6 @@ > - - - - @@ -626,22 +622,6 @@ > - - - - - - - - @@ -669,22 +649,6 @@ > - - - - - - - - @@ -727,13 +691,6 @@ > - - - - @@ -772,22 +729,6 @@ > - - - - - - - - @@ -807,13 +748,6 @@ > - - - - @@ -843,13 +777,6 @@ > - - - - @@ -897,13 +824,6 @@ > - - - - @@ -972,13 +892,6 @@ > - - - - @@ -1034,22 +947,6 @@ > - - - - - - - - @@ -1100,22 +997,8 @@ > - - - - - - - - space_node.grid_levels = U_theme_default.space_node.grid_levels; } - if (!USER_VERSION_ATLEAST(302, 9)) { - FROM_DEFAULT_V4_UCHAR(space_sequencer.list); - FROM_DEFAULT_V4_UCHAR(space_sequencer.list_title); - FROM_DEFAULT_V4_UCHAR(space_sequencer.list_text); - FROM_DEFAULT_V4_UCHAR(space_sequencer.list_text_hi); - } - if (!USER_VERSION_ATLEAST(306, 3)) { FROM_DEFAULT_V4_UCHAR(space_view3d.face_retopology); } @@ -113,11 +106,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(space_node.node_zone_repeat); } - if (!USER_VERSION_ATLEAST(400, 14)) { - FROM_DEFAULT_V4_UCHAR(asset_shelf.back); - FROM_DEFAULT_V4_UCHAR(asset_shelf.header_back); - } - if (!USER_VERSION_ATLEAST(400, 24)) { FROM_DEFAULT_V4_UCHAR(tui.wcol_list_item.inner_sel); FROM_DEFAULT_V4_UCHAR(space_sequencer.transition); @@ -150,11 +138,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) &userdef->themes, btheme, "Theme", '.', offsetof(bTheme, name), sizeof(btheme->name)); } - if (!USER_VERSION_ATLEAST(402, 21)) { - FROM_DEFAULT_V4_UCHAR(asset_shelf.back); - FROM_DEFAULT_V4_UCHAR(asset_shelf.header_back); - } - if (!USER_VERSION_ATLEAST(402, 47)) { FROM_DEFAULT_V4_UCHAR(space_view3d.time_gp_keyframe); } @@ -219,27 +202,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(space_node.node_zone_closure); } - if (!USER_VERSION_ATLEAST(500, 5)) { - FROM_DEFAULT_V4_UCHAR(space_properties.tab_back); - FROM_DEFAULT_V4_UCHAR(space_view3d.tab_back); - FROM_DEFAULT_V4_UCHAR(space_file.tab_back); - FROM_DEFAULT_V4_UCHAR(space_graph.tab_back); - FROM_DEFAULT_V4_UCHAR(space_info.tab_back); - FROM_DEFAULT_V4_UCHAR(space_action.tab_back); - FROM_DEFAULT_V4_UCHAR(space_nla.tab_back); - FROM_DEFAULT_V4_UCHAR(space_sequencer.tab_back); - FROM_DEFAULT_V4_UCHAR(space_image.tab_back); - FROM_DEFAULT_V4_UCHAR(space_text.tab_back); - FROM_DEFAULT_V4_UCHAR(space_outliner.tab_back); - FROM_DEFAULT_V4_UCHAR(space_node.tab_back); - FROM_DEFAULT_V4_UCHAR(space_preferences.tab_back); - FROM_DEFAULT_V4_UCHAR(space_console.tab_back); - FROM_DEFAULT_V4_UCHAR(space_clip.tab_back); - FROM_DEFAULT_V4_UCHAR(space_topbar.tab_back); - FROM_DEFAULT_V4_UCHAR(space_statusbar.tab_back); - FROM_DEFAULT_V4_UCHAR(space_spreadsheet.tab_back); - } - if (!USER_VERSION_ATLEAST(500, 6)) { /* Match the selected/unselected outline colors. */ copy_v4_v4_uchar(btheme->tui.wcol_box.outline_sel, U_theme_default.tui.wcol_box.outline); @@ -297,15 +259,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(space_node.nodeclass_vector); } - if (!USER_VERSION_ATLEAST(500, 16)) { - FROM_DEFAULT_V4_UCHAR(asset_shelf.header_back); - FROM_DEFAULT_V4_UCHAR(asset_shelf.back); - } - - if (!USER_VERSION_ATLEAST(500, 18)) { - FROM_DEFAULT_V4_UCHAR(space_preferences.button); - } - if (!USER_VERSION_ATLEAST(500, 19)) { btheme->tui.menu_shadow_fac = U_theme_default.tui.menu_shadow_fac; btheme->tui.menu_shadow_width = U_theme_default.tui.menu_shadow_width; @@ -316,11 +269,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(tui.panel_text); } - if (!USER_VERSION_ATLEAST(500, 25)) { - FROM_DEFAULT_V4_UCHAR(space_properties.tab_back); - FROM_DEFAULT_V4_UCHAR(space_properties.button); - } - if (!USER_VERSION_ATLEAST(500, 29)) { FROM_DEFAULT_V4_UCHAR(space_node.console_output); } @@ -403,6 +351,16 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(tui.panel_active); } + if (!USER_VERSION_ATLEAST(500, 78)) { + FROM_DEFAULT_V4_UCHAR(regions.channels.back); + FROM_DEFAULT_V4_UCHAR(regions.channels.text); + FROM_DEFAULT_V4_UCHAR(regions.channels.text_selected); + FROM_DEFAULT_V4_UCHAR(regions.asset_shelf.back); + FROM_DEFAULT_V4_UCHAR(regions.asset_shelf.header_back); + FROM_DEFAULT_V4_UCHAR(regions.sidebars.back); + FROM_DEFAULT_V4_UCHAR(regions.sidebars.tab_back); + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a USER_VERSION_ATLEAST check. diff --git a/source/blender/editors/include/UI_resources.hh b/source/blender/editors/include/UI_resources.hh index 74f1f39f0f5..3f0d6ef2f92 100644 --- a/source/blender/editors/include/UI_resources.hh +++ b/source/blender/editors/include/UI_resources.hh @@ -78,8 +78,6 @@ enum ThemeColorID { TH_PANEL_OUTLINE, TH_PANEL_ACTIVE, - TH_BUTBACK, - TH_SHADE1, TH_SHADE2, TH_HILITE, diff --git a/source/blender/editors/interface/resources.cc b/source/blender/editors/interface/resources.cc index 156b4a3a40d..4baee5c6bd6 100644 --- a/source/blender/editors/interface/resources.cc +++ b/source/blender/editors/interface/resources.cc @@ -175,22 +175,22 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) cp = ts->back; } else if (g_theme_state.regionid == RGN_TYPE_CHANNELS) { - cp = ts->list; + cp = btheme->regions.channels.back; } else if (ELEM(g_theme_state.regionid, RGN_TYPE_HEADER, RGN_TYPE_FOOTER)) { cp = ts->header; } else if (g_theme_state.regionid == RGN_TYPE_NAV_BAR) { - cp = ts->tab_back; + cp = btheme->regions.sidebars.tab_back; } else if (g_theme_state.regionid == RGN_TYPE_ASSET_SHELF) { - cp = btheme->asset_shelf.back; + cp = btheme->regions.asset_shelf.back; } else if (g_theme_state.regionid == RGN_TYPE_ASSET_SHELF_HEADER) { - cp = btheme->asset_shelf.header_back; + cp = btheme->regions.asset_shelf.header_back; } else { - cp = ts->button; + cp = btheme->regions.sidebars.back; } copy_v4_v4_uchar(back, cp); @@ -214,7 +214,7 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) cp = btheme->tui.panel_text; } else if (g_theme_state.regionid == RGN_TYPE_CHANNELS) { - cp = ts->list_text; + cp = btheme->regions.channels.text; } else if (ELEM(g_theme_state.regionid, RGN_TYPE_HEADER, @@ -229,7 +229,7 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) break; case TH_TEXT_HI: if (g_theme_state.regionid == RGN_TYPE_CHANNELS) { - cp = ts->list_text_hi; + cp = btheme->regions.channels.text_selected; } else if (ELEM(g_theme_state.regionid, RGN_TYPE_HEADER, @@ -243,14 +243,11 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) } break; case TH_TITLE: - if (ELEM(g_theme_state.regionid, RGN_TYPE_UI, RGN_TYPE_TOOLS) || + if (ELEM(g_theme_state.regionid, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_CHANNELS) || ELEM(g_theme_state.spacetype, SPACE_PROPERTIES, SPACE_USERPREF)) { cp = btheme->tui.panel_title; } - else if (g_theme_state.regionid == RGN_TYPE_CHANNELS) { - cp = ts->list_title; - } else if (ELEM(g_theme_state.regionid, RGN_TYPE_HEADER, RGN_TYPE_FOOTER, @@ -290,10 +287,6 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) cp = btheme->tui.panel_active; break; - case TH_BUTBACK: - cp = ts->button; - break; - case TH_TAB_TEXT: cp = btheme->tui.wcol_tab.text; break; @@ -314,7 +307,7 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) break; case TH_TAB_BACK: /* Tab background is set per editor. */ - cp = ts->tab_back; + cp = btheme->regions.sidebars.tab_back; break; case TH_SHADE1: diff --git a/source/blender/makesdna/DNA_theme_types.h b/source/blender/makesdna/DNA_theme_types.h index 5e540a02ace..ab4ca9811cd 100644 --- a/source/blender/makesdna/DNA_theme_types.h +++ b/source/blender/makesdna/DNA_theme_types.h @@ -106,6 +106,29 @@ typedef struct uiStyle { char _pad0[2]; } uiStyle; +typedef struct ThemeRegionsAssetShelf { + unsigned char back[4]; + unsigned char header_back[4]; +} ThemeRegionsAssetShelf; + +typedef struct ThemeRegionsChannels { + unsigned char back[4]; + unsigned char text[4]; + unsigned char text_selected[4]; + char _pad0[4]; +} ThemeRegionsChannels; + +typedef struct ThemeRegionsSidebars { + unsigned char back[4]; + unsigned char tab_back[4]; +} ThemeRegionsSidebars; + +typedef struct ThemeRegions { + ThemeRegionsAssetShelf asset_shelf; + ThemeRegionsChannels channels; + ThemeRegionsSidebars sidebars; +} ThemeRegions; + typedef struct ThemeCommonAnim { unsigned char playhead[4]; unsigned char preview_range[4]; @@ -251,11 +274,6 @@ typedef struct ThemeUI { } ThemeUI; -typedef struct ThemeAssetShelf { - unsigned char header_back[4]; - unsigned char back[4]; -} ThemeAssetShelf; - /* try to put them all in one, if needed a special struct can be created as well * for example later on, when we introduce wire colors for ob types or so... */ @@ -279,24 +297,11 @@ typedef struct ThemeSpace { unsigned char header_title[4]; unsigned char header_text[4]; unsigned char header_text_hi[4]; - - /* region tabs */ - unsigned char tab_back[4]; char _pad2[4]; /* button/tool regions */ - /** Region background. */ - unsigned char button[4]; unsigned char _pad3[4]; - /* List-view regions. */ - /** Region background. */ - unsigned char list[4]; - /** Panel title. */ - unsigned char list_title[4]; - unsigned char list_text[4]; - unsigned char list_text_hi[4]; - unsigned char shade1[4]; unsigned char shade2[4]; @@ -512,6 +517,7 @@ typedef struct bTheme { ThemeUI tui; + ThemeRegions regions; ThemeCommon common; /** @@ -537,8 +543,6 @@ typedef struct bTheme { ThemeSpace space_statusbar; ThemeSpace space_spreadsheet; - ThemeAssetShelf asset_shelf; - /* 20 sets of bone colors for this theme */ ThemeWireColor tarm[20]; // ThemeWireColor tobj[20]; diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index 1d3ecc65de2..11151866dfd 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -1038,16 +1038,6 @@ static PointerRNA rna_Theme_space_gradient_get(PointerRNA *ptr) return RNA_pointer_create_with_parent(*ptr, &RNA_ThemeSpaceGradient, ptr->data); } -static PointerRNA rna_Theme_space_region_generic_get(PointerRNA *ptr) -{ - return RNA_pointer_create_with_parent(*ptr, &RNA_ThemeSpaceRegionGeneric, ptr->data); -} - -static PointerRNA rna_Theme_space_list_generic_get(PointerRNA *ptr) -{ - return RNA_pointer_create_with_parent(*ptr, &RNA_ThemeSpaceListGeneric, ptr->data); -} - static const EnumPropertyItem *rna_userdef_audio_device_itemf(bContext * /*C*/, PointerRNA * /*ptr*/, PropertyRNA * /*prop*/, @@ -2160,6 +2150,101 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_userdef_theme_update_icons"); } +/* Asset Shelf region */ +static void rna_def_userdef_theme_regions_asset_shelf(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ThemeRegionsAssetShelf", nullptr); + RNA_def_struct_ui_text(srna, "Asset Shelf Region Theme", "Theme settings for asset shelves"); + + prop = RNA_def_property(srna, "back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "header_back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Header Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); +} + +/* Channels region */ +static void rna_def_userdef_theme_regions_channels(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ThemeRegionsChannels", nullptr); + RNA_def_struct_ui_text(srna, "Source List Region Settings", ""); + + prop = RNA_def_property(srna, "back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "text", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Text", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "text_selected", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Selected Text", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); +} + +/* Sidebar & Toolbar region */ +static void rna_def_userdef_theme_regions_sidebars(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ThemeRegionsSidebars", nullptr); + RNA_def_struct_ui_text(srna, "Sidebar & Toolbar Region Settings", ""); + + prop = RNA_def_property(srna, "back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "tab_back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Navigation/Tabs Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); +} + +static void rna_def_userdef_theme_regions(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + rna_def_userdef_theme_regions_channels(brna); + rna_def_userdef_theme_regions_asset_shelf(brna); + rna_def_userdef_theme_regions_sidebars(brna); + + srna = RNA_def_struct(brna, "ThemeRegions", nullptr); + RNA_def_struct_ui_text(srna, + "Shared Region Properties", + "Theme settings for regions that are common among editors"); + + prop = RNA_def_property(srna, "asset_shelf", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Asset Shelf", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "channels", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Channels", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "sidebars", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Toolbar / Sidebar", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); +} + static void rna_def_userdef_theme_common_anim(BlenderRNA *brna) { StructRNA *srna; @@ -2476,59 +2561,6 @@ static void rna_def_userdef_theme_space_generic(BlenderRNA *brna) rna_def_userdef_theme_space_common(srna); } -/* sidebar / toolbar region */ -static void rna_def_userdef_theme_space_region_generic(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ThemeSpaceRegionGeneric", nullptr); - RNA_def_struct_sdna(srna, "ThemeSpace"); - RNA_def_struct_ui_text(srna, "Theme Space Region Settings", ""); - - prop = RNA_def_property(srna, "button", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Region Background", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - /* tabs */ - prop = RNA_def_property(srna, "tab_back", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Navigation/Tabs Background", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); -} - -/* list / channels */ -static void rna_def_userdef_theme_space_list_generic(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ThemeSpaceListGeneric", nullptr); - RNA_def_struct_sdna(srna, "ThemeSpace"); - RNA_def_struct_ui_text(srna, "Theme Space List Settings", ""); - - prop = RNA_def_property(srna, "list", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Source List", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "list_title", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Source List Title", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "list_text", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Source List Text", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "list_text_hi", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Source List Text Highlight", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); -} - static void rna_def_userdef_theme_spaces_main(StructRNA *srna) { PropertyRNA *prop; @@ -2551,49 +2583,6 @@ static void rna_def_userdef_theme_spaces_gradient(StructRNA *srna) RNA_def_property_ui_text(prop, "Theme Space", "Settings for space"); } -static void rna_def_userdef_theme_spaces_region_main(StructRNA *srna) -{ - PropertyRNA *prop; - - prop = RNA_def_property(srna, "space_region", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "ThemeSpaceRegionGeneric"); - RNA_def_property_pointer_funcs( - prop, "rna_Theme_space_region_generic_get", nullptr, nullptr, nullptr); - RNA_def_property_ui_text(prop, "Toolbar/Sidebar", "Settings for space region"); -} - -static void rna_def_userdef_theme_spaces_list_main(StructRNA *srna) -{ - PropertyRNA *prop; - - prop = RNA_def_property(srna, "space_list", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "ThemeSpaceListGeneric"); - RNA_def_property_pointer_funcs( - prop, "rna_Theme_space_list_generic_get", nullptr, nullptr, nullptr); - RNA_def_property_ui_text(prop, "Theme Space List", "Settings for space list"); -} - -static void rna_def_userdef_theme_asset_shelf(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ThemeAssetShelf", nullptr); - RNA_def_struct_ui_text(srna, "Theme Asset Shelf Color", "Theme settings for asset shelves"); - - prop = RNA_def_property(srna, "header_back", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Header Background", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "back", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Main Region Background", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); -} - static void rna_def_userdef_theme_spaces_vertex(StructRNA *srna, const bool has_vertex_active, const bool has_vertex_attributes) @@ -2778,7 +2767,6 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna) RNA_def_struct_sdna(srna, "ThemeSpace"); RNA_def_struct_ui_text(srna, "Theme 3D Viewport", "Theme settings for the 3D viewport"); - rna_def_userdef_theme_spaces_region_main(srna); rna_def_userdef_theme_spaces_gradient(srna); /* General Viewport options */ @@ -3040,8 +3028,6 @@ static void rna_def_userdef_theme_space_graph(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Graph Editor", "Theme settings for the graph editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_list_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); @@ -3074,7 +3060,6 @@ static void rna_def_userdef_theme_space_file(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme File Browser", "Theme settings for the File Browser"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "selected_file", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, nullptr, "hilite"); @@ -3148,7 +3133,6 @@ static void rna_def_userdef_theme_space_userpref(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Preferences", "Theme settings for the Blender Preferences"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); } static void rna_def_userdef_theme_space_console(BlenderRNA *brna) @@ -3282,7 +3266,6 @@ static void rna_def_userdef_theme_space_text(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Text Editor", "Theme settings for the Text Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "line_numbers", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, nullptr, "line_numbers"); @@ -3378,7 +3361,6 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Node Editor", "Theme settings for the Node Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); @@ -3580,7 +3562,6 @@ static void rna_def_userdef_theme_space_buts(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); } static void rna_def_userdef_theme_space_image(BlenderRNA *brna) @@ -3595,7 +3576,6 @@ static void rna_def_userdef_theme_space_image(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Image Editor", "Theme settings for the Image Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 4); @@ -3700,8 +3680,6 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Sequence Editor", "Theme settings for the Sequence Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_list_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); @@ -3847,8 +3825,6 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Dope Sheet", "Theme settings for the Dope Sheet"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_list_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); @@ -3924,8 +3900,6 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Nonlinear Animation", "Theme settings for the NLA Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_list_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); @@ -4117,8 +4091,6 @@ static void rna_def_userdef_theme_space_clip(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Theme Clip Editor", "Theme settings for the Movie Clip Editor"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_list_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 4); @@ -4252,7 +4224,6 @@ static void rna_def_userdef_theme_space_spreadsheet(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); rna_def_userdef_theme_spaces_main(srna); - rna_def_userdef_theme_spaces_region_main(srna); } static void rna_def_userdef_themes(BlenderRNA *brna) @@ -4263,8 +4234,8 @@ static void rna_def_userdef_themes(BlenderRNA *brna) static const EnumPropertyItem active_theme_area[] = { {0, "USER_INTERFACE", ICON_WORKSPACE, "User Interface", ""}, {19, "STYLE", ICON_FONTPREVIEW, "Text Style", ""}, + {26, "REGIONS", ICON_NONE, "Regions", ""}, {25, "COMMON", ICON_NONE, "Common", ""}, - {24, "ASSET_SHELF", ICON_ASSET_MANAGER, "Asset Shelf", ""}, {1, "VIEW_3D", ICON_VIEW3D, "3D Viewport", ""}, {4, "DOPESHEET_EDITOR", ICON_ACTION, "Dope Sheet/Timeline", ""}, {16, "FILE_BROWSER", ICON_FILEBROWSER, "File/Asset Browser", ""}, @@ -4318,6 +4289,11 @@ static void rna_def_userdef_themes(BlenderRNA *brna) RNA_def_property_struct_type(prop, "ThemeUserInterface"); RNA_def_property_ui_text(prop, "User Interface", ""); + prop = RNA_def_property(srna, "regions", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "ThemeRegions"); + RNA_def_property_ui_text(prop, "Regions", "Theme properties for common editor regions"); + prop = RNA_def_property(srna, "common", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_struct_type(prop, "ThemeCommon"); @@ -4433,11 +4409,6 @@ static void rna_def_userdef_themes(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Spreadsheet", ""); /* end space types */ - prop = RNA_def_property(srna, "asset_shelf", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "ThemeAssetShelf"); - RNA_def_property_ui_text(prop, "Asset Shelf", "Settings for asset shelf"); - prop = RNA_def_property(srna, "bone_color_sets", PROP_COLLECTION, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_collection_sdna(prop, nullptr, "tarm", ""); @@ -4651,12 +4622,11 @@ static void rna_def_userdef_dothemes(BlenderRNA *brna) rna_def_userdef_theme_ui_style(brna); rna_def_userdef_theme_ui(brna); + rna_def_userdef_theme_regions(brna); rna_def_userdef_theme_common(brna); rna_def_userdef_theme_space_generic(brna); rna_def_userdef_theme_space_gradient(brna); - rna_def_userdef_theme_space_list_generic(brna); - rna_def_userdef_theme_space_region_generic(brna); rna_def_userdef_theme_space_view3d(brna); rna_def_userdef_theme_space_graph(brna); @@ -4676,7 +4646,6 @@ static void rna_def_userdef_dothemes(BlenderRNA *brna) rna_def_userdef_theme_space_topbar(brna); rna_def_userdef_theme_space_statusbar(brna); rna_def_userdef_theme_space_spreadsheet(brna); - rna_def_userdef_theme_asset_shelf(brna); rna_def_userdef_theme_colorset(brna); rna_def_userdef_theme_collection_color(brna); rna_def_userdef_theme_strip_color(brna);