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);