UI: Asset Shelf (Experimental Feature) #104831

Closed
Julian Eisel wants to merge 399 commits from asset-shelf into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
6 changed files with 54 additions and 1 deletions
Showing only changes of commit 253b417225 - Show all commits

View File

@ -307,6 +307,10 @@ const bTheme U_theme_default = {
.back = RGBA(0x3d3d3dff),
.sub_back = RGBA(0x0000001f),
},
.asset_shelf = {
.header_back = RGBA(0x18181800),
.back = RGBA(0x30303000),
},
.grid = RGBA(0x54545480),
.wire = RGBA(0x000000ff),
.wire_edit = RGBA(0x000000ff),

View File

@ -25,7 +25,7 @@ extern "C" {
/* Blender file format version. */
#define BLENDER_FILE_VERSION BLENDER_VERSION
#define BLENDER_FILE_SUBVERSION 4
#define BLENDER_FILE_SUBVERSION 5
/* Minimum Blender version that supports reading file written with the current
* version. Older Blender versions will test this and show a warning if the file

View File

@ -93,6 +93,11 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme)
FROM_DEFAULT_V4_UCHAR(space_view3d.face_retopology);
}
if (!USER_VERSION_ATLEAST(306, 5)) {
FROM_DEFAULT_V4_UCHAR(space_view3d.asset_shelf.back);
FROM_DEFAULT_V4_UCHAR(space_view3d.asset_shelf.header_back);
}
/**
* Versioning code until next subversion bump goes here.
*

View File

@ -165,6 +165,12 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
else if (g_theme_state.regionid == RGN_TYPE_EXECUTE) {
cp = ts->execution_buts;
}
else if (g_theme_state.regionid == RGN_TYPE_ASSET_SHELF) {
cp = ts->asset_shelf.back;
}
else if (g_theme_state.regionid == RGN_TYPE_ASSET_SHELF_FOOTER) {
cp = ts->asset_shelf.header_back;
}
else {
cp = ts->button;
}

View File

@ -215,6 +215,11 @@ 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...
*/
@ -270,6 +275,8 @@ typedef struct ThemeSpace {
/* NOTE: cannot use name 'panel' because of DNA mapping old files. */
uiPanelColors panelcolors;
ThemeAssetShelf asset_shelf;
unsigned char shade1[4];
unsigned char shade2[4];

View File

@ -1898,6 +1898,34 @@ static void rna_def_userdef_theme_spaces_list_main(StructRNA *srna)
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", NULL);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
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, 3);
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, 3);
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_asset_shelf_main(StructRNA *srna)
{
PropertyRNA *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");
}
static void rna_def_userdef_theme_spaces_vertex(StructRNA *srna)
{
PropertyRNA *prop;
@ -2408,6 +2436,8 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
RNA_def_property_ui_text(
prop, "Object Origin Size", "Diameter in pixels for object/light origin display");
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
rna_def_userdef_theme_spaces_asset_shelf_main(srna);
}
static void rna_def_userdef_theme_space_graph(BlenderRNA *brna)
@ -4315,6 +4345,7 @@ static void rna_def_userdef_dothemes(BlenderRNA *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_asset_shelf(brna);
rna_def_userdef_theme_space_view3d(brna);
rna_def_userdef_theme_space_graph(brna);